チェックポイントとトリミングは AWS KCL ライブラリでどのように関連していますか?
ドキュメンテーションページの処理の開始、シャットダウン、およびスロットリングには次のように記載されています。
デフォルトでは、KCL は、最後に追加されたレコードであるストリームの先端からレコードの読み取りを開始します。この構成では、受信側のレコード プロセッサが実行される前に、データ生成アプリケーションがレコードをストリームに追加すると、そのレコードは、起動後にレコード プロセッサによって読み取られません。
常にストリームの先頭からデータを読み取るようにレコード プロセッサの動作を変更するには、Amazon Kinesis Streams アプリケーションのプロパティ ファイルに次の値を設定します。
initialPositionInStream = TRIM_HORIZON
Java で Amazon Kinesis クライアント ライブラリ コンシューマーを開発するドキュメント ページには、次のように記載されています。
Streams では、レコード プロセッサが、シャードで既に処理されたレコードを追跡する必要があります。KCL は、checkpointer (IRecordProcessorCheckpointer) を processRecords に渡すことで、この追跡を処理します。レコード プロセッサは、このインターフェイスで checkpoint メソッドを呼び出して、シャード内のレコードの処理がどの程度進んだかを KCL に通知します。ワーカーに障害が発生した場合、KCL はこの情報を使用して、最後に処理された既知のレコードからシャードの処理を再開します。
最初のページは、KCL がストリームの先頭で再開したことを示しているように見えます。2 ページ目は、最後に処理された既知のレコード ( をRecordProcessor
使用して処理済みとしてマークされたcheckpointer
) です。私の場合、最後に処理された既知のレコードから再起動する必要があります。initialPositionInStream を TRIM_HORIZON に設定する必要がありますか?