2017-02-02 3 views
0

多くの理由から、コンシューマーは完全なデータリフレッシュを実行する必要があります。データが失われたり、新しいコンシューマーが搭乗したりする可能性があります。Kafka - コンシューマーフルデータリフレッシュ

保存期間の後に完全なデータを含む初期オフセットが削除されると、コンシューマは完全なデータ更新をどのように実行できますか?後続のオフセット2、3、4、...はデルタ変更のみを持ちます。最初のオフセットがなければ、データは完全ではありません。

ありがとうございます。

答えて

0

です。できない。このデータが最初に削除されないようにするには、保持時間を長くする必要があります。

しかし、「デルタの更新」がある場合は、それらをKafkaに保存するのではなく、日付に更新を適用してA、delta-1-A、 delta-2-Aは、A1、A2、A3(A1 = A、A2 = A + delta-1-Aなど)を格納します。さらに、トピックcleanup.policyを「保持」から「圧縮」に変更することができます。これにより、カフカが最新バージョンのデータ(キーごと)を決して削除しないようにします。

+0

ありがとうマティアス。各A1、A2、A3には完全なデータセットが含まれているため、データ量が膨大な場合、コンシューマのローディングパフォーマンスに影響を与える可能性があります。 –

+0

データタイプがわからない。これはカウントで、1、3、2(デルタとして)または1,4,6(現在のカウントとして)を格納できます - データサイズはここで同じです。さらに、最初のケースでは3つのレコードを読み込み、後のケースでは(トピックが圧縮された後に)単一の値、つまり6だけを読み込みます。データサイズが増えてパフォーマンスに影響があっても、正確さとパフォーマンスの間の判断を下すのはあなたの呼び出しです... –

関連する問題