HBase - Создание данных

Вставка данных с помощью HBase Shell

В этой главе показано, как создавать данные в таблице HBase. Для создания данных в таблице HBase используются следующие команды и методы:

  • put команда

  • add() метод Put класс и

  • put() метод HTable класс.

В качестве примера мы собираемся создать следующую таблицу в HBase.

С помощью putкоманда, вы можете вставлять строки в таблицу. Его синтаксис следующий:

put ’<table name>’,’row1’,’<colfamily:colname>’,’<value>’

Вставка первой строки

Давайте вставим значения первой строки в таблицу emp, как показано ниже.

hbase(main):005:0> put 'emp','1','personal data:name','raju'
0 row(s) in 0.6600 seconds
hbase(main):006:0> put 'emp','1','personal data:city','hyderabad'
0 row(s) in 0.0410 seconds
hbase(main):007:0> put 'emp','1','professional
data:designation','manager'
0 row(s) in 0.0240 seconds
hbase(main):007:0> put 'emp','1','professional data:salary','50000'
0 row(s) in 0.0240 seconds

Таким же образом вставьте остальные строки, используя команду put. Если вы вставите всю таблицу, вы получите следующий результат.

hbase(main):022:0> scan 'emp'

   ROW                        COLUMN+CELL
1 column=personal data:city, timestamp=1417524216501, value=hyderabad

1 column=personal data:name, timestamp=1417524185058, value=ramu

1 column=professional data:designation, timestamp=1417524232601,

 value=manager
 
1 column=professional data:salary, timestamp=1417524244109, value=50000

2 column=personal data:city, timestamp=1417524574905, value=chennai

2 column=personal data:name, timestamp=1417524556125, value=ravi

2 column=professional data:designation, timestamp=1417524592204,

 value=sr:engg
 
2 column=professional data:salary, timestamp=1417524604221, value=30000

3 column=personal data:city, timestamp=1417524681780, value=delhi

3 column=personal data:name, timestamp=1417524672067, value=rajesh

3 column=professional data:designation, timestamp=1417524693187,

value=jr:engg
3 column=professional data:salary, timestamp=1417524702514,

value=25000

Вставка данных с помощью Java API

Вы можете вставить данные в Hbase, используя add() метод Putкласс. Вы можете сохранить его, используяput() метод HTableкласс. Эти классы принадлежат кorg.apache.hadoop.hbase.clientпакет. Ниже приведены шаги по созданию данных в таблице HBase.

Шаг 1. Создайте экземпляр класса конфигурации

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

Configuration conf = HbaseConfiguration.create();

Шаг 2. Создайте экземпляр класса HTable

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

HTable hTable = new HTable(conf, tableName);

Шаг 3. Создайте экземпляр PutClass

Чтобы вставить данные в таблицу HBase, add()метод и его варианты. Этот метод принадлежитPut, поэтому создайте экземпляр класса put. Этому классу требуется имя строки, в которую вы хотите вставить данные, в строковом формате. Вы можете создать экземплярPut класс, как показано ниже.

Put p = new Put(Bytes.toBytes("row1"));

Шаг 4: Вставьте данные

В add() метод Putкласс используется для вставки данных. Для этого требуются 3-байтовые массивы, представляющие семейство столбцов, квалификатор столбца (имя столбца) и значение, которое нужно вставить, соответственно. Вставьте данные в таблицу HBase с помощью метода add (), как показано ниже.

p.add(Bytes.toBytes("coloumn family "), Bytes.toBytes("column
name"),Bytes.toBytes("value"));

Шаг 5: Сохраните данные в таблице

После вставки необходимых строк сохраните изменения, добавив экземпляр put в put() метод класса HTable, как показано ниже.

hTable.put(p);

Шаг 6. Закройте экземпляр HTable.

После создания данных в таблице HBase закройте HTable экземпляр с использованием close() метод, как показано ниже.

hTable.close();

Ниже приведена полная программа для создания данных в таблице HBase.

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.client.Put;
import org.apache.hadoop.hbase.util.Bytes;

public class InsertData{

   public static void main(String[] args) throws IOException {

      // Instantiating Configuration class
      Configuration config = HBaseConfiguration.create();

      // Instantiating HTable class
      HTable hTable = new HTable(config, "emp");

      // Instantiating Put class
      // accepts a row name.
      Put p = new Put(Bytes.toBytes("row1")); 

      // adding values using add() method
      // accepts column family name, qualifier/row name ,value
      p.add(Bytes.toBytes("personal"),
      Bytes.toBytes("name"),Bytes.toBytes("raju"));

      p.add(Bytes.toBytes("personal"),
      Bytes.toBytes("city"),Bytes.toBytes("hyderabad"));

      p.add(Bytes.toBytes("professional"),Bytes.toBytes("designation"),
      Bytes.toBytes("manager"));

      p.add(Bytes.toBytes("professional"),Bytes.toBytes("salary"),
      Bytes.toBytes("50000"));
      
      // Saving the put Instance to the HTable.
      hTable.put(p);
      System.out.println("data inserted");
      
      // closing HTable
      hTable.close();
   }
}

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

$javac InsertData.java
$java InsertData

На выходе должно получиться следующее:

data inserted