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