12 クライアント・ツールのスタート・ガイド
複数のクライアント・ツールを使用して、グラフ・サーバー(PGX)とやり取りしたり、データベース内のグラフ・データを直接操作できます。
- 対話型グラフ・シェルのCLI
Oracle Graphサーバー・パッケージおよびクライアント・パッケージの両方に、この製品のJava APIおよびPython APIをローカルまたはリモート・コンピュータで操作するための、対話型のコマンドライン・アプリケーションが含まれています。 - Autonomous Databaseグラフ・クライアントの使用
AdbGraphClient
APIを使用して、Oracle Graph Clientを使用するかJavaまたはPythonアプリケーションを介して、Autonomous DatabaseのGraph Studio機能にプログラムでアクセスできます。 - グラフ・ビジュアライゼーションWebクライアントの使用
グラフ・ビジュアライゼーション・アプリケーションを使用して、グラフ・サーバー(PGX)にロードされたグラフまたはデータベースに格納されているグラフを視覚化できます。 - Jupyter Notebookインタフェースの使用
Jupyter Notebookインタフェースを使用して、Pythonを介してPGQLプロパティ・グラフを作成、ロードおよび問合せできます。 - PGQLプロパティ・グラフを問い合せるための追加のクライアント・ツール
データベースでPGQLプロパティ・グラフを使用する場合、サポートされている他のクライアント・ツールを使用できます。
関連トピック
親トピック: PGQLプロパティ・グラフ
12.1 対話型グラフ・シェルのCLI
Oracle Graphサーバー・パッケージおよびクライアント・パッケージの両方に、この製品のJava APIおよびPython APIをローカルまたはリモート・コンピュータで操作するための、対話型のコマンドライン・アプリケーションが含まれています。
この対話型グラフ・シェルでは、ユーザーからのコマンドライン入力を動的に解釈し、基になる機能を呼び出してこれらを実行し、結果の印刷や結果の追加処理を行うことができます。グラフ・シェルには、JavaまたはPythonアプリケーションを作成することなくグラフ機能を実行する軽量かつ対話型の方法が用意されています。
グラフ・シェルは、特に次のいずれかの操作を行う場合に役立ちます。
- 大規模なアプリケーションを作成するのではなく、特定のデータ・セットに対して個別グラフ分析をすばやく実行する
- 開始の例の実行およびサンプル・データ・セットのデモの作成
- データ・セットの様々なグラフ分析を対話形式で試行して、データ・セットを探索する
- 製品の使用方法を学習し、組込みアルゴリズムに適している処理を理解する
- カスタム・グラフ分析アルゴリズムを開発およびテストする
Java API用のグラフ・シェル(OPG4J)は、Javaシェル・ツール(JShell)の上に実装されます。そのため、タブ補完、履歴、逆検索、セミコロン推論、スクリプト・ファイル、内部変数など、JShellが提供するすべての機能を継承します。Python API用のグラフ・シェル (OPG4Py)では、IPythonがインストールされている場合は、IPythonが使用されます。
次の項では、グラフ・シェルのCLIの起動方法について詳しく説明します。
関連項目:
- Java APIの詳細は、Java APIリファレンスを参照してください
- Python APIの詳細は、Python APIリファレンスを参照してください
親トピック: クライアント・ツールのスタート・ガイド
12.1.1 OPG4Jシェルの起動
OPG4Jシェルの起動
Javaシェルの実行可能ファイルは、グラフ・サーバー(PGX)のインストール後は/opt/oracle/graph/bin
にあり、Javaクライアントのインストール後は<CLIENT_INSTALL_DIR>/bin
にあります。
OPG4JシェルではJShellが使用されます。つまり、このシェルはJava 11以降で実行する必要があります。前提条件の詳細は、「グラフ・サーバーおよびクライアント・ダウンロードからのJavaクライアントのインストール」を参照してください。その後、端末で次のように入力することでOPG4Jシェルを起動できます。
cd /opt/oracle/graph
./bin/opg4j
シェルが起動すると、次のコマンドライン・プロンプトが表示されます。
For an introduction type: /help intro
Oracle Graph Server Shell 23.3.0
Variables instance, session, and analyst ready to use.
opg4j>
グラフ・サーバー機能をライブラリとして使用したアプリケーションの開発で説明するように、デフォルトでは、OPG4JシェルによりローカルPGXインスタンスが作成されて、シェルと同じJVMでグラフ関数が実行されます。
コマンドライン・オプション
使用可能なコマンドライン・オプションのリストを表示するには、--help
をopg4j
コマンドに追加します。
./bin/opg4j --help
グラフ・サーバー(PGX)に接続せずにopg4jシェルを起動するには、次のように--no_connect
オプションを使用します。
./bin/opg4j --no_connect
リモート・モードでのOPG4Jシェルの起動
OPG4Jシェルでは、別のJVM (別のマシン上など)で実行されているグラフ・サーバー(PGX)インスタンスに接続できます。OPG4Jシェルをリモート・モードで起動するには、次のように--base_url
パラメータを指定する必要があります。./bin/opg4j --base_url https://<host>:7007 --username <graphuser>
<host>
: サーバー・ホスト<graphuser>
: データベース・ユーザーデータベース・パスワードの入力を要求されます。
ノート:
グラフ・サーバー(PGX)は、デフォルトでポート7007
でリスニングします。必要に応じて、サーバー構成ファイル(server.conf
)内のポート値を変更して、別のポートでリスニングするようにグラフ・サーバーを構成できます。詳細は、グラフ・サーバー(PGX)の構成を参照してください。
シェルが起動すると、次のコマンドライン・プロンプトが表示されます。
Oracle Graph Server Shell 23.3.0
Variables instance, session, and analyst ready to use.
opg4j>
Javaの複数のバージョンがインストールされている場合、シェルを起動する前にJAVA_HOME変数を設定することにより、インストールを簡単に切り替えることができます。たとえば:
export JAVA_HOME=/usr/lib/jvm/java-11-oracle
スクリプトのバッチ実行
OPG4Jシェルでは、スクリプトへのパスをopg4j
コマンドに渡すことで、スクリプトを実行できます。たとえば:
./bin/opg4j /path/to/script.jsh
事前定義済関数
OPG4Jシェルには次のユーティリティ関数があります。
println(String)
: System.out.println(String)の簡略表現。loglevel(String loggerName, String levelName)
: ログレベルを設定する便利な機能。
loglevel
関数では、ロガーに対してログ・レベルを設定できます。たとえば、loglevel("ROOT", "INFO")
はルート・ロガーのレベルをINFO
に設定します。これにより、INFO
および上位のログ(WARN
、ERROR
、FATAL
)がすべてコンソールに出力されます。
スクリプトの引数
グラフ・サーバー(PGX)によって実行されるスクリプトにパラメータを指定することもできます。たとえば:
./bin/opg4j /path/to/script.jsh script-arg-1 script-arg-2
スクリプト/path/to/script.jsh
は、arguments.scriptArgs
変数を介して引数にアクセスできます。引数は文字列の配列(String[]
)として指定します。たとえば:
Arrays.stream(arguments.scriptArgs).forEach((a) ->
System.out.println(a));
前述の例では、出力が次のように出力されます:
script-arg-1
script-arg-2
対話方式モードの維持
デフォルトでは、OPG4Jシェルは、実行が終了すると終了します。スクリプトが正常に終了した後も対話モードのままにするには、--keep_running
フラグをシェルに渡します。たとえば:
./bin/opg4j -b https://myserver.com:7007/ /path/to/script.jsh --keep_running
親トピック: 対話型グラフ・シェルのCLI
12.1.2 OPG4Pyシェルの起動
OPG4Pyシェルの起動
OPG4Pyシェルの実行可能ファイルは、グラフ・サーバー(PGX)のインストール後は/opt/oracle/graph/bin
にあり、Pythonクライアントのインストール後は<CLIENT_INSTALL_DIR>/bin
にあります。
OPG4Pyシェルを起動する前に、Pythonクライアントのインストールの前提条件で説明されている前提条件をシステムが満たしていることを確認します。その後、端末で次のように入力することでOPG4Pyシェルを起動できます。
cd /opt/oracle/graph
./bin/opg4py
シェルが起動すると、次のコマンドライン・プロンプトが表示されます。
Oracle Graph Server Shell 23.3.0
>>>
IPythonがインストールされている場合は、次のプロンプトが表示されます。
In [1]:
グラフ・サーバー機能をライブラリとして使用したアプリケーションの開発で説明するように、デフォルトでは、OPG4PyシェルによりローカルPGXインスタンスが作成されて、シェルと同じJVMでグラフ関数が実行されます。
コマンドライン・オプション
使用可能なコマンドライン・オプションのリストを表示するには、--help
をopg4py
コマンドに追加します。
./bin/opg4py --help
グラフ・サーバー(PGX)に接続せずにPyPGXシェルを起動するには、次のように--no_connect
オプションを使用します。
./bin/opg4py --no_connect
リモート・モードでのOPG4Pyシェルの起動
OPG4Pyシェルでは、別のJVM (別のマシン上など)で実行されているグラフ・サーバー(PGX)インスタンスに接続できます。OPG4Pyシェルをリモート・モードで起動するには、次のように--base_url
パラメータを指定する必要があります。./bin/opg4py --base_url https://<host>:7007 --username <graphuser>
<host>
: サーバー・ホスト<graphuser>
: データベース・ユーザーデータベース・パスワードの入力を要求されます。
ノート:
グラフ・サーバー(PGX)は、デフォルトでポート7007
でリスニングします。必要に応じて、サーバー構成ファイル(server.conf
)内のポート値を変更して、別のポートでリスニングするようにグラフ・サーバーを構成できます。詳細は、グラフ・サーバー(PGX)の構成を参照してください。
OPG4Pyシェルが起動すると、次のコマンドライン・プロンプトが表示されます。
Oracle Graph Server Shell 23.3.0
>>>
親トピック: 対話型グラフ・シェルのCLI
12.2 Autonomous Databaseグラフ・クライアントの使用
AdbGraphClient
APIを使用して、Oracle Graph Clientを使用するかJavaまたはPythonアプリケーションを介して、Autonomous DatabaseのGraph Studio機能にプログラムでアクセスできます。
このAPIには、次の機能があります。
- Autonomous Databaseで認証する
- Graph Studio環境を管理する
- グラフ・サーバー(PGX)に対してグラフ問合せおよびアルゴリズムを実行する
- Oracle Databaseに対してグラフ問合せを直接実行する
AdbGraphClient
APIを使用するには、Oracle Graph Clientインストールへのアクセス権が必要です。APIは、Oracle Graph Server and Clientディストリビューションの一部であるOracle Graph Clientライブラリによって提供されます。JavaまたはPython用のグラフ・クライアント・シェルCLIのインストール方法および開始方法の詳細は、Oracle Graph Clientのインストールを参照してください。
AdbGraphClient
APIを使用してGraph Studioへの接続を確立し、割り当てられたメモリーで環境を起動し、PGQLプロパティ・グラフをメモリーにロードし、PGQL問合せを実行し、グラフに対してアルゴリズムを実行する方法を示しています。
12.2.1 Autonomous Databaseグラフ・クライアントを使用するための前提条件
AdbGraphClient
APIの使用を開始するための前提条件として、次を実行する必要があります。
- Oracle Autonomous DatabaseでAutonomous Databaseインスタンスをプロビジョニングする。
- 接続するために、次のテナンシ詳細を取得する。
キー 説明 詳細情報 tenancy OCID テナンシのOracle Cloud ID (OCID) テナンシのOCIDを確認するには、Oracle Cloud InfrastructureドキュメントのテナンシのOCIDを確認する場所に関する項を参照してください。 database Autonomous Databaseインスタンスのデータベース名 - OCIコンソールを開き、左側のナビゲーション・メニューで「Oracle Database」をクリックします。
- 「Autonomous Database」をクリックし、「Autonomous Database」ページにナビゲートします。
- 「表示名」列で必要なAutonomous Databaseを選択し、「Autonomous Databaseの詳細」ページにナビゲートします。
- 「Autonomous Database情報」タブの「一般情報」下の「データベース名」を書き留めます。
database OCID Autonomous DatabaseのOracle Cloud ID (OCID) - OCIコンソールを開き、左側のナビゲーション・メニューで「Oracle Database」をクリックします。
- 「Autonomous Database」をクリックし、「Autonomous Database」ページにナビゲートします。
- 「表示名」列で必要なAutonomous Databaseを選択し、「Autonomous Databaseの詳細」ページにナビゲートします。
- 「Autonomous Database情報」タブの「一般情報」下の「データベースOCID」を書き留めます。
username Graph Studioへのログインに使用される、グラフ対応のAutonomous Databaseユーザー名 詳細は、グラフ・ユーザーの作成を参照してください。 password グラフ・ユーザーのデータベース・パスワード グラフ・ユーザーのパスワードを忘れた場合は、ADMINユーザーとして「データベース・アクション」にログインすることで、グラフ・ユーザーのパスワードをいつでもリセットできます。詳細は、ユーザーの編集を参照してください。 endpoint Graph StudioのエンドポイントURL - Autonomous Databaseインスタンスを選択し、「Autonomous Databaseの詳細」ページにナビゲートします。
- 「ツール」タブをクリックします。
- 「Graph Studio」をクリックします。
- 「Graph Studio」ログイン画面を開く新しいタブのURLをコピーします。
- URLを編集して、
oraclecloudapps.com
の後の部分を削除し、エンドポイントURLを取得します。たとえば、エンドポイントURLのサンプル形式を次に示します。
https://<hostname_prefix>.adb.<region_identifier>.oraclecloudapps.com
- Graph Studioにアクセスし、PGビュー・グラフを作成する。
- Oracle Graph JavaまたはPythonクライアントをダウンロードしてインストールし、起動する。
12.3 グラフ・ビジュアライゼーションWebクライアントの使用
グラフ・ビジュアライゼーション・アプリケーションを使用して、グラフ・サーバー(PGX)にロードされたグラフまたはデータベースに格納されているグラフを視覚化できます。
インストール用のグラフ・ビジュアライゼーション・アプリケーションを実行するには、グラフ・ビジュアライゼーションWebクライアントの実行を参照してください。
関連トピック
親トピック: クライアント・ツールのスタート・ガイド
12.4 Jupyter Notebookインタフェースの使用
Jupyter Notebookインタフェースを使用して、Pythonを介してPGQLプロパティ・グラフを作成、ロードおよび問合せできます。
親トピック: クライアント・ツールのスタート・ガイド
12.5 PGQLプロパティ・グラフを問い合せるための追加のクライアント・ツール
データベースでPGQLプロパティ・グラフを操作する場合、サポートされている他のクライアント・ツールを使用できます。
- Oracle SQLclの使用
SQLclを使用して、データベースのグラフにアクセスできます。 - PGQLプロパティ・グラフでのSQL Developerの使用
SQL Developer 23.1を使用して「接続」ナビゲータで「プロパティ・グラフ」ノード下の「PGQLプロパティ・グラフ」を展開すると、データベース・スキーマに存在するすべてのPGQLプロパティ・グラフを表示できます。
親トピック: クライアント・ツールのスタート・ガイド
12.5.1 Oracle SQLclの使用
SQLclを使用して、データベースのグラフにアクセスできます。
Oracle Graph Server and Clientで使用可能なプラグインを使用して、SQLclでグラフに対してPGQL問合せを実行できます。詳細は、Oracle SQLclユーザーズ・ガイドのSQLclのPGQLプラグインを参照してください。
この項の例は、SQLclでのグラフに対するPGQL問合せの実行を開始する際に役立ちます。前提条件として、この例のステップを実行するには、グラフ・サーバー・インストールで提供されるサンプル・データを使用して、データベース・スキーマで銀行グラフ・データを設定する必要があります。詳細は、グラフ分析のサンプル・データの使用を参照してください。
次の例では、PGQL文CREATE PROPERTY GRAPH
を使用してPGQLプロパティ・グラフを作成し、このグラフに対してPGQL問合せを実行し、最後にSQLclを使用してグラフを削除します。
- データベース・スキーマ資格証明を使用してSQLclを起動します。次のコマンドでは、graphuserがSQLclへの接続に使用されるデータベース・ユーザーです。
sql graphuser/<password_for_graphuser>@<tns_alias> SQLcl: Release 21.2 Production on Sun Jan 30 04:30:09 2022 Copyright (c) 1982, 2022, Oracle. All rights reserved. Connected to: Oracle Database 21c Enterprise Edition Release 21.0.0.0.0 - Production Version 21.3.0.0.0
- 次のように、PGQLモードを有効にします。
SQL> pgql auto on; PGQL Auto enabled for schema=[null], graph=[null], execute=[true], translate=[false]
前述のPGQLコマンドでは引数が使用されないことに注意してください。
- 銀行グラフ・データ表でPGQLプロパティ・グラフを作成します。
PGQL> CREATE PROPERTY GRAPH bank_graph 2 VERTEX TABLES ( 3 bank_accounts 4 LABEL ACCOUNTS 5 PROPERTIES (ID, NAME) 6 ) 7 EDGE TABLES ( 8 bank_txns 9 SOURCE KEY (from_acct_id) REFERENCES bank_accounts (id) 10 DESTINATION KEY (to_acct_id) REFERENCES bank_accounts (id) 11 LABEL TRANSFERS 12 PROPERTIES (FROM_ACCT_ID, TO_ACCT_ID, AMOUNT, DESCRIPTION) 13* ) OPTIONS(PG_VIEW); Graph created
- PGQLモードを有効にするときに
graph
引数を使用して、bank_graph
をデフォルト・グラフとして設定します。PGQL> pgql auto on graph bank_graph; PGQL Auto enabled for schema=[null], graph=[BANK_GRAPH], execute=[true], translate=[false]
- デフォルトのグラフに対してPGQL問合せを実行します。たとえば、次のPGQL問合せは、次に示すように頂点の合計数を取得します。
PGQL> SELECT COUNT(*) AS num_vertices FROM MATCH(n); NUM_VERTICES _______________ 1000
前述の問合せでは、
MATCH
句の一部としてON
句を使用してグラフ名を指定していないことに注意してください。 - 別のスキーマ・ユーザーとしてSQLclに再接続します。
PGQL> conn system/<password_for_system>@<tns_alias>; Connected.
-
schema
引数を使用してPGQLモードを有効にし、グラフの作成に使用するデフォルト・スキーマを設定します。また、graph
引数を使用して、bank_graph
をデフォルト・グラフとして設定します。PGQL> pgql auto on schema graphuser graph bank_graph; PGQL Auto enabled for schema=[graphuser], graph=[BANK_GRAPH], execute=[true], translate=[false]
- PGQL問合せを実行して、次のように、グラフ上のすべてのエッジ・プロパティを取得します。
PGQL> SELECT e.* FROM MATCH (n:accounts) -[e:transfers]-> (m:accounts) LIMIT 10; AMOUNT DESCRIPTION FROM_ACCT_ID TO_ACCT_ID _________ ______________ _______________ _____________ 1000 transfer 178 921 1000 transfer 178 462 1000 transfer 179 688 1000 transfer 179 166 1000 transfer 179 397 1000 transfer 179 384 1000 transfer 179 900 1000 transfer 180 855 1000 transfer 180 984 1000 transfer 180 352 10 rows selected.
これにより、デフォルトのスキーマを設定し、SQLclのデフォルト・グラフに対してPGQL問合せを実行できます。
- 最後に、必要なグラフ問合せを実行した後にグラフを削除します。
PGQL> DROP PROPERTY GRAPH bank_graph; Graph dropped
また、詳細は、SQLclでのPGQL問合せの実行を参照してください。