说明
根据 rowkey 删除一行数据,也会 删除 所有历史数据
步骤
- 获取table对象
- 根据rowkey构建
Delete对象 - 执行
Delete方法 - 关闭table
添加测试数据
添加数据、并且多次修改 price,所以 price 有历史数据
put 'book','1010','c1:title','hadoop从入门到放弃'
put 'book','1010','c1:author','lucy'
put 'book','1010','c1:price','097.50'
对价格进行多次修改:
put 'book','1010','c1:price','089.90'
put 'book','1010','c1:price','059.90'
注意: 价格 格式,这是字符串比较
代码
删除的关键代码
/**
* 根据rowKey,删除某行的数据
* @param tableName
* @param rowKey
* @throws IOException
*/
public void delete(String tableName,String rowKey) throws IOException {
TableName tn = TableName.valueOf(tableName);
Table table = conn.getTable(tn);
Delete delete=new Delete(Bytes.toBytes(rowKey));
table.delete(delete);
table.close();
}
测试
hu.delete("book","1010");
查询
在 hbase shell 环境中执行下面名:
scan 'book',{FORMATTER => 'toString'}
查询不到 rowkey是1010 历史记录,说明该 删除方法 可以删除历史数据