Este documento fornece um guia abrangente sobre como gerenciar esquemas de propriedades do Spanner Graph, detalhando os processos para criar, atualizar e remover esquemas usando instruções DDL.
Para mais informações sobre esquemas de gráficos de propriedades, consulte a visão geral do esquema do Spanner Graph. Se você encontrar erros ao criar um esquema de gráfico de propriedades, consulte Resolver problemas do Spanner Graph.
Criar um esquema de gráfico de propriedades
Para criar um esquema de gráfico de propriedades, faça o seguinte:
- Crie as tabelas de entrada de nós.
- Criar as tabelas de entrada de aresta.
- Defina o gráfico de propriedades.
Ao criar um esquema de gráfico de propriedades, considere as práticas recomendadas.
As seções a seguir mostram como criar um exemplo de esquema de gráfico de propriedades:
Criar tabelas de entrada de nós
O exemplo a seguir cria duas tabelas de entrada de nós, Person
e Account
, que servem
como entrada para as definições de nós no gráfico de propriedades de exemplo:
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);
Criar tabelas de entrada de borda
O código a seguir cria duas tabelas de entrada de arestas, PersonOwnAccount
e
AccountTransferAccount
, como entrada para as definições de arestas no exemplo
de grafo de propriedades:
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;
Definir um gráfico de propriedades
O código a seguir define o gráfico de propriedades usando a instrução CREATE PROPERTY GRAPH
. Esta instrução define um gráfico de propriedades chamado FinGraph
com nós Account
e Person
e arestas 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
);
Atualizar um esquema de gráfico de propriedades
Depois de criar um esquema de gráfico de propriedades, atualize-o usando a instrução CREATE OR
REPLACE PROPERTY GRAPH
. Essa instrução aplica as mudanças recriando o esquema do gráfico com a atualização desejada.
É possível fazer as seguintes mudanças em um esquema de gráfico de propriedades:
Adicionar uma definição de nó ou aresta: crie as novas tabelas de entrada para os nós e arestas e use a instrução
CREATE OR REPLACE PROPERTY GRAPH
para adicionar as novas definições ao gráfico.Atualizar uma definição de nó ou aresta: atualize a tabela de entrada subjacente com novas definições de nó e aresta. Em seguida, use a instrução
CREATE OR REPLACE PROPERTY GRAPH
para atualizar as definições no gráfico.Remover uma definição de nó ou aresta: use a instrução
CREATE OR REPLACE PROPERTY GRAPH
e omita as definições que você quer remover do gráfico.
Adicionar novas definições de nó ou aresta
Para adicionar um novo nó e uma nova definição de aresta, siga estas etapas:
Adicione uma nova tabela de entrada de definição de nó,
Company
, e uma nova tabela de entrada de definição de aresta,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;
Atualize o esquema
FinGraph
adicionando a nova definição de nóCompany
e a nova definição de arestaPersonInvestCompany
.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 );
Atualizar definições de nós ou arestas
Para atualizar uma definição de nó ou aresta, primeiro altere a tabela de entrada subjacente e use a instrução CREATE OR REPLACE PROPERTY GRAPH
para aplicar as mudanças de esquema ao gráfico. Para personalizar as propriedades expostas das tabelas de entrada, use PROPERTIES clause
.
Para mais informações, consulte
Personalizar rótulos e propriedades.
As etapas a seguir mostram como atualizar a tabela subjacente de um esquema e aplicar a atualização a ele.
Adicione a coluna
mailing_address
à tabela de entradaPerson
.ALTER TABLE Person ADD COLUMN mailing_address STRING(MAX);
Aplique as mudanças na tabela
Person
ao esquema. Use a instruçãoCREATE OR REPLACE PROPERTY GRAPH
. A definição do nóPerson
reflete a definição atualizada da tabelaPerson
porque o esquema da tabela de entrada mudou.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 );
Remover definições de nós ou arestas
Para remover definições de nós ou arestas, recrie o gráfico de propriedades sem essas tabelas.
O exemplo a seguir remove a definição do nó Person
e a definição da aresta PersonOwnAccount
omitindo-as na instrução 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
);
Descartar um esquema de gráfico de propriedades
Para descartar um esquema de gráfico das tabelas de entrada subjacentes, use a instrução DDL DROP PROPERTY
GRAPH
. Não é possível excluir os dados da tabela subjacente ao
remover um esquema.
O código a seguir descarta o esquema do gráfico de propriedades FinGraph
:
DROP PROPERTY GRAPH FinGraph;
A seguir
- Gerenciar dados do gráfico do Spanner.
- Saiba mais sobre as consultas do Spanner Graph.
- Conheça as práticas recomendadas para ajustar consultas de gráficos do Spanner.