HBase - Excluir dados
Excluindo uma célula específica em uma tabela
Usando o deletecomando, você pode excluir uma célula específica em uma tabela. A sintaxe dedelete comando é o seguinte:
delete ‘<table name>’, ‘<row>’, ‘<column name >’, ‘<time stamp>’
Exemplo
Aqui está um exemplo para excluir uma célula específica. Aqui estamos excluindo o salário.
hbase(main):006:0> delete 'emp', '1', 'personal data:city',
1417521848375
0 row(s) in 0.0060 seconds
Excluindo todas as células de uma tabela
Usando o comando “deleteall”, você pode excluir todas as células em uma linha. A seguir está a sintaxe do comando deleteall.
deleteall ‘<table name>’, ‘<row>’,
Exemplo
Aqui está um exemplo de comando “deleteall”, onde estamos excluindo todas as células da linha 1 da tabela emp.
hbase(main):007:0> deleteall 'emp','1'
0 row(s) in 0.0240 seconds
Verifique a tabela usando o scancomando. Um instantâneo da tabela após excluí-la é fornecido abaixo.
hbase(main):022:0> scan 'emp'
ROW COLUMN + CELL
2 column = personal data:city, timestamp = 1417524574905, value = chennai
2 column = personal data:name, timestamp = 1417524556125, value = ravi
2 column = professional data:designation, timestamp = 1417524204, value = sr:engg
2 column = professional data:salary, timestamp = 1417524604221, value = 30000
3 column = personal data:city, timestamp = 1417524681780, value = delhi
3 column = personal data:name, timestamp = 1417524672067, value = rajesh
3 column = professional data:designation, timestamp = 1417523187, value = jr:engg
3 column = professional data:salary, timestamp = 1417524702514, value = 25000
Exclusão de dados usando a API Java
Você pode excluir dados de uma tabela HBase usando o delete() método do HTableclasse. Siga as etapas abaixo para excluir dados de uma tabela.
Etapa 1: instanciar a classe de configuração
Configurationclasse adiciona arquivos de configuração HBase a seu objeto. Você pode criar um objeto de configuração usando ocreate() método do HbaseConfiguration classe como mostrado abaixo.
Configuration conf = HbaseConfiguration.create();
Etapa 2: instancie a classe HTable
Você tem uma classe chamada HTable, uma implementação da Tabela no HBase. Esta classe é usada para se comunicar com uma única tabela HBase. Ao instanciar essa classe, ele aceita o objeto de configuração e o nome da tabela como parâmetros. Você pode instanciar a classe HTable conforme mostrado abaixo.
HTable hTable = new HTable(conf, tableName);
Etapa 3: instanciar a classe de exclusão
Instancie o Deleteclasse passando o rowid da linha que deve ser excluída, no formato de matriz de bytes. Você também pode passar timestamp e Rowlock para este construtor.
Delete delete = new Delete(toBytes("row1"));
Etapa 4: Selecione os dados a serem excluídos
Você pode excluir os dados usando os métodos de exclusão do Deleteclasse. Esta classe possui vários métodos de exclusão. Escolha as colunas ou famílias de colunas a serem excluídas usando esses métodos. Dê uma olhada nos exemplos a seguir que mostram o uso dos métodos da classe Delete.
delete.deleteColumn(Bytes.toBytes("personal"), Bytes.toBytes("name"));
delete.deleteFamily(Bytes.toBytes("professional"));
Etapa 5: excluir os dados
Exclua os dados selecionados passando o delete instância para o delete() método do HTable classe como mostrado abaixo.
table.delete(delete);
Etapa 6: feche o HTableInstance
Depois de excluir os dados, feche o HTable Instância.
table.close();
A seguir está o programa completo para excluir dados da tabela HBase.
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.Delete;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.util.Bytes;
public class DeleteData {
public static void main(String[] args) throws IOException {
// Instantiating Configuration class
Configuration conf = HBaseConfiguration.create();
// Instantiating HTable class
HTable table = new HTable(conf, "employee");
// Instantiating Delete class
Delete delete = new Delete(Bytes.toBytes("row1"));
delete.deleteColumn(Bytes.toBytes("personal"), Bytes.toBytes("name"));
delete.deleteFamily(Bytes.toBytes("professional"));
// deleting the data
table.delete(delete);
// closing the HTable object
table.close();
System.out.println("data deleted.....");
}
}
Compile e execute o programa acima conforme mostrado abaixo.
$javac Deletedata.java
$java DeleteData
O seguinte deve ser o resultado:
data deleted