您可以在筆記本環境 (例如 Jupyter Notebook 或 JupyterLab) 中,透過 Spanner Graph 筆記本以視覺化方式探索資料。您可以使用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
範例:傳回多個路徑
以下範例會在單一查詢中傳回並顯示多個圖形路徑:
%%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