基于 Apache Doris 的实时/离线一体化架构,赋能中国联通 5G 全连接工厂解决方案

作者:田向阳,联通西部创新研究院 大数据专家

共创:SelectDB 技术团队

导读: 数据是 5G 全连接工厂的核心要素,为支持全方位的数据收集、存储、分析等工作的高效进行,联通 5G 全连接工厂从典型的 Lambda 架构演进为 All in Apache Doris 的实时/离线一体化架构,并凭借 Doris 联邦查询能力打造统一查询网关,数据处理及查询链路大幅简化,为联通 5G 全连接工厂带来数据时效性、查询响应、存储成本、开发效率全方位的提升。

随着通信技术的飞速发展,5G 已成为当今时代的重要标签。在这一背景下,5G 全连接工厂应运而生,不仅代表了工业制造的未来方向,更是数字化转型和智能制造的典范。

5G 全连接工厂,顾名思义,是利用 5G 等新一代信息通信技术,实现工厂内部各个生产单元的广泛连接。这种连接不仅仅局限于设备和系统的联网,更包括人员、物料、环境等多元素的互联互通。通过这种全方位的连接,5G 全连接工厂能够实时收集、分析和处理大量数据,从而优化生产流程,提高生产效率,降低运营成本。

作为中国最大规模的电信运营商之一,中国联通具备广泛 5G 网络覆盖,拥有大量通信基站、光纤网、数据中心等物理网络基础设施,这为建设 5G 连接工厂提供了坚实的基础。同时,中国联通还针对 5G 全连接工厂的需求,提供了一整套解决方案,旨在实现制造型企业生产要素的全面互联和数据实时采集。

中国联通 5G 全连接工厂.PNG

联通 5G 全连接工厂解决方案实现生产制造企业各生产要素(人、机、料、法、环、测)的全面互联,面向数字化车间和智能工厂的核心需求,提供统一的平台底座,支持数据实时采集、实时反馈生产运营状况,并建立企业的生产数据中台,对生产过程中的数据进行处理和标准化管理,实现企业数据接口、格式的统一标准,将数据转化为资产,进而为工厂提供高效的数据服务,挖掘数据的价值。

系统需求

数据是 5G 全连接工厂的核心要素,为了支持全方位的数据收集、存储、处理和分析能够高效进行,负责数据汇总存储以及支撑决策分析的数据仓库引擎是其中关键,需要具备以下能力:

01 数据写入需求

5G 全连接工厂涉及大量设备、传感器和系统的连接,将产生海量类型格式各异的实时数据,这些数据具备密度高、维度多的特点。为确保如此大规模数据的流畅写入, 数据仓库引擎必须能够:

  • 支持大规模历史存量数据的批量和高效导入;
  • 支持高频率、低延迟的实时数据写入,包括生产设备传感数据、业务数据库 CDC 数据以及系统日志数据等;
  • 支持基于文件的数据导入能力,包括结构化及半结构化数据文件的导入;
  • 对于生产订单、物料使用、人员管理等业务数据,还需要支持基于主键的写入更新能力,确保数据的准确性和一致性。

02 数据查询需求

5G 全连接工厂为企业提供自主在线分析、可视化大屏、经营报表分析等数据服务,并对外开放大量的接口,以满足客户的临时需求。在数据查询场景中, 数据仓库引擎必须响应多种不同模式的查询负载:

  • 毫秒级点查询:在对外接口服务中,能够以毫秒级的速度对单个数据点或记录进行查询,并快速返回查询结果,以满足在线实时的查询需求;
  • 毫秒级聚合查询:对于按小时、天进行分区的数据,数据库应具备毫秒级的聚合查询能力,以支持快速的数据汇总和统计分析;
  • 秒级在线多维分析:具备在线多维分析秒级响应能力,可迅速从复杂查询中获取有价值的信息;
  • 复杂多表关联查询:支持高效的多表关联查询,以满足复杂的数据关联分析需求,帮助数据价值的深度洞察。

