Il notebook Spanner Graph ti consente di esplorare visivamente i tuoi dati in un ambiente notebook (come Jupyter Notebook o JupyterLab). Utilizzando la sintassi delle query Graph Query Language (GQL), puoi estrarre approfondimenti sul grafico e pattern di relazione, incluse le proprietà di nodi e archi e l'analisi dell'espansione dei nodi adiacenti. Lo strumento fornisce anche la visualizzazione dei metadati dello schema del grafico, l'ispezione dei risultati tabellari e diverse topologie di layout.
Il notebook Spanner Graph supporta connessioni in testo non crittografato, TLS e mutual TLS (mTLS).
Installa il blocco note Spanner Graph
Per installare il pacchetto Spanner Graph notebook (versione 1.1.11 o successive) nel tuo ambiente Python o Jupyter, esegui il seguente comando pip:
pip install "spanner-graph-notebook>=1.1.11"
Carica l'estensione Spanner Graph
Per caricare l'estensione Spanner Graph nel notebook Jupyter, utilizza il seguente comando:
%load_ext spanner_graphs
Connetti al tuo database
Per connetterti al database Spanner Omni, assicurati di aver caricato l'estensione, quindi utilizza il comando della cella %%spanner_graph:
Testo normale
Per stabilire una connessione in testo normale, esegui il comando seguente:
%%spanner_graph --instance_type omni --endpoint OMNI_ENDPOINT:PORT --database DATABASE_NAME --use_plain_text
Sostituisci quanto segue:
OMNI_ENDPOINT: il nome host o l'indirizzo IP dell'istanza Spanner Omni.PORT: il numero di porta dell'istanza Spanner Omni.DATABASE_NAME: il nome del database Spanner Omni.
TLS
Per stabilire una connessione TLS, specifica il percorso del certificato CA:
%%spanner_graph --instance_type omni --endpoint OMNI_ENDPOINT:PORT --database DATABASE_NAME --ca_certificate PATH_TO_CA_CERT
Sostituisci quanto segue:
OMNI_ENDPOINT: il nome host o l'indirizzo IP dell'istanza Spanner Omni.PORT: il numero di porta dell'istanza Spanner Omni.DATABASE_NAME: il nome del database Spanner Omni.PATH_TO_CA_CERT: il percorso del file del certificato CA.
mTLS
Per stabilire una connessione mTLS, specifica il certificato CA, il certificato client e la chiave privata del 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
Sostituisci quanto segue:
OMNI_ENDPOINT: il nome host o l'indirizzo IP dell'istanza Spanner Omni.PORT: il numero di porta dell'istanza Spanner Omni.DATABASE_NAME: il nome del database Spanner Omni.PATH_TO_CA_CERT: il percorso del file del certificato CA.PATH_TO_CLIENT_CERT: il percorso del file del certificato client.PATH_TO_CLIENT_KEY: il percorso del file della chiave privata del client.
Visualizzare una query
Per visualizzare i risultati delle query del grafico nel notebook, le query devono restituire elementi del grafico in formato JSON utilizzando la funzione SAFE_TO_JSON o TO_JSON. I percorsi
del grafico completi sono consigliati per la completezza dei dati e la facilità di visualizzazione.
Esempio: restituisci un percorso come JSON
L'esempio seguente visualizza il percorso che collega una persona agli account di sua proprietà:
%%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
Esempio: query del grafico multi-hop
L'esempio seguente visualizza un percorso a lunghezza variabile (da 1 a 3 hop) di trasferimenti tra account:
%%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
Esempio: restituzione di più percorsi
Il seguente esempio restituisce e visualizza più percorsi del grafico in una singola query:
%%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