一致性语义
一致性语义
批量同步需要以一种事务性的方式完成同步,无论是同步一整块的历史数据,还是同步某一天的增量,该部分数据到目的地,必须是以事务性的方式出现的。而不是在同步一半时,数据就已经在目的地出现了,这可能会影响下游的一些计算逻辑。并且作为一个数据融合产品,当用户在使用
数据一致性的链路视角
-
在源端做一个一致性抽取,即当数据从通过数据连接器写入到
MQ 时,和与其对应的offset 必须是以事务方式进入MQ 的。 -
一致性处理,譬如
Flink 提供了一个端到端一致性处理的能力,它是内部通过checkpoint 机制,并结合Sink 端的二阶段提交协议,实现从数据读取处理到写入的一个端到端事务一致性。其它框架,例如Spark Streaming 和Kafka Streams 也有各自的机制来实现一致性处理。 -
一致性写入,在
MQ 模式下,一致性写入,即consumer offset 跟实际的数据写入目的时,必须是同时持久化的,要么全都成功,要么全部失败。 -
一致性衔接,在
DataPipeline 的产品应用中,历史数据与实时数据的传输有时需要在一个任务中共同完成。所以产品本身需要有这种一致性衔接的能力,即历史数据和流式数据,必须能够在一个任务中,由程序自动完成它们之间的切换。