1203【浪潮海岳 inDataX 数据中台专栏】 流批一体技术构建多源异构湖仓的数据采集与实时计算实践
从数据管理架构的发展来看,数据湖仓的演进过程可分为三个阶段。第一阶段是上世纪 80 年代开始的“数据仓库”阶段,第二阶段是 2011 年伴随着大数据发展而产生的“数据湖”技术,第三阶段就是近年来开始的数据湖与数据仓库的融合趋势,业界称为“湖仓一体”。
湖仓一体技术的出现,在实现了对数据湖与数据仓库技术融合,借助海量、实时、多模的数据处理能力,实现全量数据价值的持续释放的同时,也成为企业数字化转型过程中的关注焦点,为用户带来了新的意义价值。
inDataX 数据中台为湖仓一体提供了强大的功能支撑,具体有如下几个方面:
(1)向导式采集任务定义与管理,降低数据采集门槛;
(2)批量采集与实时采集一体化,适配更多数据采集场景;
(3)数据湖与数据仓库技术融合,扩大数据管理范围、提高数据利用率;
(4)提供统一 Flink 表管理,简化实时开发任务定义;
(5)提供 Flink Sql、Flink Jar 任务定义,可扩展数据实时处理。
一、系统整体框架图
其大致的工作流程如下:
(1)数据源接入、数据处理引擎管理;
(2)向导式的流批一体采集任务定义与管理,基于 Flink 引擎、IDI 引擎,为用户提供简易在数据采集定义过程,用户不必了解引擎的工作原理、工作过程,无需定义复杂的步骤,只需要根据自己的业务场景定义采集任务;
(3)湖仓一体化管理,基于 Hudi 数据湖存储底座,融合至传统数据仓库管理体系,即扩展展了传统数据仓库的存储能力,又解决了数据湖数据分散、凌乱在不足;
(4)数据入湖后,通过产品提供 Flink Sql、Flink Jar 任务定义,可对数据进行实时加工计算。
二、构建一体化湖仓
1、集群配置信息管理,增加 Flink 集群配置、ETL 服务器设置
维护基本信息,用于连接 flink 集群、carte 服务,这两个服务提供数据流式处理、批量处理核心引擎,连接方式通过引擎提供 web api 进行访问。
2、增加 CDC 数据源、Hudi 数据源
维护连接数据源或数据湖的连接信息,用于采集任务或实时计算的源端或目的端。其中 CDC 源支持 mysql、postgresql、oracle、sqlserver.
3、批量采集作业定义
其实现过程如下:
定义基本信息,简称、代号、运行的 etl 服务器;
定义源端配置,选择数据来源及数据表;
定义目标端配置,选择湖仓位置;
创建表及模型,根据选择的源端表,自动在湖仓中创建数据表;
定义任务并发数及调度周期;
通过如上定义,系统会自动形成一个数据采集任务,当任务启动后该任务会根据调度周期的配置,将该任务发送至 idi 引擎进行数据采集,采集的数据将存储在湖仓主题的模型中。
下为向导式流批一体采集定义中源端、目标端配置、同步表清单、任务配置界面:
4、实时采集作业定义
其实现过程如下:
定义基本信息,简称、代号、运行的 Flink 集群;
定义源端配置,选择数据来源及数据表;
定义目标端配置,选择湖仓位置;
创建表及模型,根据选择的源端表,自动在湖仓中创建数据表;
定义任务并发数及异常自动重启等配置;
通过如上定义,系统会自动形成一个数据采集任务,当任务启动后,系统将该任务发送至 flink 引擎对源端数据进行实时监控采集,采集的数据将存储在湖仓主题的模型中。
5、湖仓管理
在数据加工的数仓分层下添加主题,主题选择连接某个 Hudi 数据源;
在主题下创建模型,模型中需特殊指定的参数:
下为一体化湖仓定义中的创建数据源为 Hudi 的主题、模型界面:
6、Flink 表管理
维护 flink 表信息,统一管理入口:
选择连接器类型,支持 jdbc、cdc;
选择数据源及物理表;
保存后自动形成 flink 表 sql,用于 flink sql 类型作业引用。
7、实时开发任务定义-Flink Sql
其实现过程如下:
定义基本信息,简称、代号、运行的 Flink 集群;
添加 flink 表,从 flink 表管理中选择已定义好的表;
编写 flink sql 语句,定义数据计算逻辑;
定义任务并行数、TaskManager 配置、checkpoint、异常自动重启等配置;
通过如上定义,系统会自动形成一个数据计算任务,当任务启动后,系统将该任务发送至 flink 引擎对源端数据进行实时数据计算,计算结果将存储在湖仓主题的模型中。
下为实时开发任务定义中的 Flink Sql、Flink Jar 界面:
8、实时开发任务定义-Flink Jar
其实现过程如下:
定义基本信息,简称、代号、运行的 Flink 集群;
添加自定义的 jar 包程序;
定义任务并行数、TaskManager 配置、checkpoint、异常自动重启等配置;
通过如上定义,系统会自动形成一个数据计算任务,当任务启动后,系统将该任务发送至 flink 引擎对源端数据进行实时数据计算,计算结果将存储在湖仓主题的模型中。
下为实时作业监控中的 Flink 作业详情界面:
三、结语
在 inDataX 数据中台产品中融合了流批一体的采集技术、湖仓一体化管理等技术,并将数据的采集、入湖、实时计算等环节打通,真正做到了湖仓一体化。
欢迎大家积极留言共建,期待与各位技术大咖的深入交流!
此外,欢迎大家下载我们的inBuilder低代码社区,可免费下载使用,加入我们,开启开发体验之旅!







评论