HBase - Elimina dati

Eliminazione di una cella specifica in una tabella

Usando il deletecomando, puoi eliminare una cella specifica in una tabella. La sintassi didelete il comando è il seguente:

delete ‘<table name>’, ‘<row>’, ‘<column name >’, ‘<time stamp>’

Esempio

Ecco un esempio per eliminare una cella specifica. Qui stiamo cancellando lo stipendio.

hbase(main):006:0> delete 'emp', '1', 'personal data:city',
1417521848375
0 row(s) in 0.0060 seconds

Eliminazione di tutte le celle in una tabella

Utilizzando il comando "deleteall", puoi eliminare tutte le celle di una riga. Di seguito è riportata la sintassi del comando deleteall.

deleteall ‘<table name>’, ‘<row>’,

Esempio

Ecco un esempio del comando "deleteall", in cui stiamo eliminando tutte le celle della riga1 della tabella emp.

hbase(main):007:0> deleteall 'emp','1'
0 row(s) in 0.0240 seconds

Verifica la tabella utilizzando il file scancomando. Di seguito viene fornita un'istantanea della tabella dopo l'eliminazione della tabella.

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

Eliminazione dei dati utilizzando l'API Java

È possibile eliminare i dati da una tabella HBase utilizzando il delete() metodo del HTableclasse. Seguire i passaggi indicati di seguito per eliminare i dati da una tabella.

Passaggio 1: creare un'istanza della classe di configurazione

Configurationclass aggiunge i file di configurazione HBase al proprio oggetto. È possibile creare un oggetto di configurazione utilizzando ilcreate() metodo del HbaseConfiguration classe come mostrato di seguito.

Configuration conf = HbaseConfiguration.create();

Passaggio 2: creare un'istanza della classe HTable

Hai una classe chiamata HTable, un'implementazione di Table in HBase. Questa classe viene utilizzata per comunicare con una singola tabella HBase. Durante la creazione di un'istanza di questa classe, accetta l'oggetto di configurazione e il nome della tabella come parametri. È possibile creare un'istanza della classe HTable come mostrato di seguito.

HTable hTable = new HTable(conf, tableName);

Passaggio 3: creare un'istanza della classe di eliminazione

Istanziare il file Deleteclass passando il rowid della riga da eliminare, in formato array di byte. Puoi anche passare timestamp e Rowlock a questo costruttore.

Delete delete = new Delete(toBytes("row1"));

Passaggio 4: selezionare i dati da eliminare

È possibile eliminare i dati utilizzando i metodi di eliminazione di Deleteclasse. Questa classe ha vari metodi di eliminazione. Scegli le colonne o le famiglie di colonne da eliminare utilizzando questi metodi. Dai un'occhiata ai seguenti esempi che mostrano l'utilizzo dei metodi della classe Delete.

delete.deleteColumn(Bytes.toBytes("personal"), Bytes.toBytes("name"));
delete.deleteFamily(Bytes.toBytes("professional"));

Passaggio 5: eliminare i dati

Elimina i dati selezionati passando il file delete istanza al delete() metodo del HTable classe come mostrato di seguito.

table.delete(delete);

Passaggio 6: chiudere HTableInstance

Dopo aver eliminato i dati, chiudere il file HTable Esempio.

table.close();

Di seguito è riportato il programma completo per eliminare i dati dalla tabella 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.....");
   }
}

Compilare ed eseguire il programma sopra come mostrato di seguito.

$javac Deletedata.java
$java DeleteData

Il seguente dovrebbe essere l'output:

data deleted