同时应对生产报表的产出,还需要提供稳定的查询效率,确保报表的数据准确性和及时性。

基于Hive+ ClickHouse 的数据存储引擎

最初,联通 5G 全连接工厂采用的是典型的 Lambda 架构,包括离线和实时两条数据处理链路。

01 离线数据链路

在离线数据处理链路中,业务系统数据和接口数据基于 DataX 定时抽取到 Hive,在 Hive 中完成宽表处理后,再加载到 ClickHouse 中,为应用层提供服务。日志数据则通过 Flume 实时采集到 HDFS 中,在 Hive 中进行宽表处理后,同样汇聚到 ClickHouse 中提供服务。而设备上报数据则是通过 API 接口,直接写入时序数据库中,由时序数据库提供部分服务。

基于 Hive + ClickHouse 的数据存储引擎-离线数据链路

02 实时数据链路

在实时数据处理链路中,各业务系统数据主要以 Binlog 的方式经由 Flink CDC 写入 Kafka,并利用 Flink 的多流 Join 将实时表与维度表进行统一宽表处理。维表数据通过 Flink 实时从 Kafka 中抽取,并存储到 HBase 中,然后通过 Flink 的 Lookup Join 进行统一的宽表处理,最终将数据写入 ClickHouse,以支持在线多维查询。

基于Hive+ ClickHouse 的数据存储引擎- 实时数据链路

03 存在的问题

  • 数据链路复杂:为支持报表查询功能,必须先将数据从 Hive 同步到 ClickHouse,再由 ClickHouse 对外提供服务。这无疑增加了数据链路的长度和复杂性。同时,在实时链路中,多流 Join 的操作也带来了一定的计算复杂度,进而增加了数据处理的耗时。
  • 数据准确性问题:在使用多流 Join 处理实时计算时,由于业务不断更新和变化,数据更新可能存在延迟,这就会导致 Join 结果与正确结果有 3%-5% 的偏差。为纠正该问题,每天都需依赖离线数据对实时计算结果进行修正,但同时也为实时性带来潜在风险
  • 维度变更问题:在宽表模型应用场景下,一旦业务维度发生变更,就需要对历史数据进行离线重刷,导致数据处理效率低下,甚至影响业务侧的正常使用。
  • 高维护成本:当前架构涉及到多个技术栈和组件,例如 Hive、HBase、HDFS 以及 ClickHouse 等,这带来了高昂的使用及维护成本。

基于 Apache Doris 的实时/离线一体化架构

01 数据仓库选型

为满足数据写入场景及数据查询场景的需求,并解决早期架构存在的痛点问题,联通西部创新研究院综合对比了 Apache Doris、ClickHouse、Hive 及数据湖方案,经评估发现 Apache Doris 在多个方面表现均较为出色,并决定选择 Apache Doris 对原有数据平台的存储引擎进行升级改造。

基于 Apache Doris 的实时离线一体化架构 - 数据仓库选型

结合实际场景,联通西部创新研究院最为关注的核心能力有以下几点:

  • 简单易用: Doris 兼容 MySQL 协议,业务同学可以直接使用 MySQL 客户端工具进行数据查询,无需学习新的查询语言,降低了使用门槛。
  • 统一数据分析网关: 利用 Apache Doris 构建完善可扩展的数据源连接框架,便于快速接入多类数据源,包括各种主流关系型数据库、数据仓库以及数据湖引擎,提供基于各种异构数据源的快速查询和写入能力,从而实现统一的数据分析网关。查询层架构实现链路极简,维护成本也大幅降低。
  • 高性能查询: Doris 支持高性能计算、高性能查询以及高并发点查,即使是特别复杂的多表 Join,也具备出色的性能表现,无需提前聚合即可轻松实现数据实时查询,既减少了数据处理流程,又提高了业务侧的灵活性。
  • 高效的实时数据导入: Apache Doris 能够支持海量数据的高吞吐实时写入,同时也提供了多种数据导入方式,在 IoT 场景的测试过程中,写入性能完全优于时序数据库,可满足所有场景下的数据写入要求。
  • 运维成本低: Doris 本身架构精简,仅含有 FE + BE 两个组件,借助于 SelectDB 的 Doris Manager 平台,可以实现集群的自动化运维,减少人工干预,提高集群的稳定性和可靠性。

