HBase - Daten aktualisieren
Aktualisieren von Daten mit HBase Shell
Sie können einen vorhandenen Zellenwert mithilfe von aktualisieren putBefehl. Folgen Sie dazu einfach der gleichen Syntax und geben Sie Ihren neuen Wert wie unten gezeigt an.
put ‘table name’,’row ’,'Column family:column name',’new value’
Der neu angegebene Wert ersetzt den vorhandenen Wert und aktualisiert die Zeile.
Beispiel
Angenommen, in HBase gibt es eine Tabelle mit dem Namen emp mit den folgenden Daten.
hbase(main):003:0> scan 'emp'
ROW COLUMN + CELL
row1 column = personal:name, timestamp = 1418051555, value = raju
row1 column = personal:city, timestamp = 1418275907, value = Hyderabad
row1 column = professional:designation, timestamp = 14180555,value = manager
row1 column = professional:salary, timestamp = 1418035791555,value = 50000
1 row(s) in 0.0100 seconds
Mit dem folgenden Befehl wird der Stadtwert des Mitarbeiters mit dem Namen "Raju" in Delhi aktualisiert.
hbase(main):002:0> put 'emp','row1','personal:city','Delhi'
0 row(s) in 0.0400 seconds
Die aktualisierte Tabelle sieht wie folgt aus, wo Sie beobachten können, dass die Stadt Raju in "Delhi" geändert wurde.
hbase(main):003:0> scan 'emp'
ROW COLUMN + CELL
row1 column = personal:name, timestamp = 1418035791555, value = raju
row1 column = personal:city, timestamp = 1418274645907, value = Delhi
row1 column = professional:designation, timestamp = 141857555,value = manager
row1 column = professional:salary, timestamp = 1418039555, value = 50000
1 row(s) in 0.0100 seconds
Aktualisieren von Daten mithilfe der Java-API
Sie können die Daten in einer bestimmten Zelle mithilfe von aktualisieren put()Methode. Führen Sie die folgenden Schritte aus, um einen vorhandenen Zellenwert einer Tabelle zu aktualisieren.
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 Put-Klasse
Um Daten in die HBase-Tabelle einzufügen, muss die add()Methode und ihre Varianten werden verwendet. Diese Methode gehört zuPut, instanziieren Sie daher die putKlasse. Diese Klasse benötigt den Zeilennamen, in den Sie die Daten einfügen möchten, im Zeichenfolgenformat. Sie können das instanziierenPut Klasse wie unten gezeigt.
Put p = new Put(Bytes.toBytes("row1"));
Schritt 4: Aktualisieren Sie eine vorhandene Zelle
Das add() Methode von PutKlasse wird zum Einfügen von Daten verwendet. Es sind 3-Byte-Arrays erforderlich, die die Spaltenfamilie, das Spaltenqualifikationsmerkmal (Spaltenname) und den einzufügenden Wert darstellen. Fügen Sie Daten mit der in die HBase-Tabelle einadd() Methode wie unten gezeigt.
p.add(Bytes.toBytes("coloumn family "), Bytes.toBytes("column
name"),Bytes.toBytes("value"));
p.add(Bytes.toBytes("personal"),
Bytes.toBytes("city"),Bytes.toBytes("Delih"));
Schritt 5: Speichern Sie die Daten in der Tabelle
Speichern Sie nach dem Einfügen der erforderlichen Zeilen die Änderungen, indem Sie die put-Instanz zum hinzufügen put() Methode der HTable-Klasse wie unten gezeigt.
hTable.put(p);
Schritt 6: Schließen Sie die HTable-Instanz
Schließen Sie nach dem Erstellen von Daten in der HBase-Tabelle die HTable Instanz mit der Methode close () wie unten gezeigt.
hTable.close();
Im Folgenden finden Sie das vollständige Programm zum Aktualisieren von Daten in einer bestimmten Tabelle.
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.util.Bytes;
public class UpdateData{
public static void main(String[] args) throws IOException {
// Instantiating Configuration class
Configuration config = HBaseConfiguration.create();
// Instantiating HTable class
HTable hTable = new HTable(config, "emp");
// Instantiating Put class
//accepts a row name
Put p = new Put(Bytes.toBytes("row1"));
// Updating a cell value
p.add(Bytes.toBytes("personal"),
Bytes.toBytes("city"),Bytes.toBytes("Delih"));
// Saving the put Instance to the HTable.
hTable.put(p);
System.out.println("data Updated");
// closing HTable
hTable.close();
}
}
Kompilieren Sie das obige Programm und führen Sie es wie unten gezeigt aus.
$javac UpdateData.java
$java UpdateData
Folgendes sollte die Ausgabe sein:
data Updated