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