HBase - Xóa dữ liệu
Xóa một ô cụ thể trong bảng
Sử dụng delete, bạn có thể xóa một ô cụ thể trong bảng. Cú pháp củadelete lệnh như sau:
delete ‘<table name>’, ‘<row>’, ‘<column name >’, ‘<time stamp>’
Thí dụ
Đây là một ví dụ để xóa một ô cụ thể. Ở đây chúng tôi đang xóa tiền lương.
hbase(main):006:0> delete 'emp', '1', 'personal data:city',
1417521848375
0 row(s) in 0.0060 seconds
Xóa tất cả các ô trong bảng
Sử dụng lệnh "deleteall", bạn có thể xóa tất cả các ô liên tiếp. Dưới đây là cú pháp của lệnh deleteall.
deleteall ‘<table name>’, ‘<row>’,
Thí dụ
Đây là một ví dụ về lệnh "deleteall", nơi chúng tôi đang xóa tất cả các ô của row1 của bảng emp.
hbase(main):007:0> deleteall 'emp','1'
0 row(s) in 0.0240 seconds
Xác minh bảng bằng cách sử dụng scanchỉ huy. Ảnh chụp nhanh của bảng sau khi xóa bảng được đưa ra dưới đây.
hbase(main):022:0> scan 'emp'
ROW COLUMN + CELL
2 column = personal data:city, timestamp = 1417524574905, value = chennai
2 column = personal data:name, timestamp = 1417524556125, value = ravi
2 column = professional data:designation, timestamp = 1417524204, 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 = 1417523187, value = jr:engg
3 column = professional data:salary, timestamp = 1417524702514, value = 25000
Xóa dữ liệu bằng Java API
Bạn có thể xóa dữ liệu khỏi bảng HBase bằng cách sử dụng delete() phương pháp của HTablelớp học. Làm theo các bước dưới đây để xóa dữ liệu khỏi 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. 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 Xóa lớp
Khởi tạo Deletelớp bằng cách chuyển rowid của hàng sẽ bị xóa, ở định dạng mảng byte. Bạn cũng có thể chuyển dấu thời gian và Rowlock cho hàm tạo này.
Delete delete = new Delete(toBytes("row1"));
Bước 4: Chọn dữ liệu sẽ bị xóa
Bạn có thể xóa dữ liệu bằng các phương pháp xóa của Deletelớp học. Lớp này có nhiều phương thức xóa khác nhau. Chọn cột hoặc họ cột sẽ bị xóa bằng các phương pháp đó. Hãy xem các ví dụ sau đây cho thấy việc sử dụng các phương thức lớp Xóa.
delete.deleteColumn(Bytes.toBytes("personal"), Bytes.toBytes("name"));
delete.deleteFamily(Bytes.toBytes("professional"));
Bước 5: Xóa dữ liệu
Xóa dữ liệu đã chọn bằng cách chuyển delete ví dụ cho delete() phương pháp của HTable lớp như hình bên dưới.
table.delete(delete);
Bước 6: Đóng HTableInstance
Sau khi xóa dữ liệu, hãy đóng HTable Phiên bản.
table.close();
Dưới đây là chương trình hoàn chỉnh để xóa dữ liệu khỏi 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.Delete;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.util.Bytes;
public class DeleteData {
public static void main(String[] args) throws IOException {
// Instantiating Configuration class
Configuration conf = HBaseConfiguration.create();
// Instantiating HTable class
HTable table = new HTable(conf, "employee");
// Instantiating Delete class
Delete delete = new Delete(Bytes.toBytes("row1"));
delete.deleteColumn(Bytes.toBytes("personal"), Bytes.toBytes("name"));
delete.deleteFamily(Bytes.toBytes("professional"));
// deleting the data
table.delete(delete);
// closing the HTable object
table.close();
System.out.println("data deleted.....");
}
}
Biên dịch và thực hiện chương trình trên như hình dưới đây.
$javac Deletedata.java
$java DeleteData
Sau đây là đầu ra:
data deleted