O HBase Shell é uma interface de linha de comando interativa para gerenciar dados no ApsaraDB for HBase. Utilize-o para criar e configurar tabelas, inserir e consultar dados, além de excluir tabelas.
Pré-requisitos
Antes de começar, verifique se você possui:
Uma instância do ApsaraDB for HBase (Standard Edition ou Performance-enhanced Edition)
Acesso via shell ao nó da instância
Para configurar a conexão, consulte:
Standard Edition: Usar o HBase Shell para acessar clusters do ApsaraDB for HBase Standard Edition
Performance-enhanced Edition: Usar o HBaseue Shell para acessar uma instância do ApsaraDB for HBase Performance-enhanced Edition
Iniciar e sair do HBase Shell
Inicie o HBase Shell a partir do nó da instância:
$ bin/hbase shell
hbase(main):001:0>
Para visualizar os comandos disponíveis e seu uso, execute:
hbase(main):001:0> help
Para sair, execute:
hbase(main):001:0> quit
Referência de comandos
O HBase Shell suporta duas categorias de comandos. Para obter a referência completa, consulte The Apache HBase Shell.
Linguagem de definição de dados (DDL)
|
Comando |
Descrição |
|
|
Crie uma tabela |
|
|
Lista todas as tabelas |
|
|
Visualize detalhes e configurações da tabela |
|
|
Modifique uma tabela ou família de colunas |
|
|
Verifica se uma tabela existe |
|
|
Desativa uma tabela |
|
|
Verifica se uma tabela está desativada |
|
|
Ative uma tabela |
|
|
Verifica se uma tabela está ativada |
|
|
Exclua uma tabela |
Linguagem de manipulação de dados (DML)
|
Comando |
Descrição |
|
|
Grava um valor em uma célula de uma linha e coluna especificadas |
|
|
Lê uma única linha ou célula |
|
|
Varre uma tabela e retorna múltiplas linhas |
|
|
Conta as linhas de uma tabela |
|
|
Exclua o valor de uma célula específica |
|
|
Exclui todas as células de uma linha |
|
|
Limpa todos os dados de uma tabela desativando-a, excluindo-a e recriando-a. As regiões não são preservadas. |
|
|
Limpa todos os dados de uma tabela desativando-a, excluindo-a e recriando-a. As regiões da tabela original são preservadas. |
Operações básicas
Criar uma tabela
Utilize create com o nome da tabela e pelo menos um nome de família de colunas:
hbase(main):001:0> create 'test', 'cf'
Listar tabelas
hbase(main):003:0> list
Filtre por nome ou expressão regular:
hbase(main):004:0> list 'abc.*'
hbase(main):005:0> list 'test'
Inserir dados
Use put para gravar um valor. Cada comando put tem como alvo uma tabela específica, chave de linha, coluna (no formato family:qualifier) e valor:
hbase(main):006:0> put 'test', 'row1', 'cf:a', 'value1'
hbase(main):007:0> put 'test', 'row2', 'cf:b', 'value2'
hbase(main):008:0> put 'test', 'row3', 'cf:c', 'value3'
Varrer uma tabela
O comando scan retorna todas as linhas de uma tabela:
hbase(main):009:0> scan 'test'
ROW COLUMN+CELL
row1 column=cf:a, timestamp=1421762485768, value=value1
row2 column=cf:b, timestamp=1421762491785, value=value2
row3 column=cf:c, timestamp=1421762496210, value=value3
3 row(s) in 0.0230 seconds
Para consultas de linha única, utilize get, pois é mais rápido que scan para recuperar registros individuais.
Ler uma única linha
hbase(main):010:0> get 'test', 'row1'
COLUMN CELL
cf:a timestamp=1421762485768, value=value1
1 row(s) in 0.0350 seconds
Desativar e ativar uma tabela
Desative uma tabela antes de excluí-la ou alterar suas configurações:
hbase(main):012:0> disable 'test'
hbase(main):013:0> enable 'test'
Excluir uma tabela
É necessário desativar uma tabela antes de executarem o drop:
hbase(main):014:0> disable 'test'
hbase(main):015:0> drop 'test'
O comando drop exclui permanentemente a tabela e todos os seus dados. Essa ação não pode ser desfeita.
Configure tabelas com alter
Utilize alter para modificar configurações de família de colunas em uma tabela existente.
Defina o período de compactação principal
O período de compactação principal é medido em milissegundos. O padrão é 7 dias. Defina como 0 para desativar compactações principais agendadas.
hbase(main):001:0> alter 'test', CONFIGURATION => {'hbase.hregion.majorcompaction' => 300000}
Evite alterar essa configuração, a menos que sua carga de trabalho exija especificamente.
Defina compressão de dados
Para obter detalhes sobre os formatos de compressão suportados, consulte Compressão e codificação de dados.
hbase(main):002:0> alter 'test', NAME => 'cf', COMPRESSION => 'SNAPPY'
Defina codificação de bloco
hbase(main):003:0> alter 'test', NAME => 'cf', DATA_BLOCK_ENCODING => 'DIFF'
Defina o tempo de vida (TTL)
O TTL é medido em segundos. Dados anteriores ao TTL são excluídos automaticamente. O exemplo a seguir define um TTL de 30 dias (2.592.000 segundos):
hbase(main):004:0> alter 'test', NAME => 'cf', TTL => 2592000
Pré-dividir uma tabela em regiões
A pré-divisão distribui os dados uniformemente entre as regiões desde o início. Consulte Pré-divisão.