Команда 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
Следующее должно быть выводом: