Após criar um cluster E-MapReduce (EMR) com o serviço HBase, conecte-se ao HBase Shell para ler e gravar dados por meio de comandos comuns do shell.
Pré-requisitos
Antes de começar, verifique se você possui:
Um cluster DataServing ou um cluster personalizado com o serviço HBase. Consulte Criar um cluster.
Conectar-se ao HBase
Faça login no cluster via SSH. Consulte Fazer login em um cluster.
-
Inicie o HBase Shell:
hbase shellO shell exibe dicas básicas de uso, a versão do HBase e o prompt
hbase(main):001:0>. Executehelppara visualizar todos os comandos disponíveis.
Comandos comuns do HBase Shell
Criar uma tabela
Utilize create para crie uma tabela. Especifique o nome da tabela e pelo menos uma família de colunas.
create 'table1', 'cf1'
Gravar dados
Empregue o comando put para gravar um valor em uma célula específica. Cada chamada de put tem como alvo uma única célula, identificada pelo nome da tabela, chave de linha, coluna e valor.
Uma coluna é representada como <column-family>:<column-qualifier>. No exemplo abaixo, cf1:q1 refere-se à família de colunas cf1 e ao qualificador de coluna q1. As três chamadas de put gravam dados em duas linhas (r1, r2) distribuídas em duas colunas (cf1:q1, cf1:q2).
put 'table1', 'r1', 'cf1:q1', 'v1'
put 'table1', 'r1', 'cf1:q2', 'v2'
put 'table1', 'r2', 'cf1:q1', 'v3'
Varredura de tabela
Aplique o comando scan para ler todas as linhas correspondentes a um filtro. O exemplo a seguir recupera todas as células na coluna cf1:q1 da table1:
scan 'table1', {COLUMNS => 'cf1:q1'}
Saída esperada:
ROW COLUMN+CELL
r1 column=cf1:q1, timestamp=2022-09-14T16:06:34.339, value=v1
r2 column=cf1:q1, timestamp=2022-09-14T16:06:36.615, value=v3
2 row(s)
Obter uma única linha ou célula
Use get para ler uma linha específica ou uma célula individual. O exemplo abaixo obtém o valor de cf1:q1 na linha r1:
get 'table1', 'r1', {COLUMNS => 'cf1:q1'}
Saída esperada:
COLUMN CELL
cf1:q1 timestamp=2022-09-14T16:06:34.339, value=v1
1 row(s)
Excluir dados
Excluir uma única célula
Execute delete para exclua o valor de uma célula. A célula corresponde à interseção entre uma linha e uma coluna. O exemplo a seguir exclui a célula cf1:q1 na linha r2:
delete 'table1', 'r2', 'cf1:q1'
Excluir todas as células de uma linha
Utilize deleteall para remover todos os valores de coluna em uma linha. Adicione o nome de uma família de colunas para restringir o escopo apenas a essa família. O exemplo abaixo exclui todos os dados da linha r1:
deleteall 'table1', 'r1'
Remover uma tabela
A remoção de uma tabela exige duas etapas: primeiro desative-a e, em seguida, remova-a.
-
Desative a tabela:
disable 'table1' -
Remova a tabela:
drop 'table1'
Para reativar uma tabela desabilitada sem removê-la, execute enable:
enable 'table1'