In diesem Dokument wird beschrieben, wie Sie eine Spanner Graph-Datenbank einrichten und abfragen, um komplexe Datenbeziehungen mithilfe der Google Cloud Console und Clientbibliotheken zu modellieren, zu speichern und zu analysieren.
In den folgenden Themen erfahren Sie, wie Sie Folgendes tun:
Informationen zu den Spanner-Preisen finden Sie unter Spanner-Preise.
Ein Codelab finden Sie unter Erste Schritte mit Spanner Graph.
Hinweis
- Melden Sie sich in Ihrem Google Cloud Konto an. Wenn Sie noch kein Konto haben Google Cloud, erstellen Sie ein Konto, um die Leistung unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
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.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
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-Administrator “ (
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 die Rolle „Cloud Spanner-Administrator“ nicht haben, bitten Sie Ihren Administrator, Ihnen die Cloud Spanner-Datenbankleser (
roles/spanner.databaseReader) IAM-Rolle für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Abfragen von Spanner-Graphen benötigen.
Spanner-Instanz erstellen
Wenn Sie Spanner zum ersten Mal verwenden, müssen Sie eine Instanz erstellen, die Ressourcen für Spanner-Datenbanken zuweist. In diesem Abschnitt wird beschrieben, wie Sie mit der Google Cloud Console eine Instanz erstellen.
Rufen Sie in der Google Cloud Console die Spanner Seite auf.
Wählen Sie ein Google Cloud Projekt aus oder erstellen Sie eines, falls noch nicht geschehen.
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-Version oder Enterprise Plus-Version verfügbar. Wenn Sie die verschiedenen Versionen vergleichen möchten, klicken Sie auf Versionen vergleichen. Weitere Informationen finden Sie in der Übersicht über Spanner-Versionen.
Klicken Sie auf Weiter.
Geben Sie unter Instanzname einen Instanznamen ein, z. B.
test-instance.Behalten Sie unter Instanz-ID die Instanz-ID bei oder ändern Sie sie. Die Instanz-ID ist standardmäßig der Instanzname, Sie können sie aber ändern. Instanzname und Instanz-ID können gleich oder unterschiedlich sein.
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 ausgewählten Region.
Klicken Sie auf Weiter.
Führen Sie unter Compute-Kapazitä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 Zuordnung 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.
Graphdatenbank mit einem Schema erstellen
In diesem Abschnitt wird beschrieben, wie Sie eine Spanner Graph-Datenbank mit einem Spanner Graph-Schema erstellen. Sie können entweder die Google Cloud Console oder Client bibliotheken verwenden.
Console
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 des Editors ein. Das Schema enthält zwei Knotentabellendefinitionen,
PersonundAccount, und zwei Kantentabellendefinitionen,PersonOwnAccountundAccountTransferAccount. Spanner Graph verwendet relationale Tabellen zum Definieren von Graphen. Daher sehen Sie im Schema sowohl relationale Tabellen als auch Graphanweisungen. Weitere Informationen zum Spanner Graph-Schema finden Sie unter 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 Console wird die Seite Übersicht für die erstellte Datenbank angezeigt.
Clientbibliotheken
Python
Java
Los
C++
Graphdaten einfügen
Nachdem Sie die Datenbank erstellt haben, können Sie Daten hinzufügen. In diesem Abschnitt wird beschrieben, wie Sie Daten in Ihren Graph einfügen. Sie können dazu die Console für eine grafische Google Cloud Benutzeroberfläche oder die Clientbibliotheken programmatisch verwenden.
Console
Klicken Sie auf der Seite Spanner Studio auf Neuer Tab oder verwenden Sie den Editor-Tab.
Kopieren Sie die folgenden Einfügeanweisungen für Graphdaten und fügen Sie sie in die Knoten und Kanten ein.
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. Nach Abschluss der Ausführung wird auf dem Tab Ergebnisse angezeigt, dass 3 Zeilen eingefügt wurden.
Clientbibliotheken
Python
Java
Los
C++
Der folgende Graph zeigt die Personen, Konten, Kontoinhaberschaft und Kontoübertragungen aus den Einfügungen:
Graphabfrage ausführen
Nachdem Sie Daten in Ihren Graph eingefügt haben, können Sie ihn abfragen, um Muster und Beziehungen zu finden. In diesem Abschnitt wird beschrieben, wie Sie Abfragen mit der Google Cloud Console für eine grafische Benutzeroberfläche oder programmatisch mit Clientbibliotheken ausführen.
Console
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 amountKlicken Sie auf Ausführen.
Auf dem Tab Ergebnisse werden die folgenden Pfade von Dana angezeigt, die Inhaberin des Kontos mit der Kontonummer 20 ist:
- An
Account {id:7}im Besitz von Alex. An
Account {id:16}im Besitz von Lee.
- An
Clientbibliotheken
Python
Java
Los
C++
Bereinigen
In diesem Abschnitt wird beschrieben, wie Sie die erstellten Ressourcen bereinigen, um zu vermeiden, dass Ihrem Cloud-Rechnungskonto Gebühren in Rechnung gestellt werden. Wenn Sie weitere Spanner Graph-Beispiele im Nächste Schritte Abschnitt ausprobieren möchten, führen Sie diese Schritte noch nicht aus. Beim Löschen einer Spanner-Instanz werden auch alle Datenbanken in dieser Instanz gelöscht.
Datenbank löschen
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.
Instanz löschen
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. Test Instance.
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.
Nächste Schritte
- Weitere Informationen zu Spanner Graph mit einem Codelab
- Informationen zum Spanner Graph-Schema.
- Spanner Graph-Schema erstellen, aktualisieren oder löschen.
- Spanner Graph-Daten einfügen, aktualisieren oder löschen.
- Überblick über Spanner Graph-Abfragen.
- Zu Spanner Graph migrieren.
- Best Practices für das Schemadesign von Spanner Graph
- Best Practices für die Optimierung von Spanner Graph-Abfragen