Nesta página, descrevemos como criar e gerenciar bancos de dados do Spanner:
- Vários métodos para criar um banco de dados
- Modificar opções de banco de dados
- Excluir um banco de dados
Esta página contém informações sobre bancos de dados de dialeto do GoogleSQL e do PostgreSQL. Para saber como atualizar um esquema de banco de dados, consulte Fazer atualizações de esquema. Para mais informações sobre como criar uma instância, consulte Criar e gerenciar instâncias. É possível criar um banco de dados em uma instância atual de uma das seguintes maneiras:
- Criar um banco de dados: é possível criar um novo banco de dados selecionando o dialeto SQL e definindo o esquema.
- Importar seus próprios dados: é possível importar um arquivo CSV, arquivo dump do MySQL ou arquivo dump do PostgreSQL para um banco de dados novo ou atual.
- Importar um banco de dados do Cloud SQL: é possível importar um banco de dados do Cloud SQL para MySQL para o Spanner.
- Criar um banco de dados com dados de amostra: é possível preencher um banco de dados usando um dos conjuntos de dados de amostra disponíveis para testar os recursos do Spanner.
Criar um banco de dados
É possível criar um novo banco de dados em uma instância atual. Para bancos de dados de dialeto do GoogleSQL, é possível definir o esquema do banco de dados no momento da criação ou depois que ele for criado. Para bancos de dados de dialeto PostgreSQL, é preciso definir o esquema após a criação.
Os esquemas são definidos usando a linguagem de definição de banco de dados, que está documentada para GoogleSQL e PostgreSQL. Consulte os links a seguir para mais informações sobre como criar e atualizar esquemas:
Depois de criar o banco de dados, é possível proteger os bancos de dados importantes para seus aplicativos e serviços ativando a proteção contra exclusão de bancos de dados. Para mais informações, consulte Evitar a exclusão acidental do banco de dados.
Console do Google Cloud
No console do Google Cloud , acesse a página Instâncias do Spanner.
Selecione a instância em que o banco de dados será criado.
Clique em Criar banco de dados.
Digite os seguintes valores:
- Um nome de banco de dados para exibir no console do Google Cloud .
- O dialeto a ser usado para esse banco de dados.
- Para bancos de dados de dialeto do GoogleSQL, forneça um conjunto de instruções DDL que definem seu esquema. Use os modelos de DDL para preencher automaticamente elementos comuns. Se houver erros nas instruções DDL, o console do Google Cloud vai retornar um erro quando você tentar criar o banco de dados.
- Se quiser, selecione uma chave de criptografia gerenciada pelo cliente para usar neste banco de dados.
Clique em Criar para criar o banco de dados.
gcloud
Use o comando gcloud spanner databases create.
```sh
gcloud spanner databases create DATABASE \
--instance=INSTANCE \
[--async] \
[--database-dialect=DATABASE_DIALECT] \
[--ddl=DDL] \
[--ddl-file=DDL_FILE] \
[--kms-key=KMS_KEY : --kms-keyring=KMS_KEYRING --kms-location=KMS_LOCATION --kms-project=KMS_PROJECT] \
[GCLOUD_WIDE_FLAG …]
```
As seguintes opções são obrigatórias:
DATABASE- ID do banco de dados ou identificador totalmente qualificado do
banco de dados. Se você especificar o identificador totalmente qualificado, a
flag
--instancepoderá ser omitida. --instance=INSTANCE- A instância do Spanner para o banco de dados.
As seguintes opções são opcionais:
--async- Retorna imediatamente, sem aguardar a conclusão da operação em andamento.
--database-dialect=DATABASE_DIALECT- O dialeto SQL do banco de dados do Spanner. Precisa ser
um destes:
POSTGRESQL,GOOGLE_STANDARD_SQL. --ddl=DDL- Instruções DDL (linguagem de definição de dados) separadas por ponto e vírgula para serem executadas
no banco de dados recém-criado. Se houver um erro em qualquer
instrução, o banco de dados não será criado. Essa flag será ignorada se
--ddl_fileestiver definido. Não é compatível com bancos de dados de dialeto PostgreSQL. --ddl-file=DDL_FILE- Caminho de um arquivo que contém instruções DDL (linguagem de definição de dados) separadas por ponto e vírgula para serem executadas no banco de dados recém-criado. Se houver um erro em qualquer instrução, o banco de dados não será
criado. Se
--ddl_fileestiver definido,--ddlserá ignorado. Não é compatível com bancos de dados de dialeto PostgreSQL.
Se você estiver especificando uma chave do Cloud Key Management Service para usar ao criar o banco de dados, inclua as seguintes opções:
--kms-key=KMS_KEY- ID da chave ou identificador totalmente qualificado da chave.
Essa sinalização precisa ser especificada se algum dos outros argumentos neste grupo for especificado. Os outros argumentos podem ser omitidos se o identificador totalmente qualificado for fornecido.
--kms-keyring=KMS_KEYRING- ID do keyring do Cloud KMS da chave.
--kms-location=KMS_LOCATION- Google Cloud local da chave.
--kms-project=KMS_PROJECT- Google Cloud ID do projeto da chave.
Cliente (GoogleSQL)
C++
Para saber como instalar e usar a biblioteca de cliente do Spanner, consulte Bibliotecas de cliente do Spanner.
Para autenticar no Spanner, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para saber como instalar e usar a biblioteca de cliente do Spanner, consulte Bibliotecas de cliente do Spanner.
Para autenticar no Spanner, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para saber como instalar e usar a biblioteca de cliente do Spanner, consulte Bibliotecas de cliente do Spanner.
Para autenticar no Spanner, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca de cliente do Spanner, consulte Bibliotecas de cliente do Spanner.
Para autenticar no Spanner, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para saber como instalar e usar a biblioteca de cliente do Spanner, consulte Bibliotecas de cliente do Spanner.
Para autenticar no Spanner, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente do Spanner, consulte Bibliotecas de cliente do Spanner.
Para autenticar no Spanner, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Ruby
Para saber como instalar e usar a biblioteca de cliente do Spanner, consulte Bibliotecas de cliente do Spanner.
Para autenticar no Spanner, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Cliente (PostgreSQL)
C++
Para saber como instalar e usar a biblioteca de cliente do Spanner, consulte Bibliotecas de cliente do Spanner.
Para autenticar no Spanner, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Go
Para saber como instalar e usar a biblioteca de cliente do Spanner, consulte Bibliotecas de cliente do Spanner.
Para autenticar no Spanner, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Java
Para saber como instalar e usar a biblioteca de cliente do Spanner, consulte Bibliotecas de cliente do Spanner.
Para autenticar no Spanner, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca de cliente do Spanner, consulte Bibliotecas de cliente do Spanner.
Para autenticar no Spanner, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
PHP
Para saber como instalar e usar a biblioteca de cliente do Spanner, consulte Bibliotecas de cliente do Spanner.
Para autenticar no Spanner, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca de cliente do Spanner, consulte Bibliotecas de cliente do Spanner.
Para autenticar no Spanner, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Ruby
Para saber como instalar e usar a biblioteca de cliente do Spanner, consulte Bibliotecas de cliente do Spanner.
Para autenticar no Spanner, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Importe seus próprios dados
É possível importar seus próprios dados para um banco de dados do Spanner usando um arquivo CSV, um arquivo dump do MySQL ou um arquivo dump do PostgreSQL. É possível fazer upload de um arquivo local usando o Cloud Storage ou diretamente de um bucket do Cloud Storage. O upload de um arquivo local usando o Cloud Storage pode gerar cobranças.
Se você optar por usar um arquivo CSV, também precisará fazer upload de um arquivo JSON separado que contenha o esquema do banco de dados.
Console do Google Cloud
No console do Google Cloud , acesse a página Instâncias do Spanner.
Selecione a instância em que o banco de dados será criado.
Clique em Importar meus dados.
Digite os seguintes valores:
Selecione o Tipo de arquivo.
Faça upload do arquivo do seu computador ou selecione um caminho de bucket do Cloud Storage para o arquivo.
(Opcional) Se você optar por usar um arquivo CSV, também será necessário fazer upload de um arquivo JSON separado que contenha o esquema do banco de dados. O arquivo JSON precisa usar a seguinte estrutura para definir o esquema:
{ "name": "COLUMN_NAME", "type": "TYPE", "notNull": NOT_NULL_VALUE, "primaryKeyOrder": PRIMARY_KEY_ORDER }
Substitua:
COLUMN_NAME: o nome da coluna na tabela.
TYPE: o tipo de dados da coluna.
(Opcional) NOT_NULL_VALUE: se a coluna pode armazenar valores nulos ou não. As entradas válidas são
trueoufalse. O padrão éfalse.(Opcional): PRIMARY_KEY_ORDER: determina a ordem da chave primária. Defina o valor como
0para uma coluna de chave não primária. Defina o valor como um número inteiro, por exemplo,1para uma coluna de chave primária. As colunas com números menores aparecem antes em uma chave primária composta.
Por padrão, o arquivo CSV espera uma vírgula para o delimitador de campo e uma nova linha para o delimitador de linha. Para mais informações sobre como usar delimitadores personalizados, consulte a referência
gcloud alpha spanner databases import.Selecione um banco de dados novo ou atual como destino.
Clique em Importar.
O Spanner abre o Cloud Shell e preenche um comando que instala a ferramenta de migração do Spanner e executa o comando
gcloud alpha spanner databases import. Pressione a teclaENTERpara importar dados para o banco de dados.x
Importar um banco de dados do Cloud SQL
Se você usa o Cloud SQL para MySQL e quer avaliar o Spanner, pode importar dados da instância do Cloud SQL para MySQL para o Spanner. Esse recurso converte o esquema do MySQL e gera um esquema correspondente do Spanner. Em seguida, ele carrega dados do banco de dados do Cloud SQL para MySQL no Spanner.
Essa funcionalidade realiza apenas um carregamento de dados em massa único. Ele não é compatível com a captura de mudanças de dados em tempo real ou o fallback do Spanner para o banco de dados de origem.
Para mais informações, consulte Importar do Cloud SQL para o Spanner.
Usar um conjunto de dados de amostra
Para conhecer o Spanner Graph, a pesquisa vetorial ou o modelo relacional, crie um novo banco de dados pré-preenchido com um conjunto de dados de amostra. Os conjuntos de dados de amostra disponíveis dependem do dialeto do banco de dados selecionado (GoogleSQL ou PostgreSQL).
No console do Google Cloud , acesse a página Instâncias do Spanner.
Selecione a instância em que o banco de dados será criado.
Clique em Analisar conjuntos de dados.
Selecione um conjunto de dados, dependendo do dialeto do banco de dados:
GoogleSQL
- Gráfico de finanças: use esse conjunto de dados para conhecer os recursos de gráfico e banco de dados relacional do Spanner.
- Internet banking: use esse conjunto de dados para conhecer os recursos de pesquisa de texto completo e pesquisa vetorial do Spanner.
- Jogos on-line: use esse conjunto de dados para conhecer os recursos de banco de dados relacional do Spanner.
- Varejo: use esse conjunto de dados para conhecer os recursos de gráfico, pesquisa de texto completo e busca vetorial do Spanner.
PostgreSQL
- Internet banking: use esse conjunto de dados para conhecer os recursos de pesquisa de texto completo do Spanner.
- Jogos on-line: use esse conjunto de dados para conhecer os recursos de banco de dados relacional do Spanner.
- Varejo: use esse conjunto de dados para conhecer os recursos de pesquisa de texto completo e pesquisa vetorial do Spanner.
Clique em Criar banco de dados.
Atualizar o esquema ou as opções do banco de dados
É possível atualizar o esquema e as opções do banco de dados usando instruções DDL.
Por exemplo, para adicionar uma coluna a uma tabela, use a seguinte instrução DDL:
GoogleSQL
ALTER TABLE Songwriters ADD COLUMN Publisher STRING(10);
PostgreSQL
ALTER TABLE Songwriters ADD COLUMN Publisher VARCHAR(10);
Para atualizar a versão do otimizador de consultas, use a seguinte instrução DDL:
GoogleSQL
ALTER DATABASE Music SET OPTIONS(optimizer_version=null);
PostgreSQL
ALTER DATABASE DB-NAME SET spanner.optimizer_version TO DEFAULT;
Para mais informações sobre as opções compatíveis, consulte a referência de DDL ALTER DATABASE para GoogleSQL ou PostgreSQL.
Para informações sobre atualizações de esquema, consulte Fazer atualizações de esquema.
Console do Google Cloud
No console do Google Cloud , acesse a página Instâncias do Spanner.
Selecione a instância que contém o banco de dados a ser alterado.
Selecione o banco de dados.
Clique em Spanner Studio.
Clique em Nova guia ou use a guia vazia do editor. Em seguida, insira as instruções DDL a serem aplicadas.
Clique em Executar para aplicar as atualizações. Se houver erros na DDL, o console do Google Cloud retornará um erro, e o banco de dados não será alterado.
gcloud
Para alterar um banco de dados com a ferramenta de linha de comando gcloud, use
gcloud spanner databases ddl update.
gcloud spanner databases ddl update \ (DATABASE : --instance=INSTANCE) \ [--async] \ [--ddl=DDL] \ [--ddl-file=DDL_FILE] \
Consulte a
referência de gcloud para
detalhes sobre as opções disponíveis.
Transmita as atualizações do banco de dados para o comando com a flag --ddl ou
--ddl-file. Se um arquivo DDL for especificado, a flag --ddl será ignorada.
Consulte a referência de DDL do ALTER DATABASE
para GoogleSQL ou
PostgreSQL para as instruções DDL a serem incluídas.
DDL
Consulte a referência de DDL do ALTER DATABASE
para GoogleSQL ou
PostgreSQL para mais detalhes.
Verificar o progresso das operações de atualização de esquema
Para verificar o progresso das operações de atualização de esquema, selecione um dos seguintes métodos:
Console do Google Cloud
No menu de navegação do Spanner, selecione a guia Operações. A página Operações mostra uma lista de operações ativas em execução.
Encontre a operação de esquema na lista. Se ela ainda estiver em execução, a barra de progresso na coluna Horário de término vai mostrar a porcentagem da operação que foi concluída, conforme mostrado na imagem a seguir:

