HBase - Cập nhật dữ liệu
Cập nhật dữ liệu bằng HBase Shell
Bạn có thể cập nhật giá trị ô hiện có bằng cách sử dụng putchỉ huy. Để làm như vậy, chỉ cần làm theo cú pháp tương tự và đề cập đến giá trị mới của bạn như hình dưới đây.
put ‘table name’,’row ’,'Column family:column name',’new value’
Giá trị mới cho trước thay thế giá trị hiện có, cập nhật hàng.
Thí dụ
Giả sử có một bảng trong HBase được gọi là emp với dữ liệu sau.
hbase(main):003:0> scan 'emp'
ROW COLUMN + CELL
row1 column = personal:name, timestamp = 1418051555, value = raju
row1 column = personal:city, timestamp = 1418275907, value = Hyderabad
row1 column = professional:designation, timestamp = 14180555,value = manager
row1 column = professional:salary, timestamp = 1418035791555,value = 50000
1 row(s) in 0.0100 seconds
Lệnh sau sẽ cập nhật giá trị thành phố của nhân viên có tên 'Raju' thành Delhi.
hbase(main):002:0> put 'emp','row1','personal:city','Delhi'
0 row(s) in 0.0400 seconds
Bảng cập nhật trông như sau, nơi bạn có thể quan sát thành phố Raju đã được đổi thành 'Delhi'.
hbase(main):003:0> scan 'emp'
ROW COLUMN + CELL
row1 column = personal:name, timestamp = 1418035791555, value = raju
row1 column = personal:city, timestamp = 1418274645907, value = Delhi
row1 column = professional:designation, timestamp = 141857555,value = manager
row1 column = professional:salary, timestamp = 1418039555, value = 50000
1 row(s) in 0.0100 seconds
Cập nhật dữ liệu bằng Java API
Bạn có thể cập nhật dữ liệu trong một ô cụ thể bằng cách sử dụng put()phương pháp. Làm theo các bước dưới đây để cập nhật giá trị ô hiện có của bảng.
Bước 1: Khởi tạo lớp cấu hình
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 duy nhất. 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 Put Class
Để 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 putlớp học. Lớp này yêu cầu tên hàng 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: Cập nhật một ô hiện có
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 cách sử dụngadd() như hình dưới đây.
p.add(Bytes.toBytes("coloumn family "), Bytes.toBytes("column
name"),Bytes.toBytes("value"));
p.add(Bytes.toBytes("personal"),
Bytes.toBytes("city"),Bytes.toBytes("Delih"));
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ụ bằng cách sử dụng phương thức close () như hình dưới đây.
hTable.close();
Dưới đây là chương trình hoàn chỉnh để cập nhật dữ liệu trong một bảng cụ thể.
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 UpdateData{
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"));
// Updating a cell value
p.add(Bytes.toBytes("personal"),
Bytes.toBytes("city"),Bytes.toBytes("Delih"));
// Saving the put Instance to the HTable.
hTable.put(p);
System.out.println("data Updated");
// 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 UpdateData.java
$java UpdateData
Sau đây là đầu ra:
data Updated