暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

如何通过ESB实时集成构建数仓

数通文轩 2025-03-07
72
在建设数据中台等数据治理分析类项目时,数仓的构建是保证项目效果的关键环节,而数仓数据构建时往往需要根据业务需求从各个业务系统采集各类数据。由于数据展现以及使用的场景的不同,数仓数据采集需要支持离线、实时等不同的采集方式:离线采集一般通过定时轮训的方式实现;而对于实时采集,由于数仓构建往往需要大量数据,一般源头业务系统很难满足数据推送的要求,所以在进行实时采集时,需要一种实时监控数据、增量读取数据的机制,本次介绍的就是基于Flink的实时采集模式。
在数据治理分析类方案中,数仓是通过DAP数据分析平台构建的,而数据采集则是通过ESB数据总线实现的,所以为了采集实时数据,Flink相关数据采集配置也是在ESB配置的。本次针对ESB实时集成构建实时数仓的方式进行说明。
总体说明
在数据中台方案中,DAP数据分析平台提供数仓构建、数据展现、数据服务、数据预测、数据资产等功能,是实现数据治理、数据分析的核心平台,但是ESB作为数仓建设时的数据采集工具,也是必不可少的平台。
1
产品方案
DAP、MDM、ESB产品结合形成数据中台或轻量级数据中台方案,轻量级数据中台主要通过数仓建设实现数据分析和数据应用,完整的数据中台会在轻量级数据中台基础上添加主数据治理的内容。
DAP作为数据中台的核心,承担了数仓建设、数据分析、数据应用等核心业务功能,通过分层建设形成数仓体系。同时通过ESB数据总线实现不同数据源的数据采集、加工、转换、汇总。MDM在主数据治理的基础上,为DAP数仓提供基础维度数据支持。数据中台的建设是实现企业数据整合汇聚,构建数据中心的有效方式,基于数据中台可以完成数据分析展现、透视业务、价值挖掘。
2功能介绍
ESB平台包括设计器、Runtime运行、SMC管理控制台三部分,具体功能架构如下图所示。
1.设计器:图形化的开发工具,提供工程、服务、流程向导功能,可以快速拖拽、配置、开发服务接口,设计器提供如数据转换、数据库操作、外部调用等各类不同的图形化组件,满足低代码开发的需要;
2.Runtime运行时:ESB底层运行引擎,为服务运行、调用、编排等提供底层运行机制,支持API、流程、路由的安全、发布、运行;
3.SMC管理控制台:Web端的管理平台,可以通过浏览器页面进行操作,针对服务工程进行查看、启停、安全配置,支持对API接口进行注册、配置、代理、安全控制,Flink相关的功能就是SMC中实时集成的功能模块,提供对Flink作业的配置、提交、日志审计等功能。
3典型场景
ESB主要是满足业务系统间服务接口的对接以及业务数据集成等需求,在实际项目及业务中,ESB的主要应用场景根据方案的不同也会有所区别,但主要分为数据总线和服务总线。
1.数据总线:主要在数据中台方案中体现,ESB作为ETL平台满足DAP平台的数据抽取、加工、转换、汇总,实现业务系统数据到数仓的汇聚,满足数仓数据分析、数据服务、数据算法等需求;
2.服务总线:主要满足API治理以及应用集成的需求,在API治理、集成中台等方案中发挥的内容比较多,API治理主要是将应用系统的相关接口统一注册到ESB平台,由ESB提供API代理、API网关、API监控、API安全、API报警等能力,实现API的统一管控;应用集成是基于注册的API接口,根据不同的业务场景实现不同接口对接与数据传输,实现跨系统对接集成的需求。
场景说明
实时集成是ESB作为数据总线使用时的重要功能,也是构建DAP实时数仓的关键功能。ESB的实时集成包括了两部分内容:一是OPCUA集成,二是Flink流集成
1
实时数仓
通过Flink的方式实时采集数据库、Kafka、csv的数据,并写入目标数据库、接口等。
1.源头系统需要开启数据的日志记录,如MySQL的binlog;
2.Flink监控源头的数据变化,并获取实时变更数据,并配置Flink作业,将变更数据写入目标系统;
3.ODS提供数据接收接口,Flink通过接口将数据写入ODS,EDW则直接提供数据表,Flink通过写入表的方式写入数据。
2设备集成
通过OPCUA协议直接对接硬件设备或SCADA系统,实时采集设备数据,主要支持构建设备实时运行数据的采集与构建。
1.ESB提供OPCUA的资源与接口管理,可以配置设备的接口和节点信息;
2.通过设备节点和接口,获取KepServer或SCADA系统的实时运行数据;
3.ESB可以将订阅的数据以拦截器的方式进行数据转发,通过API的方式写入其他系统。
3数据同步
ESB的Flink实时集成采用流的集成模式,除了读取数据库、表实现数据采集与写入,同时也支持对CSV、JSON、Kafka、API等不同类型的source和sink,实现对不同场景下数据的实时采集与数仓构建。同时,作为ESB的标准功能,实时采集也能满足一些特定场景下的数据实时同步,以支持一些业务集成、数据集成等需求。
实现模式
实时采集的实现方式,主要是通过Flink读取源头系统数据库,实时采集变更数据,再将变更数据写入DAP的ODS或数仓的过程,具体实现时可以通过接口的方式写入,也可以直接写入数据表。
1
数据流程
DAP构建数仓时,数据采集的流程如下:
1.ESB数据总线通过读取源头系统数据库或接口获取增量/全量数据,之后将数据写入DAP的ODS库表中;
2.数据写入ODS后通过DAP的调度任务触发ODS到数仓的数据加工汇总流程,将ODS的数据以增量的方式写入数仓。
针对实时采集的场景,Flink采集时可以直接写入ODS数据库,然后再通过调度任务触发写入数仓基础事实表;也可以以直接写入数据表的方式直接写入到DAP数仓的基础事实表中,即不通过ODS存储数据。
2接口写入
接口写入即Flink采集数据后先写入ODS,再写入数仓的模式:
1.在SMC中配置Flink的作业,以源头系统数据表作为source,以DAP的ODS接收接口作为sink;
2.Flink读取源头系统数据库(如MySQL的binlog)获取变更数据;
3.FlinkJob执行将获取到增量数据以json的格式写入ODS的接收接口;
4.ODS的数据表开启“支持触发调度任务”,保证ODS写入后自动调用调度任务完成数仓加工汇总的过程。
3事实表写入
数据库写入即Flink采集数据后直接写入DAP数仓的模式:
1.在SMC中配置Flink的作业,以源头系统数据表作为source,以DAP的数仓表作为sink;
2.Flink读取源头系统数据库(如MySQL的binlog)获取变更数据;
3.FlinkJob执行将获取到增量数据写入数仓的基础事实表,同时更新DAP调度的转换日志;
4.DAP通过转换日志触发后置调度任务,执行后置的数据汇总流程。
配置说明
Flink的实时采集以ESB中的Flink流集成配置为主,通过配置Flink作业以及source和sink实现数据读写,同时需要在ESB的全局变量中配置Flink的基础信息,对DAP而言,主要的配置就是启用ODS的数据接收接口。
1
Flink配置
Flink配置包括Flink部署和ESB中Flink基于信息的配置,Flink部署可以通过UMC的组件快速构建Flink容器,减少手动部署的操作,同时ESB也支持独立部署的Flink集群。
1.getTokenApi:获取UMC Token的接口地址,UMC容器化部署Flink时必须,Flink作业提交时通过UMC执行命令;
2.submitInstCode:UMC提交命令实例的编码,UMC容器化部署Flink时必须,Flink作业提交时执行UMC命令需要该参数;
3.appCode:应用编码,UMC容器化部署Flink时必须,调用UMC接口时获取token使用;
4.appPwd:应用密码,UMC容器化部署Flink时必须,调用UMC接口时获取token使用;
5.cmdInvokerApi:提交命令接口,UMC容器化部署Flink时必须,ESB通过该接口执行作业提交命令;
6.filePath:FlinkJob.jar文件位置,ESB执行作业提交此jar文件;
7.class:FlinkJob.jar的主类名,ESB执行作业提交时需要该参数;
8.namespace:Flink容器的命令空间,,UMC容器化部署Flink时必须,ESB通过UMC执行作业时需要该参数;
9.urlPrefix:SMC访问地址前缀,Flink作业提交以及FlinkJob.jar执行时需要该参数;
10.cancelInstCode:UMC取消提交命令实例的编码,UMC容器化部署Flink时必须,Flink作业提交时执行UMC命令需要该参数;
11.isLocal:是否本地部署,用于标记采用Flink容器还是独立部署的Flink集群;
12.flinkRestURLPrefix:Flink自带的Web端控制台访问URL的前缀。
2实时集成
主要配置ESB的Flink作业,根据集成模式的不同,配置方式也有所区别:
1.接口写入:
1)基本信息主要配置作业的编码、名称、节点类型、作业类型和作业模式等参数;
2)source配置数据来源,如果来源数据库就是库、表的选择,如果是Kafka选择Kafka连接信息:
3)配置来源字段:
4)保存后自动生成来源SQL:
5)sink配置选择目标接口,注:目标接口需要现在API管理中注册:
6)由于接口没有字段信息,通过源头进行解析:
7)保存时自动生成目标的SQL语句:
2.数仓写入:
1)数仓写入的基本信息和source配置与接口写入相同;
2)在配置sink时选择数仓基础事实表:
3)字段通过手动添加基础事实表字段,通过自动匹配或手动修改的方式建立sink和source的字段映射
3.配置完成后提交作业到Flink集群。
3数仓配置
对于DAP的配置,只有在接口写入时需要开启ODS的接收接口,对于直接写入数仓基础事实表的方式,不需要调整DAP的配置。
1.ODS的同步方式选择接口推送:
2.保存后自动发布接口,接收服务中显示接收接口:
3.可以查询接收接口的入参报文:
分析总结
实时采集是ESB作为数据值总线的一个重要功能,也是DAP构建实时数仓的关键技术,是数仓深度应用时保证数据实时性的有效方式。
1功能总结
从DAP实时数仓的角度而言,目前DAP提供了不同实时采集模式:
1.接口推送:DAP发布接收接口,源头系统直接推送,实时性主要是由数据源头保证,需要源头提供实时数据支持,同时高频数据推送对源系统的性能存在影响;
2.实时采集:Flink实时采集,通过ESB配置Flink作业实现从源头数据库读取实时数据,并写入ODS或数仓事实表,对源系统的改动最小,不需要源头增加功能。
从ESB平台功能的角度,实时集成包括写入接口和写入数据库两种模式:
1.写入接口:先把数据写入ODS,ODS能留存历史数据,由于接口内部的机制,不会造成数据风险和冲突;
2.写入数据库:减少了ODS,数据能更快直达数仓,加工数据采集速度,降低性能消耗,并且也能自动触发数据汇总,不会出现数据延时的问题。
2优化提升
根据目前的产品功能,Flink实时集成的功能基本能满足构建实时数仓时数据采集的需求,对于ESB而言,更多需要从实际应用出发,通过Flink的作业配置满足更多数据源、数据类型的数据采集与实时集成需求,从而能更加灵活的应对不同业务系统的数据采集需求。
3应用说明
在数据治理分析类方案中,ESB作为数据总线是必不可少的,并且ESB基于DAP平台和方案的实际需求,扩展了很多数据采集、数据加工的功能,能够快速构建数仓的采集、加工、汇总流程,实现更加敏捷、高效的数仓建设方式,以应对实际项目中的实际需求。
在实际使用过程中,DAP数据分析平台和ESB数据总线平台结合使用,通过ESB快速生成采集流程,实现数据采集和数仓构建。而面对Kafka等特定的应用场景,可以通过ESB手动扩展流程进行数据处理与加工汇总。为了保证数仓采集数据的准确性,会在基础方案的基础上添加MDM平台构建一体化数据中台,从而实现集主数据治理、数仓建设、数据分析为一体的数据中台方案,共同完成数据治理的全过程,从而为企业的数据体系建设提供全面的支持。
推荐阅读


文章转载自数通文轩,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论