gcloud
Use gcloud spanner operations describe
para verificar o progresso de uma operação.
Consiga o ID da operação:
gcloud spanner operations list --instance=INSTANCE-NAME \ --database=DATABASE-NAME --type=DATABASE_UPDATE_DDL
Substitua:
- INSTANCE-NAME pelo nome da instância do Spanner.
- DATABASE-NAME pelo nome do banco de dados.
Execute
gcloud spanner operations describe:gcloud spanner operations describe OPERATION_ID\ --instance=INSTANCE-NAME \ --database=DATABASE-NAME
Substitua:
- OPERATION-ID: o ID da operação que você quer verificar.
- INSTANCE-NAME: o nome da instância do Spanner.
- DATABASE-NAME: o nome do banco de dados do Spanner.
A seção
progressna saída mostra a porcentagem da operação que foi concluída. A saída será assim:done: true metadata: ... progress: - endTime: '2022-03-01T00:28:06.691403Z' progressPercent: 100 startTime: '2022-03-01T00:28:04.221401Z' - endTime: '2022-03-01T00:28:17.624588Z' startTime: '2022-03-01T00:28:06.691403Z' progressPercent: 100 ...
REST v1
Consiga o ID da operação:
gcloud spanner operations list --instance=INSTANCE-NAME \ --database=DATABASE-NAME --type=DATABASE_UPDATE_DDL
Substitua:
- INSTANCE-NAME pelo nome da instância do Spanner.
- DATABASE-NAME pelo nome do banco de dados.
Verifique o progresso da operação.
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- PROJECT-ID: o ID do projeto.
- INSTANCE-ID: o ID da instância
- DATABASE-ID: o ID do banco de dados.
- OPERATION-ID: o ID da operação.
Método HTTP e URL:
GET https://spanner.googleapis.com/v1/projects/PROJECT-ID/instances/INSTANCE-ID/databases/DATABASE-ID/operations/OPERATION-ID
Para enviar a solicitação, expanda uma destas opções:
Você receberá uma resposta JSON semelhante a esta:
{ ... "progress": [ { "progressPercent": 100, "startTime": "2023-05-27T00:52:27.366688Z", "endTime": "2023-05-27T00:52:30.184845Z" }, { "progressPercent": 100, "startTime": "2023-05-27T00:52:30.184845Z", "endTime": "2023-05-27T00:52:40.750959Z" } ], ... "done": true, "response": { "@type": "type.googleapis.com/google.protobuf.Empty" } }
Se a operação demorar muito, você poderá cancelá-la. Para mais informações, consulte Cancelar uma operação de banco de dados de longa duração.
O Spanner também detecta automaticamente oportunidades para aplicar as práticas recomendadas de design de esquema. Se houver recomendações disponíveis para um banco de dados, elas vão aparecer na página do Spanner Studio desse banco de dados. Para mais informações, consulte Ver recomendações de práticas recomendadas de design de esquema.
Excluir um banco de dados
A exclusão de um banco de dados remove permanentemente o banco de dados e todos os respectivos dados. A exclusão do banco de dados não pode ser desfeita. Se a proteção contra exclusão de banco de dados estiver ativada em um banco de dados, não será possível excluí-lo até que você desative a proteção contra exclusão.
Os backups atuais não são excluídos quando um banco de dados é excluído. Para mais informações, consulte Backup e restauração.
Console do Google Cloud
No console do Google Cloud , acesse a página Instâncias do Spanner.
Selecione a instância que contém o banco de dados a ser excluído.
Selecione o banco de dados.
Clique em Excluir banco de dados. Uma confirmação vai aparecer.
Digite o nome do banco de dados e clique em Excluir.
gcloud
Para excluir um banco de dados com a ferramenta de linha de comando gcloud, use
gcloud spanner databases delete.
gcloud spanner databases delete \ (DATABASE : --instance=INSTANCE)
As seguintes opções são obrigatórias:
DATABASE- ID do banco de dados ou identificador totalmente qualificado do banco de dados. Se
o identificador totalmente qualificado for fornecido, a flag
--instanceprecisará ser omitida. --instance=INSTANCE- A instância do Spanner para o banco de dados.
Para mais detalhes, consulte a
referência de gcloud.
DDL
A DDL não é compatível com a sintaxe de exclusão de banco de dados.
A seguir
- Criar um banco de dados e carregá-lo com dados de amostra.
- Saiba mais sobre a referência de DDL do GoogleSQL.
- Saiba mais sobre a referência de DDL do PostgreSQL.
- Saiba como fazer backup e restaurar um banco de dados.
- Saiba como evitar a exclusão acidental de bancos de dados.
- Saiba como fazer atualizações de esquema.