Como gerenciar tabela

Nesta página, explicamos como usar a ferramenta de linha de comando cbt para criar, modificar e excluir tabelas do Cloud Bigtable e como receber informações sobre tabelas existentes usando a ferramenta cbt ou o Console do Google Cloud.

A ferramenta 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 gerenciar tabelas de maneira programática com uma das bibliotecas de cliente ou APIs de serviço do Bigtable.

Antes de começar

Antes de começar, instale a ferramenta cbt.

Como configurar a ferramenta cbt

É possível especificar padrões para as seguintes configurações de cbt:

  • O projeto onde a instância do Cloud Bigtable está localizada.
  • A instância do Bigtable à qual se conectar.
  • O arquivo de credenciais, em formato JSON, que será utilizado após a conexão com a instância. Consulte as instruções para criar uma chave de conta de serviço. Se você fizer a autenticação executando gcloud auth application-default login ou se estiver usando a ferramenta cbt em uma instância do Compute Engine, não precisará de um arquivo de credenciais.
  • Os pontos de extremidade da API a serem utilizados. Normalmente, você não precisa alterar esses valores.

Para especificar os padrões dessas configurações, crie um arquivo .cbtrc no diretório principal. Substitua os valores padrão em .cbtrc usando sinalizações de linha de comando.

Para criar um arquivo .cbtrc, execute o comando a seguir substituindo [PROJECT_ID] e [INSTANCE_ID] pelos valores apropriados:

echo -e "project = [PROJECT_ID]\ninstance = [INSTANCE_ID]" > ~/.cbtrc

Nas demais instruções desta página, pressupomos que o ID do projeto e o ID da instância tenham sido definidos no arquivo .cbtrc. Também é possível usar as sinalizações -project e -instance para definir esses valores todas as vezes que você for executar cbt.

Como criar uma tabela

Ao criar uma tabela com a ferramenta cbt, não é necessário especificar os grupos de colunas para uso na tabela. Os grupos de colunas podem ser executados ou excluídos posteriormente.

Para criar uma tabela, use o comando a seguir substituindo [TABLE_NAME] pelo nome da tabela:

cbt createtable [TABLE_NAME]

Divisão da tabela por chave de linha

Um recurso do Bigtable como serviço totalmente gerenciado é a divisão automática de tabelas em vários nós. Esse recurso otimiza o desempenho por meio da distribuição uniforme da quantidade de dados armazenados em cada nó, mantendo separadas, sempre que possível, as linhas acessadas frequentemente.

Ao criar uma tabela, é possível escolher as chaves de linha para dividi-la previamente. Por exemplo, é possível designar linhas específicas para pré-dividir 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.

A tabela não permanece dividida nas chaves de linha que você escolhe dividi-la previamente quando ela é criada. O Bigtable pode dividir sua tabela em chaves de linha diferentes, com base na quantidade de dados da tabela e na frequência de acesso a cada linha.

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 a serem usados nas pré-divisões.

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

Como modificar os grupos de colunas de tabelas

É possível usar a ferramenta cbt para adicionar ou excluir grupos de colunas em uma tabela existente.

Como adicionar grupos de colunas

Para adicionar um grupo de colunas a uma tabela, use o comando a seguir substituindo [TABLE_NAME] pelo nome da tabela e [FAMILY_NAME] pelo nome do grupo de colunas:

cbt createfamily [TABLE_NAME] [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

Exclusão de grupos de colunas

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

Como visualizar listas de tabelas

Console

Para ver uma lista de tabelas em uma instância:

  1. Abra a lista de instâncias do Bigtable no Console do Cloud.

    Abrir a lista de instâncias

  2. Clique na instância em que estão as tabelas a serem visualizadas.

  3. 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.

cbt

Para visualizar uma lista de tabelas em uma instância, execute o seguinte comando:

cbt ls

Como visualizar informações sobre tabelas

É possível usar a ferramenta cbt para receber uma lista dos grupos de colunas de uma tabela.

Para visualizar os grupos de colunas de uma tabela, use o comando a seguir substituindo [TABLE_NAME] pelo nome da tabela:

cbt ls [TABLE_NAME]

Como configurar as políticas de coleta de lixo

Esta seção explica como usar a ferramenta cbt para controlar quantas versões de cada valor o Bigtable retém e como fornecer um prazo de validade para os valores. Também é possível definir políticas de coleta de lixo de maneira programática ao usar uma biblioteca de cliente do Bigtable.

Como manter várias versões de cada valor

Ao criar um grupo de colunas, você pode especificar quantas versões de cada valor quer reter no grupo. Se você não especificar essa configuração, o Bigtable usará uma das seguintes configurações padrão:

  • Se você criar o grupo de colunas com o cliente HBase para Java ou o shell do HBase ou outra ferramenta que usa o cliente HBase para Java, o Bigtable manterá apenas uma versão de cada valor no grupo. Essa configuração padrão é consistente com o HBase.
  • Se você criar o grupo de colunas com qualquer outra ferramenta ou biblioteca de cliente, incluindo cbt, o Bigtable manterá um número infinito de versões de cada valor.

Para alterar o número de versões retidas em um grupo de colunas, use o seguinte comando substituindo [TABLE_NAME] pelo nome da tabela, [FAMILY_NAME] pelo nome do grupo de colunas e [VERSIONS] pelo número de versões retidas:

cbt setgcpolicy [TABLE_NAME] [FAMILY_NAME] maxversions=[VERSIONS]

Por exemplo, para atualizar o grupo de colunas cf1 na tabela my-table e reter cinco versões de cada valor:

cbt setgcpolicy my-table cf1 maxversions=5

Como configurar a data de validade dos valores

Ao criar um grupo de colunas, você pode especificar quando cada valor do grupo deve expirar. Se não especificar essa configuração, os valores no grupo de colunas nunca irão expirar.

Para que os valores expirem após um período especificado, use o seguinte comando. Substitua [TABLE_NAME] pelo nome da tabela, [FAMILY_NAME] pelo nome do grupo de colunas e [DAYS] pelo número de dias que cada valor será mantido.

cbt setgcpolicy [TABLE_NAME] [FAMILY_NAME] maxage=[DAYS]d

Por exemplo, para fazer os valores no grupo de colunas cf1 serem removidos após um dia:

cbt setgcpolicy my-table cf1 maxage=1d

Como fazer backup e restaurar uma tabela

Com o Bigtable, você pode criar um backup de uma tabela e atribuir a ele um TTL de até 30 dias. Você pode restaurar um backup para uma nova tabela na instância em que o backup foi criado. Consulte Como gerenciar backups para instruções sobre como fazer backup e restaurar uma tabela.

Como excluir tabelas

Para excluir uma tabela, use o comando a seguir substituindo [TABLE_NAME] pelo nome da tabela:

cbt deletetable [TABLE_NAME]