flink实现kafka、doris精准一次说明

前言说明:本文档只讨论数据源为kafka的情况实现kafka和doris的精准一次写入

flink的kafka连接器已经实现了自动提交偏移量到kafka,当flink中的数据写入成功后,flink会将这批次数据的offset提交到kafka,程序重启时,kafka中记录了当前groupId消费的offset位置,开始消费时将会从上一次消费的位置开始消费,可以保证数据的至少一次(at least once),写入端如果需要做到精准一次(exactly once)可以通过事务控制或者幂等性保证。

  1. 从kafka到kafka实现精准一次

当从kafka topic1写入kafka topic2时(不一定是同一个kafka),需要在写入kafka时,开启事务写,当一批数据写入到kafka的操作未完成时,此批数据中已被写入的状态为uncommited,当所有数据写入成功时,flink kafka连接器将会执行commit操作,此批数据的状态将会变为commited,如果要做到精准一次消费topic2中的数据,需要在程序中通过参数isolation.level=read_committed<

猜你喜欢

转载自blog.csdn.net/weixin_42258633/article/details/132675137