HBase - Daten löschen

Löschen einer bestimmten Zelle in einer Tabelle

Verwendung der deleteBefehl können Sie eine bestimmte Zelle in einer Tabelle löschen. Die Syntax vondelete Befehl ist wie folgt:

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

Beispiel

Hier ist ein Beispiel zum Löschen einer bestimmten Zelle. Hier löschen wir das Gehalt.

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

Löschen aller Zellen in einer Tabelle

Mit dem Befehl "deleteall" können Sie alle Zellen in einer Reihe löschen. Im Folgenden ist die Syntax des Befehls deleteall angegeben.

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

Beispiel

Hier ist ein Beispiel für den Befehl "deleteall", bei dem alle Zellen von Zeile 1 der Tabelle emp gelöscht werden.

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

Überprüfen Sie die Tabelle mit dem scanBefehl. Eine Momentaufnahme der Tabelle nach dem Löschen der Tabelle ist unten angegeben.

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

Daten mit Java API löschen

Sie können Daten aus einer HBase-Tabelle mit dem löschen delete() Methode der HTableKlasse. Führen Sie die folgenden Schritte aus, um Daten aus einer Tabelle zu löschen.

Schritt 1: Instanziieren Sie die Konfigurationsklasse

ConfigurationKlasse fügt ihrem Objekt HBase-Konfigurationsdateien hinzu. Sie können ein Konfigurationsobjekt mit dem erstellencreate() Methode der HbaseConfiguration Klasse wie unten gezeigt.

Configuration conf = HbaseConfiguration.create();

Schritt 2: Instanziieren Sie die HTable-Klasse

Sie haben eine Klasse namens HTable, eine Implementierung von Table in HBase. Diese Klasse wird verwendet, um mit einer einzelnen HBase-Tabelle zu kommunizieren. Beim Instanziieren dieser Klasse werden das Konfigurationsobjekt und der Tabellenname als Parameter akzeptiert. Sie können die HTable-Klasse wie unten gezeigt instanziieren.

HTable hTable = new HTable(conf, tableName);

Schritt 3: Instanziieren Sie die Löschklasse

Instanziieren Sie die DeleteKlasse durch Übergeben der Zeilen-ID der zu löschenden Zeile im Byte-Array-Format. Sie können diesem Konstruktor auch Zeitstempel und Rowlock übergeben.

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

Schritt 4: Wählen Sie die zu löschenden Daten aus

Sie können die Daten mit den Löschmethoden von löschen DeleteKlasse. Diese Klasse verfügt über verschiedene Löschmethoden. Wählen Sie die Spalten oder Spaltenfamilien aus, die mit diesen Methoden gelöscht werden sollen. Schauen Sie sich die folgenden Beispiele an, die die Verwendung von Delete-Klassenmethoden zeigen.

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

Schritt 5: Löschen Sie die Daten

Löschen Sie die ausgewählten Daten, indem Sie die übergeben delete Instanz zum delete() Methode der HTable Klasse wie unten gezeigt.

table.delete(delete);

Schritt 6: Schließen Sie die HTableInstance

Schließen Sie nach dem Löschen der Daten die HTable Beispiel.

table.close();

Im Folgenden finden Sie das vollständige Programm zum Löschen von Daten aus der HBase-Tabelle.

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.....");
   }
}

Kompilieren Sie das obige Programm und führen Sie es wie unten gezeigt aus.

$javac Deletedata.java
$java DeleteData

Folgendes sollte die Ausgabe sein:

data deleted