次のユースケースとその理由について、DynamoDBテーブルを最適に設計する方法について、いくつかの洞察をお伝えしたいと思います。私はthe best practicesを読んだが、まだ十分理解していない。DynamoDBテーブルフォーマット
主に使用するのは、各ユーザーグループごとの週単位のエントリです。これらのエントリを、各ユーザグループの最新エントリでソートする必要があります。私はまた、簡単に(またはすばやく)各グループの最新のエントリを取得することができる必要があります。
記事を読む前の私の最初のアイデアは、グループごとに別々のテーブルを使用し、各エントリにユニークなパーティションキーとエポックから秒に変換された日付のソートキーがあることでした。しかし、この記事を読んだ後、このアプローチはパーティションの設計に違反しているように見える。
最近のエントリーは私のWebサーバーではかなり簡単にキャッシュすることができますが、とにかくそれがデザインに影響を与えるかどうか不思議です。
ガイダンスはありますか?
驚くばかりです。昨夜、それを眠った後も同じ考えが頭に浮かんだ。スループットに関するアドバイスをありがとう。私はそれほど考慮しなかった。 – ProdigousRanger
これは効率的にはカバーしません(つまり、スキャンまたはマルチクエリなし)。「各グループの最新のエントリを簡単に(またはすばやく)取得できる必要もあります。 –
はい、あります。 'ScanIndexForward = false'(降順)と' Limit = 1'のクエリは、ユーザグループの最新のエントリを返します。私はより良い方法があるとは思わない。 – birnbaum