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