空间节省50%,时序性能提升5倍,三一重工从Hadoop+Spark到MatrixDB架构变迁实现One for ALL

作者:于成铭-智能化所副所长 / 褚凤天-大数据工程师

工业设备互联采集是数字化工厂建设的基础,设备在运行的过程中会产生大量有价值的数据,例如:新泵车运行状态、搅拌压力、总泵送方量、异常报警信息等,为后续的数据分析挖掘提供最可靠的数据来源。

MatrixDB 专门针对工业互联网、物联网及车联网等场景设计,为设备多、指标多和数据量大的场景特别优化,支持数据快速写入、查询和计算。在工业领域设备采集的实时数据,不仅用于设备状态监控和预警,还能满足批量数据复杂分析要求,指导生产决策,提高效率和质量,大幅度降低数据存储和存储系统运维成本,做到高吞吐、低延时,实时处理流数据及海量历史数据。

1

1. 关于泵诵云平台

三一重工专注于以“工程”为装备的制造业,泵诵云平台是三一集团泵送研究院建设的集分布式存储、数据建模与部署、可视化展示于一体的工业大数据平台。

通过工业大数据的挖掘,实现混凝土机械设备主要性能指标的智能巡检,形成千车千面的设备画像,达到设备的预测性维护,并打通工厂数据与经营数据,实现设备全生命周期管理,构建设备全生命周期最优模型,优化资源利用与配置效率,提升设备可用率。

平台覆盖超过两万台混凝土机械设备。 通过量化分析“抖、堵、高、转、效”五大关键性能约268项指标,提供单设备的全面体检报告和故障预警,为智能运维出谋划策。同时,基于历史的多设备、多维度统计和对比分析,为研发产品定义、优化、跟踪提供数据决策支撑;全面支撑数据决策、新品跟踪、技改验证、精准排故四大场景。

2. 当前业务挑战

为了支撑上述功能与业务,泵诵云大数据平台因此应运而生。整个平台接入来自超过两万台设备的近两千个工况参数的数据,数据回传频率最大为2Hz,每日回传数据在5亿条以上,占用磁盘空间1TB以上, 实现了每天每台车的指标计算、智能巡检、模型训练和时序数据的展示。

在早期版本中,我们采用 Hadoop + Spark 架构,在这四个方面遇到比较大的挑战:

1 架构复杂导致数据冗余与运维困难

传统的 Hadoop + Spark 架构需要搭建 CDH 等大数据全家桶,包括 Hadoop(负责存储原始数据)、Spark(负责每日任务)、Hive(负责临时离线任务)、HBase(负责数据展示),构成复杂的技术栈。

为了满足不同服务的需求,我们的数据同时以不同形式存在不同的组件中,浪费资源也给运维带来了极大的不便,过多的技术栈也不利于团队成员的配置和培养。

2 工况数据不对齐的问题

工况数据具有时序性。 在设备工作时,由于各种无法预计的情况导致数据无法整齐上传,大量的数据在“行的维度”上不对齐。

平台是数据的被动接收方,只有等待数据落盘后才能对数据进行清洗等操作,每天的集群有大量的空数据,数据清洗的工作繁琐,正确率也低。

3 传统架构进行数据分析的 “周期过长”

数据进行反复的测试对数据分析师来说是十分必要的。在此前提下,需要分析工具能够快速得到结果,分析结果的易得性将快速迭代分析程序, 使数据分析人员在思维上连续,有利于算法的产出。

传统架构中数据计算引擎 Spark 计算需要将存在 HDFS 的数据移动出来,归集的过程中非常消耗资源和时间,严重影响我们的计算速度。

4 Python 面向过程语言缺乏良好的支持

在工业场景中,类似于 Python 的过程语言是数据分析师们必要的分析手段之一。传统架构中,在采用 Spark 计算引擎中的 pandasUDF 功能来批量运行 python 代码,这导致了本身代码中大量的胶水,拖慢了算法开发的周期。

