たとえば以下のようなテーブルがあったとします。
> scan 'tbl1'
ROW COLUMN+CELL
row1 column=fam1:col1, timestamp=1311918146512, value=1-1-1
row1 column=fam1:col2, timestamp=1311918153880, value=1-1-2
row1 column=fam2:col2, timestamp=1311918161976, value=1-2-2
row2 column=fam1:col1, timestamp=1311918179710, value=2-1-1
row2 column=fam2:col1, timestamp=1311918231004, value=2-2-1
row2 column=fam2:col2, timestamp=1311918264142, value=2-2-2
2 row(s) in 0.0760 seconds
このテーブルの row2 のカラムファミリ fam2 に含まれるカラムをすべて削除したい場合、hbase shell で以下のコマンドを実行しても意図通りの結果にはなりません。
> deleteall 'tbl1', 'row2', 'fam2'
意図したとおりの結果を得るには以下のようにします。
> import org.apache.hadoop.hbase.client.HTable
> import org.apache.hadoop.hbase.client.Delete
> t = HTable.new("tbl1".to_java_bytes)
> t.delete(Delete.new("row2".to_java_bytes).deleteFamily("fam2".to_java_bytes))
テーブルの内容を確認すると
> scan 'tbl1'
ROW COLUMN+CELL
row1 column=fam1:col1, timestamp=1311918146512, value=1-1-1
row1 column=fam1:col2, timestamp=1311918153880, value=1-1-2
row1 column=fam2:col2, timestamp=1311918161976, value=1-2-2
row2 column=fam1:col1, timestamp=1311918179710, value=2-1-1
検証した HBase のバージョン: 0.90.1-CDH3B4