目前正在使用tispark 进行离线计算,简单记录一下操作过程

一、技术验证

  1. 场景:计算每次充电过程中单体最高电压的变化速率

 解决方案:

        使用tispark 直接访问tidb的数据,采用spark的lag函数计算

      SELECT billid,MAX(Diff) AS MaxHVDiff,MIN(Diff) AS MinHVDiff,
      '20190801' AS bizdate FROM (SELECT upttime,billid,HighestVoltage , (HighestVoltage -lag(HighestVoltage ) over (PARTITION BY billid ORDER BY upttime)) AS Diff FROM ETL_SingleCharging 

    计算资源   : 

       /home/teld/tispark/spark-2.3.3-bin-hadoop2.7/bin/spark-shell --master=spark://***:7077 --executor-memory 32G  48核

             计算结果:                     

  参与计算的数据量: 451105735 –4.5亿
  结果数据:6463684 –646万
  时间:16分钟

监控资源
        

     

2. 相同的场景,将资源占用控制在 24G,36核心。 观察tispark 内存压力下降 --说明 tispark的资源占用可控

  /home/teld/tispark/spark-2.3.3-bin-hadoop2.7/bin/spark-shell --master=spark://***:7077 --executor-memory 24G --total-executor-cores 36

二、生产部署

场景:生产环境需要计算每分钟的每个订单的充电的soc、温度、单体最高电压的变化速率,因此分析查找出异常的订单数据

生产解决方案:

2.1 整体思路:

通过计算平台的HUE上扩展TIspark的插件,实现tispark的相关操作,由于涉及到相关的临时表操作,因此在HUE的数据流里面还涉及到清楚临时表,导入数据到sqlserver等操作,因此还涉及kettle操作

2.2 实现方案:

1.数据流定义:

1.定义HUE数据流任务

tispark sql  --临时用shell 插件,扩张的hue上的tispark的插件正在开发

2.执行监控

每个sparksql 执行时间为2分钟

三 下一步规划

3.1 下一步逐步增加更深入的离线任务

3.2 tispark 的hue 更易用性的插件开发,并返回给社区

3.3 继续增加tidb的 oltp业务观察 tp和ap业务的 关系和对资源的占用冲突情况

    

TiSpark 初级应用的更多相关文章

  1. 马哥linux运维初级+中级+高级 视频教程 教学视频 全套下载(近50G)

    马哥linux运维初级+中级+高级 视频教程 教学视频 全套下载(近50G)目录详情:18_02_ssl协议.openssl及创建私有CA18_03_OpenSSH服务及其相关应用09_01_磁盘及文 ...

  2. Python 正则表达式入门(初级篇)

    Python 正则表达式入门(初级篇) 本文主要为没有使用正则表达式经验的新手入门所写. 转载请写明出处 引子 首先说 正则表达式是什么? 正则表达式,又称正规表示式.正规表示法.正规表达式.规则表达 ...

  3. python 高级之面向对象初级

    python 高级之面向对象初级 本节内容 类的创建 类的构造方法 面向对象之封装 面向对象之继承 面向对象之多态 面向对象之成员 property 1.类的创建 面向对象:对函数进行分类和封装,让开 ...

  4. N皇后问题—初级回溯

    N皇后问题,最基础的回溯问题之一,题意简单N*N的正方形格子上放置N个皇后,任意两个皇后不能出现在同一条直线或者斜线上,求不同N对应的解. 提要:N>13时,数量庞大,初级回溯只能保证在N< ...

  5. python 面向对象初级篇

    Python 面向对象(初级篇) 概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发" ...

  6. codefordream 关于js初级训练

    这里的初级训练相对简单,差不多都是以前知识温习. 比如输出“hello world”,直接使用console.log()就行.注释符号,“//”可以注释单行,快捷键 alt+/,"/*   ...

  7. Mysql操作初级

    Mysql操作初级 本节内容 数据库概述 数据库安装 数据库操作 数据表操作 表内容操作 1.数据库概述 数据库管理系统叫做DBMS 1.什么是数据库 ? 答:数据的仓库,如:在ATM的示例中我们创建 ...

  8. python面向对象初级(七)

    概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强...” 面向过程编程最易被初学 ...

  9. 学习 opencv---(3) ROI 区域图像叠加&初级图像混合

    在这篇文章里,我们一起学习了在OpenCV中如何定义感兴趣区域ROI,如何使用addWeighted函数进行图像混合操作,以及将ROI和addWeighted函数结合起来使用,对指定区域进行图像混合操 ...

  10. Python 面向对象(初级篇)

    51CTO同步发布地址:http://3060674.blog.51cto.com/3050674/1689163 概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后 ...

随机推荐

  1. echarts的bug

    Uncaught Error: Invalide sourceFormat: unknown at assert (util.js:404:15) at mountMethods (dataProvi ...

  2. HDLbits——Shift18

    // Build a 64-bit arithmetic shift register, // with synchronous load. The shifter can shift both le ...

  3. Swift中 堆(heap)和栈(stack)的区别

    1.内存空间分为堆空间和栈空间 2.堆->引用类型(对象.函数.闭包)  栈->值类型(结构体.枚举.元组) 3.值类型赋值->深拷贝  引用类型赋值->浅拷贝 let a = ...

  4. jmeter非GUI模式压测并生成测试报告

    关于jmeter非GUI模式压测并生成测试报告 1.脚本调通后,在DOS命令栏进入脚本存在的位置 如果不想通过DOS进入脚本路径,则可以直接指定执行路径,命令如下: JMeter默认去当前目录寻找脚本 ...

  5. linux挂载文件服务器

    smbclient -L //192.168.1.1/ -U administrator //直接挂载 使用下面这条命令就行 sudo mount -t cifs -o username=文件服务器账 ...

  6. 实验:在Arduino上使用printf格式化输出到串口

    那么在pcDuino上如何用printf函数将数据从串口送出来呢?这就需要修改Arduino上的串口的库文件了.修改 步骤如下:  1.在 pcduino上arduino的库文件路径是:/usr /a ...

  7. dota中的哲理

    战术和战略: 6k分和3k分玩家的最重要的区别不是英雄玩的不好,而是整体战略不明确. dota玩家游戏时长超过1000h的比比皆是,这些玩家里面分数差距相当大.高的7k往上,低的2k深坑爬不出来. 这 ...

  8. 24 Django模块的导入--常用总结

    常用模块导入 1 forms # forms组件的使用 from django import forms 2 ValidationError # modelform报错时使用 from django. ...

  9. Win10解决无法访问其他机器共享的问题【转】

    你不能访问此共享文件夹,因为你组织的安全策略阻止未经身份验证的来宾访问.这些策略可帮助保护你的电脑免受网络上不安全设备或恶意设备的威胁.管理员身份执行sc.exe config lanmanworks ...

  10. Edge浏览器相关

    Ctrl+T 新建页面 Ctrl+W 关闭页面 不可复制的页面,前加read: 若是不可访问 变read://http:// 阅读可翻译,也可有图片字典 还可用插件: 截图软件:Snipaste  微 ...