废弃,详见
hbase2.1.x java delete根据rowkey删除一个单元格数据
hbase2.1.x java delete根据rowkey删除一行数据
步骤
- 获取table对象
- 根据rowkey构建
Delete对象 - 执行
Delete方法 - 关闭table
删除一行数据
根据 rowkey 删除 所有列族数据,也会 删除 所有历史数据
添加测试数据
put 'student','3000','info:name','lilei'
put 'student','3000','info:age','020'
put 'student','3000','info:age','021'
put 'student','3000','info:age','022'
put 'student','3000','info2:sfzh','123456'
关键代码
/**
* 根据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();
}
完整代码
package top.malaoshi;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.Cell;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.*;
import org.apache.hadoop.hbase.util.Bytes;
import org.apache.log4j.Logger;
import java.io.IOException;
import java.util.List;
public class DataOP {
private static final Logger LOG=Logger.getLogger(DataOP.class);
private Connection conn;
/**
* 创建hbase连接
* @throws IOException
*/
public void conn() throws IOException {
//创建hbase配置对象
Configuration conf= HBaseConfiguration.create();
//通过配置对象创建连接
conn = ConnectionFactory.createConnection(conf);
}
public void delete() throws IOException {
//获取table对象
Table table = conn.getTable(TableName.valueOf("orders"));
Delete delete = new Delete(Bytes.toBytes("1000"));
table.delete(delete);
table.close();
}
/**
* 关闭连接
* @throws IOException
*/
public void close() throws IOException {
conn.close();
}
public static void main(String[] args) {
DataOP op = new DataOP();
try {
op.conn();
op.delete();
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
op.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
删除 某列族 数据
根据 rowkey 删除 指定列族的数据,也会删除该列族的 历史数据
添加测试数据
put 'student','3000','info:name','lilei'
put 'student','3000','info:age','020'
put 'student','3000','info:age','021'
put 'student','3000','info:age','022'
put 'student','3000','info2:sfzh','123456'
代码
/**
* 根据rowKey,删除某列族的数据
* @param tableName
* @param rowKey
* @param family
* @throws IOException
*/
public void deleteFamily(String tableName,String rowKey,String family) throws IOException {
TableName tn = TableName.valueOf(tableName);
Table table = conn.getTable(tn);
Delete delete=new Delete(Bytes.toBytes(rowKey));
delete.addFamily(Bytes.toBytes(family));
table.delete(delete);
table.close();
}
删除 某列 数据
会删除 指定列的数据,不会删除 该列的 历史数据,即:会显示上一个历史数据
添加测试数据
put 'student','3000','info:name','lilei'
put 'student','3000','info:age','020'
put 'student','3000','info:age','021'
put 'student','3000','info:age','022'
put 'student','3000','info2:sfzh','123456'
代码
/**
* 根据rowKey,删除某列的数据
* @param tableName
* @param rowKey
* @param family
* @throws IOException
*/
public void deleteColumn(String tableName,String rowKey,String family,String column) throws IOException {
TableName tn = TableName.valueOf(tableName);
Table table = conn.getTable(tn);
Delete delete=new Delete(Bytes.toBytes(rowKey));
delete.addColumn(Bytes.toBytes(family),Bytes.toBytes(column));
table.delete(delete);
table.close();
}