Crie e faça a gestão de tabelas
Esta página explica como criar e realizar operações em tabelas do Bigtable através da Google Cloud consola, da CLI Google Cloud ou da CLI cbt
.
A
cbt
CLI
suporta vários comandos que não estão descritos nesta
página. Para ver uma lista completa de comandos, consulte a referênciacbt
.
Também pode criar e gerir tabelas de forma programática com as bibliotecas cliente do Cloud Bigtable ou as APIs de serviço.
Para obter instruções sobre como criar e gerir vistas autorizadas de uma tabela, consulte o artigo sobre vistas autorizadas.
Antes de começar
Se planeia trabalhar com as suas tabelas através de ferramentas de linha de comandos, siga os passos nesta secção.
Instale a CLI gcloud.
Opcional: se planeia usar a
cbt
CLI , siga as instruções em Instalar acbt
CLI , incluindo o passo para criar um ficheiro.cbtrc
.As instruções da
cbt
CLI nesta página pressupõem que definiu o ID do projeto e o ID da instância no ficheiro.cbtrc
. Em alternativa, pode usar as flags-project
e-instance
para definir estes valores sempre que executar um comando dacbt
CLI.
Criar uma tabela
Quando cria uma tabela, não precisa de especificar as famílias de colunas a usar na tabela. Pode adicionar ou eliminar famílias de colunas mais tarde.
Consola
Para criar uma nova tabela numa instância:
Abra a lista de instâncias do Bigtable na Google Cloud consola.
Clique na instância cujas tabelas quer ver.
Clique em Tabelas no painel esquerdo.
A página Tabelas apresenta uma lista de tabelas na instância.
Introduza um ID da tabela para a tabela.
Adicione famílias de colunas (opcional).
Pode adicionar colunas agora ou mais tarde. Uma tabela tem de ter, pelo menos, uma família de colunas antes de poder escrever dados na mesma. Uma tabela tem de ter, pelo menos, uma família de colunas antes de poder escrever dados na mesma ou ler um fluxo de alterações a partir da mesma.
Opcional: ative uma stream de alterações para a tabela. Antes de ativar uma stream de alterações, certifique-se de que compreende as implicações, incluindo o aumento dos custos de armazenamento e os requisitos de utilização do perfil da app. Para rever estes detalhes, consulte a Vista geral das streams de alterações.
Selecione Ativar stream de alterações.
No campo Tempo de validade, introduza um número de 1 a 7 para especificar o número de dias durante os quais os dados do fluxo de alterações devem ser retidos.
Clique em Criar.
Opcional: se não quiser que o Bigtable crie uma cópia de segurança diária da tabela, desmarque a caixa de verificação junto a Ativar cópia de segurança automática. Para mais informações, consulte o artigo Use uma cópia de segurança automática.
Clique em Criar tabela.
gcloud
Para criar uma tabela, execute o seguinte comando. Consulte gcloud bigtable instances tables create para ver uma lista completa de opções.
gcloud bigtable instances tables create TABLE_ID \
--instance=INSTANCE_ID \
--project=PROJECT_ID \
--column-families=COLUMN-FAMILIES
Substitua o seguinte:
- TABLE_ID: um ID exclusivo para a nova tabela
- INSTANCE_ID: o ID da instância
- PROJECT_ID: o projeto que vai conter a nova tabela
- COLUMN-FAMILIES: uma lista separada por vírgulas de nomes de famílias de colunas. Pode adicionar mais famílias de colunas mais tarde.
Opcional:
Para proteger a tabela contra eliminação, acrescente o comando com
--deletion-protection
. Se não aplicar esta definição, a tabela pode ser eliminada. Também pode permitir explicitamente a eliminação de tabelas acrescentando--no-deletion-protection
.Para ativar uma stream de alterações para a tabela, especifique um período de retenção para os dados da stream de alterações. Antes de ativar uma stream de alterações, certifique-se de que compreende as implicações, incluindo o aumento dos custos de armazenamento e os requisitos de utilização do perfil da app. Para rever estes detalhes, consulte a Vista geral das streams de alterações.
--change-stream-retention-period=RETENTION_PERIOD
Substitua RETENTION_PERIOD pela duração durante a qual o Bigtable deve reter os dados da stream de alterações para a tabela. O tempo tem de ser entre um e 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 uma cópia de segurança diária da sua tabela e retenha cada cópia de segurança durante o período de retenção predefinido de sete dias, use a flag
--enable-automated-backup
quando criar a tabela.gcloud bigtable instances tables create TABLE_ID \ --instance=INSTANCE_ID \ --project=PROJECT_ID \ --column-families=COLUMN-FAMILIES \ --enable-automated-backup
Para configurar um período de retenção diferente, use a flag
--automated-backup-retention-period
em vez da flag--enable-automated-backup
e forneça um valor até 90 dias, expresso como um número com uma unidade dem
,h
oud
(minutos, horas ou dias), como15d
para 15 dias.
cbt
Use o seguinte comando, substituindo TABLE_NAME
pelo nome da sua tabela. Não pode usar a
cbt
CLI
para criar uma tabela
com uma stream de alterações ativada.
cbt createtable TABLE_ID
Opcional: para criar uma família de colunas agregadas na tabela,
acrescente o nome da família de colunas com o tipo de agregação. O seguinte
cria uma família de colunas agregada com uma política de recolha de lixo de never
.
cbt createtable TABLE_ID families=FAMILY_NAME:never:TYPE
Substitua o seguinte:
- TABLE_ID: um ID exclusivo para a nova tabela
- FAMILY_NAME: : uma lista separada por vírgulas de nomes de famílias de colunas. Pode adicionar mais famílias de colunas mais tarde.
- TYPE: o tipo de agregação. Tem de ser
intsum
,intmin
,intmax
ouinthll
.
Para mais opções, consulte Criar uma tabela na referência da CLI cbt
.
Se eliminou uma tabela por engano, não tente criar manualmente a tabela eliminada. Use o comando bigtable instances tables undelete
da CLI gcloud para recuperar a tabela.
Opcional: divida a tabela pela chave da 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 acedidas com frequência separadas sempre que possível. Este processo contínuo é automático.
Quando cria uma nova tabela, pode especificar divisões iniciais da tabela. O Bigtable divide a tabela nas chaves de linhas que fornecer. Se os espaços de chaves forem demasiado grandes, o Bigtable divide ainda mais a tabela. As divisões iniciais são mantidas durante cerca de 24 horas após a conclusão da criação da tabela. Pode fornecer até 100 chaves de linhas onde devem ocorrer as divisões iniciais.
Por exemplo, pode designar linhas específicas para pré-dividir a tabela se estiver prestes a escrever muitas linhas na tabela.
A divisão prévia da tabela não é essencial, mas é benéfica porque fornece informações ao Bigtable sobre onde é provável que a carga e a pegada de dados se situem quando a tabela é criada. A pré-divisão impede que o Bigtable tenha de dividir as tabelas e reequilibrar a carga tudo de uma vez à medida que os dados chegam.
Consola
Não pode dividir previamente as linhas quando cria uma tabela através da Google Cloud consola.
gcloud
Para dividir uma tabela pela chave da linha, execute o seguinte comando. Consulte gcloud bigtable instances tables create para ver 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 o seguinte:
- TABLE_ID: um ID exclusivo para a nova tabela
- INSTANCE_ID: o ID da instância
- PROJECT_ID: o projeto que vai conter a nova tabela
- COLUMN-FAMILIES: uma lista separada por vírgulas de nomes de famílias de colunas. Pode adicionar mais famílias de colunas mais tarde.
- SPLITS: as chaves de linhas onde a tabela deve ser dividida inicialmente, por exemplo,
10,20
.
cbt
Para dividir previamente uma tabela com base na chave da 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 chaves de linhas a usar para as pré-divisões.
```none
cbt createtable [TABLE_NAME] splits=[SPLITS]
```
Por exemplo, para dividir previamente a tabela my-table
em chaves de linhas que começam com 10
e 20
:
```none
cbt createtable my-table splits=10,20
```
Modifique famílias de colunas numa tabela
Pode adicionar famílias de colunas a uma tabela existente. Se a tabela não tiver a proteção contra eliminação ativada, pode eliminar famílias de colunas na tabela.
Adicione famílias de colunas
Consola
Abra a lista de instâncias do Bigtable na Google Cloud consola.
Clique na instância cujas tabelas quer ver.
Clique em Tabelas no painel esquerdo.
A página Tabelas apresenta uma lista de tabelas na instância.
Clique em
Editar para a tabela que quer modificar.Para cada família de colunas que quer adicionar, conclua o seguinte:
- Clique em Adicionar família de colunas.
- Indique um identificador exclusivo para a família de colunas.
- Defina a política de recolha de lixo para a família de colunas.
- Clique em Concluído.
- Clique em Guardar.
gcloud
Não pode usar a CLI gcloud para adicionar famílias de colunas a uma tabela.
cbt
Para adicionar uma família de colunas a uma tabela, use o seguinte comando:
cbt createfamily TABLE_ID FAMILY_NAME
Por exemplo, para adicionar as famílias de colunas cf1
e cf2
à tabela my-table
:
cbt createfamily my-table cf1
cbt createfamily my-table cf2
Opcional: para adicionar uma família de colunas
agregadas à tabela,
acrescente o nome da família de colunas com o tipo de agregação. O comando seguinte cria uma tabela com uma família de colunas agregadas com uma política de recolha de lixo de never
.
cbt createfamily TABLE_ID FAMILY_NAME:never:TYPE
Substitua o seguinte:
- TABLE_ID: o ID da tabela
- FAMILY_NAME: : uma lista separada por vírgulas de nomes de famílias de colunas. Pode adicionar mais famílias de colunas mais tarde.
- TYPE: o tipo de agregação. Tem de ser
intsum
,intmin
,intmax
ouinthll
.
Elimine famílias de colunas
Pode eliminar famílias de colunas numa tabela que não tenha a proteção contra eliminação ativada.
Consola
Abra a lista de instâncias do Bigtable na Google Cloud consola.
Clique na instância cujas tabelas quer ver.
Clique em Tabelas no painel esquerdo.
A página Tabelas apresenta uma lista de tabelas na instância.
Clique em
Editar para a tabela que quer modificar.Para cada família de colunas que quer eliminar, conclua o seguinte:
- Passe o cursor do rato sobre a linha da família de colunas que quer eliminar.
- Clique em .
Clique em Guardar.
Para confirmar que compreende que a eliminação de uma família de colunas é permanente e que todos os dados na família de colunas serão eliminados, escreva "Eliminar famílias de colunas" no campo de texto.
Clique em Confirm.
gcloud
Não pode usar a CLI gcloud para eliminar famílias de colunas de uma tabela.
cbt
Para eliminar uma família de colunas de uma tabela, use o seguinte comando, substituindo [TABLE_NAME]
pelo nome da tabela e [FAMILY_NAME]
pelo nome da família de colunas:
cbt deletefamily [TABLE_NAME] [FAMILY_NAME]
Por exemplo, para eliminar a família de colunas cf2
da tabela my-table
:
cbt deletefamily my-table cf2
Veja uma lista de tabelas
Consola
Para ver uma lista de tabelas numa instância:
Abra a lista de instâncias do Bigtable na Google Cloud consola.
Clique na instância cujas tabelas quer ver.
Clique em Tabelas no painel esquerdo.
A página Tabelas apresenta uma lista de tabelas na instância.
- Clique na seta junto ao ID da tabela para expandir uma lista de replicações da tabela.
- Clique em Ver métricas junto ao nome de uma tabela para ver os dados de estatísticas do sistema da tabela.
gcloud
Para ver uma lista de tabelas, execute o comando gcloud bigtable instances tables list.
gcloud bigtable instances tables list --instances=INSTANCE_IDS
Substitua o seguinte:
- INSTANCE_IDS: uma lista de IDs de instâncias separados por vírgulas.
cbt
Para ver uma lista de tabelas numa instância, execute o seguinte comando:
cbt ls INSTANCE_ID
Substitua o seguinte:
INSTANCE_ID
: O identificador permanente da instância.
C++
Para saber como instalar e usar a biblioteca cliente do Bigtable, consulte o artigo Bibliotecas cliente do Bigtable.
Para se autenticar no Bigtable, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
C#
Para saber como instalar e usar a biblioteca cliente do Bigtable, consulte o artigo Bibliotecas cliente do Bigtable.
Para se autenticar no Bigtable, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Java
Para saber como instalar e usar a biblioteca cliente do Bigtable, consulte o artigo Bibliotecas cliente do Bigtable.
Para se autenticar no Bigtable, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Node.js
Para saber como instalar e usar a biblioteca cliente do Bigtable, consulte o artigo Bibliotecas cliente do Bigtable.
Para se autenticar no Bigtable, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
PHP
Para saber como instalar e usar a biblioteca cliente do Bigtable, consulte o artigo Bibliotecas cliente do Bigtable.
Para se autenticar no Bigtable, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Python
Para saber como instalar e usar a biblioteca cliente do Bigtable, consulte o artigo Bibliotecas cliente do Bigtable.
Para se autenticar no Bigtable, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Ruby
Para saber como instalar e usar a biblioteca cliente do Bigtable, consulte o artigo Bibliotecas cliente do Bigtable.
Para se autenticar no Bigtable, configure as Credenciais padrão da aplicação. Para mais informações, consulte o artigo Configure a autenticação para um ambiente de desenvolvimento local.
Veja informações sobre uma tabela
Consola
Para ver informações sobre uma tabela:
Abra a lista de instâncias do Bigtable na Google Cloud consola.
Clique na instância cujas tabelas quer ver.
Clique em Tabelas no painel esquerdo.
A página Tabelas apresenta uma lista de tabelas na instância. Para cada tabela, a Google Cloud consola apresenta o número de clusters em que a tabela está armazenada, o estado da tabela, a utilização do armazenamento e os identificadores de todas as cópias de segurança atuais da tabela.
Para ver os nomes das famílias de colunas da tabela, clique em
. Para fechar o painel Editar tabela, clique em Cancelar.Para ver detalhes adicionais acerca da tabela, incluindo métricas ao nível da tabela e o estado de replicação, clique no nome da tabela.
gcloud
Para ver informações sobre uma tabela, execute o comando gcloud bigtable instances tables describe.
gcloud bigtable instances tables describe TABLE_ID \
--instance=INSTANCE_ID
Substitua o seguinte:
- TABLE_ID: um ID exclusivo da tabela
- INSTANCE_ID: o ID da instância
cbt
Pode usar a
CLI cbt
para obter uma lista de famílias de colunas existentes numa tabela.
Use o seguinte comando, substituindo [TABLE_NAME]
pelo nome da tabela:
cbt ls [TABLE_NAME]
Defina políticas de recolha de lixo
Uma política de recolha de lixo indica ao Bigtable que dados manter e que dados marcar para eliminação. As políticas de recolha de lixo são definidas ao nível da família de colunas. Pode defini-las quando cria a tabela ou mais tarde.
Quando cria uma família de colunas, pode especificar o número de células que quer reter em cada coluna nessa família de colunas. Se não especificar esta definição, o Bigtable usa uma das seguintes definições predefinidas:
Se criar a família de colunas com o cliente HBase do Cloud Bigtable para Java ou a shell HBase,ou outra ferramenta que use o cliente HBase para Java, o Bigtable retém apenas 1 célula para cada interseção de linha/coluna na família de colunas. Esta predefinição é consistente com o HBase.
Se criar a família de colunas através da Google Cloud consola, qualquer outra biblioteca de cliente ou a
cbt
CLI , o Bigtable retém um número infinito de células em cada coluna.
Consulte o artigo Configure políticas de recolha de lixo para ver instruções detalhadas sobre como ver, definir e atualizar políticas de recolha de lixo.
Faça uma cópia de segurança e restaure uma tabela
Para instruções sobre como fazer uma cópia de segurança de uma tabela e restaurá-la a partir de uma cópia de segurança para uma nova tabela, consulte o artigo Gerir cópias de segurança.
Se ativou a cópia de segurança automática durante a criação de uma tabela, pode modificar a configuração da cópia de segurança automática de uma tabela para ativar ou desativar a cópia de segurança automática, ou alterar o período de retenção para um máximo de 90 dias a partir da hora de criação da cópia de segurança. Para mais informações, consulte o artigo Use a cópia de segurança automática.
Ative, desative ou configure uma stream de alterações
Para ver instruções sobre as seguintes tarefas, consulte o artigo Configure um fluxo de alterações.
- Ativar uma stream de alterações numa tabela existente
- Desativar uma stream de alterações
- Atualize o período de retenção de uma stream de alterações
Elimine uma tabela
A eliminação de uma tabela também elimina todas as vistas autorizadas da tabela. Se alguma vista autorizada da tabela tiver a proteção contra eliminação ativada, não pode eliminar a tabela. Também não pode eliminar uma tabela que tenha uma vista materializada contínua baseada na mesma.
Consola
Abra a lista de instâncias do Bigtable na Google Cloud consola.
Clique na instância cujas tabelas quer ver.
Clique em Tabelas no painel esquerdo.
A página Tabelas apresenta uma lista de tabelas na instância.
Clique em
para a tabela que quer eliminar.Clique em Eliminar.
Para confirmar que reconhece que esta ação elimina a tabela de todos os clusters na instância e que tem apenas sete dias para anular a eliminação da tabela, escreva o ID da tabela na caixa Eliminar tabela.
Clique em Eliminar.
gcloud
Para eliminar tabelas, execute o comando gcloud bigtable instances tables delete.
gcloud bigtable instances tables delete TABLE_ID --instance=INSTANCE_ID
Substitua o seguinte:
- TABLE_ID: o ID exclusivo da tabela
- INSTANCE_ID: o ID da instância
No terminal, introduza
y
para confirmar a eliminação da tabela.
cbt
Para eliminar uma tabela, use o seguinte comando, substituindo [TABLE_NAME]
pelo nome da tabela:
cbt deletetable [TABLE_NAME]
Anule a eliminação de uma tabela
Se eliminar acidentalmente uma tabela, pode usar o comando bigtable instances tables undelete
da CLI gcloud para anular a eliminação ou recuperar a tabela. Não tente recriar a tabela eliminada manualmente.
Para anular a eliminação de uma tabela, execute o seguinte comando no terminal:
gcloud bigtable instances tables undelete TABLE_ID --instance=INSTANCE_ID
Substitua o seguinte:
- TABLE_ID: o identificador exclusivo da tabela
- INSTANCE_ID: o ID da instância
Quando anula a eliminação de uma tabela, o Bigtable ativa automaticamente a proteção contra eliminação para a tabela.
Aplicam-se as seguintes limitações:
- A capacidade de anular a eliminação de uma tabela está disponível durante aproximadamente sete dias a partir do momento da eliminação da tabela.
- Não pode anular a eliminação de uma tabela através da Google Cloud consola, das bibliotecas de cliente do Cloud Bigtable nem da
cbt
CLI. - Não é possível anular a eliminação de uma tabela de uma instância que foi eliminada.
- Não é possível anular a eliminação de uma tabela que tinha as CMEK ativadas.
- Quando anula a eliminação de uma tabela, o Bigtable não restaura nenhuma associações de políticas de IAM detalhadas à tabela eliminada.
Opcionalmente, pode verificar o estado da operação undelete
nos
registos de auditoria.
Modifique a proteção contra eliminação
Pode ativar ou desativar a proteção contra eliminação para uma tabela se for um principal
numa função que inclua a autorização bigtable.tables.update
, como roles/bigtable.admin
. A proteção contra eliminação impede a eliminação da tabela, de todas as famílias de colunas na tabela e da instância que contém a tabela.
A ativação da proteção contra eliminação para uma tabela não a ativa para as vistas autorizadas da tabela. Da mesma forma, desativar a proteção contra eliminação de uma tabela não a desativa para vistas autorizadas da tabela. Tem de atualizar as visualizações autorizadas da tabela separadamente.
Consola
Abra a lista de instâncias do Bigtable na Google Cloud consola.
Clique na instância cujas tabelas quer ver.
Clique em Tabelas no painel esquerdo.
A página Tabelas apresenta uma lista de tabelas na instância.
Clique em
junto ao ID da tabela.Para ativar a proteção contra eliminação, clique em Impedir eliminação. Para desativar a proteção contra eliminação, clique em Ativar eliminação. Apenas a opção válida é visível.
gcloud
Para ativar a proteção contra eliminação para uma tabela, execute o comando gcloud bigtable instances
table update
:
```sh
gcloud bigtable instances tables update TABLE_ID \
--instance=INSTANCE_ID \
--deletion-protection
```
Para desativar a proteção contra eliminação de uma tabela, execute o seguinte comando:
```sh
gcloud bigtable instances tables update TABLE_ID \
--instance=INSTANCE_ID \
--no-deletion-protection
```
Substitua o seguinte:
+ TABLE_ID: the unique identifier for the table
+ INSTANCE_ID: the ID of the instance
cbt
Não pode usar a
CLI cbt
para ativar ou desativar a proteção
contra eliminação.
O que se segue?
- Saiba como importar e exportar dados para e a partir da sua tabela.