6 グラフ・ビジュアライゼーション・アプリケーション

グラフ・ビジュアライゼーション・ツールにより、プロパティ・グラフの対話型の探索や視覚化が可能になります。また、データベースに保存されているグラフを視覚化することもできます。

6.1 グラフ・ビジュアライゼーション・アプリケーションについて

グラフ・ビジュアライゼーション・アプリケーションは、インメモリー・グラフ・サーバー (PGX)と連携して動作する単一ページのWebアプリケーションです。

インメモリー・グラフ分析サーバーは、埋込みモードでデプロイしたり、Apache TomcatまたはOracle Weblogic Serverにデプロイできます。グラフ・ビジュアライゼーション・アプリケーションは、PGQL問合せを入力として受け取り、結果を視覚的にレンダリングします。クライアント側の探索およびビジュアライゼーション機能の豊富なセットにより、グラフ・データの新しいインサイトを明らかにすることができます。

グラフ・ビジュアライゼーション・アプリケーションは、インメモリー分析サーバーと連携して動作します。インメモリー分析サーバーの起動時に事前ロードされたか、クライアント・アプリケーションによって実行時にロードされ、graph.publish() APIを介して使用可能になった、インメモリー分析サーバーにロードされたグラフを視覚化できます。

6.2 グラフ・ビジュアライゼーション・アプリケーションの動作の仕組み

グラフ・ビジュアライゼーション・アプリケーションは、独自のWebインターフェイスとRESTエンドポイントを公開し、インメモリー・グラフ・サーバー(PGX)またはOracle Database (RDBMS上のPGQL)に対してPGQL問合せを実行できます。

デフォルトでPGXを使用するため、機能するには実行中のPGXサーバーが必要です。または、RDBMS上のPGQLを介してデータベースと直接通信するようにグラフ・ビジュアライゼーション・アプリケーションを構成することもできます。グラフ・ビジュアライゼーション・アプリケーションには、グラフを作成するためのUIがなく、視覚化できるのはPGXまたはOracle Databaseにすでにロードされているグラフのみです。グラフ・ビジュアライゼーション・アプリケーションを使用する方法は2つあります。

  • スタンドアロン・モード

    グラフ・サーバーのrpmファイルをインストールすると、PGXサーバーを起動したときにグラフ・ビジュアライゼーション・アプリケーションがデフォルトで起動し、https://localhost:7007/uiでアクセスできます。

  • カスタムWebコンテナ・モード

    Webアプリケーション・アーカイブ(WAR)ファイルを含むGraph Webappsパッケージをダウンロードできます。このファイルは、Oracle Weblogic 12.2 (またはそれ以降)あるいはApache Tomcat (9.x以降)のWebコンテナにデプロイできます。

6.3 グラフ・ビジュアライゼーション・アプリケーションのデプロイ

このセクションでは、グラフ・ビジュアライゼーション・アプリケーションをデプロイする様々な方法について説明します。

6.3.1 グラフ・ビジュアライゼーション・アプリケーションをデプロイする方法

このセクションの手順を使用して、グラフ・ビジュアライゼーション・アプリケーションをデプロイできます。

PGQL実行モードを変更するには、graphviz-<version>-pgviz<graphviz-version>.warという名前のグラフ・ビジュアライゼーション・アプリケーションWARファイル内のWEB-INF/web.xmlファイルを変更します。

RPMファイルをインストールした場合、WARファイルは/opt/oracle/graph/graphvizディレクトリ内にあります。

Oracle Graph Webappsパッケージをダウンロードした場合、WARファイルはそのwebappsパッケージのrootディレクトリ内にあります。

  • WARファイルを抽出し、ファイルの内容を直接変更するには、次のコマンドを実行します。

    unzip graphviz-*.war -d /tmp/pgviz/

  • 任意のファイル・エディタを使用してweb.xmlディスクリプタを編集します。

    nano /tmp/pgviz/WEB-INF/web.xml

PGXデプロイメント(PGX上のPGQL)と通信するようにグラフ・ビジュアライゼーション・アプリケーションを構成するには

  1. graphviz.driver.classコンテキスト・パラメータを見つけます。必要に応じて、値をoracle.pgx.graphviz.driver.PgxDriverに設定します(これがデフォルト値です)。
    <context-param>
        <param-name>graphviz.driver.class</param-name>
        <param-value>oracle.pgx.graphviz.driver.PgxDriver</param-value>
    </context-param>
  2. pgx.base_urlコンテキスト・パラメータを見つけます。セキュアなPGXデプロイメント・エンドポイントに一致するように値を変更します。正しいポートとともに、正しいFQDNまたはIPアドレスを使用します。次に例を示します。
    <context-param>
        <param-name>pgx.base_url</param-name>
        <param-value>https://myhost:7007</param-value>
    </context-param>

    ノート:

    スタンドアロン・モード(RPMインストール)でグラフ・ビジュアライゼーションを使用する場合、このステップは効果がありません。PGXベースURLは、ローカルPGXサーバーを指すように自動的に設定されます。