3. MatrixDB 解决方案

为改善当前遇到的业务挑战,我们将泵诵云平台的底层架构切换成以 MatrixDB 为主体的架构上,MatrixDB 相比于 Spark 有着四大明显优势:

1 One for ALL,超融合时序数据库

MatrixDB 将不同的场景需求融合到数据库中,满足了数据存储、实时计算、离线计算以及数据展示的功能,避免了 Hadoop 全家桶式的尴尬。同时,MatrixDB 的界面化安装与 Grafana 监控使运维工作难度大大地降低,是我们理想中的 “One for all”。

2 MatrixGate 支持 upsert

实时数据入库采用 MatrixDB 的实时数据写入工具 mxgate,支持 upsert 功能,可以将同一时刻的不同行数据进行合并更新。 这对我们机械设备上传的时序数据是十分友好的。同时,我们可以将部分清洗数据的工作前置到入库前,简化了数据清洗的过程。

3 独创的 MARS 将查询速度提高约5倍

MatrixDB 是一款 OLAP + OLTP 性的数据库,数据本身就存储在 MatrixDB 中,计算时无需移动数据。借助其独创的 MARS 表功能,将查询与计算速度综合提高了约5倍,使算法人员在查看原始数据的时候更加方便。

在每台物理机配置相同的情况下,两代集群性能的整体对比情况表,如下图: 2

可以看出 MatrixDB 仅使用了一半的机器数量,并且算法运行时间从2.5小时减少到1小时。

4 与Python更好的兼容性

MatrixDB 友好的支持了基于 Python3 的自定义函数编写, 所有接口的定义和调用被结构化的存储于集群中,Python 代码的迁移、调用与管理更加方便,这是只有程序员才懂的优点,非常有利于我们后续数据的分析与算法结构化迭代工作。

4. 数据应用

营销、研发和服务的日常工作场景出发,面向用户持续深化服务体系,高效支撑工作和决策。

4.1 营销场景

泵送指数分析

分析各地域市场的开工率和泵送方量等情况,判断整体市场情况及客户盈利能力,辅助分析全国各级市场盈利能力情况及施工需求类型(如地铁、高架、高楼等),再进一步具象挖掘重点市场。

营销决策支撑

不同地域设备的用户使用习惯及各性能维度表现,找准各地域重点的设备需求。通过臂架长度、底盘类型、设备型号、出厂时间等多维度分析,助力营销更针对性的指定市场策略。

4.2 研发场景

技改对比

基于设备技改工作进度,实时分析对比技改前后设备数据表现情况,量化技改前后的指标表现,直观展现技改效果。从原始的线下电话跟踪反馈转化为线上数据统计分析,极大提高工作效率和结果可靠性。

故障定位

远程通过实时查看(或回看)故障发生时的设备工况数据表现,快速定位故障原因,提高故障解除效率,减少因设备故障而产生的出差约60%。

产品创新支撑

通过臂架长度、底盘类型、设备型号、出厂时间等多维度的分析,助力研发更细致的对比、了解产品表现,进而掌握市场真实需求。

4.3 服务场景

全国-地区-重点城市-重点设备的分析

全区域设备健康情况扫描,明确全区域设备的整体表现,找到表现好的设备用来做技术分享;找到表现差的设备,做重点跟进。对26项预测故障和297项故障自诊断问题的跟进闭环。

基于CRM的服务闭环

将泵诵云平台和服务小助手集成,以微服务的方式助力服务效率提升,最终减少因设备堵管、发动机故障、液压系统故障等造成的客户停机损失。

5. 结语

当前各类业务对“海量、实时”数据需求变得更加迫切,实时推荐、精准营销、实时决策成为数字化场景的关键能力,更为敏锐地识别和引导用户需求、提升用户的产品体验将为企业带来持续的竞争优势。MatrixDB 超融合时序数据库是在这种趋势下的最佳选择, 一站式数据平台同时解决海量数据和实时分析难题,使得数据价值的变现更高效、简单。