Mit dem Spanner Graph-Notebook können Sie Ihre Daten visuell in einer Notebook-Umgebung (z. B. Jupyter Notebook oder JupyterLab) untersuchen. Mit der Abfragesyntax der Graph Query Language (GQL) können Sie Grafikeinblicke und Beziehungsmuster extrahieren, einschließlich Knoten- und Kantenattributen sowie Analysen zur Erweiterung von Nachbarn. Das Tool bietet außerdem eine Visualisierung von Metadaten des Diagrammschemas, eine tabellarische Ergebnisansicht und verschiedene Layout-Topologien.
Das Spanner Graph-Notebook unterstützt Verbindungen mit Nur-Text, TLS und gegenseitigem TLS (mTLS).
Spanner Graph-Notebook installieren
Führen Sie den folgenden pip-Befehl aus, um das Paket Spanner Graph-Notebook (Version 1.1.11 oder höher) in Ihrer Python- oder Jupyter-Umgebung zu installieren:
pip install "spanner-graph-notebook>=1.1.11"
Spanner Graph-Erweiterung laden
Verwenden Sie den folgenden Befehl, um die Spanner Graph-Erweiterung in Ihr Jupyter-Notebook zu laden:
%load_ext spanner_graphs
Verbindung zur Datenbank herstellen
Wenn Sie eine Verbindung zu Ihrer Spanner Omni-Datenbank herstellen möchten, müssen Sie die Erweiterung laden und dann den Zellbefehl %%spanner_graph verwenden:
Nur-Text
Führen Sie Folgendes aus, um eine Nur-Text-Verbindung herzustellen:
%%spanner_graph --instance_type omni --endpoint OMNI_ENDPOINT:PORT --database DATABASE_NAME --use_plain_text
Ersetzen Sie Folgendes:
OMNI_ENDPOINT: der Hostname oder die IP-Adresse Ihrer Spanner Omni-Instanz.PORT: die Portnummer Ihrer Spanner Omni-Instanz.DATABASE_NAME: Der Name Ihrer Spanner Omni-Datenbank.
TLS
Geben Sie den Pfad zum CA-Zertifikat an, um eine TLS-Verbindung herzustellen:
%%spanner_graph --instance_type omni --endpoint OMNI_ENDPOINT:PORT --database DATABASE_NAME --ca_certificate PATH_TO_CA_CERT
Ersetzen Sie Folgendes:
OMNI_ENDPOINT: der Hostname oder die IP-Adresse Ihrer Spanner Omni-Instanz.PORT: die Portnummer Ihrer Spanner Omni-Instanz.DATABASE_NAME: Der Name Ihrer Spanner Omni-Datenbank.PATH_TO_CA_CERT: Pfad zur CA-Zertifikatsdatei.
mTLS
Geben Sie zum Herstellen einer mTLS-Verbindung das CA-Zertifikat, das Clientzertifikat und den privaten Clientschlüssel an:
%%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
Ersetzen Sie Folgendes:
OMNI_ENDPOINT: der Hostname oder die IP-Adresse Ihrer Spanner Omni-Instanz.PORT: die Portnummer Ihrer Spanner Omni-Instanz.DATABASE_NAME: Der Name Ihrer Spanner Omni-Datenbank.PATH_TO_CA_CERT: Pfad zur CA-Zertifikatsdatei.PATH_TO_CLIENT_CERT: Pfad zu Ihrer Clientzertifikatsdatei.PATH_TO_CLIENT_KEY: der Pfad zu Ihrer privaten Clientschlüsseldatei.
Abfrage visualisieren
Damit die Ergebnisse von Graph-Abfragen im Notebook visualisiert werden können, müssen Ihre Abfragen Grafikelemente im JSON-Format zurückgeben. Verwenden Sie dazu die Funktion SAFE_TO_JSON oder TO_JSON. Für die Datenvollständigkeit und eine einfache Visualisierung werden vollständige Diagrammpfade empfohlen.
Beispiel: Pfad als JSON zurückgeben
Das folgende Beispiel veranschaulicht den Pfad, der eine Person mit den Konten verbindet, die ihr gehören:
%%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
Beispiel: Graphabfrage mit mehreren Schritten
Im folgenden Beispiel wird ein Pfad mit variabler Länge (1 bis 3 Hops) von Übertragungen zwischen Konten visualisiert:
%%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
Beispiel: Mehrere Pfade zurückgeben
Im folgenden Beispiel werden mehrere Pfade in einem Diagramm in einer einzelnen Abfrage zurückgegeben und visualisiert:
%%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