基于以上能力,Doris 可以轻松实现实时/离线一体化,减少数据同步的复杂度,提高了数据的一致性。从之前的多组件、多链路的复杂架构转变到 All in One 的架构,可大大简化系统架构,同时也减少运维复杂度以及资源成本。

02 技术架构

通过引入 Apache Doris 对原有实时和离线处理链路进行了改造升级,成功建立了在离线一体的数据处理架构,数据流转链路如下图所示:

基于 Apache Doris 的实时:离线一体化架构-技术架构

  • 对于时效性要求较高的业务数据:使用 Flink Doris Connector 进行实时整库数据同步,将各个业务系统的数据实时地同步到 Doris 中,确保数据的高时效性。
  • 对于时效性要求较低的业务数据:利用 Doris 自带的 JDBC Catalog 可以支持跨源联邦查询,也可以通过调度工具将数据定时抽取数据到 Doris 中,保证数据的准确性和完整性。
  • 对于日志数据和设备上报数据:通过 Flink 将 Kafka 中数据直接写入 Doris 中,由 Doris 统一对整个数仓进行加工。

尽管当前部分设备时序数据采集场景中还保留了时序数据库,但由于时序数据库查询方面的表现很难满足当前的业务场景需求,因此已经开始尝试进行升级。上文提到,即使是 IoT 这种典型的数据量大、数据写入时效性高的场景下,Doris 也完全满足,同时查询方面又能很好的满足需求,因此目前也正在逐步使用 Doris 来实现对时序数据库的替代。

03 架构收益

  • 实时离线一体化: 相较于过去冗长且复杂的数据链路和架构,在新架构的 All in Doris 中,不再需要 Hive,ClickHouse, HBase 等组件,离线&实时数据直接进入 Doris,数据链路简化的同时也提高了数据的时效性。
  • 查询性能,时效性指数级提升: 过去基于 ClickHouse 提供对外的数据分析能力,受限于 ClickHouse 多表 Join 能力较弱,只能够提前采用其他组件计算后生成大宽表至 ClickHouse 再提供查询,不仅效率低下且一旦业务变更可能需要重新导数。而采用 Doris 后,可直接将 DWD 事实表和维度表开放给应用进行 OLAP 查询,为业务侧提供了更高的灵活性。
  • 统一查询网关: 凭借 Doris 优秀的联邦查询能力逐渐基于此打造统一的查询网关。在一些场景中,利用 Doris 自带的 JDBC Catalog 可以支持跨源联邦查询,查询层架构实现链路极简,维护成本也大幅降低。
  • 运维成本成倍下降: 过去使用 ClickHouse、HBase、Hive 三大组件, ClickHouse 性能虽强大,但可扩展性、易用性却差强人意,随着使用不断深入、集群规模不断扩大,使用和运维的技术门槛会变得越来越高,不支持弹性扩缩容更是一个长期被诟病的问题。而新架构中, Doris 相较之则是轻松许多,不仅运维方便,更是有着完善的管控工具 Doris Manager,可以实现更简单更快捷的运维工作,运维成本成倍下降。

工业互联网数据集成平台

数据集成是 5G 全连接工厂的关键能力之一,随着 5G 全连接工厂在多家企业生产环境落地,对于数据分析和数据对外开放的需求也在不断地更新变化。针对 5G 数据集成场景的特点,建设了工业互联网数据集成平台:

  • 数据来自于各种生产设备和系统,如 PLC、工业机器人、传感器、数控机床等。这些数据具有不同的格式、结构和标准,需要工业互联网数据集成平台能够实时地将数据采集、整合以及标准化,确保数据的一致性和准确性。
  • 工业互联网数据集成平台还需要具备良好的可扩展性和灵活性,能够适应工厂未来的扩展需求,灵活地应对生产过程中的各种变化和挑战。
  • 工业互联网数据集成平台还需要实现不同系统之间的数据交互和通信,通过跨系统的协同和信息共享,以实现对生产数据的全面监控和分析,提高生产效率和质量。

