0

50,000 項目を含む 1 つのテーブルがあり、各レコードの PK が一意の番号であるとします。これらのアイテムの半分は、プロパティ「published」が「1」に設定され、残りは「0」に設定されています。

ほとんどの場合、ハッシュ キーを使用して個々のアイテムを取得しますが、公開済み = 1 または 0 (理想的にはページ分割されたバッチ) のすべてのアイテムを取得できるようにしたい場合もあります。

「published」属性に PK を指定した GSI を作成できますが、値ごとに 25,000 レコードが存在することになります。PK はこれよりも一意である必要があるため、これは悪いことだと理解しています (これを理解した場合はお知らせください)。間違って)。

公開済み/非公開用に別々のテーブルを持つこともできますが、個々のアイテムを取得するという私の一般的なユースケースでは、アイテムが公開されているかどうかを事前に知る必要はありません (また、Amazon、適切に設計されたアプリには通常 1 つしかないと言います)テーブル)。

アドバイスや提案をいただければ幸いです。

4

2 に答える 2

1

DynamoDB は、一括更新または一括読み取りには使用できません。これは、トランザクションの読み取りまたは書き込み用です。一括更新を扱う場合、トランザクション データには RDS が適しています。

限られたデータ セットのみを使用する場合は、特定の時間にセットを読み取ることができますが、要求する数が常に受け入れられるわけではありません。その時点で利用可能なものはすべて、lastEvaluatedKey として知られるマーカーとともに配信されます。

また、別の方法として、公開されたキーを範囲キーとして使用することもできます。パーティションごとの読み取りに役立ちますが、それでも dynamodb への一括読み取り/書き込みの読み取りには時間がかかり、適切なアーキテクチャではありません。

それが役に立てば幸い。

于 2018-09-04T19:44:57.723 に答える