HBase - Daten lesen

Daten mit HBase Shell lesen

Das get Befehl und die get() Methode von HTableKlasse werden verwendet, um Daten aus einer Tabelle in HBase zu lesen. Verwenden vongetBefehl können Sie jeweils eine einzelne Datenzeile abrufen. Die Syntax lautet wie folgt:

get ’<table name>’,’row1’

Beispiel

Das folgende Beispiel zeigt, wie der Befehl get verwendet wird. Scannen wir die erste Reihe desemp Tabelle.

hbase(main):012:0> get 'emp', '1'

   COLUMN                     CELL
   
personal : city timestamp = 1417521848375, value = hyderabad

personal : name timestamp = 1417521785385, value = ramu

professional: designation timestamp = 1417521885277, value = manager

professional: salary timestamp = 1417521903862, value = 50000

4 row(s) in 0.0270 seconds

Lesen einer bestimmten Spalte

Im Folgenden wird die Syntax zum Lesen einer bestimmten Spalte mit dem angegeben get Methode.

hbase> get 'table name', ‘rowid’, {COLUMN ⇒ ‘column family:column name ’}

Beispiel

Im Folgenden finden Sie ein Beispiel zum Lesen einer bestimmten Spalte in der HBase-Tabelle.

hbase(main):015:0> get 'emp', 'row1', {COLUMN ⇒ 'personal:name'}
  COLUMN                CELL  
personal:name timestamp = 1418035791555, value = raju
1 row(s) in 0.0080 seconds

Lesen von Daten mit der Java-API

Verwenden Sie die, um Daten aus einer HBase-Tabelle zu lesen get()Methode der HTable-Klasse. Diese Methode erfordert eine Instanz vonGetKlasse. Führen Sie die folgenden Schritte aus, um Daten aus der HBase-Tabelle abzurufen.

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 Get-Klasse

Sie können Daten aus der HBase-Tabelle mit dem abrufen get() Methode der HTableKlasse. Diese Methode extrahiert eine Zelle aus einer bestimmten Zeile. Es erfordert eineGetKlassenobjekt als Parameter. Erstellen Sie es wie unten gezeigt.

Get get = new Get(toBytes("row1"));

Schritt 4: Lesen Sie die Daten

Beim Abrufen von Daten können Sie eine einzelne Zeile nach ID oder eine Reihe von Zeilen nach einer Reihe von Zeilen-IDs abrufen oder eine gesamte Tabelle oder eine Teilmenge von Zeilen scannen.

Sie können HBase-Tabellendaten mit den Methodenvarianten hinzufügen in abrufen Get Klasse.

Verwenden Sie die folgende Methode, um eine bestimmte Spalte aus einer bestimmten Spaltenfamilie abzurufen.

get.addFamily(personal)

Verwenden Sie die folgende Methode, um alle Spalten aus einer bestimmten Spaltenfamilie abzurufen.

get.addColumn(personal, name)

Schritt 5: Holen Sie sich das Ergebnis

Holen Sie sich das Ergebnis, indem Sie Ihre übergeben Get Klasseninstanz zur get-Methode der HTableKlasse. Diese Methode gibt die zurückResultKlassenobjekt, das das angeforderte Ergebnis enthält. Unten ist die Verwendung von angegebenget() Methode.

Result result = table.get(g);

Schritt 6: Lesen von Werten aus der Ergebnisinstanz

Das Result Klasse bietet die getValue()Methode zum Lesen der Werte aus seiner Instanz. Verwenden Sie es wie unten gezeigt, um die Werte aus dem zu lesenResult Beispiel.

byte [] value = result.getValue(Bytes.toBytes("personal"),Bytes.toBytes("name"));
byte [] value1 = result.getValue(Bytes.toBytes("personal"),Bytes.toBytes("city"));

Im Folgenden finden Sie das vollständige Programm zum Lesen von Werten aus einer HBase-Tabelle.

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.Get;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Result;
import org.apache.hadoop.hbase.util.Bytes;

public class RetriveData{

   public static void main(String[] args) throws IOException, Exception{
   
      // Instantiating Configuration class
      Configuration config = HBaseConfiguration.create();

      // Instantiating HTable class
      HTable table = new HTable(config, "emp");

      // Instantiating Get class
      Get g = new Get(Bytes.toBytes("row1"));

      // Reading the data
      Result result = table.get(g);

      // Reading values from Result class object
      byte [] value = result.getValue(Bytes.toBytes("personal"),Bytes.toBytes("name"));

      byte [] value1 = result.getValue(Bytes.toBytes("personal"),Bytes.toBytes("city"));

      // Printing the values
      String name = Bytes.toString(value);
      String city = Bytes.toString(value1);
      
      System.out.println("name: " + name + " city: " + city);
   }
}

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

$javac RetriveData.java
$java RetriveData

Folgendes sollte die Ausgabe sein:

name: Raju city: Delhi