0

私は、Apacheのビーム上でKafkaIOを使用して複数のkafkaブローカーから読もうとしています。オフセット管理のデフォルトオプションはkafkaパーティション自体です(kafka> 0.9のzookeperは使用しません)。この設定では、私はジョブ/パイプラインを再起動すると、重複しているレコードと不足しているレコードに問題があります。Apache beam KafkaIO外部データストアへのオフセット管理

私が読んだことから、これを処理する最良の方法は、外部データストアへのオフセットを管理することです。現在のバージョンのapache beamとKafkaIOでこれを行うことは可能ですか?私は今2.2.0バージョンを使用しています。

そして、kafkaから読んだ後、私はBigQueryに書きます。 BigFeryにメッセージを挿入した後にコミットされたメッセージを設定できるKafkaIOの設定はありますか?私は現在、自動コミットの設定しか見つけることができません。

答えて

0

データフローでは、最初から再起動するのではなく、update a jobにすることができます。新しいジョブは最後のチェックポイント状態から再開し、正確に1回の処理を保証します。これはKafkaIOソースにも有効です。 Kafkaのコンシューマ設定の自動コミットオプションは役立ちますが、再起動されたジョブの重複または欠落したメッセージの割合が少ない可能性があることを意味するDataflowの内部状態ではアトミックではありません。

関連する問題