2017-12-12 14 views
1

Kafkaトピックのデータを消費すると、FlinkとSparkStreamingの両方でauto.commit.enabledfalseに設定されているチェックポイントメカニズムが提供されます。 スパーク・ドキュメント say:FlinkとSparkStreamingのチェックポイントメカニズムの相違点

スパーク出力操作は少なくとも1回です。したがって、正確に一度のセマンティクスに相当するものが必要な場合は、偶数の出力の後にオフセットを格納するか、アトミックなトランザクションに出力とともにオフセットを格納する必要があります。

しかしFLINKドキュメントは言う:FLINKのチェックポイントを有効にすると

、FLINKカフカ消費者が一緒に他の操作の状態で、トピックからレコードを消費し、定期的にそのすべてのカフカオフセットをチェックポイントになります、一貫した方法でジョブが失敗した場合、Flinkは最新のチェックポイントの状態にストリーミングプログラムを復元し、チェックポイントに格納されたオフセットから開始して、カフカのレコードを再消費します。私はFLINKチェックポイントは、プログラムの状態を保存しますだけでなく、オフセットがかかるが、チェックポイントがちょうどセーブオフセットを消費し、そのせいでスパークスパーク推測する他のソースを読む

は言う:

スパーク出力操作は、です-少なくとも一回。

誰もが違いと、カフカのトピックからデータを読み取る際に正確に一度の意味に到達する方法を教えてください。

答えて

0

私は、これはあなたが探しているものをカバー思う:https://data-artisans.com/blog/high-throughput-low-latency-and-exactly-once-stream-processing-with-apache-flink

正確ワンス及びAT-少なくともワンスとの大きな違いは、あなたが重複したデータが出力されていないことを保証されて正確にワンスということです。少なくとも一度はデータを失うことはありませんが(正確には1回と同じですが)、重複したデータが出力される可能性があります。

編集:私は言及する必要があります

私はのための大きな概要ドキュメントのリンクを提供する理由である、私はFLINKで午前とスパークのように慣れていないけど、これはFLINKが上に触れることを主要なものですそれ。しかし、正確に1度対1回という概念は普遍的であり、技術に依存しない。

+0

ありがとうございました。私は処理のセマンティクスで ''ちょうど ''と ''少なくとも一回 'を知っていましたが、私の質問は、スパークとフリンクでのチェックポイント機能の問題でした。 – soheil

関連する問題