Dieses Dokument bietet eine umfassende Anleitung zum Verwalten von Spanner Graph-Eigenschaftsschemas. Es werden die Prozesse zum Erstellen, Aktualisieren und Löschen von Schemas mithilfe von DDL-Anweisungen beschrieben.
Weitere Informationen zu Property Graph-Schemas finden Sie unter Spanner Graph-Schema – Übersicht. Wenn beim Erstellen eines Attributdiagrammschemas Fehler auftreten, lesen Sie den Abschnitt Fehlerbehebung bei Spanner Graph.
Property-Graph-Schema erstellen
So erstellen Sie ein Property-Graph-Schema:
Berücksichtigen Sie beim Erstellen eines Property Graph-Schemas die Best Practices.
In den folgenden Abschnitten wird gezeigt, wie Sie ein Beispielschema für einen Property Graph erstellen:
Knoteneingabetabellen erstellen
Im Folgenden werden zwei Knoteneingabetabellen, Person
und Account
, erstellt, die als Eingabe für die Knotendefinitionen im Beispiel-Eigenschaftsgraphen dienen:
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);
Edge-Eingabetabellen erstellen
Mit dem folgenden Code werden zwei Edge-Eingabetabellen, PersonOwnAccount
und AccountTransferAccount
, als Eingabe für die Edge-Definitionen im Beispiel-Property-Graph erstellt:
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;
Attributgrafik definieren
Im folgenden Code wird der Property-Graph mit der CREATE PROPERTY GRAPH
-Anweisung definiert. Mit dieser Anweisung wird eine Attributgrafik namens FinGraph
mit den Knoten Account
und Person
sowie den Kanten PersonOwnAccount
und AccountTransferAccount
definiert:
CREATE 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
);
Attributgrafikschema aktualisieren
Nachdem Sie ein Property Graph-Schema erstellt haben, aktualisieren Sie es mit der Anweisung CREATE OR
REPLACE PROPERTY GRAPH
. Mit dieser Anweisung werden die Änderungen angewendet, indem das Graphschema mit der gewünschten Aktualisierung neu erstellt wird.
Sie können die folgenden Änderungen an einem Property Graph-Schema vornehmen:
Knoten- oder Kantendefinition hinzufügen: Erstellen Sie die neuen Eingabetabellen für die Knoten und Kanten und fügen Sie die neuen Definitionen dann mit der
CREATE OR REPLACE PROPERTY GRAPH
-Anweisung dem Diagramm hinzu.Knoten- oder Kantendefinition aktualisieren: Aktualisieren Sie die zugrunde liegende Eingabetabelle mit neuen Knoten- und Kantendefinitionen. Verwenden Sie dann die Anweisung
CREATE OR REPLACE PROPERTY GRAPH
, um die Definitionen im Diagramm zu aktualisieren.Knoten- oder Kantendefinition entfernen: Verwenden Sie die Anweisung
CREATE OR REPLACE PROPERTY GRAPH
und lassen Sie die Definitionen aus, die Sie aus dem Diagramm entfernen möchten.
Neue Knoten- oder Kanten-Definitionen hinzufügen
So fügen Sie eine neue Knoten- und eine neue Kanten-Definition hinzu:
Fügen Sie eine neue Eingabetabelle für die Knotendefinition,
Company
, und eine neue Eingabetabelle für die Kantendefinition,PersonInvestCompany
, hinzu.CREATE TABLE Company ( id INT64 NOT NULL, name STRING(MAX) ) PRIMARY KEY (id); CREATE TABLE PersonInvestCompany ( id INT64 NOT NULL, company_id INT64 NOT NULL, FOREIGN KEY (company_id) REFERENCES Company (id) ) PRIMARY KEY (id, company_id), INTERLEAVE IN PARENT Person ON DELETE CASCADE;
Aktualisieren Sie das
FinGraph
-Schema, indem Sie die neue KnotendefinitionCompany
und die neue KantendefinitionPersonInvestCompany
hinzufügen.CREATE OR REPLACE PROPERTY GRAPH FinGraph NODE TABLES ( Person, Account, Company ) EDGE TABLES ( AccountTransferAccount SOURCE KEY (id) REFERENCES Account DESTINATION KEY (to_id) REFERENCES Account LABEL Transfers, PersonOwnAccount SOURCE KEY (id) REFERENCES Person DESTINATION KEY (account_id) REFERENCES Account LABEL Owns, PersonInvestCompany SOURCE KEY (id) REFERENCES Person DESTINATION KEY (company_id) REFERENCES Company LABEL Invests );
Knoten- oder Kantendefinitionen aktualisieren
Wenn Sie eine vorhandene Knoten- oder Kantendefinition aktualisieren möchten, ändern Sie zuerst die zugrunde liegende Eingabetabelle und wenden Sie dann die Schemaänderungen mit der Anweisung CREATE OR REPLACE PROPERTY GRAPH
auf das Diagramm an. Verwenden Sie PROPERTIES clause
, um die Eigenschaften anzupassen, die aus den Eingabetabellen verfügbar gemacht werden.
Weitere Informationen finden Sie unter Labels und Attribute anpassen.
In den folgenden Schritten wird beschrieben, wie Sie die zugrunde liegende Tabelle eines Schemas aktualisieren und die Aktualisierung dann auf das Schema anwenden.
Fügen Sie der zugrunde liegenden Eingabetabelle
Person
die Spaltemailing_address
hinzu.ALTER TABLE Person ADD COLUMN mailing_address STRING(MAX);
Wenden Sie die Änderungen an der Tabelle
Person
auf das Schema an. Verwenden Sie dieCREATE OR REPLACE PROPERTY GRAPH
-Anweisung. Die KnotendefinitionPerson
spiegelt die aktualisierte TabellendefinitionPerson
wider, da sich das Eingabetabellenschema geändert hat.CREATE OR REPLACE PROPERTY GRAPH FinGraph NODE TABLES ( Person, Account ) EDGE TABLES ( AccountTransferAccount SOURCE KEY (id) REFERENCES Account DESTINATION KEY (to_id) REFERENCES Account LABEL Transfers, PersonOwnAccount SOURCE KEY (id) REFERENCES Person DESTINATION KEY (account_id) REFERENCES Account LABEL Owns );
Knoten- oder Kantendefinitionen entfernen
Wenn Sie vorhandene Knoten- oder Kantendefinitionen entfernen möchten, erstellen Sie den Attributgraphen ohne diese Knoten- oder Kantentabellen neu.
Im Folgenden werden die Knotendefinition Person
und die Kantendefinition PersonOwnAccount
entfernt, indem sie in der CREATE OR REPLACE PROPERTY GRAPH
-Anweisung ausgelassen werden.
CREATE OR REPLACE PROPERTY GRAPH FinGraph
NODE TABLES (
Account
)
EDGE TABLES (
AccountTransferAccount
SOURCE KEY (id) REFERENCES Account
DESTINATION KEY (to_id) REFERENCES Account
LABEL Transfers
);
Attributgrafikschema löschen
Mit der DDL-Anweisung DROP PROPERTY
GRAPH
können Sie ein Grafschema aus den zugrunde liegenden Eingabetabellen löschen. Wenn Sie ein Schema löschen, können Sie die Daten aus der zugrunde liegenden Tabelle nicht löschen.
Mit dem folgenden Code wird das Schema der Attributgrafik FinGraph
gelöscht:
DROP PROPERTY GRAPH FinGraph;
Nächste Schritte
- Spanner Graph-Daten verwalten
- Weitere Informationen zu Spanner Graph-Abfragen
- Best Practices für das Optimieren von Spanner Graph-Abfragen