写点什么

1203【浪潮海岳 inDataX 数据中台专栏】 流批一体技术构建多源异构湖仓的数据采集与实时计算实践

  • 2025-12-01
    山东
  • 本文字数:2011 字

    阅读完需:约 7 分钟

从数据管理架构的发展来看,数据湖仓的演进过程可分为三个阶段。第一阶段是上世纪 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 数据源;

  • 在主题下创建模型,模型中需特殊指定的参数:

分隔符:,存储格式:TEXTFILE存储位置:HDFS存储位置(与Hudi数据湖位置对应)Row format:serdeSTORED AS INPUTFORMAT:org.apache.hudi.hadoop.HoodieParquetInputFormat
复制代码

下为一体化湖仓定义中的创建数据源为 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低代码社区,可免费下载使用,加入我们,开启开发体验之旅!

用户头像

还未添加个人签名 2023-03-07 加入

塑造企业一体化研发新范式

评论

发布
暂无评论
1203【浪潮海岳inDataX数据中台专栏】 流批一体技术构建多源异构湖仓的数据采集与实时计算实践_数据处理_inBuilder低代码平台_InfoQ写作社区