グラフ・ビジュアライゼーション・アプリケーションがPGXでPGQLを使用している場合、アプリケーションはデフォルトでOracle Databaseをアイデンティティ・マネージャとして使用します。つまり、既存のOracle Database資格証明(ユーザー名とパスワード)を使用してアプリケーションにログインすると、グラフ・サーバーで実行できるアクションは、Oracle Databaseで付与されているロールによって決まります。

Oracle Database (RDBMS上のPGQL)と通信するようにグラフ・ビジュアライゼーション・アプリケーションを構成するには

  1. graphviz.driver.classコンテキスト・パラメータを見つけます。必要に応じて、値をoracle.pg.rdbms.PgqlDriverに設定します。
    <context-param>
        <param-name>graphviz.driver.class</param-name>
        <param-value>oracle.pg.rdbms.PgqlDriver</param-value>
    </context-param>
  2. Oracle DatabaseのJDBC URLを参照するコンテキスト・パラメータgraphviz.driver.rdbms.jdbc_urlを設定します。次に例を示します。
    <context-param>
        <param-name>graphviz.driver.rdbms.jdbc_url</param-name>
        <param-value>jdbc:oracle:thin:@myhost:1521/myService</param-value>
    </context-param>

    ノート:

    前述のURLを、ユーザー認証に使用するJDBC URLに置き換えます。

グラフ・ビジュアライゼーション・アプリケーションがRDBMSでPGQLを使用している場合は、カスタム・ログイン・ページが表示され、ユーザーはステップ2で説明したOracle Databaseセットを使用して、ユーザー認証にOracle Database資格証明を使用できます。ログインすると、Oracle Databaseでの表示が許可されているグラフを表示できます。

WARファイルを再びパッケージします

cd /tmp/pgviz/
jar -cvf graphviz-<version>-pgviz<graphviz-version>.war *

スタンドアロン・デプロイメント・モードの場合は、更新されたWARファイルを/opt/oracle/graph/graphvizにコピーして戻し、通常どおりにサーバーを起動します。

6.3.2 Oracle WebLogic Serverでのグラフ・ビジュアライゼーション・アプリケーションのデプロイ

