DynamoDBの時系列データのベストプラクティス
時系列データは最新のデータが遥かに読み書きされて古いデータは読まれないという傾向にあることが多い
期間毎に一つのテーブルを作成するのがベストプラクティス
例えばログであれば一日毎とか
一般的な設計原則では、使用するテーブルの数を最小限に抑えますが、時系列データでは一定期間ごとに個別のテーブルを作成すると最適に処理できます。
タイムスタンプをプライマリーキーとして設定します。
例えば、パーティションキーに日付(date: 2021-09-21)、ソートキーに時間(time: 21-19-56)のようにします。
一定期間ごとに別のテーブルを用意します。そうすることで、ホットパーティション(最新のレコード)とアクセス頻度の低いパーティション(古いレコード)でキャパシティの最適化が行えます
例えば、月次のテーブルを用意しその月を表すテーブル(table: 2021-09)を作成していきます。各期間が終了する前に、次の期間のテーブルを事前に作成しておき、現在のテーブルから次のテーブルへ書き込みが完全に移行するまで待機します
期間が変わったら、古いテーブルのキャパシティを低い値に設定します
期間ごとにテーブルを作成する