基于以上需求,以 Apache Doris 为核心,结合多个开源大数据组件构建了工业互联网数据集成平台,整体系统架构如下:

工业互联网数据集成平台

  • 数据源管理层主要负责统一维护和管理各个数据源,平台适配了 Syslog、常见 CDC、时序数据、第三方接口数据、SFTP 文件数据以及业务 DB 等多种不同数据源。
  • 在数据采集层,平台支持实时数据、时序数据和离线数据的采集。主要通过 FlinkCDC 和 SeaTunnel 实现各个数据源之间的数据传输,对于业务 DB 以及 JDBC 数据源的数据则依赖于 Doris 的 JDBC - Catalog 实现批量数据的采集。为了避免大批量数据的集成压力,还引入了 Kafka 用于进行实时数据处理和离线数据的临时加载。
  • 存储和计算层是数据集成平台的核心,在此使用 Apache Doris 作为存储和计算的底座,绝大多数数据均存储在 Apache Doris 中、少数设备采集的时序数据存放在 TDengine。为了提升数据质量、实现数据资产的更高效沉淀,同时还围绕 Apache Doris 构建了数据资产层,包括数据标准定义、数据质量和资产目录管理,以及元数据管理(对接 Doris 元数据库)、血缘关系追踪(通过解析 Doris 审计日志实现)、主题域和算法建模等数据资源管理功能。
  • 在数据服务层,开发了多个系统来保护数据安全、管理用户访问权限和数据共享,作为平台的统一对外接口,所有外部数据服务和数据共享均通过 Doris 的 Multi-Catalog 来实现。

总结与收益

Apache Doris 的引入,为联通 5G 全连接工厂带来数据时效性、查询响应、存储成本、开发效率等全方位的提升,具体体现为:

  • 70% 的核心业务实现准实时:通过 Flink CDC + Doris 为核心业务构建实时链路,通过 JDBC Catalog 对边缘业务进行定时批量拉取,成功实现 70% 核心业务的准实时数据处理。
  • 承担 90% 实时计算: 利用 Doris 的强大计算能力,承担了当前平台 90%以上的实时计算。利用 JDBC 与 Doris 的维度建模定时产出报表数据,从而实现毫秒级的报表查询,为业务提供了快速高效的报表数据分析能力。
  • 在线实时分析、多维分析:DWD 明细表基于小时时间分区,根据业务查询特点将关联字段作为分桶字段,对常用检索字段进行索引,实现在线分析秒级内响应。
  • 开发效率大幅提升: 采用 Doris 生态的轻量级存储架构,取代了过去基于 Hadoop 的 Lambda 架构,运维成本得到极大幅度降低。借助 Doris 构建了完整的数据仓库分层体系,由 Doris 内部计算作业取代了 Flink 多流 Join 复杂场景任务开发,极大提高了开发效率。此外,由于 Doris 直接对接 MySQL 协议,降低了学习成本,进一步提升了开发效率,项目交付周期得到大幅缩短。

未来规划

未来,联通西部创新研究院将继续深入使用 Apache Doris,这有利于降低企业数字化转型成本,提高传统制造业转型效率:

  • 大规模引入 Doris Manager :为了简化运维工作,计划采用 Doris Manager 进行线上运维。相比手动管理和使用 Grafana + Prometheus 的方式,Doris Manager 提供了更便捷和高效的运维管理功能。通过监控功能,便捷地定位和解决异常问题,提升运维效率。
  • 查询性能优化:根据外部项目的迭代需求,将进一步优化查询性能,包括索引加速、慢查询监控、合理的资源队列划分等方面的优化工作,旨在提升整体查询效率和系统性能。
  • 尝试 多表物化视图:2.1 新版本推出的多表物化视图功能将会进一步简化任务构建步骤,加速数仓建设。
  • 尝试存算分离:即将发布的 Apache Doris 3.0 新版本将集成并开源 SelectDB Cloud 的商业存算分离实现,值得期待。
  • 规范化指标体系:基于 Apache Doris 构建高效的面向 5G 全连接工厂场景的规范化指标体系,帮助企业规范化和标准化数据指标的定义和使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/20043.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Presto 从提交SQL到获取结果 源码详解(3)

