web-dev-qa-db-ja.com

TRIM_HORIZON vs LATEST

AWS Kinesisの公式ドキュメントには、TRIM_HORIZONとチェックポイントの間の参照explicit参照、およびLATESTとチェックポイントの間の参照はありません。

私の理論を確認できますか:

  • TRIM_HORIZON-application-nameが新しい場合、ストリームで使用可能なすべてのレコードを読み取ります。それ以外の場合、application-nameはすでに使用されているので、myの最後のチェックポイントから読み取ります。

  • LATEST-アプリケーション名が新しい場合、追加したストリーム内のすべてのレコードを読み取りますafterストリームにサブスクライブしました。そうでない場合、application-nameはすでに使用されていました。最後のチェックポイントmyからメッセージを読み取ります。

  • TRIM_HORIZONLATESTの違いは、アプリケーション名が新しい場合のみです。

18
Ida Amit

GetShardIteratorのドキュメント から(Kinesisを使用した私の経験と一致します):

リクエストでは、シャードイテレータータイプAT_TIMESTAMPを指定して、任意の時点からレコードを読み取り、TRIM_HORIZONを使用して、ShardIteratorがシステム内のシャード内の最後のトリミングされていないレコードを指すようにすることができます(最も古いシャード内のデータレコード)、またはLATESTを使用すると、常にシャード内の最新のデータを読み取ることができます。

基本的に、違いは、最も古いレコード(TRIM_HORIZON)から開始するか、「今すぐ」から開始するか(LATEST-データをスキップするかどうか)です。最新のチェックポイントと現在の間)。

12
Krease

AT_TIMESTAMP

-特定のタイムスタンプから

TRIM_HORIZON

-Kinesisストリームで最初から利用可能なすべてのメッセージ(Kafkaの最初のものと同じ)

最新

-最新のメッセージ、つまり、Kinesis/Kafkaに入ったばかりの現在のメッセージと、その時からのすべての着信メッセージ

8
Suresh Chaganti