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

ある SNS プラットフォームが、ユーザー間の「フォロー」「フォロワー」「いいね」などの関係をデータとして管理し、「あるユーザーの友人の友人が購入した商品」のような複数ホップのトラバーサルクエリを高速に実行したい。最も適切なデータサービスはどれか。

  1. A. Azure Cosmos DB for Gremlin — グラフデータベースとしてノードとエッジで関係を表現しトラバーサルを最適化する
  2. B. Azure Table Storage — フォロー関係をキーバリューとしてフラットに格納する
  3. C. Azure SQL Database — JOIN 演算でユーザー間の関係を表現する
  4. D. Azure Cosmos DB for Cassandra — ワイドカラムで多対多関係を格納しクエリする
解答と解説を見る

正解: A

Azure Cosmos DB for Gremlin は Apache TinkerPop 互換のグラフデータベース API を提供し、ノード(頂点)とエッジ(辺)でエンティティと関係を表現する。フォロー関係のような多対多関係や、複数ホップのトラバーサル(友人の友人など)を効率的に処理するために最適化されている。選択肢 B の Azure Table Storage はフラットなキーバリュー構造であり、多段階のグラフ関係を表現・クエリするのに向いていない。選択肢 C の Azure SQL Database は JOIN でリレーションシップを扱えるが、フォロワー数百万人の多対多グラフを複数ホップトラバーサルするには深い再帰的 JOIN が必要となり、パフォーマンスが大幅に低下する。選択肢 D の Cosmos DB for Cassandra はワイドカラム型で時系列データやセンサーデータに適しているが、グラフトラバーサルに特化した機能は持たない。

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