2016-07-09 6 views
2

最近の更新をDynamoDBテーブルで処理し、別のテーブルに保存したいと考えています。 Table1に不規則に挿入されたIoTデバイスからの更新を取得し、元の更新(スライディングウィンドウの種類)と同期して同じデバイスのTable2の更新を計算するためにN個の最終更新を使用する必要があるとします。DynamoDBトリガ(ストリーム+ラムダ):TRIM_HORIZONの詳細?

DynamoDBのトリガ(ストリーム+ラムダは)私のニーズのために非常に適切なようだが、私はTRIM_HORIZONの明確な定義を見つけることができませんでした。いくつかのドキュメントでは、それがTable1の中で最も古いデータであることを理解していますが(巨大化する可能性があります)、他のドキュメントでは24時間と思われます。それともストリームの中で最も古く、それは24時間ですか?

だから、誰もがTRIM_HORIZONについての真実を知っていますか?それを設定することも可能でしょうか?

私が見る代わりにTRIM_HORIZONを使用するのではなく、LATESTを使用して、Table1でクエリを実行します。しかし、それは川の目的を敗北させる。ここで

答えて

4

はあなたのための関連する側面は、DynamoDBののドキュメント(12)から、以下のとおりです。

  • DynamoDBのストリーム内のすべてのデータは、24時間の寿命の対象となります。あなたは 取得し

  • TRIM_HORIZONは、任意のテーブルのための活動の最後の24時間を分析することができます - シャードで最も古い記録である最後(トリミングされていない)ストリーム・レコード、 で読んで起動します。 DynamoDBストリームでは、データ保持に24時間制限のある が存在します。 を超えるストリームレコードは、ストリームから削除(トリミング)されます。

だから、あなたが継続的にストリームの更新を処理しているラムダを持っている場合、私はLATEST一緒に行くことをお勧めしたいです。

また、「最後のN更新を使用してTable2の更新を計算する」必要があるため、現在の更新を前の更新と 'マージ'できるように、更新ごとにTable1にクエリを実行する必要がありますデバイス。私はあなたがあまりにもTRIM_HORIZONを使用して得ることができないとは思わない。

+0

よろしくお願いいたします。それは私のために物事を明確にした! –