HBase - Tạo dữ liệu

Chèn dữ liệu bằng HBase Shell

Chương này trình bày cách tạo dữ liệu trong bảng HBase. Để tạo dữ liệu trong bảng HBase, các lệnh và phương pháp sau được sử dụng:

  • put chỉ huy,

  • add() phương pháp của Put lớp học, và

  • put() phương pháp của HTable lớp học.

Ví dụ, chúng ta sẽ tạo bảng sau trong HBase.

Sử dụng put, bạn có thể chèn các hàng vào một bảng. Cú pháp của nó như sau:

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

Chèn hàng đầu tiên

Hãy để chúng tôi chèn các giá trị hàng đầu tiên vào bảng emp như hình dưới đây.

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

Chèn các hàng còn lại bằng lệnh put theo cách tương tự. Nếu bạn chèn toàn bộ bảng, bạn sẽ nhận được kết quả sau.

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

Chèn dữ liệu bằng Java API

Bạn có thể chèn dữ liệu vào Hbase bằng cách sử dụng add() phương pháp của Putlớp học. Bạn có thể lưu nó bằng cách sử dụngput() phương pháp của HTablelớp học. Các lớp này thuộc vềorg.apache.hadoop.hbase.clientgói hàng. Dưới đây là các bước để tạo dữ liệu trong Bảng HBase.

Bước 1: Khởi tạo lớp cấu hình

Các Configurationlớp thêm các tệp cấu hình HBase vào đối tượng của nó. Bạn có thể tạo một đối tượng cấu hình bằng cách sử dụngcreate() phương pháp của HbaseConfiguration lớp như hình bên dưới.

Configuration conf = HbaseConfiguration.create();

Bước 2: Khởi tạo lớp HTable

Bạn có một lớp học được gọi là HTable, một triển khai của Bảng trong HBase. Lớp này được sử dụng để giao tiếp với một bảng HBase. Trong khi khởi tạo lớp này, nó chấp nhận đối tượng cấu hình và tên bảng làm tham số. Bạn có thể khởi tạo lớp HTable như hình dưới đây.

HTable hTable = new HTable(conf, tableName);

Bước 3: Khởi tạo PutClass

Để chèn dữ liệu vào bảng HBase, add()phương pháp và các biến thể của nó được sử dụng. Phương pháp này thuộc vềPut, do đó khởi tạo lớp đặt. Lớp này yêu cầu tên hàng mà bạn muốn chèn dữ liệu vào, ở định dạng chuỗi. Bạn có thể khởi tạoPut lớp như hình bên dưới.

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

Bước 4: Chèn dữ liệu

Các add() phương pháp của Putlớp được sử dụng để chèn dữ liệu. Nó yêu cầu 3 mảng byte đại diện cho họ cột, định tính cột (tên cột) và giá trị được chèn tương ứng. Chèn dữ liệu vào bảng HBase bằng phương thức add () như hình dưới đây.

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

Bước 5: Lưu dữ liệu trong bảng

Sau khi chèn các hàng bắt buộc, hãy lưu các thay đổi bằng cách thêm phiên bản đặt vào put() phương thức của lớp HTable như hình dưới đây.

hTable.put(p);

Bước 6: Đóng phiên bản HTable

Sau khi tạo dữ liệu trong Bảng HBase, hãy đóng HTable ví dụ sử dụng close() như hình dưới đây.

hTable.close();

Dưới đây là chương trình hoàn chỉnh để tạo dữ liệu trong Bảng 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();
   }
}

Biên dịch và thực hiện chương trình trên như hình dưới đây.

$javac InsertData.java
$java InsertData

Sau đây là đầu ra:

data inserted