1.1.2.2 プロパティ・グラフ・アーキテクチャのオプション
Oracle Databaseのプロパティ・グラフ機能を使用する場合は、次の2つのアーキテクチャ・オプションがあります。
どちらのオプションでも、プロパティ・グラフ問合せ言語(PGQL)を使用できます。
インメモリー・グラフ・サーバー(PGX) (3層)でのグラフ問合せおよび分析の実行
プロパティ・グラフをインメモリー・グラフ・サーバーにロードできます。このサーバーは、グラフ計算専用のアーキテクチャを備えています。このグラフでのすべての問合せおよび分析操作は、グラフ・サーバーのインメモリーで実行できます。このグラフは、リレーショナル表から直接作成することも、データベースにグラフを格納するプロパティ・グラフ・スキーマからロードすることもできます。メモリー内のグラフは変更(頂点とエッジの挿入、更新および削除、アルゴリズムの実行結果に対する新しいプロパティの作成)できます。グラフ・サーバーによって変更がリレーショナル表に書き戻されることはありません。
インメモリー・グラフ・サーバー(PGX)は通常、データベースとは別のサーバーにあり、スタンドアロンで実行することも、Oracle WebLogic ServerやApache Tomcatなどのコンテナで実行することもできます。この手法(プロパティ・グラフをインメモリー・グラフ・サーバーにロード)では、次の図に示すように3層アーキテクチャを使用します。
プロパティ・グラフのサイズ変更の推奨事項
カリキュレータGraph Size Estimatorを使用して、インメモリー・グラフ・サーバー(PGX)に必要なメモリーを計算できます。
たとえば、指定された入力についてカリキュレータによって推定されたメモリーを次の表に示します。
表1-1 Graph Size Estimator
頂点の数 | エッジの数 | 頂点ごとのプロパティ | エッジごとのプロパティ | 推定グラフ・サイズ |
---|---|---|---|---|
10M |
100M |
|
|
15 GB |
100M |
1B |
|
|
140 GB |
ノート:
- グラフをメモリーに読み込むには、それをメモリー内で表現するために必要なメモリーの量の最大2倍を要することがあります。したがって、PGXの実行に必要なメモリーを計算するときは、推定グラフ・サイズのメモリーの量を2倍にすることをお薦めします。
- CPUプロセッサ: 1千万個の頂点と1億個のエッジがあるグラフに推奨されるCPUプロセッサの数は2-4プロセッサで、コンピューティング負荷がより高いワークロードについては最大16プロセッサです。CPUプロセッサを増やすと、パフォーマンスが向上します。
Oracle Database (2層)へのグラフのロード
グラフをインメモリー・グラフ・サーバーにロードする必要がない場合は、別の手法を使用できます。リレーショナル表のデータからプロパティ・グラフを作成し、プロパティ・グラフ・スキーマ(VT$表およびGE$表)に格納します。その後、このグラフでPGQL問合せを実行できます。
データベースでサポートされていない分析アルゴリズムおよびPGQL問合せを実行するために、このグラフをメモリーにロードできます。グラフ内のデータから自動的に更新を定期的にフェッチしてデータの同期を維持するように、インメモリー・グラフ・サーバーを構成できます。
この手法では、次の図に示すように2層アーキテクチャを使用します。