12 OCI Data ScienceノートブックでのAutonomous AI DatabaseのGraph Clientの使用

Oracle Cloud Infrastructure (OCI)データ・サイエンス・ノートブックでAdbGraphClient APIを使用すれば、Oracle Graph Pythonクライアントを使用してAutonomous AI DatabaseのGraph Studio機能にプログラムでアクセスできます。

このAPIには、次の機能があります。

  • Autonomous AI Databaseで認証する
  • Graph Studio環境を管理する
  • グラフ・サーバー(PGX)に対してグラフ問合せおよびアルゴリズムを実行する
  • データベースに対してグラフ問合せを直接実行する
また、Autonomous AI Databaseグラフ・クライアントを使用する前に、Autonomous Databaseグラフ・クライアントを使用するための前提条件に説明されている前提条件をすべて満たしていることを確認してください。
次の例は、AdbGraphClient APIを使用してGraph Studioへの接続を確立し、割り当てられたメモリーで環境を起動し、SQLプロパティ・グラフをグラフ・サーバー(PGX)のメモリーにロードし、PGQL問合せを実行して、グラフに対するアルゴリズムを実行する方法を示しています。

ノート:

AdbGraphClient APIの詳細は、Python APIリファレンスを参照してください。
  1. Oracle Cloudアカウントを使用してOCIコンソールにサインインします。
  2. メイン・ナビゲーション・メニューを開き、「アナリティクスとAI」セクションを展開し、(「機械学習」にある)「データ・サイエンス」をクリックします。
  3. プロジェクトを作成し(プロジェクトの作成を参照)、ノートブック・セッションを開きます(ノートブックの作成を参照)。
    次のようにJupyterLabインタフェースが開きます:

    図12-1 JupyterLabインタフェース



  4. 次のステップの説明に従って、Oracle Graph Pythonクライアントをインストールします。
    1. Oracle Graph Server and Clientのダウンロード・ページからOracle Graph Client (oracle-graph-client-26.1.0.zip)をダウンロードします。
    2. JupyterLabインタフェースの左側のファイル・ブラウザ・パネルで「ファイルのアップロード」をクリックし、ダウンロードしたoracle-graph-client-26.1.0.zipファイルをアップロードします。
      アップロードが完了すると、ファイルが左側のブラウザ・パネルに表示されます。
    3. ランチャ・ページで「ターミナル」を開き、unzip oracle-graph-client-26.1.0.zipを実行します。
      解凍されたフォルダには、Pythonクライアントをインストールするためのoracle-graph-python-client-26.1.0.zipファイルが含まれています。
    4. 次のコマンドを実行してPythonクライアントをインストールします。
      python3 oracle-graph-python-client-26.1.0.zip --user
  5. ランチャ・ページのカーネル・セクションで「Python3 (ipykernel)」をクリックし、「ノートブックの作成」を選択します。
    これにより、Python 3カーネルを使用して新しいノートブックが作成されて開きます。その後、次のステップで説明されているコードを各ノートブック・セルで実行できます。
  6. 次のコードを実行して、対話型グラフ・シェルのCLIを起動し、AdbGraphClientを使用してAutonomous AI Databaseインスタンスに接続します:
    import opg4py
    from opg4py.adb import AdbClient
    config = {
        'tenant': '<tenancy_OCID>',
        'database': '<DB_name>',
        'database_ocid': '<DB_OCID>',
        'username': 'ADBGRAPHUSER',
        'password': '<password_for_ADBGRAPHUSER',
        'endpoint': 'https://<hostname-prefix>.adb.<region>.oraclecloudapps.com/'
        }
    
    client = AdbClient(config)
    client.__enter__()
  7. 次のコードに示すように、望ましいメモリーでPGXサーバー環境を起動します。
    memory_gb = 8
    job = client.start_environment(memory_gb)
    job.get()
    これにより、Graph Studioで環境作成のためのジョブが発行されます。job.get()は、環境が起動されるまで待機します。環境がclient.isAttached()で正常に起動したかどうかは常に確認できます。環境が稼働中の場合、メソッドはブールtrueを戻します。

    ただし、client.isAttached()がコードの最初のステップでtrueを戻した場合は、環境の作成ステップをスキップできます。

  8. 次のように、インスタンスおよびセッション・オブジェクトを作成します。
    instance = client.get_pgx_instance()
    session = instance.create_session("adb-session")
  9. Autonomous AI DatabaseインスタンスのSQLプロパティ・グラフまたはPGQLプロパティ・グラフをメモリーにロードします。
    graph = session.read_graph_by_name("BANK_GRAPH", "pg_sql")
  10. 次のように、アナリストを作成してグラフに対してPagerankアルゴリズムを実行します。
    session.create_analyst().pagerank(graph)
  11. 次のように、グラフに対してPGQL問合せを実行して結果セットを出力します。
    rs = graph.query_pgql("SELECT a.id AS source, a.pagerank, t.amount, b.id AS destination FROM MATCH (a)-[t]->(b) ORDER BY a.pagerank DESC LIMIT 5").print()
    次の画像は、このコードの実行を示しています:

    Figure 12-2 AdbGraphClient API



  12. 次のように、すべてのグラフ問合せを実行した後、セッションを閉じます。
    session.close()