Gérer un schéma Spanner Graph

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 :

  1. Créez les tables d'entrée des nœuds.
  2. Créez les tables d'entrée Edge.
  3. 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 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 :

  1. 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;
    
  2. Mettez à jour le schéma FinGraph en ajoutant la nouvelle définition de nœud Company et la nouvelle définition d'arête PersonInvestCompany.

    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.

  1. Ajoutez la colonne mailing_address à la table d'entrée sous-jacente Person.

    ALTER TABLE Person
    ADD COLUMN mailing_address STRING(MAX);
    
  2. Appliquez les modifications apportées à la table Person au schéma. Utilisez l'instruction CREATE OR REPLACE PROPERTY GRAPH. La définition du nœud Person reflète la définition de table Person 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