Spanner Graph ノートブックでグラフデータを探索する

Spanner Graph ノートブックを使用すると、ノートブック環境(Jupyter Notebook や JupyterLab など)でデータを視覚的に探索できます。Graph Query Language(GQL)クエリ構文を使用すると、ノードとエッジのプロパティや近傍拡張分析など、グラフの分析情報と関係パターンを抽出できます。このツールには、グラフ スキーマのメタデータの可視化、表形式の結果の検査、多様なレイアウト トポロジも用意されています。

Spanner Graph ノートブックは、書式なしテキスト、TLS、相互 TLS(mTLS)接続をサポートしています。

Spanner Graph ノートブックをインストールする

Python または Jupyter 環境に Spanner Graph ノートブック パッケージ(バージョン 1.1.11 以降)をインストールするには、次の pip コマンドを実行します。

pip install "spanner-graph-notebook>=1.1.11"

Spanner Graph 拡張機能を読み込む

Jupyter ノートブックで Spanner Graph 拡張機能を読み込むには、次のコマンドを使用します。

%load_ext spanner_graphs

データベースに接続します

Spanner Omni データベースに接続するには、拡張機能を読み込んでから、%%spanner_graph セルコマンドを使用します。

書式なしテキスト

プレーン テキスト接続を確立するには、次のコマンドを実行します。

%%spanner_graph --instance_type omni --endpoint OMNI_ENDPOINT:PORT --database DATABASE_NAME --use_plain_text

次のように置き換えます。

  • OMNI_ENDPOINT: Spanner Omni インスタンスのホスト名または IP アドレス。

  • PORT: Spanner Omni インスタンスのポート番号。

  • DATABASE_NAME: Spanner Omni データベースの名前。

TLS

TLS 接続を確立するには、CA 証明書のパスを指定します。

%%spanner_graph --instance_type omni --endpoint OMNI_ENDPOINT:PORT --database DATABASE_NAME --ca_certificate PATH_TO_CA_CERT

次のように置き換えます。

  • OMNI_ENDPOINT: Spanner Omni インスタンスのホスト名または IP アドレス。

  • PORT: Spanner Omni インスタンスのポート番号。

  • DATABASE_NAME: Spanner Omni データベースの名前。

  • PATH_TO_CA_CERT: CA 証明書ファイルのパス。

mTLS

mTLS 接続を確立するには、CA 証明書、クライアント証明書、プライベート クライアント鍵を指定します。

%%spanner_graph --instance_type omni --endpoint OMNI_ENDPOINT:PORT --database DATABASE_NAME --ca_certificate PATH_TO_CA_CERT --client_certificate PATH_TO_CLIENT_CERT --client_key PATH_TO_CLIENT_KEY

次のように置き換えます。

  • OMNI_ENDPOINT: Spanner Omni インスタンスのホスト名または IP アドレス。

  • PORT: Spanner Omni インスタンスのポート番号。

  • DATABASE_NAME: Spanner Omni データベースの名前。

  • PATH_TO_CA_CERT: CA 証明書ファイルのパス。

  • PATH_TO_CLIENT_CERT: クライアント証明書ファイルのパス。

  • PATH_TO_CLIENT_KEY: クライアントの秘密鍵ファイルのパス。

クエリを可視化する

ノートブックでグラフクエリの結果を可視化するには、クエリで SAFE_TO_JSON 関数または TO_JSON 関数を使用してグラフ要素を JSON 形式で返す必要があります。データの完全性と可視化の容易さの観点から、完全なグラフパスをおすすめします。

例: パスを JSON として返す

次の例は、個人とその所有するアカウントを結ぶパスを可視化したものです。

%%spanner_graph --instance_type omni --endpoint OMNI_ENDPOINT:PORT --database DATABASE_NAME --use_plain_text

GRAPH FinGraph
MATCH query_path = (person:Person {id: 5})-[owns:Owns]->(accnt:Account)
RETURN SAFE_TO_JSON(query_path) AS path_json

例: マルチホップ グラフクエリ

次の例は、アカウント間の移行の可変長パス(1 ~ 3 ホップ)を可視化したものです。

%%spanner_graph --instance_type omni --endpoint OMNI_ENDPOINT:PORT --database DATABASE_NAME --use_plain_text

GRAPH FinGraph
MATCH query_path = (src:Account {id: 9})-[edge:Transfers]->{1,3}(dst:Account)
RETURN SAFE_TO_JSON(query_path) AS path_json

例: 複数のパスを返す

次の例では、1 つのクエリで複数のグラフパスを返して可視化します。

%%spanner_graph --instance_type omni --endpoint OMNI_ENDPOINT:PORT --database DATABASE_NAME --use_plain_text

GRAPH FinGraph
MATCH path_1 = (person:Person {id: 5})-[:Owns]->(accnt:Account),
      path_2 = (src:Account {id: 9})-[:Transfers]->(dst:Account)
RETURN SAFE_TO_JSON(path_1) AS path_1,
        SAFE_TO_JSON(path_2) AS path_2

次のステップ