Como gerenciar tabela

A maneira mais fácil de gerenciar as tabelas do Cloud Bigtable é usando a ferramenta de linha de comando cbt. Nesta página, explicamos como usar cbt para criar, modificar e excluir tabelas e como conseguir informações sobre tabelas atuais com o 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 Cloud Bigtable. Se preferir, gerencie as tabelas com a ferramenta de linha de comando do shell do HBase. Consulte a documentação do HBase para ver instruções sobre como usar o shell do HBase.

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 Cloud Bigtable à qual o cbt deve 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 endpoints da API a serem utilizados. Esses valores geralmente não precisam ser alterados.

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]

Como dividir tabelas por chave de linha

Um recurso do Cloud 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 dividir previamente a tabela, caso você esteja prestes a gravar um grande número de linhas nela. Dividir previamente a tabela não é essencial, mas é benéfico porque isso fornece informações do Cloud 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 Cloud 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 Cloud 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 sintaxe a seguir para criar a tabela. Substitua [TABLE_NAME] pelo nome dela e [SPLITS] por uma lista separada por vírgulas com os prefixos de chave de linha a serem usados na divisão:

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

Como excluir 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 Cloud 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 ID 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

Nesta seção, explicamos como usar a ferramenta cbt para controlar quantas versões de cada valor são retidas no Cloud Bigtable 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 usando uma biblioteca de cliente do Cloud 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 Cloud Bigtable usa 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 Cloud 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 Cloud Bigtable reterá 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 você não especificar essa configuração, os valores no grupo de colunas nunca expirarão.

Para que os valores expirem após um período especificado, use o comando a seguir substituindo [TABLE_NAME] pelo nome da tabela, [FAMILY_NAME] pelo nome do grupo de colunas e [DAYS] pelo número de dias de retenção de cada valor:

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 excluir tabelas

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

cbt deletetable [TABLE_NAME]