基于 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.rhkb.cn/news/337455.html

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

相关文章

利用ArcGIS Python批量拼接遥感影像(arcpy batch processing)

本篇文章将说明如何利用ArcGIS 10.1自带的Python IDLE进行遥感影像的批量拼接与裁剪。 1.运行环境:ArcGIS10.1 (安装传送门)、Python IDLE 2.数据来源:地理空间数据云 GDEMV2 30M分辨率数字高程数据 3.解决问题:制作山西省的DEM影像 如下…

CMake的使用

文章目录 一、CMake概述二、CMake的使用1.注释2.简单编译程序3.定义变量4.指定使用的C标准5.指定输出的路径6.搜索文件7.包含头文件 三、通过CMake 制作库文件1.制作动静态库2.指定动静态库生成的路径3.在程序中链接静态库4.在程序中链接动态库 四、日志五、变量操作1.追加2.字…

521源码网-免费网络教程-Cloudflare使用加速解析-优化大陆访问速度

Cloudfalre 加速解析是由 心有网络 向中国大陆用户提供的公共优化服务 接入服务节点: cf.13d7s.sit 接入使用方式类似于其它CDN的CNAME接入,可以为中国大陆用户访问Cloudflare网络节点大幅度加速,累计节点130 如何接入使用 Cloudflare 加速解析&#…

python-模块-网络编程-多任务

一、模块 1-1 Python 自带模块 Json模块 处理json数据 {"key":"value"} json不是字典 本质是一个有引号的字符串数据 json注意点 {} 中的数据是字符串引号必须是双引号 使用json模块可以实现将json转为字典,使用字典的方法操作数据 。 或者将…

c基础 - 输入输出

目录 一.scanf() 和 printf() 函数 1.printf 2.scanf 二 . getchar() & putchar() 函数 1.int getchar(void) 2.int putchar(int c) 三. gets() & puts() 函数 一.scanf() 和 printf() 函数 #include <stdio.h> 需要引入头文件,stdio.h 1.printf print…

23种软件设计模式——工厂模式

工厂模式 工厂模式&#xff08;Factory Pattern&#xff09;是 Java 中最常用的设计模式之一&#xff0c;它提供了一种创建对象的方式&#xff0c;使得创建对象的过程与使用对象的过程分离。 工厂模式提供了一种创建对象的方式&#xff0c;而无需指定要创建的具体类。 通过使…

高级Web Lab2

高级Web Lab2 12 1 按照“Lab 2 基础学习文档”文档完成实验步骤 实验截图&#xff1a; 2 添加了Web3D场景选择按钮&#xff0c;可以选择目标课程或者学习房间。

[数据集][目标检测][数据集][目标检测]智能手机检测数据集VOC格式5447张

数据集格式&#xff1a;Pascal VOC格式(不包含分割的txt文件&#xff0c;仅仅包含jpg图片和对应的xml) 图片数量(jpg文件个数)&#xff1a;5447 标注数量(xml文件个数)&#xff1a;5447 标注类别数&#xff1a;1 标注类别名称:["phone"] 每个类别标注的框数&#xff…

详解生成式人工智能的开发过程

回到机器学习的“古老”时代&#xff0c;在您可以使用大型语言模型&#xff08;LLM&#xff09;作为调优模型的基础之前&#xff0c;您基本上必须在所有数据上训练每个可能的机器学习模型&#xff0c;以找到最佳&#xff08;或最不糟糕&#xff09;的拟合。 开发生成式人工智能…

爬虫在金融领域的应用:股票数据收集

介绍 在金融领域&#xff0c;准确及时的数据收集对于市场分析和投资决策至关重要。股票价格作为金融市场的重要指标之一&#xff0c;通过网络爬虫技术可以高效地从多个网站获取实时股票价格信息。本文将介绍网络爬虫在金融领域中的应用&#xff0c;重点讨论如何利用Scrapy框架…

【JVM精通之路】垃圾回收-三色标记算法