物理执行计划 回到SqlQueryExecution.startExecution() ,执行计划划分以后, // 初始化连接,获取Connect 元数据,添加会话,初始ConnectId metadata.beginQuery(getSession(), plan.getConnectors()); // 构建物理执行…

AngularJS基础语法(2009版本)

jquery和AngularJS 数据绑定和获取对比: jquery,要操作DOM: angularJS,无需操作DOM就可以进行动态数据变化: 要使用Angularjs就需要在html页面先引入: ng-app: html页面中,需要给…

redis(17):什么是布隆过滤器?如何实现布隆过滤器?

1 布隆过滤器介绍 布隆过滤器(Bloom Filter)是一种空间效率极高的概率型数据结构,用于判断一个元素是否在一个集合中。它基于位数组和多个哈希函数的原理,可以高效地进行元素的查询,而且占用的空间相对较小,如下图所示: 根据 key 值计算出它的存储位置,然后将此位置标…

API测试工具领域,Postman的10个最佳替换

Postman 赢得了流行且有效的 API 工具的声誉。然而,对于那些寻求更符合特定需求和偏好的替代方案的人来说,存在一些值得注意的选择。这些 Postman 替代方案提供了独特的特性和功能,可满足测试过程的各个方面的需求。 在本博客中,…

如何快速的在线编辑pdf?6个软件让你轻松编辑pdf

如何快速的在线编辑pdf?6个软件让你轻松编辑pdf 在线编辑PDF文件是一项非常方便的任务,以下是六款让您轻松进行在线PDF编辑的软件: 嗨动PDF编辑器:这是一个功能强大的PDF编辑器,可以帮助您快速编辑PDF文档&#xff…

封装了一个iOS对号成功动画

基本思路其实很简单,就是通过贝塞尔曲线画出路径,然后 使用CAShapeLayer 渲染路径,然后通过strokeEnd 动画实现 路径的效果,这里注意,这个过程中过遇到过一个问题,就是 对号动画完成之后,整个对…

Superset二次开发之更新 SECRET_KEY

SECRET_KEY 的作用 加密和签名:SECRET_KEY用于对敏感数据(如会话、cookie、CSRF令牌)进行加密和签名,防止数据被篡改。安全性:确保应用的安全性,防止跨站请求伪造(CSRF)攻击和会话劫持等安全问题。如何生成 SECRET_KEY openssl rand -base64 42 配置 SECRET_KEY 在sup…

【主动均衡和被动均衡】

文章目录 1.被动均衡2.主动均衡1.被动均衡 被动均衡一般通过电阻放电的方式,对电压较高的电池进行放电,以热量形式释放电量,为其他电池争取更多充电时间。这样整个系统的电量受制于容量最少的电池。充电过程中,锂电池一般有一个充电上限保护电压值,当某一串电池达到此电压…

uniapp 添加字体ttf

效果图如下 一、逻辑概述 在uniapp中使用字体,一共分成两种情况,一种是普通vue页面,一种是nvue页面引入字体。。 1.vue页面引入字体需要如下步骤 1. 先选择下载一种字体:字体格式一般为 ttf后缀名 黄凯桦律师手写体免费下载和在线…

Linux--EXT2文件系统

