HBase-데이터 삭제

테이블에서 특정 셀 삭제

사용 delete명령을 사용하면 테이블의 특정 셀을 삭제할 수 있습니다. 구문delete 명령은 다음과 같습니다.

delete ‘<table name>’, ‘<row>’, ‘<column name >’, ‘<time stamp>’

다음은 특정 셀을 삭제하는 예입니다. 여기에서 급여를 삭제합니다.

hbase(main):006:0> delete 'emp', '1', 'personal data:city',
1417521848375
0 row(s) in 0.0060 seconds

테이블의 모든 셀 삭제

"deleteall"명령을 사용하면 한 행의 모든 ​​셀을 삭제할 수 있습니다. 아래는 deleteall 명령의 구문입니다.

deleteall ‘<table name>’, ‘<row>’,

다음은 emp 테이블의 row1의 모든 셀을 삭제하는“deleteall”명령의 예입니다.

hbase(main):007:0> deleteall 'emp','1'
0 row(s) in 0.0240 seconds

다음을 사용하여 테이블을 확인하십시오. scan명령. 테이블 삭제 후 테이블 스냅 샷은 아래와 같습니다.

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

Java API를 사용하여 데이터 삭제

다음을 사용하여 HBase 테이블에서 데이터를 삭제할 수 있습니다. delete() 의 방법 HTable수업. 테이블에서 데이터를 삭제하려면 아래 단계를 따르십시오.

1 단계 : 구성 클래스 인스턴스화

Configuration클래스는 HBase 구성 파일을 객체에 추가합니다. 다음을 사용하여 구성 개체를 만들 수 있습니다.create() 의 방법 HbaseConfiguration 아래와 같이 클래스.

Configuration conf = HbaseConfiguration.create();

2 단계 : HTable 클래스 인스턴스화

라는 수업이 있습니다. HTable, HBase의 Table 구현입니다. 이 클래스는 단일 HBase 테이블과 통신하는 데 사용됩니다. 이 클래스를 인스턴스화하는 동안 구성 개체와 테이블 이름을 매개 변수로 받아들입니다. 아래와 같이 HTable 클래스를 인스턴스화 할 수 있습니다.

HTable hTable = new HTable(conf, tableName);

3 단계 : 삭제 클래스 인스턴스화

인스턴스화 Delete삭제 될 행의 rowid를 바이트 배열 형식으로 전달하여 클래스. 타임 스탬프와 Rowlock을이 생성자에 전달할 수도 있습니다.

Delete delete = new Delete(toBytes("row1"));

4 단계 : 삭제할 데이터 선택

삭제 방법을 사용하여 데이터를 삭제할 수 있습니다. Delete수업. 이 클래스에는 다양한 삭제 방법이 있습니다. 이러한 방법을 사용하여 삭제할 열 또는 열 패밀리를 선택합니다. Delete 클래스 메서드의 사용법을 보여주는 다음 예제를 살펴보십시오.

delete.deleteColumn(Bytes.toBytes("personal"), Bytes.toBytes("name"));
delete.deleteFamily(Bytes.toBytes("professional"));

5 단계 : 데이터 삭제

전달하여 선택한 데이터를 삭제합니다. delete 인스턴스 delete() 의 방법 HTable 아래와 같이 클래스.

table.delete(delete);

6 단계 : HTableInstance 닫기

데이터를 삭제 한 후 HTable 예.

table.close();

아래는 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.....");
   }
}

위의 프로그램을 아래와 같이 컴파일하고 실행합니다.

$javac Deletedata.java
$java DeleteData

다음은 출력이어야합니다.

data deleted