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