Qraft(クラフト) 資格・学習クイズアプリ

AWS Certified Solutions Architect Associate(SAA-C03) 練習問題 15:DynamoDBのパーティションキーとソートキーの設計

Amazon DynamoDBでユーザー情報と注文レコードを格納するテーブルを設計しています。ユーザーIDで検索し、同じユーザーの複数の注文レコードを効率的に取得する必要があります。DynamoDBのキー設計として最も適切なものはどれか。

  1. ユーザーIDをパーティションキーとし、ソートキーは設定せず、各注文を独立したアイテムとしてテーブルに格納する。
  2. ユーザーIDをパーティションキー、注文IDをソートキーとして設定し、Query操作で同一ユーザーの全注文を効率的に取得できるようにする。
  3. 注文IDをパーティションキーとし、ユーザーIDを通常の属性として格納して、GSI(Global Secondary Index)で検索する。
  4. ユーザーIDと注文IDを連結したハイブリッドキーをパーティションキーとし、ソートキーは使用しない。
  5. 複合主キー(ユーザーID、注文ID)をパーティションキーの複合値として指定し、プロビジョニング時にWCU を最大化する。

Qraftユーザーの成績:正答率 85%(11/13回正解)

正解と解説を見る
正解:ユーザーIDをパーティションキー、注文IDをソートキーとして設定し、Query操作で同一ユーザーの全注文を効率的に取得できるようにする。

DynamoDBのキー設計はクエリパターンと検索性能に直結する重要な決定です。正しいのは「ユーザーIDをパーティションキー、注文IDをソートキーとして設定する」という方法です。この設計により、ユーザーIDで単一パーティションにアクセスし、Query操作でソートキーの範囲検索により同一ユーザーの全注文を効率的に取得できます。パーティションキーが適切に分散するためスケーラビリティが高く、Scan操作ではなくQuery操作により消費RCUが削減されます。ソートキーがない場合は同一ユーザーの注文取得にテーブル全体のScan操作が必要となり非効率です。パーティションキーが注文IDでは複数パーティションの走査が必要になります。ハイブリッドキーは範囲検索ができず柔軟性を欠きます。

← 前の問題問題一覧次の問題 →
アプリで解いてレーティングを上げる(無料・登録不要)