Este documento mostra como configurar e consultar um banco de dados do Spanner Graph para modelar, armazenar e analisar relações de dados complexas usando o Google Cloud console e as bibliotecas de cliente.
Os tópicos a seguir ajudam você a aprender como:
Para saber mais sobre os detalhes de preços do Spanner, consulte Preços do Spanner.
Para testar um codelab, consulte Introdução ao Spanner Graph.
Antes de começar
- Faça login nasua Google Cloud conta. Se você começou a usar o Google Cloud, crie uma conta para avaliar o desempenho dos nossos produtos em situações reais. Clientes novos também recebem US $300 em créditos para executar, testar e implantar cargas de trabalho.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- Ative a API Spanner:
Acessar a API Spanner
-
Para receber as permissões necessárias para criar instâncias e bancos de dados, peça ao administrador para conceder a você o papel do IAM de administrador do Cloud Spanner (
roles/spanner.admin) no projeto.
-
Para receber as permissões necessárias para consultar gráficos do Spanner, caso não tenha recebido o papel de administrador do Cloud Spanner, peça ao administrador para conceder a você opapel do IAM de leitor do banco de dados do Cloud Spanner (
roles/spanner.databaseReader) no projeto.
Criar uma instância do Spanner
Ao usar o Spanner pela primeira vez, é necessário criar uma instância, que aloca recursos para bancos de dados do Spanner. Esta seção mostra como criar uma instância usando o Google Cloud console.
No Google Cloud console, acesse a página Spanner.
Selecione ou crie um Google Cloud projeto, se ainda não tiver feito isso.
Escolha uma destas opções:
Se você nunca criou uma instância do Spanner, na página Bem-vindo ao Spanner, clique em Criar uma instância provisionada.
Se você já criou uma instância do Spanner, na página Instâncias, clique em Criar instância.
Na página Selecionar uma edição, escolha Enterprise Plus ou Enterprise.
O Spanner Graph está disponível apenas nas edições Enterprise ou Enterprise Plus. Para comparar as diferentes edições, clique em Comparar edições. Para mais informações, consulte o resumo das edições do Spanner.
Clique em Continuar.
Em Nome da instância, insira um nome de instância, por exemplo,
test-instance.Em ID da instância, mantenha ou altere o ID da instância. O ID da instância é definido como o nome da instância por padrão, mas é possível alterá-lo. O nome e o ID da instância podem ser iguais ou diferentes.
Clique em Continuar.
Em Escolher uma configuração, faça o seguinte:
Mantenha a opção Regional selecionada.
Em Selecionar uma configuração, escolha uma região. O Spanner armazena e replica suas instâncias na região selecionada.
Clique em Continuar.
Em Configurar capacidade de computação, faça o seguinte:
Em Selecionar unidade, escolha Unidades de processamento (PUs).
Em Escolher um modo de escalonamento, mantenha a opção Alocação manual selecionada e, em Quantidade, mantenha 1.000 unidades de processamento.
Clique em Criar. O Google Cloud console mostra a página Visão geral da instância criada.
Criar um banco de dados de gráfico usando um esquema
Esta seção mostra como criar um banco de dados do Spanner Graph usando um esquema do Spanner Graph. Use o Google Cloud console ou as bibliotecas de cliente.
Console
No Google Cloud console, acesse a página Spanner Instances.
Clique na instância criada, por exemplo,
Test Instance.Em Visão geral, abaixo do nome da instância, clique em Criar banco de dados.
Em Nome do banco de dados, insira um nome de banco de dados. Por exemplo,
example-db.Em Selecionar dialeto do banco de dados, escolha SQL padrão do Google. O Spanner Graph não está disponível no dialeto PostgreSQL.
Insira o esquema a seguir na guia do editor Modelos de DDL. O esquema contém duas definições de tabela de nós,
PersoneAccount, e duas definições de tabela de arestas,PersonOwnAccounteAccountTransferAccount. O Spanner Graph usa tabelas relacionais para definir gráficos. Portanto, você verá tabelas relacionais e instruções de gráfico no esquema. Para saber mais sobre o esquema do Spanner Graph, consulte a visão geral do esquema do Spanner Graph: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); 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; CREATE OR REPLACE 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 );Mantenha as configurações padrão em Mostrar opções de criptografia.
Clique em Criar. Google Cloud Oconsole mostra a página Visão geral do banco de dados criado.
Bibliotecas de cliente
Python
Java
Go
C++
Inserir dados de gráfico
Depois de criar o banco de dados, você pode adicionar dados a ele. Esta seção mostra como inserir dados no gráfico usando o Google Cloud console para uma interface gráfica ou usando as bibliotecas de cliente de forma programática.
Console
Na página Spanner Studio, clique em Nova guia ou use a guia do editor.
Copie e cole as instruções de inserção de dados de gráfico a seguir nos nós e arestas.
INSERT INTO Account (id, create_time, is_blocked, nick_name) VALUES (7,"2020-01-10 06:22:20.222",false,"Vacation Fund"), (16,"2020-01-27 17:55:09.206",true,"Vacation Fund"), (20,"2020-02-18 05:44:20.655",false,"Rainy Day Fund"); INSERT INTO Person (id, name, birthday, country, city) VALUES (1,"Alex","1991-12-21 00:00:00","Australia","Adelaide"), (2,"Dana","1980-10-31 00:00:00","Czech_Republic","Moravia"), (3,"Lee","1986-12-07 00:00:00","India","Kollam"); INSERT INTO AccountTransferAccount (id, to_id, amount, create_time, order_number) VALUES (7,16,300,"2020-08-29 15:28:58.647","304330008004315"), (7,16,100,"2020-10-04 16:55:05.342","304120005529714"), (16,20,300,"2020-09-25 02:36:14.926","103650009791820"), (20,7,500,"2020-10-04 16:55:05.342","304120005529714"), (20,16,200,"2020-10-17 03:59:40.247","302290001255747"); INSERT INTO PersonOwnAccount (id, account_id, create_time) VALUES (1,7,"2020-01-10 06:22:20.222"), (2,20,"2020-01-27 17:55:09.206"), (3,16,"2020-02-18 05:44:20.655");Clique em Executar. Quando a execução for concluída, a guia Resultados mostrará que três linhas foram inseridas.
Bibliotecas de cliente
Python
Java
Go
C++
O gráfico a seguir mostra as pessoas, as contas, a propriedade da conta e as transferências de conta das inserções:
Executar uma consulta de gráfico
Depois de inserir dados no gráfico, você pode consultá-lo para encontrar padrões e relações. Esta seção mostra como executar consultas usando o Google Cloud console para uma interface gráfica ou de forma programática com bibliotecas de cliente.
Console
Na página Visão geral do banco de dados, clique em Spanner Studio no menu de navegação.
Na página Spanner Studio, clique em Nova guia ou use a guia do editor.
Insira a consulta a seguir no editor de consultas. A consulta encontra todos os destinatários das transferências de dinheiro de Dana e o valor dessas transferências.
GRAPH FinGraph MATCH (from_person:Person {name: "Dana"})-[:Owns]-> (from_account:Account)-[transfer:Transfers]-> (to_account:Account)<-[:Owns]-(to_person:Person) RETURN from_person.name AS from_account_owner, from_account.id AS from_account_id, to_person.name AS to_account_owner, to_account.id AS to_account_id, transfer.amount AS amountClique em Executar.
A guia Resultados mostra os seguintes caminhos de Dana, que é proprietária da conta número 20:
- Para
Account {id:7}de Alex. Para
Account {id:16}de Lee.
- Para
Bibliotecas de cliente
Python
Java
Go
C++
Limpar
Esta seção mostra como limpar os recursos criados para evitar cobranças na sua conta do Cloud Billing. Se você planeja explorar outros exemplos do Spanner Graph na seção A seguir, não execute essas etapas ainda. A exclusão de uma instância do Spanner também exclui todos os bancos de dados dessa instância.
Excluir o banco de dados
No Google Cloud console, acesse Instâncias do Spanner.
Clique no nome da instância, por exemplo, Instância de teste.
Clique no nome do banco de dados, por exemplo, example-db.
Na página Detalhes do banco de dados, clique em Excluir banco de dados.
Confirme se quer excluir o banco de dados inserindo o nome dele e clicando em Excluir.
Excluir a instância
No Google Cloud console, acesse a página Instâncias do Spanner.
Clique no nome da instância que você quer excluir, por exemplo, Instância de teste.
Clique em Excluir instância.
Confirme se quer excluir a instância inserindo o nome dela e clicando em Excluir.
A seguir
- Saiba mais sobre o Spanner Graph usando um codelab.
- Saiba mais sobre o esquema do Spanner Graph.
- Criar, atualizar ou descartar um esquema do Spanner Graph.
- Inserir, atualizar ou excluir dados do Spanner Graph.
- Visão geral das consultas do Spanner Graph.
- Migrar para o Spanner Graph.
- Saiba mais sobre as práticas recomendadas para o design de esquema do Spanner Graph.
- Saiba mais sobre as práticas recomendadas para ajustar consultas do Spanner Graph.