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>’,

これは「deleteall」コマンドの例です。ここでは、empテーブルのrow1のすべてのセルを削除しています。

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

JavaAPIを使用したデータの削除

を使用して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