如何构建批流一体数据融合平台的一致性语义保证?( 二 )

批和流是数据融合的两种应用形态

下图来自 Flink 官网。传统的数据融合通常基于批模式。在批的模式下,我们会通过一些周期性运行的 ETL JOB,将数据从关系型数据库、文件存储向下游的目标数据库进行同步,中间可能有各种类型的转换。

如何构建批流一体数据融合平台的一致性语义保证?

另一种是 Data Pipeline 模式。与批模式相比相比, 其最核心的区别是将批量变为实时:输入的数据不再是周期性的去获取,而是源源不断的来自于数据库的日志、消息队列的消息。进而通过一个实时计算引擎,进行各种聚合运算,产生输出结果,并且写入下游。

现代的一些处理框架,包括 Flink、Kafka Streams、Spark,或多或少都能够支持批和流两种概念。只不过像 Kafka,其原生就是为流而生,所以如果基于 Kafka Connect 做批流一体,你可能需要对批量的数据处理做一些额外工作,这是我今天重点要介绍的。

数据融合的基本问题

推荐阅读