Graphendaten mit dem Spanner Graph-Notebook untersuchen

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

Nächste Schritte