DEA-C01:AWS Certified Data Engineer - Associate データストアの管理 問12
データストアの管理/データモデルとスキーマ進化の設計Amazon DynamoDB のテーブルを設計しています。高いスケーラビリティと均等な負荷分散を得るためのキー設計として、最も適切なのはどれですか。
当サイトのオリジナル問題(DEA-C01:AWS Certified Data Engineer - Associateの出題範囲「データストアの管理」に対応。実際の試験問題ではありません)
- Aリレーショナルデータベースのように第 3 正規形へ正規化し、多数のテーブルを結合する前提にする
- Bアプリのアクセスパターンに基づいて、カーディナリティが高く負荷が分散するパーティションキーを選び、必要に応じてソートキーやセカンダリインデックスを設計する
- Cすべてのアイテムで同じ固定値をパーティションキーにする
- Dテーブル全体のスキャンを前提に、キー設計は考慮しない
正解:B
解説
DynamoDB では、アプリのアクセスパターンに基づき、カーディナリティが高く負荷が均等に分散するパーティションキーを選ぶことが重要です。必要に応じてソートキーやセカンダリインデックスを設計します。RDB 的な正規化・多テーブル結合前提や、固定値パーティションキー(ホットパーティション化)、全件スキャン前提は、DynamoDB のスケーラビリティを損ないます。
下線の用語は 用語集 で意味を確認できます。
選択肢ごとの解説
- A誤り。DynamoDB では過度な正規化・結合前提は不向きで、アクセスパターン駆動の設計が基本です。
- B正しい。高カーディナリティで負荷分散するパーティションキーを選び、ソートキー/インデックスを設計します。
- C誤り。固定値のパーティションキーはホットパーティションを生み、スケールしません。
- D誤り。全件スキャン前提はコスト・性能の面で不適切です。