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