作者:许亮

背景介绍

京东工业是2021独立出来成立的新事业群-京东工业事业群,包括工业品、工业服务、工业互联等四大板块业务。工业互联业务主要是搭建工业互联网平台,用于将实时现场工业数据汇入平台进行分析,做数据智能工作。目前支持业务有国家电网管理平台、综合能源、碳中和交易、电力交易等业务。本文重点介绍下京东云

ClickHouse(JCHDB)在京东工业的综合能源领域的应用。工业互联网场景的数据主要有如下三个特点:

一、数据量大。

微型的客户几百个设备,大型的客户十几万个仪表设备,上报频率每分钟1~60条不等,上报数据量很大。

二、查询实时性要求高。

大部分客户将大屏实时应用当做实时仪表盘用,随时盯盘,使用上最高频的应用就是实时应用。

三、数据一致性要求高。

会经常发生底层环境的变动导致难以预料的脏数据,但是客户不允许错。比如设备错乱,出现过一堆设备部署错位置,导致很长一段时间上报数据都是数值错位;再比如新加字段,客户全局更新设备,导致需要引入新字段;或者更换单位,将t/h 转换成 kg/h,数值瞬间放大1000倍。

技术架构

由于业务架构的演进,工业互联网平台也经历了以下技术架构的演进。

架构1.0 存储聚合分离

第一代架构

第一代的整体架构如下图,分为数据过滤、数据处理引擎、Influxdb和Kylin几个重要的组成部分。

数据过滤。

1、策略工厂过滤脏数据。通过全局通用规则+企业特定个性化规则来过滤。

2.、异常处理流程。可能前方环境变化导致误判,需要将异常数据转发暂存。

数据处理引擎

1、维度和特征拉宽。
如设备维度、组织架构维度、告警规则等,用于OLAP和算法模型

2、数据差分。

  • 如流量、电量等维度,方便复杂的查询瞬时状态以及复杂聚合
  • 抗中间数据丢失

3、预警告警。

  • 监测非脏数据是否触发 企业设定的告警规则
  • 触发告警处理流程

Influxdb

明细时序数据落库

Kylin

查询聚合数据数据

业务表现和感受

Kylin实际业务表现:

1、需要提前搭建依赖的各种hadoop环境,运维压力大。

2、 需要提前预设好所有的cube、dimension、measures等等组合关系,上线后不能改

3、仅仅是基于预计算的查询引擎,并不存储数据,导致无法查询历史明细数据

Influxdb实际业务表现:

1、 当时分布式版本还没开源,运维当时大部分没听说过这个新东西;
2、 配套工具和文档很难找,入门困难,概念有点复杂,tag、series、fields…;
3、 聚合查询性能坑爹,明细查询几乎无提升;
4、没有大厂核心应用背书。

综合感受:

1、 运维负担大:运维两套数据库,且kylin在性能一般的测试环境经常宕机
2、 使用难度大:需要区分是查询明细还是聚合数据
3、数据一致性难保证:物联网和工业场景经常需要改数据
4、架构基本满足需求,但是缺点大于优点,需要更好的架构方案

架构2.0 ClickHouse合二为一

第二代架构希望解决第一代的架构三个的痛点:一、运维负担重,2套存储框架;二、使用负担大,查询需要分数据源;三、数据一致性维护困难。

第二代架构使用的是ClickHouse官方推荐实践:Kafka引擎表+物化流程+本地表+分布式表

第二代架构优缺点分析:

优点:1、解决所有痛点,一套方案解决。2、性能优秀。支持稳定大吞吐量数据写入,满足做中台建设的基础存储要求;超高的数据压缩率,节省磁盘存储;合理设置索引后,数据查询速度极快

缺点:1、数据量巨大;2、QPS不高,无法toC。

业务表现


实践感受有三点:

一、 架构清晰简洁。最简单的多主分片结构,只依赖个zk,任何运维半天都能搭起来。

二、 一站式方案,既能存数据,有能查数据,而且内部默认对查询的性能优化就很好。

三、Sql友好,只要有mysql的基本技能就无缝衔接到ClickHouse的使用,没有入门门槛。

