すべてのプロダクト
Search
ドキュメントセンター

AnalyticDB:グラフ分析エンジン

最終更新日:May 21, 2025

AnalyticDB for PostgreSQL は、グラフ分析エンジン機能を拡張機能として統合しており、Cypher クエリ言語を使用してグラフデータに対して効率的なクエリと操作を実行できます。 グラフ分析エンジンは、高度に相互接続されたデータセットを処理でき、ソーシャルネットワーク、不正検出、レコメンデーションエンジン、ナレッジグラフ、ネットワーク/IT O&M などのシナリオで広く使用されています。 たとえば、典型的なソーシャルネットワークのグラフクエリ機能は、複雑な社会関係分析の問題を迅速に解決するのに役立ち、クエリの効率と柔軟性を大幅に向上させます。

グラフとは

グラフの基本的なコンポーネントは、ノードとエッジです。 ノードはオブジェクトまたはエンティティを表し、エッジはノード間の関係を表します。

上の図に示すように、左側のノードは、製品 A、会社 A、従業員 A、従業員 E、従業員 E の友人 A など、さまざまなエンティティを表しています。 エッジは、企業と従業員の雇用関係、人々の友人関係、製品と従業員の開発関係など、これらのノード間の関係を表すために使用されます。 プロパティは、ノードとエッジにアタッチして、情報の表現を豊かにすることができます。 たとえば、ノードに従業員番号を追加したり、エッジに雇用の開始時刻を記録したりできます。 プロパティを持つグラフは、プロパティグラフと呼ばれます。

グラフを使用すると、エンティティとその関係を抽象的かつ直感的に記述できます。 グラフモデルは、さまざまなノードタイプ、エッジタイプ、およびプロパティをサポートしており、高い表現能力を提供し、高度に相互接続されたデータシナリオの処理を支援します。

グラフ分析エンジンの要素

要素

説明

グラフ

グラフは、ノードとエッジで構成されるデータ構造です。ノードはエンティティを、エッジはエンティティ間の関係を表します。 グラフ構造の典型的な例は、ソーシャルネットワークです。 各人物はノードとして表すことができ、友人、家族、同僚など、個人間の関係はエッジによって表されます。

ノード

ノードは、データベース内のエンティティを表すグラフ分析エンジンのコア要素です。 各ノードには、エンティティ情報を格納するためのラベルを付けることができます。 たとえば、ソーシャルネットワークのノードは、ユーザー、会社、または組織を表し、ラベルには、ユーザーの年齢、会社の名前、組織の住所などの情報が含まれます。

エッジ

エッジはノードを接続するために使用され、重みや方向などのラベルを使用して関係の特性を記述できます。 たとえば、ソーシャルネットワークのエッジは、フォロー、友人、ファンなど、ユーザー間の関係を表します。 重みは、インタラクションの頻度など、関係の強さを反映します。 方向は、あるユーザーから別のユーザーへの「フォロー」関係の方向など、関係の方向性を示します。

ラベル

ラベルは、ノードまたはエッジを分類および識別するために使用されるプロパティの一種であり、データにセマンティック情報を提供し、クエリの効率と理解を向上させます。 たとえば、ソーシャルネットワークのノードラベルは、人物や会社などの異なるエンティティタイプを区別するために使用され、エッジラベルは、知り合いまたは勤務先などの関係の性質を記述します。

プロパティグラフ

グラフ内のノードまたはエッジにラベルが含まれている場合、このタイプのグラフ構造はプロパティグラフと呼ばれます。

パターン

Cypher 言語では、クエリはパターンを中心に展開されます。 パターンは、特定のグラフ構造に一致するように定義されます。 パターンに一致する構造が見つかった場合、または作成された場合、その結果をデータのさらなる処理または分析に使用できます。

利点

従来のリレーショナルデータベースのテーブルスキーマと比較して、AnalyticDB for PostgreSQLグラフ構造は、データモデリングと操作においてより柔軟です。 ノードとエッジを使用してデータを構築し、ノードをコアとしてデータアクセスと操作を実装します。 グラフデータに対する作成、読取、更新、削除操作をサポートしています。

たとえば、グラフデータ操作では、ノードは、すべての発信エッジを使用して、直接関連付けられている隣接ノードにすばやくアクセスできます。 この操作は、ノードとエッジに基づいて、エンティティ間の複雑な関係を直感的に表現できるため、高度に相互接続されたデータシナリオを効率的に処理できます。

違い

グラフ分析エンジン

リレーショナルデータベース

焦点

データエンティティとその関係に焦点を当てています。

データストレージの分類に焦点を当てています。 テーブルはスキーマで事前に定義する必要があります。

柔軟性

高い柔軟性を提供します。 データが大幅に変更された場合は、新しいノード、エッジ、およびプロパティを追加し、対応するタイプを割り当てるだけで更新を完了できます。

柔軟性が低いです。 データが大幅に変更された場合は、テーブルスキーマを調整するか、複数のテーブルを作成する必要があります。これにより、データスキーマの変更によるコストが高くなります。

直感性と複雑さ

グラフを使用して現実世界の関係を表現する方が、より直接的で自然です。 データ分析とクエリは、ノードとエッジのトポロジに基づいて直接実行できます。 必要なデータは、直感的な接続関係を使用してすばやく見つけることができるため、複雑な関係の処理が簡素化されます。

エンティティテーブルとリレーションシップテーブルを作成し、複雑なマッピングを使用してデータを関連付ける必要があります。 このプロセスには、高度な抽象的思考が必要です。