Criar e gerenciar tabelas
Nesta página, explicamos como criar e executar operações em tabelas do Bigtable
usando o console do Google Cloud, a Google Cloud CLI ou a
CLI cbt
.
A
CLI cbt
é compatível com diversos comandos não descritos nesta página. Consulte a
referência cbt
para ver uma lista completa de comandos.
Também é possível criar e gerenciar tabelas de maneira programática com as bibliotecas de cliente ou as APIs de serviço do Cloud Bigtable.
Para instruções sobre como criar e gerenciar visualizações autorizadas de uma tabela, consulte visualizações autorizadas.
Antes de começar
Se você planeja trabalhar com suas tabelas usando ferramentas de linha de comando, siga as etapas nesta seção.
Instale a CLI gcloud.
Opcional: se você planeja usar a CLI
cbt
, siga as instruções em Como instalar a CLIcbt
, incluindo a etapa para criar um arquivo.cbtrc
.As instruções da CLI
cbt
desta página presumem que você tenha definido o ID do projeto e da instância no arquivo.cbtrc
. Como alternativa, é possível usar as sinalizações-project
e-instance
para definir esses valores sempre que executar um comando da CLIcbt
.
Criar uma tabela
Ao criar uma tabela, você não precisa especificar os grupos de colunas para uso na tabela. Você pode adicionar ou excluir grupos de colunas mais tarde.
Console
Para criar uma nova tabela em uma instância:
Abra a lista de instâncias do Bigtable no Console do Google Cloud.
Clique na instância em que estão as tabelas a serem visualizadas.
Clique em Tabelas no painel esquerdo.
A página Tabelas exibe uma lista de tabelas na instância.
Insira um ID de tabela para a tabela.
Adicionar grupos de colunas (opcional).
É possível adicionar colunas agora ou mais tarde. Uma tabela precisa ter pelo menos um grupo de colunas antes de ser gravado nos dados. Uma tabela precisa ter pelo menos um grupo de colunas para que seja possível gravar dados ou ler um fluxo de alterações nela.
Opcional: ative um fluxo de alterações na tabela. Antes de ativar um fluxo de alterações, entenda as implicações, incluindo o aumento nos custos de armazenamento e os requisitos de uso do perfil do aplicativo. Para analisar esses detalhes, consulte a Visão geral do fluxo de alterações.
Selecione Ativar fluxo de alterações.
No campo Prazo de validade, digite um número entre 1 e 7 para especificar por quantos dias os dados do fluxo de alterações serão mantidos.
Clique em Criar.
Opcional: se você não quiser que o Bigtable crie um backup diário da tabela, desmarque a caixa de seleção ao lado de Ativar backup automatizado. Para mais informações, consulte Usar o backup automático (pré-lançamento).
Clique em Criar uma tabela.
gcloud
Para criar uma tabela, execute o comando a seguir. Acesse gcloud Bigtable instances table create para acessar uma lista completa de opções.
gcloud bigtable instances tables create TABLE_ID \
--instance=INSTANCE_ID \
--project=PROJECT_ID \
--column-families=COLUMN-FAMILIES
Substitua:
- TABLE_ID: um ID exclusivo para a nova tabela.
- INSTANCE_ID: o ID da instância
- PROJECT_ID: o projeto que conterá a nova tabela.
- COLUMN-FAMILIES: uma lista separada por vírgulas de nomes de grupos de colunas. É possível adicionar mais grupos de colunas depois.
Opcional:
Para proteger a tabela contra exclusão, anexe o comando com
--deletion-protection
. Se você não aplicar essa configuração, a tabela poderá ser excluída. Para permitir explicitamente a exclusão da tabela, basta anexar--no-deletion-protection
.Para ativar um fluxo de alterações na tabela, especifique um período de armazenamento para os dados desse fluxo. Antes de ativar um fluxo de alterações, entenda as implicações, incluindo o aumento nos custos de armazenamento e os requisitos de uso do perfil do aplicativo. Para analisar esses detalhes, consulte a Visão geral do fluxo de alterações.
--change-stream-retention-period=RETENTION_PERIOD
Substitua RETENTION_PERIOD pelo período em que o Bigtable reterá os dados do fluxo de alterações da tabela. O período precisa ser de um a sete dias. As unidades aceitáveis são dias (d), horas (h), minutos (m) e segundos (s). Exemplos:
48h
ou6d
Para permitir que o Bigtable crie um backup diário da tabela, ative o backup automatizado (pré-lançamento):
gcloud bigtable instances tables create TABLE_ID \ --instance=INSTANCE_ID \ --project=PROJECT_ID \ --column-families=COLUMN-FAMILIES \ --enable-automated-backup
cbt
Use o comando a seguir, substituindo TABLE_NAME
pelo
nome da tabela. Não é possível usar a CLI cbt
para criar uma tabela com um fluxo de alterações ativado.
cbt createtable TABLE_ID
Opcional: para criar um grupo de colunas
agregadas na tabela,
anexando o nome do grupo de colunas ao tipo de agregação. O código a seguir
cria um grupo de colunas agregado com uma política de
coleta de lixo de never
.
cbt createtable TABLE_ID families=FAMILY_NAME:never:TYPE
Substitua:
- TABLE_ID: um ID exclusivo para a nova tabela.
- FAMILY_NAME: uma lista separada por vírgulas de nomes de famílias de colunas. É possível adicionar mais grupos de colunas depois.
- TYPE: o tipo agregado. Precisa ser
intsum
,intmin
,intmax
ouinthll
.
Para mais opções, consulte Criar uma
tabela na
referência da
CLI cbt
.
Se você excluir uma tabela por engano, não tente criar manualmente a
tabela excluída. Use o comando da CLI gcloud
bigtable instances tables undelete
para recuperar a
tabela.
Opcional: dividir a tabela por chave de linha
Para otimizar o desempenho, o Bigtable divide continuamente as tabelas em vários nós, distribuindo uniformemente a quantidade de dados armazenados em cada nó e mantendo as linhas acessadas com frequência separadas, sempre que possível. Esse processo contínuo é automático.
Ao criar uma nova tabela, é possível especificar divisões iniciais. O Bigtable divide a tabela nas chaves de linha fornecidas. Se os keyspaces forem muito grandes, o Bigtable vai dividir ainda mais a tabela. As divisões iniciais são mantidas por cerca de 24 horas após a conclusão da criação da tabela. É possível fornecer até 100 chaves de linha em que as divisões iniciais devem ocorrer.
Por exemplo, é possível designar linhas específicas para dividir previamente a tabela se você estiver prestes a gravar muitas linhas nela.
Dividir previamente a tabela não é essencial, mas é benéfico porque isso fornece informações do Bigtable sobre o provável destino da carga e dos dados armazenados quando a tabela for criada. A divisão prévia impede que o Bigtable precise dividir as tabelas e reequilibrar a carga de uma só vez quando os dados chegam.
Console
Não é possível dividir as linhas previamente ao criar uma tabela usando o console do Google Cloud.
gcloud
Para dividir uma tabela por chave de linha, execute o comando a seguir. Acesse gcloud Bigtable instances table create para acessar uma lista completa de opções.
gcloud bigtable instances tables create TABLE_ID\
--instance=INSTANCE_ID \
--project=PROJECT_ID \
--column-families=COLUMN-FAMILIES \
--splits=SPLITS
Substitua:
- TABLE_ID: um ID exclusivo para a nova tabela.
- INSTANCE_ID: o ID da instância
- PROJECT_ID: o projeto que conterá a nova tabela.
- COLUMN-FAMILIES: uma lista separada por vírgulas de nomes de grupos de colunas. É possível adicionar mais grupos de colunas depois.
- SPLITS: as chaves de linha em que a tabela será dividida inicialmente,
por exemplo,
10,20
.
cbt
Para dividir a tabela previamente com base na chave de linha, use a seguinte sintaxe para criar
a tabela. Substitua [TABLE_NAME]
pelo nome da tabela e [SPLITS]
por uma
lista separada por vírgulas de prefixos de chave de linha que devem ser usados nas divisões prévias.
```
cbt createtable [TABLE_NAME] splits=[SPLITS]
```
Por exemplo, para dividir previamente a tabela my-table
em chaves de linha iniciadas com 10
e 20
:
```
cbt createtable my-table splits=10,20
```
Modificar grupos de colunas em uma tabela
É possível adicionar famílias de colunas em uma tabela. Se a proteção contra exclusão não estiver ativada na tabela, é possível excluir grupos de colunas.
Adicionar grupos de colunas
Console
Abra a lista de instâncias do Bigtable no Console do Google Cloud.
Clique na instância em que estão as tabelas a serem visualizadas.
Clique em Tabelas no painel esquerdo.
A página Tabelas exibe uma lista de tabelas na instância.
Clique em Editar
na tabela que você quer modificar.Para cada grupo de colunas que você quer adicionar, faça o seguinte:
- Clique em Adicionar grupo de colunas.
- Forneça um identificador exclusivo para o grupo de colunas.
- Defina a política de coleta de lixo para o grupo de colunas.
- Clique em Concluído.
- Clique em Salvar.
gcloud
Não é possível usar a CLI gcloud para adicionar grupos de colunas a uma tabela.
cbt
Para adicionar um grupo de colunas a uma tabela, use o seguinte comando:
cbt createfamily TABLE_ID FAMILY_NAME
Por exemplo, para adicionar os grupos de colunas cf1
e cf2
à tabela my-table
:
cbt createfamily my-table cf1
cbt createfamily my-table cf2
Opcional: para adicionar um grupo de colunas
agregadas à tabela,
anexando o nome do grupo de colunas com o tipo de agregação. O exemplo a seguir
cria uma tabela que tem um grupo de colunas agregado com uma política de coleta de lixo
de never
.
cbt createfamily TABLE_ID FAMILY_NAME:never:TYPE
Substitua:
- TABLE_ID: o ID da tabela
- FAMILY_NAME: uma lista separada por vírgulas de nomes de famílias de colunas. É possível adicionar mais grupos de colunas depois.
- TYPE: o tipo de agregação. Precisa ser
intsum
,intmin
,intmax
ouinthll
.
Excluir grupos de colunas
É possível excluir grupos de colunas de uma tabela em que a proteção contra exclusão não esteja ativada.
Console
Abra a lista de instâncias do Bigtable no Console do Google Cloud.
Clique na instância em que estão as tabelas a serem visualizadas.
Clique em Tabelas no painel esquerdo.
A página Tabelas exibe uma lista de tabelas na instância.
Clique em Editar
na tabela que você quer modificar.Para cada grupo de colunas que você quer excluir, faça o seguinte:
- Passe o cursor sobre a linha do grupo de colunas que você quer excluir.
- Clique em .
Clique em Salvar.
Para confirmar que você entende que a exclusão de um grupo de colunas é permanente e que todos os dados nele serão excluídos, digite "Excluir grupos de colunas" no campo de texto.
Clique em Confirmar.
gcloud
Não é possível usar a CLI gcloud para excluir grupos de colunas de uma tabela.
cbt
Para excluir um grupo de colunas de uma tabela, use o comando a seguir substituindo
[TABLE_NAME]
pelo nome da tabela e [FAMILY_NAME]
pelo nome do grupo de colunas.
cbt deletefamily [TABLE_NAME] [FAMILY_NAME]
Por exemplo, para excluir o grupo de colunas cf2
da tabela my-table
:
cbt deletefamily my-table cf2
Ver uma lista de tabelas
Console
Para ver uma lista de tabelas em uma instância:
Abra a lista de instâncias do Bigtable no Console do Google Cloud.
Clique na instância em que estão as tabelas a serem visualizadas.
Clique em Tabelas no painel esquerdo.
A página Tabelas exibe uma lista de tabelas na instância.
- Clique na seta ao lado do código da tabela para expandir uma lista de replicações dela.
- Clique em Exibir métricas, ao lado do nome de uma tabela para visualizar os dados de monitoramento dela.
gcloud
Para ver uma lista de tabelas, execute o comando gcloud Bigtable instancestables list.
gcloud bigtable instances tables list --instances=INSTANCE_IDS
Substitua:
- INSTANCE_IDS: uma lista separada por vírgulas de IDs de instâncias.
cbt
Para visualizar uma lista de tabelas em uma instância, execute o seguinte comando:
cbt ls INSTANCE_ID
Substitua:
INSTANCE_ID
: identificador permanente da instância
C++
Para saber como instalar e usar a biblioteca de cliente do Bigtable, consulte Bibliotecas de cliente do Bigtable.
Para autenticar no Bigtable, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
C#
Para saber como instalar e usar a biblioteca de cliente do Bigtable, consulte Bibliotecas de cliente do Bigtable.
Para autenticar no Bigtable, 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 Bigtable, consulte Bibliotecas de cliente do Bigtable.
Para autenticar no Bigtable, 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 Bigtable, consulte Bibliotecas de cliente do Bigtable.
Para autenticar no Bigtable, 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 Bigtable, consulte Bibliotecas de cliente do Bigtable.
Para autenticar no Bigtable, 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 Bigtable, consulte Bibliotecas de cliente do Bigtable.
Para autenticar no Bigtable, 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 Bigtable, consulte Bibliotecas de cliente do Bigtable.
Para autenticar no Bigtable, configure o Application Default Credentials. Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
Ver informações sobre uma tabela
Console
Para visualizar informações sobre uma tabela:
Abra a lista de instâncias do Bigtable no Console do Google Cloud.
Clique na instância em que estão as tabelas a serem visualizadas.
Clique em Tabelas no painel esquerdo.
A página Tabelas exibe uma lista de tabelas na instância. O Console do Google Cloud exibe o número de clusters em que a tabela está armazenada, o status dela, a utilização do armazenamento e os identificadores de todos os backups atuais da tabela.
Para visualizar os nomes dos grupos de colunas da tabela, clique em
. Para fechar o painel Editar tabela, clique em Cancelar.Para visualizar mais detalhes sobre a tabela, incluindo métricas no nível da tabela e estado de replicação, clique no nome da tabela.
gcloud
Para acessar informações sobre uma tabela, execute o comando gcloud Bigtableinstances jornal describe.
gcloud bigtable instances tables describe TABLE_ID \
--instance=INSTANCE_ID
Substitua:
- TABLE_ID: um ID exclusivo da tabela.
- INSTANCE_ID: o ID da instância
cbt
É possível usar a
CLI cbt
para conseguir uma lista de grupos de colunas existentes em uma
tabela.
Use o seguinte comando, substituindo [TABLE_NAME]
pelo nome da tabela:
cbt ls [TABLE_NAME]
Definir políticas de coleta de lixo
Uma política de coleta de lixo informa ao Bigtable quais dados serão mantidos e quais serão marcados para exclusão. Políticas de coleta de lixo são definidas no nível do grupo de colunas. É possível defini-las ao criar a tabela ou posteriormente.
Ao criar um grupo de colunas, você pode especificar o número de células que quer reter em todas as colunas desse grupo. Se você não especificar essa configuração, o Cloud Bigtable usa uma das seguintes configurações padrão:
Se você criar o grupo de colunas com o cliente HBase do Cloud Bigtable para Java ou o shell do HBase ou outra ferramenta que usa o cliente HBase para Java, o Bigtable manterá apenas uma célula para cada intersecção de linha/coluna no grupo de colunas. Essa configuração padrão é consistente com o HBase.
Se você criar o grupo de colunas usando o Console do Google Cloud, qualquer outra biblioteca de cliente ou a CLI
cbt
, o Bigtable reterá um número infinito de células em cada coluna.
Consulte Configurar políticas de coleta de lixo para instruções detalhadas sobre como visualizar, definir e atualizar políticas de coleta de lixo.
Fazer backup e restaurar uma tabela
Consulte Gerenciar backups para instruções sobre como fazer backup de uma tabela e restaurar a partir de um backup em uma nova tabela.
Se você tiver ativado o backup automático ao criar uma tabela, poderá modificar a configuração de backup automático de uma tabela para ativar ou desativar o backup automático ou mudar o período de armazenamento para até 90 dias a partir do momento da criação do backup. Para mais informações, consulte Usar o backup automático.
Ativar, desativar ou configurar um fluxo de alterações
Para instruções sobre as tarefas a seguir, consulte Configurar um fluxo de alterações.
- Como ativar um fluxo de alterações em uma tabela que já existe
- Como desativar um fluxo de alterações
- Atualizar o período de armazenamento de um fluxo de alterações
Excluir uma tabela
A exclusão de uma tabela também exclui todas as visualizações autorizadas dela. Não é possível excluir uma tabela se as visualizações autorizadas dela tiverem a proteção contra exclusão ativada.
Console
Abra a lista de instâncias do Bigtable no Console do Google Cloud.
Clique na instância em que estão as tabelas a serem visualizadas.
Clique em Tabelas no painel esquerdo.
A página Tabelas exibe uma lista de tabelas na instância.
Clique em
na tabela que você quer excluir.Clique em Excluir.
Para confirmar que esta ação excluirá a tabela de todos os clusters na instância e que você tem apenas sete dias para cancelá-la, digite o ID da tabela na caixa de texto.
Clique em Excluir.
gcloud
Para excluir tabelas, execute o comando gcloud Bigtableinstances jornal delete.
gcloud bigtable instances tables delete --instance=INSTANCE_ID
Substitua:
- INSTANCE_ID: o ID da instância
No terminal, digite
y
para confirmar a exclusão da tabela.
cbt
Para excluir uma tabela, use o comando a seguir substituindo [TABLE_NAME]
pelo nome da tabela:
cbt deletetable [TABLE_NAME]
Cancelar exclusão de uma tabela
Se você excluir uma tabela acidentalmente, use o comando
bigtable instances tables undelete
da CLI gcloud para cancelar a exclusão
ou recuperar a tabela. Não tente criar manualmente a tabela excluída.
Para cancelar a exclusão de uma tabela, execute o seguinte comando no terminal:
gcloud bigtable instances tables undelete TABLE_ID --instance=INSTANCE_ID
Substitua:
- TABLE_ID: o identificador exclusivo da tabela.
- INSTANCE_ID: o ID da instância
Considere as seguintes limitações:
- A capacidade de cancelar a exclusão de uma tabela ficará disponível por aproximadamente sete dias a partir do momento da exclusão.
- Não é possível cancelar a exclusão de uma tabela usando o console do Google Cloud, as
bibliotecas de cliente do Cloud Bigtable ou a
CLI
cbt
. - Não é possível cancelar a exclusão de uma tabela de uma instância excluída.
- Não é possível cancelar a exclusão de uma tabela com a CMEK ativada.
- Todas as vinculações de política do IAM detalhadas que uma tabela tiver antes da exclusão não serão restauradas quando a exclusão for cancelada.
É possível verificar o status da operação undelete
nos registros de auditoria.
Modificar a proteção contra exclusão
É possível ativar ou desativar a proteção contra exclusão de uma tabela se você for um principal
em um papel que inclui a permissão bigtable.tables.update
, como roles/bigtable.admin
. A proteção contra exclusão impede a exclusão da tabela,
de todos os grupos de colunas na tabela e da instância que contém a tabela.
Ativar a proteção contra exclusão de uma tabela não ativa essa proteção para visualizações autorizadas da tabela. Da mesma forma, desativar a proteção contra exclusão de uma tabela não a desativa para visualizações autorizadas. É necessário atualizar as visualizações autorizadas da tabela separadamente.
Console
Abra a lista de instâncias do Bigtable no Console do Google Cloud.
Clique na instância em que estão as tabelas a serem visualizadas.
Clique em Tabelas no painel esquerdo.
A página Tabelas exibe uma lista de tabelas na instância.
Clique em
ao lado do ID da tabela.Para ativar a proteção contra exclusão, clique em Impedir exclusão. Para desativar a proteção contra exclusão, clique em Ativar exclusão. Apenas a opção válida fica visível.
gcloud
Para ativar a proteção contra exclusão de uma tabela, execute o comando gcloud bigtable instances
table update
:
gcloud bigtable instances tables update TABLE_ID \
--instance=INSTANCE_ID \
--deletion-protection
Para desativar a proteção contra exclusão de uma tabela, execute o seguinte:
gcloud bigtable instances tables update TABLE_ID \
--instance=INSTANCE_ID \
--no-deletion-protection
Substitua:
+ TABLE_ID: the unique identifier for the table
+ INSTANCE_ID: the ID of the instance
cbt
Não é possível usar a
CLI cbt
para ativar ou desativar a proteção
contra exclusão.