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

あるゲーム会社が1億人のプレイヤープロファイルを管理するDBを設計しています。「プレイヤーごとに所持アイテムが異なる(スキーマが可変)」「player_idによるルックアップで10ms以内の応答が必要」「書き込みが毎秒数百万件」という要件があります。最適なサービスはどれか?

A.Azure SQL Database(Hyperscale)― player_idにインデックスを作成
✗ リレーショナルモデルで可変スキーマの管理が複雑。10ms以下の一貫した応答保証と毎秒数百万件の書き込みスケールが困難。
B.Azure Table Storage ― PartitionKeyをplayer_idに設定
✗ 機能するがパフォーマンスSLAが弱く(Azure Table StorageはCosmos DBより弱い)、高度なクエリ機能が制限される。
C.Cosmos DB(Core SQL API)― player_idをパーティションキーに設定← 正解
✓ 正解。Cosmos DBはplayer_idをパーティションキーにすることで一桁ミリ秒の読み取りレイテンシを保証し、スキーマレス(JSON)で可変アイテムデータに対応し、数百万/秒の書き込みに水平スケール可能。
D.Azure Synapse Analytics(Serverless SQL Pool)― 外部テーブルでプロファイルを管理
✗ 分析用途であり高頻度OLTP書き込みには全く不向き。

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