次の手順は、Oracle WebLogic Server 12.2.1.3にグラフ・ビジュアライゼーション・アプリケーションをデプロイするためのものです。必要に応じて、異なるバージョンのWeblogic Serverに対してわずかな変更を加える必要がある場合があります。

  1. WebLogic Serverを起動します。
    # Start Server
    cd $MW_HOME/user_projects/domains/base_domain
    ./bin/startWebLogic.sh
  2. トンネリングを有効にします。

    グラフ・ビジュアライゼーション・アプリケーションWARファイルをHTTP経由でデプロイできるようにするには、最初にトンネリングを有効にする必要があります。WebLogic管理コンソール(デフォルトではhttp://localhost:7001/console)に移動します。「環境」(左パネル)→「サーバー」(左パネル)を選択します。グラフ・ビジュアライゼーションを実行するサーバーをクリックします(メイン・パネル)。選択し(上部タブ・バー)、「トンネリングの有効化」を選択して「保存」をクリックします。

  3. WARファイルをデプロイします。

    再パッケージ化したWARファイルをWebLogic Serverにデプロイするには、次のコマンドを使用して、<<...>>マーカーを、インストールに一致する値に置き換えます。

    cd $MW_HOME/user_projects/domains/base_domain
    source bin/setDomainEnv.sh
    java weblogic.Deployer -adminurl <<admin-console-url>> -username <<admin-user>> -password <<admin-password>> -deploy -upload <<path/to>>/graphviz-<<version>>-pgviz<<graphviz-version>>.war

    アンデプロイするには、次のコマンドを使用できます。

    java weblogic.Deployer -adminurl <<admin-console-url>> -username <<admin-user>> -password <<admin-password>> -name <<path/to>>/graphviz-<<version>>-pgviz<<graphviz-version>>.war -undeploy

    デプロイメントをテストするには、ブラウザを使用してhttps://<<fqdn-ip>>:<<port>>/uiにナビゲートします。

    ブラウザによって、資格証明(ユーザー名とパスワード)の入力を求められます。ログインすると、グラフ・ビジュアライゼーション・ユーザー・インタフェース(UI)が表示され、PGXからグラフが取得されます。

6.4 GraphVizの使用

GraphVizアプリケーションの主なエントリ・ポイントは、問合せエディタおよびグラフ・リストです。

GraphVizを起動すると、PGXにロードされたグラフがグラフ・リストに移入されます。グラフに対して問合せを実行するには、そのグラフを選択します。問合せでは、視覚化できるPGQL問合せを作成できます。(PGQLは、GraphVizでサポートされているSQLのような問合せ言語です。)

問合せの準備ができて、目的のグラフを選択したら、実行アイコンをクリックして問合せを実行します。次の図は、グラフ内の頂点から他の頂点へのすべての有向エッジを識別する問合せのビジュアライゼーションを示しています。

図6-1 問合せの視覚化

図6-1の説明を次に示します
「図6-1 問合せの視覚化」の説明

問合せが成功すると、ノードとその接続を含むグラフのビジュアライゼーションが表示されます。ノードまたは接続を右クリックすると、ツールチップ情報が表示され、ノードをドラッグして移動できます。

6.4.1 GraphVizのモード

右のボタンを使用すると、「グラフの操作」と「ズーム/移動」の2つのモードを切り替えることができます。

  • 「グラフの操作」モードでは、ビジュアライゼーションを変更するアクションを実行できます。次のようなアクションがあります。
    • 「削除」は、選択した頂点をビジュアライゼーションから削除します。ツールチップから実行することもできます。
    • 「グループ」は、複数の頂点を選択し、それらを1つの頂点にまとめます。
    • 「グループ解除」は、まとめた頂点のグループを選択し、それらのグループを解除します。
    • 「展開」は、選択した頂点の構成可能な隣接範囲(ホップ)の数を取得します。ツールチップから実行することもできます。
    • 「展開」などの「フォーカス」は、隣接範囲の構成可能な数を取得しますが、他のすべての頂点の削除も行います。ツールチップから実行することもできます。
    • 「元に戻す」は、最後の操作を元に戻します。
    • 「再実行」は、最後の操作をやり直します。
    • 「リセット」は、問合せの後にビジュアライゼーションを元の状態にリセットします。
  • 「ズーム/移動」モードでは、ズーム・インおよびズーム・アウトしたり、ビジュアライゼーションの別の部分に移動できます。「中央にパン」ボタンは、ズームをリセットし、ビューを元のビューに戻します。

「固定」モードと呼ばれる追加モードを使用すると、ノードのドラッグ操作を取り消すことができます。

6.4.2 GraphVizの設定

「設定」歯車アイコンをクリックして、GraphViz設定ウィンドウを表示できます。

設定ウィンドウでは、ビジュアライゼーションの一部のパラメータを変更でき、「一般」、「ビジュアライゼーション」および「強調表示」のタブがあります。次の図は、このウィンドウで「ビジュアライゼーション」タブが選択された状態を示しています。

図6-2 GraphVizの設定ウィンドウ

図6-2の説明を次に示します
「図6-2 GraphVizの設定ウィンドウ」の説明

「一般」タブには次が含まれています。

  • ホップ数: 拡張操作およびフォーカス操作の構成可能なホップ数。
  • ラベルの切捨て: 最大長を超える場合は、ラベルを切り捨てます。
  • 表示ラベル最大長: 切捨て前の最大長。
  • ホバー時にラベルを表示: カーソルを合せたときにラベルを表示するかどうかを制御します。
  • グラフの凡例の表示: 凡例を表示するかどうかを制御します。

「ビジュアライゼーション」タブには次が含まれています。

  • テーマ: 明るいモードまたは暗いモードを選択します。
  • 辺スタイル: 直線エッジまたは曲線エッジを選択します。
  • 辺マーカー: 矢印を選択するか、またはエッジ・マーカーを選択しません。これは有向エッジにのみ適用されます。
  • 類似辺: 保持または収集を選択します。
  • ページ・サイズ: 1ページごとに表示される頂点およびエッジの数を指定します。
  • レイアウト: 異なるレイアウト(ランダム、グリッド、円、同心、...)の中から選択します。
  • 頂点ラベル: 頂点ラベルとして使用するプロパティを選択します。
  • 頂点ラベルの方向: 頂点ラベルの相対位置を選択します。
  • 辺ラベル: エッジ・ラベルとして使用するプロパティを選択します。

「強調表示」タブには、エッジや頂点の外観を変更できるカスタマイズ・オプションが含まれています。強調表示は、単一または複数の要素上の条件(フィルタ)に基づいて適用できます。次の図に、頂点の条件(country = United States)と視覚的な強調表示オプションを示します。

図6-3 頂点の強調表示オプション

図6-3の説明を次に示します
「図6-3 頂点の強調表示オプション」の説明

強調表示のフィルタには、要素のプロパティに関する複数の条件を含めることができます。次の条件がサポートされています。

  • = (等しい)
  • < (より小さい)
  • <=(以下)
  • > (より大きい)
  • >=(以上)
  • != (等しくない)
  • ~ (フィルタは正規表現)
  • * (任意: ワイルドカードと同様に、任意のものと一致)

視覚的な強調表示のカスタマイズ・オプションは次のとおりです。

  • エッジ:
    • ラベル
    • スタイル
    • アニメーション
  • 頂点:
    • サイズ
    • アイコン
    • ラベル
    • イメージ
    • アニメーション

メイン・ウィンドウの「保存」および「インポート」ボタンをクリックすると、強調表示オプションをエクスポートおよびインポートできます。「保存」では、強調表示オプションを保持でき、「ロード」では、前に保存した強調表示オプションを適用できます。

「保存」をクリックすると、強調表示構成を持つJSONオブジェクトを含むファイルが保存されます。後でそのファイルをロードして、保存したセッションの強調表示を復元できます。

6.4.3 ライブ検索の使用

ライブ検索では、表示されたグラフを検索し、各アイテムにライブのファジー検索スコアを追加できます。これにより、検索結果をすぐにグラフで視覚的に示す強調表示を作成できます。

問合せを実行してグラフが表示された場合は、設定ダイアログにライブ検索を追加できます。「全般」タブの下部に、次のオプションが表示されます。

  • ライブ検索の有効: ライブ検索機能を有効にし、検索入力をビジュアライゼーションに追加して、検索をさらにカスタマイズできるようにします。
  • 検索範囲の有効化: 「頂点」、「辺」、またはその両方のプロパティを検索するかどうかを選択できます。
  • 検索するプロパティ: 「検索範囲の有効化」で選択した内容に基づいて、検索する1つ以上のプロパティを設定できます。たとえば、辺の検索を無効にしても辺からのプロパティを選択していた場合、辺の検索を再度有効にすると、プロパティが保存されて追加されます。(これは頂点に対しても機能します)。
  • 詳細設定: 検索をさらに詳細に調整できます。それぞれの拡張オプションは、コンテキスト・ヘルプとともにドキュメント化されており、有効にすると表示されます。
    • 場所: テキスト内でパターンが見つかると予想されるおおよその場所を決定します。
    • 距離: あいまいな場所(「場所」で指定)に対する一致の距離を決定します。あいまいな場所から一定文字数離れた完全文字一致は、スコアが完全な不一致となります。距離0では、指定した正確な場所に一致が存在する必要があり、距離1000では、しきい値0.8を使用した場合にその場所から800文字以内に完全一致が見つかる必要があります。
    • パターン最大長: パターンの最大長。パターン(つまり、検索問合せ)が長いほど、検索操作はより集中的なものとなります。パターンがこの値を超えると、エラーが発生します。
    • 最小文字一致: パターンの最小長。パターンの長さがこの値を下回ると、エラーが発生します。

検索が有効になっている場合、入力はグラフ・ビジュアライゼーション・コンポーネントの左上に表示されます。入力を開始すると、設定と検索の一致に基づいて、すべての頂点または辺にスコアが追加されます。

結果を視覚的に確認できるようにするには、補間をライブ検索のスコアに設定した強調表示と、必要な視覚的変更に基づく別の設定を追加する必要があります。

6.4.4 URLパラメータを使用したGraphVizの制御

ユーザー・インタフェースのフォーム・フィールドを使用するかわりに、URLパラメータを介してGraphVizの入力データを提供できます。

URLにパラメータを指定すると、GraphVizアプリケーションにより指定された問合せが自動的に実行され、画面に入力フォーム・フィールドが表示されなくなります。このため、結果のビジュアライゼーション出力のみが表示されます。この機能は、結果のグラフ・ビジュアライゼーションをiframeなどを使用して既存のアプリケーションに埋め込む場合に便利です。

次の表に、使用可能なURLパラメータを示します。

表6-1 使用可能なURLパラメータ

パラメータ名 値(URLエンコードが必要) オプションかどうか
グラフ グラフ名 string いいえ
parallelism 必要な並列度 number はい(デフォルトではサーバー側のデフォルトの並列度)
問合せ PQL問合せ string いいえ

次のURLは、PGQL問合せSELECT v, e MATCH (v) -[e]-> () LIMIT 10を並列度4のグラフmyGraphで視覚化する例を示しています。

https://myhost:7007/ui/?query=SELECT%20v%2C%20e%20MATCH%20%28v%29%20-%5Be%5D-%3E%20%28%29%20LIMIT%2010&graph=myGraph&parallelism=4