总结一下,ClickHouse是很优秀的存储查询一揽子方案,对于需要大量group by和排序的聚合查询场景是几乎不二选择。对DBMS的支持目前也是够用的,像mysql的一样使用感受大大降低运维、研发等的使用门槛。

新的问题

大屏应用遭遇性能瓶颈

主要瓶颈如下:

一、瞬时查询数吞吐量大
数据基本按照日分区,如果切换到“年”,那么该接口就要瞬间聚合365个分区的数据,接口延时5~10s

二、瞬时查询QPS高:
大屏应用组件奇多,粗粗一算,刷新首页大屏瞬间十几个sql就提交到ClickHouse,如果都是跨越365分区的按年查询,压力更是暴增。

官方建议每秒最多查询100次。

基于以上原因,下一代开始考虑尝试架构实时数仓:生产和消费相分离

架构3.0 ClickHouse+实时数仓

第三代架构如下:

DWD 明细数据层:

1、 分主题的明细大宽表数据。
业务上解耦拆分大宽表。
2、 维度数据。
更建议提前维度拉宽,避免join;可以预留备用字段,业务上mapping使用。

DWS 数据聚合层:

1、物化流程聚合
AggregatingMergeTree
面向:针对明细数据不经常修改的场景
优点:实现简单快速,性能丝滑,查询优化明显
缺点:明细数据发生变更,需要时间评估和修复

2、定时任务调度
脚本或者可视化任务上下线调度
面向:针对明细数据经常修改的场景,需要强数据一致性
优点:数据一致性随时可以保证
缺点:需要前期建设工作,包括分析提炼业务数据模式等

ADS数据应用层

1、数据生产消费解耦层:使用redis,按照QPS 5W+设计
2、数据应用:直接使用redis里的数据,不需要访问下层数仓。

ClickHouse 实践总结

ClickHouse的适用场景

一、复杂查询聚合的OLAP场景,基本不支持OLTP场景

典型特征是存在大量的group by、order by运算。

二、需要支持稳定大量数据写入。

ClickHouse一般可以支持每秒几百MB的数据量写入,优化过的更高。

三、不需要高频的查询。

裸奔使用,官方建议每秒最多查询100次,但是按照上述实时数仓方案优化过会大大提升。最适合在内部运营人员内部使用的场景上落地。

四、当你OLAP聚合之外,也需要明细查询的场景,这是优秀的方案。

五、其它:

不需要高级的DBMS功能,如事务性;不需要经常很复杂的表间操作,比如join。

京东云ClickHouse的最佳实践总结

一、官方提供的 kafka引擎表+物化流程+本地表+分布式表 的大宽表使用流程。

尽可能使用提前的维度拉宽+大宽表+合理物化ETL流程解决问题,而不是复杂的表间join。

使用好大量的mergeTree家族的不同表引擎,比如在数据去重,数据聚合等等特殊场景。

二、所有的数据库方案都是数据仓库解决方案的一部分,需要站在数据仓库的高度上去想问题。

没有绝对的银弹可以解决所有数据问题,合理搭配去使用数据库,扬长避短,各司其职。

