HBase - Daten Löschen


Advertisements

Löschen von einer spezifisch Zelle in einer Tabelle

MitHilfe dem Löschen-Befehl, können Sie eine bestimmte Zelle in einer Tabelle zu löschen. Die Syntax von der löschen-befehl ist wie folgt:

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

Hier ist ein Beispiel, um eine bestimmte Zelle zu löschen. Hier werden wir sind das Löschen der Gehalts.

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

Löschen von aller Zellen in einer Tabelle

MitHilfe dem "AlleLöschen" Befehl Sie können Sie alle Zellen in einer Zeile zu löschen. Da unten ist die Syntax von AlleLöschen Befehls.

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

Hier ist ein Beispiel von "AlleLöschen" -Befehl, wo in wir sind Löschen aller Zellen row1 von Tabelle emp.

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

Verifizieren Sie die Tabelle mitHilfe dem Scan Befehl. 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

Löschen von Daten mit Hilfe von Java-API

Sie können Löschen Daten aus einer HBase Tabelle mitHilfe dem delete () Methode der HTable Klasse. Befolgen Sie die unten angegebenen Schritte, um Daten aus einer Tabelle zu löschen.

Schritt 1: Instanziieren des Konfigurations Klasse

Configuration-Klasse fügt HBase Konfigurationsdateien auf ihren Gegenstand. Sie können erstellen eine Konfigurationsobjekt mitHilfe dem create () Methode von welche HbaseConfiguration Klasse wie unten dargestellt.

Configuration conf = HbaseConfiguration.create();

Schritt 2: Instanziieren die HTable Klasse

Sie haben eine Klasse mit dem Namen HTable , eine Implementierung der Tabelle in HBase. Diese Klasse wird verwendet, um mit einem einzigen HBase Tisch kommunizieren. Während Instanziierung Sie diese Klasse, akzeptiert es das Konfigurationsobjekt und den Tabellennamen als Parameter. Sie können die HTable Klasse zu instanziieren, wie unten dargestellt.

HTable hTable = new HTable(conf, tableName); 

Schritt 3: Instanziieren Sie die Entf-Klasse

Instanziieren Sie die Entf-Klasse, indem übergeben die rowid von der Zeile, dass ist gelöscht werden soll, in Byte-Array-Format. Sie können auch übergeben Zeitstempel und Rowlock zu dieser Konstruktor.

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

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

Sie können die Daten mit Hilfe der Löschmethoden der Löschen-Klasse löschen. Diese Klasse hat verschiedene Löschmethoden. Wählen Sie die Spalten oder Spalten Familien werden gelöscht mitHilfe solche Methoden. Werfen Sie einen Blick auf die folgenden Beispiele, dass zeigen die Verwendung von Löschen klassen methoden.

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 Vorbeigehen das Löschen Instanz zu die delete() Methode derHTable Klasse wie unten dargestellt.

table.delete(delete); 

Schritt 6: Schließen Sie die HTableInstance

Nach dem Löschen der Daten, schließen Sie die HTable Instanz.

table.close();

Da unten ist das vollständige Programm, um Daten aus der Tabelle zu löschen 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.....");
   }
}

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

$javac Deletedata.java
$java DeleteData

Folgendes sollte werden die Ausgangs:

data deleted
Advertisements