DP-900Azure の非リレーショナル データEASY単一選択

ある EC サイトが、ユーザーのショッピングカート情報(ユーザー ID、商品 ID、数量)を Azure Table Storage に保存している。このデータモデルにおいて「パーティションキー」として最も適切な値はどれか。

  1. A. 注文番号 — 注文単位でのクエリを効率化できる
  2. B. 商品 ID — 商品ごとにカートデータをまとめて管理できる
  3. C. タイムスタンプ — 時系列でデータを分散させてスループットを向上できる
  4. D. ユーザー ID — 同一ユーザーのカートアイテムを同一パーティションに集約できる
解答と解説を見る

正解: D

Azure Table Storage のパーティションキーは、関連するエンティティを同一パーティションにまとめるために使用される。ショッピングカートの場合、「あるユーザーのカート内全アイテムを取得する」クエリが最も頻繁に実行されるため、ユーザー ID をパーティションキーにすることで、そのクエリを効率的なパーティションスキャンで処理できる。選択肢 B の商品 ID をパーティションキーにすると、「ある商品を購入しているユーザー全員」を取得する場合には有利だが、EC サイトの主要クエリ(特定ユーザーのカート取得)には不向きである。選択肢 A の注文番号はカートの段階ではまだ存在しない情報であり、パーティションキーとして不適切である。選択肢 C のタイムスタンプをパーティションキーにすると、時刻順にパーティションが作成されてホットパーティション問題が発生しやすく、特定ユーザーのカート取得も非効率になる。

▸ この試験を本気で演習する(全150問・無料)