In diesem Dokument erfahren Sie, wie Sie eine Spanner Graph-Datenbank einrichten und abfragen, um komplexe Datenbeziehungen mit der Google Cloud -Konsole und den Clientbibliotheken zu modellieren, zu speichern und zu analysieren.
In den folgenden Themen erfahren Sie, wie Sie das tun:
Weitere Informationen zu den Preisen für Spanner finden Sie unter Spanner-Preise.
Ein Codelab finden Sie unter Erste Schritte mit Spanner Graph.
Hinweise
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Verify that billing is enabled for your Google Cloud project.
- Aktivieren Sie die Spanner API:
Spanner API aktivieren -
Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Cloud Spanner Admin (
roles/spanner.admin
) für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen von Instanzen und Datenbanken benötigen. -
Wenn Sie nicht die Rolle „Cloud Spanner-Administrator“ haben, bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Cloud Spanner-Datenbankleser (
roles/spanner.databaseReader
) für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Abfragen von Spanner-Diagrammen benötigen. Rufen Sie in der Google Cloud Console die Seite Spanner auf.
Wählen Sie ein Projekt aus oder erstellen Sie eines. Google Cloud
Führen Sie einen der folgenden Schritte aus:
Wenn Sie noch keine Spanner-Instanz erstellt haben, klicken Sie auf der Seite Willkommen bei Spanner auf Bereitgestellte Instanz erstellen.
Wenn Sie eine Spanner-Instanz erstellt haben, klicken Sie auf der Seite Instanzen auf Instanz erstellen.
Wählen Sie auf der Seite Version auswählen die Option Enterprise Plus oder Enterprise aus.
Spanner Graph ist nur in der Enterprise- oder Enterprise Plus-Version verfügbar. Wenn Sie die verschiedenen Versionen vergleichen möchten, klicken Sie auf Versionen vergleichen. Weitere Informationen finden Sie unter Spanner-Versionen – Übersicht.
Klicken Sie auf Weiter.
Geben Sie unter Instanzname einen Instanznamen ein, z. B.
test-instance
.Behalten Sie die Instanz-ID unter Instanz-ID bei oder ändern Sie sie. Die Instanz-ID ist standardmäßig Ihr Instanzname, Sie können sie aber ändern. Der Instanzname und die Instanz-ID können identisch sein oder sich unterscheiden.
Klicken Sie auf Weiter.
Führen Sie unter Konfiguration auswählen die folgenden Schritte aus:
Lassen Sie Regional ausgewählt.
Wählen Sie unter Konfiguration auswählen eine Region aus. Spanner speichert und repliziert Ihre Instanzen in der von Ihnen ausgewählten Region.
Klicken Sie auf Weiter.
Führen Sie unter Rechenkapazität konfigurieren die folgenden Schritte aus:
Wählen Sie unter Einheit auswählen die Option Verarbeitungseinheiten aus.
Lassen Sie unter Skalierungsmodus auswählen die Option Manuelle Zuweisung ausgewählt und behalten Sie unter Menge 1.000 Verarbeitungseinheiten bei.
Klicken Sie auf Erstellen. In der Google Cloud Console wird die Seite Übersicht für die erstellte Instanz angezeigt.
Rufen Sie in der Google Cloud Console die Seite Spanner-Instanzen auf.
Klicken Sie auf die erstellte Instanz, z. B.
Test Instance
.Klicken Sie unter Übersicht unter dem Namen Ihrer Instanz auf Datenbank erstellen.
Geben Sie unter Datenbankname einen Datenbanknamen ein. Beispiel:
example-db
.Wählen Sie unter Datenbankdialekt auswählen die Option „Google Standard-SQL“ aus. Spanner Graph ist im PostgreSQL-Dialekt nicht verfügbar.
Geben Sie das folgende Schema auf dem Tab DDL-Vorlagen ein. Das Schema enthält zwei Knotentabellendefinitionen,
Person
undAccount
, sowie zwei Kantentabellendefinitionen,PersonOwnAccount
undAccountTransferAccount
. In Spanner Graph werden relationale Tabellen verwendet, um Diagramme zu definieren. Daher sehen Sie im Schema sowohl relationale Tabellen als auch Diagrammanweisungen. Weitere Informationen zum Spanner Graph-Schema finden Sie in der Übersicht über das Spanner Graph-Schema:CREATE TABLE Person ( id INT64 NOT NULL, name STRING(MAX), birthday TIMESTAMP, country STRING(MAX), city STRING(MAX), ) PRIMARY KEY (id); CREATE TABLE Account ( id INT64 NOT NULL, create_time TIMESTAMP, is_blocked BOOL, nick_name STRING(MAX), ) PRIMARY KEY (id); CREATE TABLE PersonOwnAccount ( id INT64 NOT NULL, account_id INT64 NOT NULL, create_time TIMESTAMP, FOREIGN KEY (account_id) REFERENCES Account (id) ) PRIMARY KEY (id, account_id), INTERLEAVE IN PARENT Person ON DELETE CASCADE; CREATE TABLE AccountTransferAccount ( id INT64 NOT NULL, to_id INT64 NOT NULL, amount FLOAT64, create_time TIMESTAMP NOT NULL, order_number STRING(MAX), FOREIGN KEY (to_id) REFERENCES Account (id) ) PRIMARY KEY (id, to_id, create_time), INTERLEAVE IN PARENT Account ON DELETE CASCADE; CREATE OR REPLACE PROPERTY GRAPH FinGraph NODE TABLES (Account, Person) EDGE TABLES ( PersonOwnAccount SOURCE KEY (id) REFERENCES Person (id) DESTINATION KEY (account_id) REFERENCES Account (id) LABEL Owns, AccountTransferAccount SOURCE KEY (id) REFERENCES Account (id) DESTINATION KEY (to_id) REFERENCES Account (id) LABEL Transfers );
Behalten Sie die Standardeinstellungen unter Verschlüsselungsoptionen anzeigen bei.
Klicken Sie auf Erstellen. Google Cloud In der Konsole wird die Seite Übersicht für die von Ihnen erstellte Datenbank angezeigt.
Klicken Sie auf der Seite Spanner Studio auf
Neuer Tab oder verwenden Sie den Editor-Tab.Kopieren Sie die folgenden Einfügeanweisungen für Diagrammdaten in die Knoten und Kanten.
INSERT INTO Account (id, create_time, is_blocked, nick_name) VALUES (7,"2020-01-10 06:22:20.222",false,"Vacation Fund"), (16,"2020-01-27 17:55:09.206",true,"Vacation Fund"), (20,"2020-02-18 05:44:20.655",false,"Rainy Day Fund"); INSERT INTO Person (id, name, birthday, country, city) VALUES (1,"Alex","1991-12-21 00:00:00","Australia","Adelaide"), (2,"Dana","1980-10-31 00:00:00","Czech_Republic","Moravia"), (3,"Lee","1986-12-07 00:00:00","India","Kollam"); INSERT INTO AccountTransferAccount (id, to_id, amount, create_time, order_number) VALUES (7,16,300,"2020-08-29 15:28:58.647","304330008004315"), (7,16,100,"2020-10-04 16:55:05.342","304120005529714"), (16,20,300,"2020-09-25 02:36:14.926","103650009791820"), (20,7,500,"2020-10-04 16:55:05.342","304120005529714"), (20,16,200,"2020-10-17 03:59:40.247","302290001255747"); INSERT INTO PersonOwnAccount (id, account_id, create_time) VALUES (1,7,"2020-01-10 06:22:20.222"), (2,20,"2020-01-27 17:55:09.206"), (3,16,"2020-02-18 05:44:20.655");
Klicken Sie auf Ausführen. Wenn der Lauf abgeschlossen ist, wird auf dem Tab Ergebnisse angezeigt, dass drei Zeilen eingefügt wurden.
Klicken Sie auf der Seite Übersicht der Datenbank im Navigationsmenü auf Spanner Studio.
Klicken Sie auf der Seite Spanner Studio auf
Neuer Tab oder verwenden Sie den Editor-Tab.Geben Sie die folgende Abfrage in den Abfrageeditor ein. Mit der Abfrage werden alle Personen ermittelt, an die Dana Geld überwiesen hat, sowie die Beträge dieser Überweisungen.
GRAPH FinGraph MATCH (from_person:Person {name: "Dana"})-[:Owns]-> (from_account:Account)-[transfer:Transfers]-> (to_account:Account)<-[:Owns]-(to_person:Person) RETURN from_person.name AS from_account_owner, from_account.id AS from_account_id, to_person.name AS to_account_owner, to_account.id AS to_account_id, transfer.amount AS amount
Klicken Sie auf Ausführen.
Auf dem Tab Ergebnisse werden die folgenden Pfade von Dana angezeigt, die die Kontonummer 20 besitzt:
- An
Account {id:7}
, Eigentümer: Alex. An
Account {id:16}
, Eigentümer: Lee.
- An
Rufen Sie in der Google Cloud Console Spanner-Instanzen auf.
Klicken Sie auf den Instanznamen, z. B. Test Instance.
Klicken Sie auf den Datenbanknamen, z. B. example-db.
Klicken Sie auf der Seite Datenbankdetails auf Datenbank löschen.
Bestätigen Sie, dass Sie die Datenbank löschen möchten, indem Sie den Datenbanknamen eingeben und auf Löschen klicken.
Rufen Sie in der Google Cloud Console die Seite Spanner-Instanzen auf.
Klicken Sie auf den Namen der Instanz, die Sie löschen möchten, z. B. Testinstanz.
Klicken Sie auf Instanz löschen.
Bestätigen Sie, dass Sie die Instanz löschen möchten, indem Sie den Instanznamen eingeben und auf Löschen klicken.
- Codelab zu Spanner Graph
- Informationen zum Spanner Graph-Schema
- Spanner Graph-Schema erstellen, aktualisieren oder löschen
- Spanner Graph-Daten einfügen, aktualisieren oder löschen
- Übersicht über Spanner Graph-Abfragen
- Zu Spanner Graph migrieren
Spanner-Instanz erstellen
Wenn Sie Spanner zum ersten Mal verwenden, müssen Sie eine Instanz erstellen, in der Ressourcen für Spanner-Datenbanken zugewiesen werden. In diesem Abschnitt wird beschrieben, wie Sie eine Instanz mit der Google Cloud -Console erstellen.
Graphdatenbank mit einem Schema erstellen
In diesem Abschnitt erfahren Sie, wie Sie eine Spanner Graph-Datenbank mit einem Spanner Graph-Schema erstellen. Sie können dazu entweder die Google Cloud Console oder Clientbibliotheken verwenden.
Console
Clientbibliotheken
Python
Java
Go
C++
Diagrammdaten einfügen
Nachdem Sie Ihre Datenbank erstellt haben, können Sie Daten hinzufügen. In diesem Abschnitt erfahren Sie, wie Sie Daten in Ihr Diagramm einfügen. Dazu können Sie die Google Cloud Console für eine grafische Benutzeroberfläche oder die Clientbibliotheken programmatisch verwenden.
Console
Clientbibliotheken
Python
Java
Go
C++
Das folgende Diagramm zeigt die Personen, Konten, Kontoinhaberschaft und Kontoübertragungen aus den Einfügungen:
Graph-Abfrage ausführen
Nachdem Sie Daten in Ihr Diagramm eingefügt haben, können Sie es abfragen, um Muster und Beziehungen zu finden. In diesem Abschnitt erfahren Sie, wie Sie Abfragen mit derGoogle Cloud -Konsole über eine grafische Benutzeroberfläche oder programmatisch mit Clientbibliotheken ausführen.
Console
Clientbibliotheken
Python
Java
Go
C++
Bereinigen
In diesem Abschnitt wird beschrieben, wie Sie die von Ihnen erstellten Ressourcen bereinigen, um zu vermeiden, dass Ihrem Cloud-Rechnungskonto Gebühren in Rechnung gestellt werden. Wenn Sie weitere Spanner Graph-Beispiele im Abschnitt Weitere Informationen ausprobieren möchten, führen Sie diese Schritte noch nicht aus. Wenn Sie eine Spanner-Instanz löschen, werden auch alle Datenbanken in dieser Instanz gelöscht.