HBase - Daten Lesen


Advertisements

Das get Befehl und die get () Methode auf HTable Klasse sind verwendet, um Daten aus einer Tabelle in HBase lesen. Verwendung get Befehl, können Sie eine einzige Reihe von Daten zu einem Zeitpunkt zu erhalten. Die Syntax ist wie folgt:

get ’<table name>’,’row1’

Das folgende Beispiel zeigt, wie Sie den Befehl get verwenden. Lassen uns Sie scannen die erste Zeile der emp 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

Da unten ist die Syntax, um eine bestimmte Spalte mit dem get Methode lesen.

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

Da unten ist ein Beispiel, um eine bestimmte Spalte in HBase Tabelle lesen.

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 Java API

Um Daten aus einer HBase Tabelle lesen, verwenden Sie die get () Methode der HTable Klasse. Diese Methode erfordert eine Instanz der Get Klasse. Befolgen Sie die Schritte unten gegebenen , um Daten aus der HBase Tabelle abrufen.

Schritt 1: Instanziieren des Konfigurations Klasse

Konfiguration Klasse fügt HBase Konfigurationsdateien zu seine objekt. Sie können eine Konfigurationsobjekt zu erstellen verwendung dem create () Methode HbaseConfiguration Klasse wie unten dargestellt.

Configuration conf = HbaseConfiguration.create();

Schritt 2: Instanziieren die HTable Class

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 Instanziieren Sie diese Klasse, annimmt 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 die bekommen klasse

Sie können Daten aus der HBase Tabelle verwendung dem get () Methode der HTable Klasse. Dieses Verfahren extrahiert eine Zelle von einer gegebenen Reihe. Es erfordert ein Get Klassen objekt als Parameter. Erstellen Sie es wie unten dargestellt.

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

Schritt 4: Lesen Sie die Daten

Während das Abrufen von Daten, können Sie eine einzelne Zeile durch ID ,oder bekommen Set von Zeilen durch Set von IDs eingestellt, oder scannen Sie eine ganze Tabelle oder eine Teilmenge von Zeilen.

Sie können abrufen eine HBase Tabellendaten über das Add Verfahrensvarianten in Get Klasse.

Zu erhalten eine bestimmte Spalte aus einer bestimmten Spalte Familie,verwenden Sie die folgende Methode.

get.addFamily(personal) 

Um alle Spalten aus einer bestimmten Spalte Familie zu erhalten, verwenden Sie die folgende Methode.

get.addColumn(personal, name) 

Schritt 5: Holen Sie sich das Ergebnis

Holen Sie sich das Ergebnis, indem Sie Vorbeigehen Ihre Get Klasseninstanz an die get-Methode der HTable Klasse. Diese Methode gibt den Result Klassen objekt, welche hält die gewünschte Result. Da unten ist die Verwendung von get () Methode.

Result result = table.get(g);  

Schritt 6: Lesen von Werten aus dem Result Instanz

Das Result Klasse bietet das getValue () Methode, um die Werte aus lesen Sie dessen Instanz. Verwenden Sie es, wie unten dargestellt, lesen um die Werte aus dem Result Instanz.

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

Geben Nachstehend ist das vollständige Programm, um Werte aus einer HBase Tabelle gelesen.

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 und führen Sie das obige Programm wie unten gezeigt.

$javac RetriveData.java
$java RetriveData

Folgendes sollte der Ausgang sein:

name: Raju city: Delhi
Advertisements