HBase - odczyt danych
Odczytywanie danych przy użyciu powłoki HBase
Plik get polecenie i get() metoda HTableklasy służą do odczytu danych z tabeli w HBase. Za pomocągetpolecenie, możesz uzyskać pojedynczy wiersz danych naraz. Jego składnia jest następująca:
get ’<table name>’,’row1’
Przykład
Poniższy przykład pokazuje, jak używać polecenia get. Przeanalizujmy pierwszy wiersz plikuemp stół.
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
Czytanie określonej kolumny
Poniżej podano składnię służącą do odczytywania określonej kolumny przy użyciu rozszerzenia get metoda.
hbase> get 'table name', ‘rowid’, {COLUMN ⇒ ‘column family:column name ’}
Przykład
Poniżej podano przykład odczytu określonej kolumny w tabeli HBase.
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
Odczytywanie danych za pomocą Java API
Aby odczytać dane z tabeli HBase, użyj get()metoda klasy HTable. Ta metoda wymaga wystąpieniaGetklasa. Wykonaj czynności podane poniżej, aby pobrać dane z tabeli HBase.
Krok 1: Utwórz wystąpienie klasy konfiguracji
Configurationklasa dodaje pliki konfiguracyjne HBase do swojego obiektu. Możesz utworzyć obiekt konfiguracyjny za pomocącreate() metoda HbaseConfiguration klasa, jak pokazano poniżej.
Configuration conf = HbaseConfiguration.create();
Krok 2: Utwórz wystąpienie klasy HTable
Masz klasę o nazwie HTable, implementacja tabeli w HBase. Ta klasa służy do komunikacji z pojedynczą tabelą HBase. Podczas tworzenia instancji tej klasy przyjmuje obiekt konfiguracyjny i nazwę tabeli jako parametry. Możesz utworzyć wystąpienie klasy HTable, jak pokazano poniżej.
HTable hTable = new HTable(conf, tableName);
Krok 3: Utwórz wystąpienie klasy Get
Możesz pobrać dane z tabeli HBase przy użyciu get() metoda HTableklasa. Ta metoda wyodrębnia komórkę z danego wiersza. WymagaGetobiekt klasy jako parametr. Utwórz go, jak pokazano poniżej.
Get get = new Get(toBytes("row1"));
Krok 4: Przeczytaj dane
Podczas pobierania danych można uzyskać pojedynczy wiersz według identyfikatora lub zestaw wierszy według zestawu identyfikatorów wierszy albo przeskanować całą tabelę lub podzbiór wierszy.
Możesz pobrać dane tabeli HBase przy użyciu wariantów metody Add w Get klasa.
Aby uzyskać określoną kolumnę z określonej rodziny kolumn, użyj następującej metody.
get.addFamily(personal)
Aby pobrać wszystkie kolumny z określonej rodziny kolumn, użyj następującej metody.
get.addColumn(personal, name)
Krok 5: Uzyskaj wynik
Uzyskaj wynik, przekazując swój Get klasy do metody get klasy HTableklasa. Ta metoda zwracaResultclass, który przechowuje żądany wynik. Poniżej podano sposób użyciaget() metoda.
Result result = table.get(g);
Krok 6: Odczytywanie wartości z wystąpienia wyniku
Plik Result klasa zapewnia getValue()metoda odczytywania wartości z jej instancji. Użyj go, jak pokazano poniżej, aby odczytać wartości z plikuResult instancja.
byte [] value = result.getValue(Bytes.toBytes("personal"),Bytes.toBytes("name"));
byte [] value1 = result.getValue(Bytes.toBytes("personal"),Bytes.toBytes("city"));
Poniżej podano kompletny program do odczytu wartości z tabeli HBase.
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);
}
}
Skompiluj i wykonaj powyższy program, jak pokazano poniżej.
$javac RetriveData.java
$java RetriveData
Wynik powinien być następujący:
name: Raju city: Delhi