Ce document fournit un guide complet sur la gestion des schémas de propriétés Spanner Graph. Il détaille les processus de création, de mise à jour et de suppression des schémas à l'aide d'instructions LDD.
Pour en savoir plus sur les schémas de graphiques de propriétés, consultez la présentation du schéma Spanner Graph. Si vous rencontrez des erreurs lors de la création d'un schéma de graphe de propriété, consultez Résoudre les problèmes liés à Spanner Graph.
Créer un schéma de graphique de propriétés
Pour créer un schéma de graphique de propriétés :
- Créez les tables d'entrée des nœuds.
- Créez les tables d'entrée Edge.
- Définissez le graphe de propriété.
Lorsque vous créez un schéma de graphique de propriétés, veillez à tenir compte des bonnes pratiques.
Les sections suivantes montrent comment créer un exemple de schéma de graphique de propriété :
Créer des tables d'entrée de nœud
L'exemple suivant crée deux tables d'entrée de nœud, Person
et Account
, qui servent d'entrée pour les définitions de nœud dans l'exemple de graphique de propriété :
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);
Créer des tables d'entrée d'arêtes
Le code suivant crée deux tables d'entrée d'arêtes, PersonOwnAccount
et AccountTransferAccount
, comme entrée pour les définitions d'arêtes dans l'exemple de graphique de propriétés :
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;
Définir un graphe de propriétés
Le code suivant définit le graphique de propriété à l'aide de l'instruction CREATE PROPERTY GRAPH
. Cette instruction définit un graphe de propriétés nommé FinGraph
avec des nœuds Account
et Person
, et des arêtes PersonOwnAccount
et 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
);
Mettre à jour le schéma d'un graphe de propriété
Une fois que vous avez créé un schéma de graphique de propriétés, vous le mettez à jour à l'aide de l'instruction CREATE OR
REPLACE PROPERTY GRAPH
. Cette instruction applique les modifications en recréant le schéma du graphique avec la mise à jour souhaitée.
Vous pouvez apporter les modifications suivantes à un schéma de graphique de propriétés :
Ajouter une définition de nœud ou d'arête : créez les nouvelles tables d'entrée pour les nœuds et les arêtes, puis utilisez l'instruction
CREATE OR REPLACE PROPERTY GRAPH
pour ajouter les nouvelles définitions au graphique.Mettre à jour une définition de nœud ou d'arête : mettez à jour la table d'entrée sous-jacente avec de nouvelles définitions de nœuds et d'arêtes. Utilisez ensuite l'instruction
CREATE OR REPLACE PROPERTY GRAPH
pour mettre à jour les définitions dans le graphique.Supprimer la définition d'un nœud ou d'un bord : utilisez l'instruction
CREATE OR REPLACE PROPERTY GRAPH
et omettez les définitions que vous souhaitez supprimer du graphique.
Ajouter des définitions de nœuds ou d'arêtes
Pour ajouter une définition de nœud et d'arête, procédez comme suit :
Ajoutez une table d'entrée de définition de nœud,
Company
, et une table d'entrée de définition d'arête,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;
Mettez à jour le schéma
FinGraph
en ajoutant la nouvelle définition de nœudCompany
et la nouvelle définition d'arêtePersonInvestCompany
.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 );
Mettre à jour les définitions de nœuds ou d'arêtes
Pour mettre à jour une définition de nœud ou d'arête existante, vous devez d'abord modifier la table d'entrée sous-jacente, puis utiliser l'instruction CREATE OR REPLACE PROPERTY GRAPH
pour appliquer les modifications de schéma au graphique. Pour personnaliser les propriétés exposées à partir des tables d'entrée, utilisez PROPERTIES clause
.
Pour en savoir plus, consultez Personnaliser les libellés et les propriétés.
Les étapes suivantes montrent comment mettre à jour le tableau sous-jacent d'un schéma, puis appliquer la mise à jour au schéma.
Ajoutez la colonne
mailing_address
à la table d'entrée sous-jacentePerson
.ALTER TABLE Person ADD COLUMN mailing_address STRING(MAX);
Appliquez les modifications apportées à la table
Person
au schéma. Utilisez l'instructionCREATE OR REPLACE PROPERTY GRAPH
. La définition du nœudPerson
reflète la définition de tablePerson
mise à jour, car le schéma de la table d'entrée a été modifié.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 );
Supprimer des définitions de nœuds ou d'arêtes
Pour supprimer des définitions de nœuds ou d'arêtes existantes, recréez le graphique de propriétés sans ces tables de nœuds ni d'arêtes.
L'exemple suivant supprime la définition du nœud Person
et la définition de l'arête PersonOwnAccount
en les omettant dans l'instruction 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
);
Supprimer un schéma de graphe de propriétés
Pour supprimer un schéma de graphique des tables d'entrée sous-jacentes, utilisez l'instruction LDD DROP PROPERTY
GRAPH
. Vous ne pouvez pas supprimer les données de la table sous-jacente lorsque vous supprimez un schéma.
Le code suivant supprime le schéma du graphe de propriétés FinGraph
:
DROP PROPERTY GRAPH FinGraph;
Étapes suivantes
- Gérer les données Spanner Graph
- En savoir plus sur les requêtes Spanner Graph
- Découvrez les bonnes pratiques pour ajuster les requêtes Spanner Graph.