Le notebook Spanner Graph vous permet d'explorer visuellement vos données dans un environnement de notebook (tel que Jupyter Notebook ou JupyterLab). En utilisant la syntaxe des requêtes Graph Query Language (GQL), vous pouvez extraire des insights sur les graphiques et des modèles de relations, y compris les propriétés des nœuds et des arêtes, ainsi que l'analyse de l'expansion des voisins. L'outil permet également de visualiser les métadonnées du schéma de graphique, d'inspecter les résultats tabulaires et d'utiliser diverses topologies de mise en page.
Le notebook Spanner Graph est compatible avec les connexions en texte brut, TLS et TLS mutuelle (mTLS).
Installer le notebook Spanner Graph
Pour installer le package Spanner Graph notebook (version 1.1.11 ou ultérieure) dans votre environnement Python ou Jupyter, exécutez la commande pip suivante :
pip install "spanner-graph-notebook>=1.1.11"
Charger l'extension Spanner Graph
Pour charger l'extension Spanner Graph dans votre notebook Jupyter, utilisez la commande suivante :
%load_ext spanner_graphs
Se connecter à la base de données
Pour vous connecter à votre base de données Spanner Omni, assurez-vous d'avoir chargé l'extension, puis utilisez la commande de cellule %%spanner_graph :
Texte brut
Pour établir une connexion en texte brut, exécutez la commande suivante :
%%spanner_graph --instance_type omni --endpoint OMNI_ENDPOINT:PORT --database DATABASE_NAME --use_plain_text
Remplacez les éléments suivants :
OMNI_ENDPOINT: nom d'hôte ou adresse IP de votre instance Spanner Omni.PORT: numéro de port de votre instance Spanner Omni.DATABASE_NAME: nom de votre base de données Spanner Omni.
TLS
Pour établir une connexion TLS, spécifiez le chemin d'accès au certificat CA :
%%spanner_graph --instance_type omni --endpoint OMNI_ENDPOINT:PORT --database DATABASE_NAME --ca_certificate PATH_TO_CA_CERT
Remplacez les éléments suivants :
OMNI_ENDPOINT: nom d'hôte ou adresse IP de votre instance Spanner Omni.PORT: numéro de port de votre instance Spanner Omni.DATABASE_NAME: nom de votre base de données Spanner Omni.PATH_TO_CA_CERT: chemin d'accès à votre fichier de certificat CA.
mTLS
Pour établir une connexion mTLS, spécifiez le certificat CA, le certificat client et la clé privée du client :
%%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
Remplacez les éléments suivants :
OMNI_ENDPOINT: nom d'hôte ou adresse IP de votre instance Spanner Omni.PORT: numéro de port de votre instance Spanner Omni.DATABASE_NAME: nom de votre base de données Spanner Omni.PATH_TO_CA_CERT: chemin d'accès à votre fichier de certificat CA.PATH_TO_CLIENT_CERT: chemin d'accès à votre fichier de certificat client.PATH_TO_CLIENT_KEY: chemin d'accès au fichier de clé privée de votre client.
Visualiser une requête
Pour visualiser les résultats des requêtes de graphiques dans le notebook, vos requêtes doivent renvoyer des éléments de graphique au format JSON à l'aide de la fonction SAFE_TO_JSON ou TO_JSON. Les chemins de graphe complets sont recommandés pour l'exhaustivité des données et la facilité de visualisation.
Exemple : Renvoyer un chemin d'accès au format JSON
L'exemple suivant illustre le chemin d'accès reliant une personne aux comptes qu'elle possède :
%%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
Exemple : Requête de graphique multihop
L'exemple suivant visualise un chemin de transfert de longueur variable (1 à 3 transferts) entre les comptes :
%%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
Exemple : Renvoyer plusieurs chemins
L'exemple suivant renvoie et visualise plusieurs chemins de graphique dans une seule requête :
%%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