En este documento, se proporciona una guía integral para administrar los esquemas de propiedades de Spanner Graph, en la que se detallan los procesos para crear, actualizar y descartar esquemas con instrucciones DDL.
Para obtener más información sobre los esquemas de gráficos de propiedades, consulta la descripción general del esquema de Spanner Graph. Si encuentras errores cuando creas un esquema de gráfico de propiedades, consulta Soluciona problemas de Spanner Graph.
Crea un esquema de gráfico de propiedades
Para crear un esquema de gráfico de propiedades, haz lo siguiente:
- Crea las tablas de entrada de nodos.
- Crea las tablas de entrada de borde.
- Define el gráfico de propiedades.
Cuando crees un esquema de grafo de propiedades, asegúrate de tener en cuenta las prácticas recomendadas.
En las siguientes secciones, se muestra cómo crear un esquema de gráfico de propiedades de ejemplo:
Crea tablas de entrada de nodos
En el siguiente ejemplo, se crean dos tablas de entrada de nodos, Person y Account, que sirven como entrada para las definiciones de nodos en el gráfico de propiedades de ejemplo:
  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);
Crea tablas de entrada de borde
El siguiente código crea dos tablas de entrada de borde, PersonOwnAccount y AccountTransferAccount, como entrada para las definiciones de borde en el gráfico de propiedades de ejemplo:
  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;
Cómo definir un grafo de propiedad
El siguiente código define el gráfico de propiedades con la instrucción CREATE PROPERTY GRAPH. Esta sentencia define un gráfico de propiedades llamado FinGraph con nodos Account y Person, y aristas PersonOwnAccount y 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
    );
Actualiza un esquema de gráfico de propiedades
Después de crear un esquema de gráfico de propiedades, puedes actualizarlo con la sentencia CREATE OR
REPLACE PROPERTY GRAPH. Esta instrucción aplica los cambios recreando el esquema del gráfico con la actualización deseada.
Puedes realizar los siguientes cambios en el esquema de un gráfico de propiedades:
- Agrega una definición de nodo o borde: Crea las nuevas tablas de entrada para los nodos y los bordes, y, luego, usa la instrucción - CREATE OR REPLACE PROPERTY GRAPHpara agregar las nuevas definiciones al grafo.
- Actualiza una definición de nodo o borde: Actualiza la tabla de entrada subyacente con nuevas definiciones de nodos y bordes. Luego, usa la declaración - CREATE OR REPLACE PROPERTY GRAPHpara actualizar las definiciones en el gráfico.
- Quita una definición de nodo o borde: Usa la instrucción - CREATE OR REPLACE PROPERTY GRAPHy omite las definiciones que quieras quitar del gráfico.
Agregar definiciones de nodos o bordes nuevos
Para agregar un nodo y una definición de borde nuevos, sigue estos pasos:
- Agrega una nueva tabla de entrada de definición de nodo, - Company, y una nueva tabla de entrada de definición de borde,- 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;
- Actualiza el esquema - FinGraphagregando la nueva definición del nodo- Companyy la nueva definición del borde- 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 );
Actualiza las definiciones de nodos o aristas
Para actualizar una definición de nodo o borde existente, primero debes modificar la tabla de entrada subyacente y, luego, usar la instrucción CREATE OR REPLACE PROPERTY GRAPH para aplicar los cambios de esquema al grafo. Para personalizar las propiedades expuestas desde las tablas de entrada, usa PROPERTIES clause.
Para obtener más información, consulta Cómo personalizar etiquetas y propiedades.
En los siguientes pasos, se muestra cómo actualizar la tabla subyacente de un esquema y, luego, aplicar la actualización al esquema.
- Agrega la columna - mailing_addressa la tabla de entrada subyacente- Person.- ALTER TABLE Person ADD COLUMN mailing_address STRING(MAX);
- Aplica los cambios a la tabla - Personen el esquema. Usa la sentencia- CREATE OR REPLACE PROPERTY GRAPH. La definición del nodo- Personrefleja la definición actualizada de la tabla- Personporque cambió el esquema de la tabla de entrada.- 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 );
Cómo quitar definiciones de nodos o bordes
Para quitar las definiciones de nodos o bordes existentes, vuelve a crear el gráfico de propiedades sin esas tablas de nodos o bordes.
En el siguiente ejemplo, se quitan la definición del nodo Person y la definición del borde PersonOwnAccount omitiéndolos en la instrucción 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
    );
Descarta un esquema de gráfico de propiedades
Para descartar un esquema de gráfico de las tablas de entrada subyacentes, usa la declaración DDL DROP PROPERTY
GRAPH. No puedes borrar los datos de la tabla subyacente cuando descartas un esquema.
El siguiente código descarta el esquema del gráfico de propiedades FinGraph:
DROP PROPERTY GRAPH FinGraph;
¿Qué sigue?
- Administra datos de Spanner Graph.
- Obtén más información sobre las consultas de Spanner Graph.
- Obtén información sobre las prácticas recomendadas para optimizar las consultas de Spanner Graph.