12.5 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を使用してグラフを削除します。

  1. データベース・スキーマ資格証明を使用して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
  2. 次のように、PGQLモードを有効にします。
    SQL> pgql auto on;
    
    PGQL Auto enabled for schema=[null], graph=[null], execute=[true], translate=[false]

    前述のPGQLコマンドでは引数が使用されないことに注意してください。

  3. 銀行グラフ・データ表で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
  4. PGQLモードを有効にするときにgraph引数を使用して、bank_graphをデフォルト・グラフとして設定します。
    PGQL> pgql auto on graph bank_graph;
    
    PGQL Auto enabled for schema=[null], graph=[BANK_GRAPH], execute=[true], translate=[false]
    
  5. デフォルトのグラフに対してPGQL問合せを実行します。たとえば、次のPGQL問合せは、次に示すように頂点の合計数を取得します。
    PGQL> SELECT COUNT(*) AS num_vertices FROM MATCH(n);
    
       NUM_VERTICES
    _______________
               1000
    

    前述の問合せでは、MATCH句の一部としてON句を使用してグラフ名を指定していないことに注意してください。

  6. 別のスキーマ・ユーザーとしてSQLclに再接続します。
    PGQL> conn system/<password_for_system>@<tns_alias>;
    Connected.
  7. 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]
  8. 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問合せを実行できます。

  9. 最後に、必要なグラフ問合せを実行した後にグラフを削除します。
    PGQL> DROP PROPERTY GRAPH bank_graph;
    
    Graph dropped
    

また、詳細は、SQLclでのPGQL問合せの実行を参照してください。

12.5.2 PGQLプロパティ・グラフを使用したSQL Developerの使用

SQL Developer 23.1を使用すると、「接続」ナビゲータの「プロパティ・グラフ」ノードの下にある「SQLプロパティ・グラフ」を展開して、データベース・スキーマに存在するすべてのPGQLプロパティ・グラフを表示できます。

図12-3 SQL DeveloperでのPGQLプロパティ・グラフ

図12-3の説明が続きます
「図12-3 SQL DeveloperでのPGQLプロパティ・グラフ」の説明

次のステップでは、SQL Developerを使用したPGQLプロパティ・グラフを操作するための例を示します。

  1. 「プロパティ・グラフ」ノードを右クリックし、「PGQLワークシートを開く」を選択します。
    PGQLワークシートが新しいタブで開き、次のアクションをサポートします。
    • 問合せの実行: 単一のPGQL問合せを実行する
    • スクリプトの実行: 複数のPGQL問合せを実行する
  2. PGQLワークシートでCREATE PROPERTY GRAPH文を実行して、PGQLプロパティ・グラフを作成します。たとえば:

    図12-4 PGQLプロパティ・グラフの作成

    図12-4の説明が続きます
    「図12-4 PGQLプロパティ・グラフの作成」の説明

    問合せ実行の結果は、エディタの下部ペインに表示されます。問合せが正常に実行されると、PGQLプロパティ・グラフ・オブジェクトを右クリックしてリフレッシュし、新しく作成されたグラフを「PGQLプロパティ・グラフ」に表示できます。

  3. 新しく作成されたグラフをクリックします。
    これにより、PGQLワークシートが新しいタブで開き、次のデフォルト問合せが表示されます。
    SELECT e, v, n FROM MATCH (v)-[e]-(n) ON <graph_name> LIMIT 100
  4. 1つ以上のPGQL問合せを実行します。
    たとえば、PGQL INSERTおよびSELECTの問合せの実行を次に示します。

    図12-5 複数のPGQL問合せの実行

    図12-5の説明が続きます
    「図12-5 複数のPGQL問合せの実行」の説明

    結果は「スクリプト出力」タブで確認できます。

  5. 次のように、PGQLプロパティ・グラフを削除します。

    図12-6 PGQLプロパティ・グラフの削除

    図12-6の説明が続きます
    「図12-6 PGQLプロパティ・グラフの削除」の説明

    グラフが削除されます。