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
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
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.
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();
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);
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"));
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)
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);
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