ドキュメントからは、イテレータタイプとしてTRIM_HORIZONを使用してKCLアプリケーションを開始すると、レコードがストリームの先頭から読み込まれることは明らかです。また、アプリケーションの状態は、チェックポイントを使用してDynamoDBテーブルに保持されていることにも言及しています。Kinesisコンシューマアプリケーションの起動時に、DynamoDBテーブルの状態はどのように使用されますか?
しかし、このDynamoDBテーブル情報がKCLアプリケーションでどのように使用されているかについては、わかりません。具体的には
次のように私の問題がある - 私は多くのデータで168時間の保存期間で流れを持っています。私のKCL(TRIM_HORIZONのイテレータで始まりました)が入ってくるデータと同期していて、ストリームの終わりにレコードを処理していて、一定の間隔でチェクシングしていたとします。今すぐKCLを再起動すると、データの読み取り(168時間前)はストリームの先頭から開始されますが、DynamoDBテーブルを使用してチェックポイントを表示し、最新のレコードにスキップするか、チェックポイント情報がまったく使用されない開始からストリームは無関係に読み込まれますか?
後者の場合、膨大な量のデータを再処理する必要はありません。
シャードイテレータを取得するために、DynamoDBテーブルのシーケンス番号を手動で使用する必要がありますか? KCLアプリケーションが再起動される