参考资料: linux之EXT2文件系统--理解block/block group/索引结点inode/索引位图_一个块组中索引节点表和数据块区最多占用字节-CSDN博客 linux环境: Linux version 5.15.146.1-microsoft-standard-WSL2 (root65c757a075e2) (gcc (GCC) 11.2.0, GNU ld…

Java后端模拟面试 题集⑤

1.先作个自我介绍吧 面试官您好,我叫张睿超,来自湖南长沙,大学毕业于湖南农业大学,是一名智能科学与技术专业的统招一本本科生。今天主要过来面试贵公司的Java后端开发工程师岗位。 大学里面主修的课程是Java、Python、数字图像…

FreeRtos进阶——中断的内部逻辑

中断与非中断API的区别 BaseType_t xQueueSendToBack(QueueHandle_t xQueue,const void *pvItemToQueue,TickType_t xTicksToWait); BaseType_t xQueueSendToBackFromISR(QueueHandle_t xQueue,const void *pvItemToQueue,BaseType_t *pxHigherPriorityTaskWok…

MFC工控项目实例之二添加iPlotx控件

承接专栏《MFC工控项目实例之一主菜单制作》 在WIN10下使用Visual C 6.0 (完整绿色版)添加iPlotx控件的方法。 1、在资源主对话框界面点击鼠标右键如图选择插入Active控件点击进入。 2、选择iPlotx Contrlolh点击确定。 3、在对话框界面插入iPlotx控件。…

emp.dll文件丢失要怎么解决?荒野大镖客emp.dll修复方法分享

软件运行过程中经常遇到各种技术问题,其中之一就是动态链接库(DLL)文件丢失的现象。DLL文件是Windows操作系统中一个重要的组件,它包含运行多个应用程序所需要的代码和数据。因此,一个丢失的DLL文件,如“em…

《逆水寒》手游周年庆,热度不减反增引发热议

易采游戏网5月31日最新消息:随着数字娱乐时代的飞速发展,手游市场的竞争愈发激烈。在这样的大背景下,《逆水寒》手游以其独特的古风武侠世界和深度的社交体验,自上线以来便吸引了无数玩家的目光。如今,这款游戏迎来了它…

对象转为Map

方案一&#xff0c;Jackson String json objectMapperFace.writeValueAsString(contract);Map<String,Object> map objectMapperFace.readValue(json, Map.class);方案二 &#xff0c; apache BeanUtils Map<String,String> beanMap null;try {beanMap BeanUti…

MMrotate报错AttributeError: ‘NoneType‘ object has no attribute ‘shape‘

使用MMrotate训练自定义数据集报错&#xff1a; AttributeError: ‘NoneType’ object has no attribute ‘shape’ 2024-05-31 17:48:06,121 - mmrotate - INFO - workflow: [(train, 1)], max: 12 epochs 2024-05-31 17:48:06,121 - mmrotate - INFO - Checkpoints will be …

相同的树(oj题)

一、题目链接https://leetcxode-cn.com/problems/same-tree/ 二、题目思路 遍历整颗树&#xff0c;判断两棵树的每个位置的结点都相同。 每个结点的左右孩子结点都要综合判断 三、题解代码 bool isSameTree(struct TreeNode* p, struct TreeNode* q) {//如果两颗树的根结点…

汇舟问卷:国外问卷调查两小时赚28美金?

现在的年轻人不愿意打工的原因不只是因为累&#xff0c;而且赚的钱也不多。有些人开玩笑地说&#xff0c;摆个摊儿卖点小商品都比上班赚得多&#xff0c;这确实是事实。 打工只能勉强维持生计&#xff0c;不能致富。因此&#xff0c;如果我们想赚大钱&#xff0c;首先需要改变…

炫云亮相第二十届中国国际动漫节国际动漫游戏商务大会!

5月28日-29日&#xff0c;备受瞩目的第二十届中国国际动漫节国际动漫游戏商务大会(iABC2024)在杭州滨江开元名都大酒店隆重召开&#xff01;本届大会以动漫IP为核心&#xff0c;从源头到全系列数字内容&#xff0c;探索创新协同、融合发展、价值转化&#xff0c;并对重点作品和…