时间:2024-05-04
刘雪剑 徐赢 张辉 马崇瑞
(1.北京中电普华信息技术有限公司 北京市 100000 2.国网辽宁省电力有限公司大连供电公司 辽宁省大连市 116000)
数据中心是公司重要的基本支持平台。在2019年,该公司将统一组织数据中心技术能力规划和产品选择。在全方位服务的统一数据中心分析领域的现有组件的基础上,将引进成熟数据中台产品来改进数据中心组件系统。
根据前期公司规划的数据中台能力架构,数据中台技术能力主要包括数据接入、存储计算、数据分析、数据服务、数据资产管理、运营管理六方面。
根据数据中台技术能力架构,数据接入、数据计算存储、数据分析、数据服务、数据资产管理、数据运营管理六方面能力对应国网公司16 种技术组件,对应1 种公司自研组件,六大能力。
数据接入方面,包括DataHub、DTS、DataWorks DI 三种组件,其中DataHub 组件功能类似开源Kafka 组件,主要用于结构化数据增量和采集量测类数据实时接入;DTS 组件功能类似Oracle OGG组件,主要用于存储结构化数据的关系型数据库间的数据复制和迁移;DataWorks DI 组件功能类似Informatica 组件,主要用于结构化数据全量抽取或增量标识的数据增量抽取。
数据存储计算方面, 包括MaxCompute、DRDS、OTS、TSDB、Blink、MaxcomputeSpark、GraphCompute、OSS总计8种组件,其中MaxCompute 组件在数据存储上类似开源Hive+HDFS,同事提供分布式数据仓库和离线计算服务,Maxcompute Spark 提供内存计算服务,MaxCompute Analytic 类似GBase 数据库,提供即席查询和多维汇总计算能力;DRDS 组件与RDS 组件结合提供分布式关系数据库服务;OTS 组件功能类似开源HBase 数据库,用于海量结构化数据存储;TSDB 组件功能类似开源OPEN TSDB组件,主要用于采集量测类时序数据存储;Blink 组件功能类似开源Flink 组件,用于流式数据实时计算,OSS 组件为对象存储,可用于存储非结构数据。
数据服务方面, 包括DataWorks 组件和CSB 组件,用于数据服务封装,服务封装后统一注册至云上API 网关对外服务。
数据分析方面,包括QuickBI 组件,用于数据自助式分析和报表可视化展示。
数据资源管理和运营管理方面,包括DataWorks、DataQ 组件,其中DataQ 组件主要用于标签管理,数据资源管理和运营管理能力由DataWorks 统一提供。
以应用需求为导向,结合国网技术产品特点,设计构建数据中台总体架构,全面支撑离线数据分析、实时计算、非结构化数据三类应用场景构建。数据中台总体架构如图1所示。
(1)实时计算场景:该场景重点基于结构化数据、量测数据,经过数据实时接入、流式计算处理,以服务订阅的方式为应用提供实时数据。
图1:国网数据中台总体架构图
(2)离线数据分析场景:该场景重点基于结构化数据、量测数据,经过数据接入、数据整合(量测数据关联计算或清洗转换)、(宽表)逻辑处理或分析模型运算、服务封装发布等环节后,满足应用T+1 或H+1 数据分析需求。
(3)非结构化数据场景:该场景基于非结构化数据,经过非结构化对象存储、非结构化内容提取分析、结构化数据转换等环节后,满足应用对非结构化数据的分析处理需求。
此次数据中台试点建设涉及离线数据分析场景和实时计算场景。多维精益管理体系频道化报表、现代(智慧)供应链智慧运营中心、数字化审计涉及离线数据分析场景;供电服务指挥平台、同期线损主要涉及量测数据计算场景。
3.2.1 数据流转架构
对2019年各试点单位多维精益管理体系频道化报表、现代(智慧)供应链智慧运营中心、数字化审计等业务逻辑和数据逻辑进行分析提炼后,形成基于结构化数据分析计算的典型数据流转结构。
结构化数据在中台流转主要经过贴源层、共享层和分析层三层。其中贴源层定位为贴近源业务系统,主要存储源业务系统的存量及增量数据,其表结构与源业务系表结构基本保持一致;共享层定位为模型层,用于存储按照SG-CIM 模型整合转换的模型表;分析层用于存储按业务逻辑处理后的结果表。具体的结构化数据流向如下:
(1)源业务系统至贴源层:源系统数据通过数据接入工具全量抽取到中台贴源层中,并根据实际业务需求配置增量数据接入的频度。
(2)贴源层至共享层:依据国网下发的SG-CIM 模型,通过数据集成开发工具在共享层建模,按照模型将贴源层数据进行清洗整合,形成模型表存入共享层。
(3)共享层至分析层:依据具体的业务场景需求,对共享层的物理模型表按照具体业务分析计算逻辑,进行数据开发并形成结果表存储至分析层。
3.2.2 技术架构
贴源层使用分布式数据仓库MaxCompute,源业务系统数据通过DataWorks、DTS、OGG、DataHub 组件接入;共享层使用分布式数据仓库MaxCompute,通过DataWorks 组件完成贴源层数据表到SG-CIM 模型层数据表转化;分析层使用MaxCompute Analytic、DRDS(RDS),基于业务逻辑通过DataWorks 组件完成业务分析计算后的结果表开发;通过DataWorks 组件对计算结果封装为Webservice、Restful 等类型的数据服务API,发布注册至API网关后,供外部报表工具调用进行可视化展示。
源端数据接入:针对源端为Oracle 数据库的数据表,采用“定期全量抽取”和“初始化存量抽取+增量接入定期合并”的方式接入数据中台,具体如下:
全量抽取:使用DataWorks DI 组件通过Oracle 数据库只读账号直连源端数据库,将全量数据的一次性批量接入和定期全量写入
MaxCompute。
增量接入:使用OGG+DataHub 组合方式,源端业务系统数据库OGG 服务增量数据实时同步至数据中台OGG 目标端服务,经DataHub 插件解析后,以流方式通过DataHub 写入MaxCompute 贴源层增量表中;增量数据按业务需要通过DataWorks 与上一周期数据进行合并。
数据清洗整合:按照SG-CIM 模型,使用DataWorks 工具在共享层中创建模型物理表,基于模型表与贴源表的映射关系和清洗规则,形成SQL 计算逻辑,执行数据同步任务将贴源层数据进行转换写入共享层模型物理表。
数据分析计算:基于DataWorks 可以对贴源层和共享层模型数据进行分析计算,使用封装好的数据分析服务及算法模型服务,将数据通过DataWorks 数据集成同步至分析层DRDS(RDS)或MaxCompute Analytic,形成统计指标结果、主题关联宽表等,供上层应用使用。
进行数据分析计算时,根据模型数据的复杂度和业务需求,合理选用DataWorks 的数据分析计算工具(包括ODPS Spark、PyODPS 或ODPS SQL)。ODPS SQL 适合处理逻辑清晰,针对某一行或者多行不会进行多次迭代计算,通常循环一次就可实现的数据开发场景。需要多次迭代或者动态查询并计算的场景结合自身开发能力,选用ODPS Spark 或者PyODPS 进行数据开发。通过编写数据分析计算脚本或者程序,进行计算汇总、形成宽表,再通过DataWorks DI 将汇总数据同步到分析层DRDS 中。
数据服务:基于DataWorks 数据服务模块,将分析层计算结果数据封装为数据服务API 接口,发布至API 网关,在API 网关组件上对发布的API 进行调用授权许可。根据调用规模采用不同方式,当单个数据服务返回结果超过2000 条或大小超过5MB 时,使用数据分页查询机制,通过构建带分页功能的数据服务,业务应用调用数据服务时指定分页页数和每页数据条数参数,通过多次调用完成全部数据结果查询。
3.3.1 数据流转架构
根据公司采集量测类应用的数据需求,采集量测类数据包括离线计算及实时计算两类,具体的量测数据流转为:
(1)实时计算类采集量测数据接入。
(2)实时数据关联计算。
(3)实时计算结果发布。
(4)实时计算维度表映射。
3.3.2 技术架构
2019年部分省公司未部署TSDB 数据库,试点验证主要采用Maxcompute 数据库和OTS 数据库,经与原厂技术专家沟通,在采集量测类应用技术架构中,建议采用TSDB 存储处理采集量测数据,计算结果可基于MaxCompute Analytic 构建数据服务,同时TSDB与其他中台组件集成性还需要进一步验证。
接入层:采集量测类数据使用DataWorks 从大数据平台HBase全量迁移;使用OGG + DataHub 实现增量数据抽取。档案结构化数据使用dataworks 工具实现全量数据抽取;使用OGG + DataHub实现增量数据抽取。
计算存储层:通过MaxCompute 构建离线数据场景,通过TSDB、OTS 构建准实时数据场景,通过DataWorks+MaxCompute开展离线计算、统计分析,通过Blink+DataHub 开展实时计算。
数据服务层:基于DataWorks 提供Webservice、Restful 等API服务,通过QuickBI 服务开发相关数据报表。
源端为Oracle 表,通过OGG+DataHub 方式进行接入,通过OGG 程序将Oracle 生产库中数据同步至实时数据分发平台DataHub,通过Blink 流计算组件将DataHub 中数据进行清洗换为标准模型后双发至TSDB/OTS 和MaxCompute 中。
源端为增量E 文件,通过自研解析工具Eparse 解析E 文件方式进行接入,利用采集量测组件SG-ETL 将原始E 文件转换为标准E 文件,自研解析工具Eparse 解析标准E 文件后发送数据至DataHub,通过Blink 组件将DataHub 中数据双发至TSDB/OTS 和MaxCompute 中。
采集量测存量数据存储在全业务统一数据中心HBase 中,将全业务统一数据中心HBase 中存量量测数据通过DataWorks 组件迁移至MaxCompute。DataWorks 数据开发中通过OPDS SQL 将HBase数据表中RowKey 拆分写入到MaxCompute 中。
通过“消息队列+实时计算”组件完成采集量测类实时计算,实时计算引擎通过实时消费DataHub 数据和维度表(实时计算关联的全部表都是维度表,如用户档案表等)关联完成实时计算,实时计算维度表类型包括分布式列式数据库OTS、分布式数据仓库MaxCompute 和关系型数据库DRDS/RDS 中,实时计算结果数据按需支撑量测业务应用。
根据不同业务的分析计算需求,可按需将实时计算结果数据存储至分析型数据库(支撑数据服务发布)、分布式数据仓库(支撑离线类分析计算)、消息队列(支撑数据实时发布订阅)及时序数据库(支撑时序数据处理)以支撑业务应用。
通过数据中台DataWorks 组件实现数据服务的快速封装发布,支持向导模式和SQL 模式两种模式,通过API 网关实现数据服务的统一管理,支持DRDS、RDS、OTS 等数据源。
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!