Q25 — AWS DVA-C02 第3章
第 25/100 問 | ← 第3章
オフィスを複数持つ企業が、従業員勤怠票情報をAmazon DynamoDBテーブルに保存しています。各アイテムには従業員氏名、オフィス識別子、および累計日次勤務時間などの属性が含まれます。最も頻繁なクエリは、特定のオフィスの従業員をアルファベット順に並べたサブセットを取得するレポートです。DynamoDBテーブルの主キー設計のうち、パフォーマンスに最も大きな影響を与えるのはどれですか?
- A. パーティションキーとしてオフィス識別子、ソートキーとして従業員氏名 ✓
- B. パーティションキーとして従業員氏名、ソートキーとしてオフィス識別子
- C. パーティションキーとして従業員氏名
- D. パーティションキーとしてオフィス識別子
正解: A. パーティションキーとしてオフィス識別子、ソートキーとして従業員氏名
解説
DynamoDBでは、頻繁に実行されるクエリのパフォーマンスを最適化するため、主キーを適切に設計する必要があります。本問では、最も頻繁なクエリは「特定のオフィスの従業員をアルファベット順に取得すること」です。選択肢A(オフィス識別子をパーティションキー、従業員氏名をソートキー)は、まずオフィス識別子でパーティションを特定し、そのパーティション内で従業員氏名の順序で高速に走査できるため、クエリ要件に完全に適合します。選択肢B(従業員氏名をパーティションキー、オフィス識別子をソートキー)は、データが従業員氏名で分散されるため、特定オフィスの従業員を取得するには複数パーティションをスキャンする必要があり、効率が悪いです。選択肢C(従業員氏名をパーティションキー)は、オフィス識別子によるフィルタリングが直接不可能で、パフォーマンスが劣ります。選択肢D(オフィス識別子をパーティションキー)はパーティションを特定できますが、ソートキーがないため、パーティション内での並び順を保証できず、全パーティションスキャン後にソートが必要となり、パフォーマンスに影響します。したがって、最適な選択肢はAです。