私は、entityID(ハッシュキー)とclickedCounterという2つのフィールドを持つDynamoDBテーブルを持っています。 clickedCounterは、ユーザーがentityIDを何回クリックしたかをカウントする自動インクリメントカウンタです。これは、clickedCounterをDynamoDBのバージョン属性(JavaアノテーションDynamoDBVersionAttribute)としてマークしました。 このテーブルでは、各entityIDが何回クリックされたかを簡単に統計情報を得ることができましたが、は最後のN日間(たとえば過去7日間)ごとの集計統計情報を取得する必要があります。これをどのようにアーカイブできますか?DynamoDBのカウンタフィールドの統計情報は最後のN日間に限ります
潜在的な解決策として、さらに2つのフィールドを追加できます:expiredTime(実際には属性を保存する時間なので、古いデータは自動的に削除されます)とdayOfYear。ここで、dayOfYearはハッシュキーで、entityIDは範囲キーです。実体識別子が唯一の最後の3日間1005に等しいため例えば、1月10日のために、このアプリは、以下のデータを格納する(データ前回日間TTLマネージャによって削除されます):
dayOfYear entityID clickedCounter expiredTime
10 1005 9 …
9 1005 10 …
8 1005 19 …
7 1005 12 …
の統計情報を取得するには上記の例では、ハッシュと範囲キーのペア(この例では、< 10,1005>、< 9、1005>、< 8、1005>、< 7、1005>)によるロードリクエストを行い、すべてのclickedCounter値(ここでは合計は50です)。
より簡単で正確な方法で最後のN日間に要約統計情報を取得することは可能ですか?
私はイベント「clickedCounter」、代わりにentityID(ハッシュキー)、clickedTimestamp(ソートキー)を持っていません。合計を取得したい場合は、ここで説明したようにScannedCountを取得してください。 http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Query.html – kosa