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_PGQL); 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問合せの実行を参照してください。