借助 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
示例:返回多个路径
以下示例展示了如何在单个查询中返回并直观呈现多个图路径:
%%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