1.1.2.2 プロパティ・グラフ・アーキテクチャのオプション

Oracle Databaseのプロパティ・グラフ機能を使用する場合は、次の2つのアーキテクチャ・オプションがあります。

どちらのオプションでも、プロパティ・グラフ問合せ言語(PGQL)を使用できます。

インメモリー・グラフ・サーバー(PGX) (3層)でのグラフ問合せおよび分析の実行

プロパティ・グラフをインメモリー・グラフ・サーバーにロードできます。このサーバーは、グラフ計算専用のアーキテクチャを備えています。このグラフでのすべての問合せおよび分析操作は、グラフ・サーバーのインメモリーで実行できます。このグラフは、リレーショナル表から直接作成することも、データベースにグラフを格納するプロパティ・グラフ・スキーマからロードすることもできます。メモリー内のグラフは変更(頂点とエッジの挿入、更新および削除、アルゴリズムの実行結果に対する新しいプロパティの作成)できます。グラフ・サーバーによって変更がリレーショナル表に書き戻されることはありません。

インメモリー・グラフ・サーバー(PGX)は通常、データベースとは別のサーバーにあり、スタンドアロンで実行することも、Oracle WebLogic ServerやApache Tomcatなどのコンテナで実行することもできます。この手法(プロパティ・グラフをインメモリー・グラフ・サーバーにロード)では、次の図に示すように3層アーキテクチャを使用します。

図1-2 3層プロパティ・グラフ・アーキテクチャ

図1-2の説明が続きます。
「図1-2 3層プロパティ・グラフ・アーキテクチャ」の説明

プロパティ・グラフのサイズ変更の推奨事項

カリキュレータGraph Size Estimatorを使用して、インメモリー・グラフ・サーバー(PGX)に必要なメモリーを計算できます。

たとえば、指定された入力についてカリキュレータによって推定されたメモリーを次の表に示します。

表1-1 Graph Size Estimator

頂点の数 エッジの数 頂点ごとのプロパティ エッジごとのプロパティ 推定グラフ・サイズ
10M 100M
  • 4 - 整数型
  • 1 - 文字列型(15文字)
  • 4 - 整数型
  • 1 - 文字列型(15文字)
15 GB
100M 1B
  • 4 - 整数型
  • 1 - 文字列型(15文字)
  • 4 - 整数型
  • 1 - 文字列型(15文字)
140 GB

ノート:

  • グラフをメモリーに読み込むには、それをメモリー内で表現するために必要なメモリーの量の最大2倍を要することがあります。したがって、PGXの実行に必要なメモリーを計算するときは、推定グラフ・サイズのメモリーの量を2倍にすることをお薦めします。
  • CPUプロセッサ: 1千万個の頂点と1億個のエッジがあるグラフに推奨されるCPUプロセッサの数は2-4プロセッサで、コンピューティング負荷がより高いワークロードについては最大16プロセッサです。CPUプロセッサを増やすと、パフォーマンスが向上します。

Oracle Database (2層)へのグラフのロード

グラフをインメモリー・グラフ・サーバーにロードする必要がない場合は、別の手法を使用できます。リレーショナル表のデータからプロパティ・グラフを作成し、プロパティ・グラフ・スキーマ(VT$表およびGE$表)に格納します。その後、このグラフでPGQL問合せを実行できます。

データベースでサポートされていない分析アルゴリズムおよびPGQL問合せを実行するために、このグラフをメモリーにロードできます。グラフ内のデータから自動的に更新を定期的にフェッチしてデータの同期を維持するように、インメモリー・グラフ・サーバーを構成できます。

この手法では、次の図に示すように2層アーキテクチャを使用します。

図2-3 1層プロパティ・グラフ・アーキテクチャ

図1-3の説明が続きます
「図2-3 1層プロパティ・グラフ・アーキテクチャ」の説明