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