Учебники

HBase — чтение данных

Команда get и метод get () класса HTable используются для чтения данных из таблицы в HBase. Используя команду get , вы можете получить одну строку данных за раз. Его синтаксис выглядит следующим образом:

get ’<table name>’,’row1’

пример

В следующем примере показано, как использовать команду get. Давайте просканируем первую строку таблицы emp .

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

Чтение определенной колонки

Ниже приведен синтаксис для чтения определенного столбца с использованием метода get .

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

пример

Ниже приведен пример для чтения определенного столбца в таблице 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

Чтение данных с использованием Java API

Чтобы прочитать данные из таблицы HBase, используйте метод get () класса HTable. Этот метод требует экземпляр класса Get . Следуйте приведенным ниже инструкциям, чтобы получить данные из таблицы HBase.

Шаг 1: Создание класса конфигурации

Класс конфигурации добавляет файлы конфигурации HBase к своему объекту. Вы можете создать объект конфигурации с помощью метода create () класса HbaseConfiguration, как показано ниже.

Configuration conf = HbaseConfiguration.create();

Шаг 2: Создание класса HTable

У вас есть класс HTable , реализация Table в HBase. Этот класс используется для связи с одной таблицей HBase. При создании экземпляра этого класса он принимает объект конфигурации и имя таблицы в качестве параметров. Вы можете создать экземпляр класса HTable, как показано ниже.

HTable hTable = new HTable(conf, tableName);

Шаг 3: Создание класса Get

Вы можете извлечь данные из таблицы HBase, используя метод get () класса HTable . Этот метод извлекает ячейку из данной строки. Требуется объект класса Get в качестве параметра. Создайте его, как показано ниже.

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

Шаг 4: Чтение данных

При получении данных вы можете получить одну строку по идентификатору, или получить набор строк по набору идентификаторов строк, или отсканировать всю таблицу или подмножество строк.

Вы можете получить данные таблицы HBase, используя варианты метода add в классе Get .

Чтобы получить определенный столбец из определенного семейства столбцов, используйте следующий метод.

get.addFamily(personal) 

Чтобы получить все столбцы из определенного семейства столбцов, используйте следующий метод.

get.addColumn(personal, name) 

Шаг 5: Получите результат

Получите результат, передав свой экземпляр класса Get методу get класса HTable . Этот метод возвращает объект класса Result , который содержит запрошенный результат. Ниже приведено использование метода get () .

Result result = table.get(g);  

Шаг 6: чтение значений из экземпляра результата

Класс Result предоставляет метод getValue () для чтения значений из своего экземпляра. Используйте его, как показано ниже, чтобы прочитать значения из экземпляра Result .

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

Ниже приведена полная программа для чтения значений из таблицы 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);
   }
}

Скомпилируйте и выполните вышеуказанную программу, как показано ниже.

$javac RetriveData.java
$java RetriveData

Следующее должно быть выводом: