一、如何做一致性保障
1、全量数据分片读取,增量数据单并发读取,保证增量阶段不会乱序
2、全量阶段写入失败会清空表后重新写入,避免重复数据。
3、全量阶段多task并行读取,把每个task开始结束时间提交给Flink Coordinator,由Coordinator做时间合并后,仅读取一次全量同步区间内变化的binlog数据,然后更新目标表。最后一个窗口较大时,可以将数据写入state,保证内存占用不会过大。
4、依托Flink 一致性快照算法。 mysql->iceberg在flink分多阶段处理,mysql -> flink source -> flink writer -> flink committer,iceberg只有在committer后才可读,flink快照会保留各个阶段状态和数据,如处理数据过程中出现异常后可从最近快照恢复继续同步。
5、依托flink两阶段提交。 在同步阶段写数据文件时,写入文件对外不可读,只有committer后才对外可读。 flink把读写文件和committer分开成两个请求,保证脏数据不对外服务。
标签:committer,Flink,iceberg,flink,全量,mysql From: https://www.cnblogs.com/robots2/p/18190814