ClickHouse在工业互联网场景的OLAP平台建设实践相关推荐

  1. 为场景打造工具,启业云面向工业互联网的融代码平台

    <中智观察>第1730篇推送 作者:木易 编辑:益韩 编审:杨小天 头图来源:启业云 "启业云是为场景打造工具,而非为工具选择场景."这是访谈中,启业云创始人& ...

  2. 物联网和工业互联网场景下的边缘计算

    1. 物联网和边缘计算 业务需求 物联网主要是将各种传感器和智能设备连接起来,将数据上传云端,并通过物联网应用程序进行监控管理. 由于传感器可能部署在很多相距较远的地方,而且数量庞大,所以不可能将传感 ...

  3. 试点来了!应急部发布《“工业互联网+危化安全生产”试点建设方案》

    近日,应急管理部办公厅关于印发<"工业互联网+危化安全生产"试点建设方案>的通知. 方案建设目标:坚持系统谋划.试点先行,打造一批应用场景.工业APP和工业机理模型,力 ...

  4. 根据名称获得treeview节点_冶金行业首个!中冶赛迪正式启动工业互联网标识解析二级节点建设...

    近日,国家工业和信息化部信息技术发展司公示了"2020年工业互联网创新发展工程-工业互联网标识解析二级节点(特定行业应用服务平台)项目"候选人名称.由中冶赛迪重庆信息技术有限公司牵 ...

  5. vivo 实时计算平台建设实践

    作者:vivo 互联网实时计算团队- Chen Tao 本文根据"2022 vivo开发者大会"现场演讲内容整理而成. vivo 实时计算平台是 vivo 实时团队基于 Apach ...

  6. 贝壳 DMP 平台建设实践

    导读: DMP是一个大家讨论已久的话题,尤其广告领域,是以 DMP 为基础来展开工作的.由于每个公司所面临的业务场景不同.问题不同,所以在具体落地时的做法也不尽相同.今天主要和大家分享贝壳如何进行DM ...

  7. 基于Apache Flink的爱奇艺实时计算平台建设实践

    导读:随着大数据的快速发展,行业大数据服务越来越重要.同时,对大数据实时计算的要求也越来越高.今天会和大家分享下爱奇艺基于Apache Flink的实时计算平台建设实践. 今天的介绍会围绕下面三点展开 ...

  8. 58同城 Elasticsearch 应用及平台建设实践

    分享嘉宾:于伯伟 58同城 高级架构师 编辑整理:陈树昌 内容来源:DataFunTalk 导读:Elasticsearch是一个分布式的搜索和分析引擎,可以用于全文检索.结构化检索和分析,并能将这三 ...

  9. 流批一体生产应用!Bigo 实时计算平台建设实践

    简介:本文由 Bigo 计算平台负责人徐帅分享,主要介绍 Bigo 实时计算平台建设实践的介绍 本文由 Bigo 计算平台负责人徐帅分享,主要介绍 Bigo 实时计算平台建设实践的介绍.内容包括: B ...

最新文章

  1. OSChina 技术周刊第九期 —— 每周技术精选,值得一看!
  2. CodeSign error: code signing is required for product type Application in SDK iOS XXX的解决办法
  3. 你的 Redis 为什么变慢了?
  4. yii2.0使用ActionForm创建表单
  5. linux 文件大小ll和du不一致问题
  6. A1137 | 录数据查询模拟
  7. 到需要了解AD和LDAP的关系的时候了
  8. 16位整型数据matlab,matlab的整型数据
  9. 【Codeforces549F】Yura and Developers [单调栈][二分]
  10. gps高斯utm_高斯-克吕格投影与UTM投影
  11. CH340安卓驱动使用教程
  12. 首家共享充电宝倒闭了,王思聪要赌赢了吗?
  13. 中兴GWH-11 ZXV10 H108B的AD路由器获取超级用户密码
  14. python运维自动化老男孩_老男孩第十四期 python 自动化运维第二周
  15. Oracle数据库实现分页
  16. (Pytorch)环境配置与代码学习1—边缘检测:更丰富的卷积特征 Richer Convolutional Features for Edge Detection
  17. 转:Jenkins+Jmeter+ant接口自动化框架for Linux学习
  18. dns域名解析过程——从浏览器输入网址到页面显示的中间过程
  19. HCIA(5)动态路由实验
  20. 面部属性预测增强的深层识别网络

热门文章

  1. 懒人长尾词挖掘工具,适合懒人的3个长尾词挖掘工具
  2. 芯片在显微镜下,有哪些不为人知的秘密?
  3. 计算机锁屏打不开,电脑锁屏打不开怎么办没反应
  4. PS霓虹灯光字体效果一键制作方法
  5. 浙江工业大学计算机学院推免生,浙江工业大学计算机科学与技术学院(专业学位)软件工程保研夏令营...
  6. 1.16 be going to and will
  7. 注会java_CPA理论与Base理论(示例代码)
  8. 微信小程序-学生登录后跳转-显示教师页面信息
  9. PLC梯形图设计S7-1200博途以及PLC仿真实现之 2. 编程梯形图实现
  10. 智能汽车时代,OEM软件自研与供应链分工模式“待解”