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