我试图在apache beam上使用KafkaIO从多个kafka经纪人那里读取。偏移管理的默认选项是kafka分区本身(不再使用kafka中的zookeper> 0.9)。使用此设置,当我重新启动作业/管道时,存在重复和丢失记录的问题。
根据我的阅读,处理此问题的最佳方法是管理外部数据存储的偏移量。是否可以使用当前版本的apache beam和KafkaIO执行此操作?我现在正在使用2.2.0版本。
而且,在读完kafka之后,我会将它写入BigQuery。在KafkaIO中是否有设置我只能在将消息插入BigQuery后设置提交的消息?我现在只能找到自动提交设置。
答案 0 :(得分:0)
在Dataflow中,您可以update a job而不是从头开始重新启动。新作业从上次检查点状态恢复,确保完成一次处理。这也适用于KafkaIO源。 Kafka使用者配置中的自动提交选项有所帮助,但它不是Dataflow内部状态的原子,这意味着重新启动的作业可能只有一小部分重复或丢失的消息。