首先预期你已经基本了解垃圾回收的相关知识&#xff0c;包括新生代垃圾回收器&#xff0c;老年代垃圾回收器&#xff0c;以及他们的算法&#xff0c;可达性分析等等。 先想象一个场景 最开始黑色节点是GC-Roots的根节点&#xff0c;这些对象有这样的特点因此被选为垃圾回收的根…

Python3位运算符

前言 本文介绍的是位运算符&#xff0c;位运算可以理解成对二进制数字上的每一个位进行操作的运算&#xff0c;位运算分为 布尔位运算符 和 移位位运算符。 文章目录 前言一、位运算概览1、布尔位运算符1&#xff09;按位与运算符 ( & )2&#xff09;按位或运算符 ( | )3…

【设计模式深度剖析】【5】【结构型】【桥接模式】| 以电视和遥控器为例加深理解

&#x1f448;️上一篇:组合模式 | 下一篇:外观模式&#x1f449;️ 设计模式-专栏&#x1f448;️ 目 录 桥接模式(Bridge Pattern)定义英文原话是&#xff1a;直译理解 4个角色UML类图代码示例 应用优点缺点使用场景 示例解析&#xff1a;电视和遥控器UML类图 桥接模式…

5G NR TAE TEST

环境配置&#xff1a; 测试TAE时&#xff0c;需要比对不同的Antenna Port之间的差异来测试 配置DL 2 layer MU的case layer1&#xff1a;通过设置weight&#xff0c;只有一个物理天线上有weight&#xff0c;其他天线上的weight为0&#xff0c;该天线的DMRS DMRS Port设置为1…

lynis安全漏洞扫描工具

Lynis是一款Unix系统的安全审计以及加固工具&#xff0c;能够进行深层次的安全扫描&#xff0c;其目的是检测潜在的时间并对未来的系统加固提供建议。这款软件会扫描一般系统信息&#xff0c;脆弱软件包以及潜在的错误配置。 安装 方式1 git下载使用git clone https://github…

谢宁DOE培训的课程大纲分享

谢宁DOE培训旨在深入讲解谢宁问题解决方法在质量管理中的重要作用&#xff0c;学会如何利用谢宁问题解决方法工具&#xff0c;在不中断生产过程的前提下&#xff0c;找出生产中碰到的复杂而顽固的问题的原因&#xff0c;从而彻底地解决问题。 【课程内容】 第一部分&#xff1…

某咨询公司的大数据解决方案介绍(32页PPT)

方案介绍&#xff1a; 本咨询公司的大数据平台解决方案以企业实际需求为出发点&#xff0c;结合先进的大数据技术和行业经验&#xff0c;为企业提供一站式的大数据服务。通过实时数据收集与处理、深度数据分析与挖掘、可视化数据展示以及灵活的数据应用与扩展&#xff0c;帮助…

vmware workstation 17.0.0 ubuntu删除快照导致无法启动的问题打不开磁盘xxxxxxx或它所依赖的某个快照磁盘

在使用vmware workstation的时候 在我删除多余的快照的时候&#xff0c;发现删除快照后打不开虚拟机了&#xff0c; 提示&#xff1a; 打不开此虚拟磁盘的父磁盘打不开磁盘“D:\Virtual Machines\Ubuntu 64 位\Ubuntu 64 位-000003.vmdk”或它所依赖的某个快照磁盘。模块“Dis…

海外动态IP代理可以用来批量注册邮箱吗?

无论是个人还是企业&#xff0c;都需要使用邮箱进行沟通、注册账号、接收通知等多种用途。然而&#xff0c;由于互联网服务商为了防止滥用和垃圾邮件的传播&#xff0c;通常对注册邮箱设置了一定的限制&#xff0c;如IP限制、验证码验证等。为了解决这些问题&#xff0c;海外动…

2.2 Docker安装redis

2.2 Docker安装redis 1.安装redis docker run --restartalways -p 6379:6379 --name myredis -d redis:7.0.12 --requirepass Hgh675667%–restartalways 开机自启动 -p 6379:6379 端口映射 –name myredis 容器名称 -d redis:7.0.12 redis版本 –requirepass Hgh675667% 密…