Azure非リレーショナル定義問題

Cosmos DB(Core SQL API)でコンテナを設計する際、「パーティションキーの選択」として最も適切なのはどれか?

A.値が常に同じ列(例:ステータス=「アクティブ」のみ)をパーティションキーにする
✗ 値が常に同じ(カーディナリティが1)列をパーティションキーにすると、全データが1つの論理パーティションに集中し「ホットパーティション」が発生してスケールアウトできない。
B.カーディナリティ(値の種類)が高く、書き込み・読み取りが均等に分散する列をパーティションキーにする← 正解
✓ 正解。パーティションキーはカーディナリティが高い(値の種類が多い)列を選ぶことで、データと負荷を複数の物理パーティションに均等に分散できる。顧客IDやデバイスIDが典型例。
C.最も頻繁にクエリで使うWHERE条件の列であれば何でもよい
✗ クエリ効率だけでなくデータ分散(負荷均等化)を考慮してパーティションキーを選ぶ必要がある。クエリ頻度だけが基準ではない。
D.パーティションキーは後から変更できるため、最初は気にしなくてよい
✗ パーティションキーはコンテナ作成後は変更できない。最初の設計が極めて重要。

DP-900:Microsoft Azure Data Fundamentals の問題一覧