El notebook de Spanner Graph te permite explorar tus datos de forma visual en un entorno de notebook (como Jupyter Notebook o JupyterLab). Con la sintaxis de consulta de Graph Query Language (GQL), puedes extraer estadísticas del gráfico y patrones de relaciones, incluidas las propiedades de nodos y aristas, y el análisis de expansión de vecinos. La herramienta también proporciona visualización de metadatos del esquema de grafos, inspección de resultados tabulares y diversas topologías de diseño.
El notebook de Spanner Graph admite conexiones de texto sin formato, TLS y TLS mutua (mTLS).
Instala el notebook de Spanner Graph
Para instalar el paquete del notebook de Spanner Graph (versión 1.1.11 o posterior) en tu entorno de Python o Jupyter, ejecuta el siguiente comando pip:
pip install "spanner-graph-notebook>=1.1.11"
Carga la extensión de Spanner Graph
Para cargar la extensión de Spanner Graph en tu notebook de Jupyter, usa el siguiente comando:
%load_ext spanner_graphs
Conéctate a tu base de datos
Para conectarte a tu base de datos de Spanner Omni, asegúrate de haber cargado la extensión y, luego, usa el comando de celda %%spanner_graph:
Texto sin formato
Para establecer una conexión de texto sin formato, ejecuta el siguiente comando:
%%spanner_graph --instance_type omni --endpoint OMNI_ENDPOINT:PORT --database DATABASE_NAME --use_plain_text
Reemplaza lo siguiente:
OMNI_ENDPOINT: Es el nombre de host o la dirección IP de tu instancia de Spanner Omni.PORT: Es el número de puerto de tu instancia de Spanner Omni.DATABASE_NAME: Es el nombre de tu base de datos de Spanner Omni.
TLS
Para establecer una conexión TLS, especifica la ruta de acceso al certificado de la AC:
%%spanner_graph --instance_type omni --endpoint OMNI_ENDPOINT:PORT --database DATABASE_NAME --ca_certificate PATH_TO_CA_CERT
Reemplaza lo siguiente:
OMNI_ENDPOINT: Es el nombre de host o la dirección IP de tu instancia de Spanner Omni.PORT: Es el número de puerto de tu instancia de Spanner Omni.DATABASE_NAME: Es el nombre de tu base de datos de Spanner Omni.PATH_TO_CA_CERT: Es la ruta de acceso a tu archivo de certificado de la AC.
mTLS
Para establecer una conexión mTLS, especifica el certificado de la AC, el certificado de cliente y la clave privada del cliente:
%%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
Reemplaza lo siguiente:
OMNI_ENDPOINT: Es el nombre de host o la dirección IP de tu instancia de Spanner Omni.PORT: Es el número de puerto de tu instancia de Spanner Omni.DATABASE_NAME: Es el nombre de tu base de datos de Spanner Omni.PATH_TO_CA_CERT: Es la ruta de acceso a tu archivo de certificado de la AC.PATH_TO_CLIENT_CERT: Es la ruta de acceso al archivo del certificado del cliente.PATH_TO_CLIENT_KEY: Es la ruta de acceso al archivo de clave privada del cliente.
Visualiza una consulta
Para visualizar los resultados de las consultas de grafos en el notebook, tus consultas deben devolver elementos de grafos en formato JSON con la función SAFE_TO_JSON o TO_JSON. Se recomiendan las rutas de gráfico completo para garantizar la integridad de los datos y facilitar la visualización.
Ejemplo: Devuelve una ruta de acceso como JSON
En el siguiente ejemplo, se visualiza la ruta que conecta a una persona con las cuentas que posee:
%%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
Ejemplo: Consulta de gráfico de múltiples saltos
En el siguiente ejemplo, se visualiza una ruta de longitud variable (de 1 a 3 saltos) de transferencias entre cuentas:
%%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
Ejemplo: Devolver varias rutas
En el siguiente ejemplo, se muestran y visualizan varias rutas de gráficos en una sola consulta:
%%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