DynamoDBは基本的に つのデータ型 :文字列、数値、およびバイナリに制限されていることがわかります。日付またはタイムスタンプを保存するための2つのオプションが残っているようです。
この日付/タイムスタンプを範囲キーとして使用し、scanIndexForwardを使用して、結果を「並べ替える」必要があります。どちらのアプローチがより効率的であるかを言うことは可能ですか?
必ずしも効率的かどうかはわかりませんが、Unixタイムスタンプを範囲キーとして使用することで成功しました。クエリは高速で(レイテンシが20ミリ秒未満、場合によっては10ミリ秒未満)、scanIndexForward
フラグを使用して「最も早いものから最も遅いもの」または「最も遅いものから最も早いもの」を並べ替えることができます。
欠点は、生のテーブルを見ると、2つのタイムスタンプを一目で比較するのが難しい場合があることですが、タイムスタンプを選択した言語の日付タイプに変換するのは簡単です。
DynamoDBテーブルの1つでDescribeTableを実行したところ、DynamoDB自体がテーブルのCreationDateTimeをUNIXタイムスタンプ浮動小数点数として格納していることに気付きました。私は彼らが理由でそれをしたと思います。