注
現在、この機能はパブリック プレビュー段階にあります。 このプレビュー版はサービス レベル アグリーメントなしで提供されています。運用環境のワークロードに使用することはお勧めできません。 特定の機能はサポート対象ではなく、機能が制限されることがあります。 詳細については、「Microsoft Azure プレビューの使用条件を参照してください。
この記事では、グラフ データベースとリレーショナル データベースを比較します。 分析における主な違い、ユース ケース、利点が強調されています。 この情報を使用して、特定のニーズに 合わせて Fabric Graph またはリレーショナル データベースのどちらを使用するかを決定します。
グラフ データベースは、ノード (エンティティ) とエッジ (リレーションシップ) のネットワークとしてデータを格納およびクエリします。 この方法では、リレーショナル データベースのテーブルと行の形式とは根本的に異なります。 グラフ データベースは、ソーシャル ネットワーク、ナレッジ グラフ、レコメンデーション システム、不正検出など、高度に接続されたデータのモデリングと分析に適しています。
主な違い
- グラフ データベース: データをノードとエッジとして整理し、リレーションシップを明示的に格納します。 接続の走査は効率的であり、多くの場合、データセットの合計サイズに依存しません。
- リレーショナル データベース: 行と列を使用してテーブル内のデータを整理します。 クエリ時にリレーションシップを推論するには、JOIN 操作を使用します。 高度に接続されたデータの場合、これらの操作は複雑で低速になる可能性があります。
リレーションシップのクエリ: 結合とトラバーサル処理
リレーショナル データベース クエリ: 外部キーは、異なるテーブル内のデータをリンクします。 関連データを取得するために、リレーショナル データベースは JOIN 操作を使用して複数のテーブルの行を結合します。 このメソッドは単純なリレーションシップに適していますが、ディープ接続や可変長接続ではコストが高くなり、複雑になる可能性があります。
Graph データベース クエリ: リレーションシップをエッジとして格納し、ノード間を直接走査できるようにします。 グラフ クエリでは、複数のホップと複雑なパターンを効率的に移動できます。 GQL などのグラフ クエリ言語を使用すると、トラバーサルやパターン マッチングを簡単に表現できます。
Example:
GQL:
MATCH (p:Person)-[:friendsWith]->(friend)-[:purchased]->(o:Order)
WHERE p.name = 'Alice';
RETURN o
SQL (同等):
SELECT o.*
FROM Person AS p
JOIN Friends_With AS fw ON p.id = fw.person_id
JOIN Person AS friend ON fw.friend_id = friend.id
JOIN Purchased AS pur ON friend.id = pur.person_id
JOIN "Order" AS o ON pur.order_id = o.id
WHERE p.name = 'Alice';
注
GQL は、グラフ データベース用の ISO 標準化クエリ言語です。 これは、グラフ構造化データの効率的なクエリと操作のために設計されています。 SQL を監督する同じ国際的な作業グループが、それを開発しています。
パフォーマンスへの影響
グラフ データベースは、多くのエッジまたは不明な深さを伴うクエリ (特にディープ リンク分析や再帰クエリの場合) のリレーショナル システムよりも優れたパフォーマンスを発揮できます。 リレーショナル データベースは、数十年にわたる最適化により、セット指向の操作と集計に優れています。
スケーリングに関する考慮事項
- リレーショナル データベース: 通常、垂直方向 (より大きなマシン) にスケーリングし、シャーディングとレプリケーションを通じて水平方向にスケーリングできます。 高度に接続されたスキーマのシャーディングは複雑であり、ネットワーク間のオーバーヘッドが発生する可能性があります。
- グラフ データベース: 垂直方向と水平方向にスケーリングします。 分散グラフ データベースはマシン間でグラフをパーティション分割し、効率的なトラバーサルのために関連ノードを一緒に保持することを目的とします。
それぞれをいつ使用するか
次の場合は、グラフ データベースを使用します。
- データは接続性が高く、リレーションシップが多い (ソーシャル ネットワーク、ナレッジ グラフ、推奨事項)。
- 不明または可変のホップ数を経由する必要があります。
- スキーマが進化しているか、半構造化されています。
- リレーションシップが中心となるドメインの直感的なモデリングが必要です。
リレーショナル データベースは、次の場合に使用します。
- データは主に表形式であるか、明確に定義された構造に適合します。
- クエリには、大量の集計または大規模なセット操作が含まれます。
- SQL に合わせた既存のツールまたは専門知識があります。
ハイブリッド アプローチ
多くのプロジェクトでは、コア トランザクション データ用のリレーショナル データベースと、特殊な分析またはネットワーク分析機能用のグラフ データベースという両方の種類のデータベースが使用されています。