Este documento fornece um guia abrangente sobre a gestão de esquemas de propriedades do Spanner Graph, detalhando os processos de criação, atualização e eliminação de esquemas através de declarações DDL.
Para mais informações sobre esquemas de gráficos de propriedades, consulte a vista geral do esquema do Spanner Graph. Se encontrar erros quando cria um esquema de gráfico de propriedades, consulte Resolva problemas do Spanner Graph.
Crie 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.
- Crie as tabelas de entrada de dados de limite.
- Defina o gráfico de propriedades.
Quando criar um esquema de gráfico de propriedades, certifique-se de que tem em conta as práticas recomendadas.
As secções seguintes mostram como criar um esquema de grafo de propriedades de exemplo:
Crie tabelas de entrada de nós
O seguinte cria duas tabelas de entrada de nós, Person
e Account
, que servem de entrada para as definições de nós no exemplo do gráfico de propriedades:
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);
Crie tabelas de entrada de limites
O código seguinte cria duas tabelas de entrada de arestas, PersonOwnAccount
e
AccountTransferAccount
, como entrada para as definições de arestas no exemplo
de gráfico 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;
Defina um gráfico de propriedades
O código seguinte define o gráfico de propriedades através da declaração CREATE PROPERTY GRAPH
. Esta declaração define um gráfico de propriedades denominado 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
);
Atualize um esquema de gráfico de propriedades
Depois de criar um esquema de gráfico de propriedades, atualize-o através da declaração CREATE OR
REPLACE PROPERTY GRAPH
. Esta declaração aplica as alterações recriando o esquema do gráfico com a atualização pretendida.
Pode fazer as seguintes alterações a um esquema de gráfico de propriedades:
Adicione uma definição de nó ou aresta: crie as novas tabelas de entrada para os nós e as arestas e, em seguida, use a declaração
CREATE OR REPLACE PROPERTY GRAPH
para adicionar as novas definições ao gráfico.Atualize uma definição de nó ou aresta: atualize a tabela de entrada subjacente com novas definições de nós e arestas. Em seguida, use a declaração
CREATE OR REPLACE PROPERTY GRAPH
para atualizar as definições no gráfico.Remova uma definição de nó ou aresta: use a declaração
CREATE OR REPLACE PROPERTY GRAPH
e omita as definições que quer remover do gráfico.
Adicione novas definições de nós ou arestas
Para adicionar um novo nó e uma nova definição de aresta, siga estes passos:
Adicione uma nova tabela de entrada de definição de nós,
Company
, e uma nova tabela de entrada de definição de arestas,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 do nóCompany
e a nova definição da 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 );
Atualize as definições de nós ou arestas
Para atualizar uma definição de nó ou aresta existente, primeiro, altere a tabela de entrada subjacente e, em seguida, use a declaração CREATE OR REPLACE PROPERTY GRAPH
para aplicar as alterações de esquema ao gráfico. Para personalizar as propriedades expostas das tabelas de entrada, use o elemento PROPERTIES clause
.
Para mais informações, consulte o artigo
Personalize etiquetas e propriedades.
Os passos seguintes mostram como atualizar a tabela subjacente de um esquema e, em seguida, aplicar a atualização ao esquema.
Adicione a coluna
mailing_address
à tabela de entrada subjacente.Person
ALTER TABLE Person ADD COLUMN mailing_address STRING(MAX);
Aplique as alterações à tabela
Person
ao esquema. Use a declaraçãoCREATE OR REPLACE PROPERTY GRAPH
. A definição do nóPerson
reflete a definição da tabelaPerson
atualizada porque o esquema da tabela de entrada foi alterado.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 );
Remova definições de nós ou arestas
Para remover definições de nós ou arestas existentes, recrie o gráfico de propriedades sem essas tabelas de nós ou arestas.
O seguinte remove a definição do nó Person
e a definição da aresta PersonOwnAccount
omitindo-as na declaraçã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
);
Elimine um esquema de gráfico de propriedades
Para eliminar um esquema de gráfico das tabelas de entrada subjacentes, use a declaração LDD DROP PROPERTY
GRAPH
. Não pode eliminar os dados da tabela subjacente quando
elimina um esquema.
O código seguinte elimina o esquema do gráfico de propriedades FinGraph
:
DROP PROPERTY GRAPH FinGraph;
O que se segue?
- Faça a gestão dos dados do Spanner Graph.
- Saiba mais sobre as consultas de grafos do Spanner.
- Saiba mais sobre as práticas recomendadas para otimizar as consultas do Spanner Graph.