Questo documento fornisce una guida completa alla gestione degli schemi delle proprietà di Spanner Graph, descrivendo in dettaglio le procedure per creare, aggiornare ed eliminare gli schemi utilizzando le istruzioni DDL.
Per saperne di più sugli schemi dei grafici delle proprietà, consulta la panoramica dello schema di Spanner Graph. Se si verificano errori durante la creazione di uno schema del grafico delle proprietà, consulta Risolvere i problemi relativi a Spanner Graph.
Crea uno schema del grafico delle proprietà
Per creare uno schema del grafico delle proprietà:
- Crea le tabelle di input dei nodi.
- Crea le tabelle di input degli archi.
- Definisci il grafico delle proprietà.
Quando crei uno schema del grafico delle proprietà, assicurati di prendere in considerazione le best practice.
Le sezioni seguenti mostrano come creare uno schema di esempio del grafico delle proprietà:
Crea tabelle di input dei nodi
Il seguente codice crea due tabelle di input dei nodi, Person
e Account
, che fungono
da input per le definizioni dei nodi nel grafico delle proprietà di esempio:
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);
Creare tabelle di input perimetrali
Il seguente codice crea due tabelle di input edge, PersonOwnAccount
e
AccountTransferAccount
, come input per le definizioni edge nel grafico delle proprietà
di esempio:
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;
Definisci un grafico delle proprietà
Il seguente codice definisce il grafico delle proprietà utilizzando l'istruzione CREATE PROPERTY GRAPH
. Questa istruzione definisce un grafico delle proprietà denominato FinGraph
con
nodi Account
e Person
e archi PersonOwnAccount
e
AccountTransferAccount
:
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
);
Aggiorna uno schema del grafico delle proprietà
Dopo aver creato uno schema del grafico delle proprietà, lo aggiorni utilizzando l'istruzione CREATE OR
REPLACE PROPERTY GRAPH
. Questa istruzione applica le modifiche
ricreando lo schema del grafico con l'aggiornamento desiderato.
Puoi apportare le seguenti modifiche a uno schema del grafico delle proprietà:
Aggiungi una definizione di nodo o arco: crea le nuove tabelle di input per i nodi e gli archi, quindi utilizza l'istruzione
CREATE OR REPLACE PROPERTY GRAPH
per aggiungere le nuove definizioni al grafico.Aggiorna una definizione di nodo o arco: aggiorna la tabella di input sottostante con nuove definizioni di nodi e archi. Poi, utilizza l'istruzione
CREATE OR REPLACE PROPERTY GRAPH
per aggiornare le definizioni nel grafico.Rimuovi una definizione di nodo o arco: utilizza l'istruzione
CREATE OR REPLACE PROPERTY GRAPH
e ometti le definizioni che vuoi rimuovere dal grafico.
Aggiungere nuove definizioni di nodi o archi
Per aggiungere un nuovo nodo e una nuova definizione di arco:
Aggiungi una nuova tabella di input per la definizione dei nodi,
Company
, e una nuova tabella di input per la definizione degli archi,PersonInvestCompany
.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;
Aggiorna lo schema
FinGraph
aggiungendo la nuova definizione del nodoCompany
e la nuova definizione del bordoPersonInvestCompany
.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 );
Aggiornare le definizioni di nodi o archi
Per aggiornare una definizione di nodo o arco esistente, devi prima modificare la tabella di input sottostante e poi utilizzare l'istruzione CREATE OR REPLACE PROPERTY GRAPH
per applicare le modifiche allo schema al grafico. Per personalizzare le
proprietà esposte dalle tabelle di input, utilizza
PROPERTIES clause
.
Per ulteriori informazioni, vedi
Personalizzare etichette e proprietà.
I seguenti passaggi mostrano come aggiornare la tabella sottostante di uno schema, quindi applicare l'aggiornamento allo schema.
Aggiungi la colonna
mailing_address
alla tabella di input sottostantePerson
.ALTER TABLE Person ADD COLUMN mailing_address STRING(MAX);
Applica le modifiche alla tabella
Person
allo schema. Utilizza l'istruzioneCREATE OR REPLACE PROPERTY GRAPH
. La definizione del nodoPerson
riflette la definizione della tabellaPerson
aggiornata perché lo schema della tabella di input è cambiato.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 );
Rimuovere le definizioni di nodi o archi
Per rimuovere le definizioni di nodi o archi esistenti, ricrea il grafico delle proprietà senza le tabelle di nodi o archi.
Il seguente codice rimuove la definizione del nodo Person
e la definizione del bordo PersonOwnAccount
omettendoli nell'istruzione CREATE OR REPLACE PROPERTY GRAPH
.
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
);
Elimina uno schema del grafico delle proprietà
Per eliminare uno schema del grafico dalle tabelle di input sottostanti, utilizza l'istruzione DDL DROP PROPERTY
GRAPH
. Quando elimini uno schema, non puoi eliminare i dati dalla tabella sottostante.
Il seguente codice elimina lo schema del grafico delle proprietà FinGraph
:
DROP PROPERTY GRAPH FinGraph;
Passaggi successivi
- Gestisci i dati di Spanner Graph.
- Scopri di più sulle query di Spanner Graph.
- Scopri le best practice per l'ottimizzazione delle query Spanner Graph.