HBase相關API整理-Delete

前言

   在前幾篇文章中,分別整理了關於HBase新API的操作Get,Put等,今天整理刪除表數據,delete操作。

    整理的內容相對粗糙,如有錯誤,還望指點。

獲取連接

   

Configuration conf = HBaseConfiguration.create();
conf.set("hbase.zookeeper.quorum", "bigdate01:2181,bigdate02:2181,bigdate03:2181");
Connection conn = ConnectionFactory.createConnection(conf);

獲取操作表

TableName tableName = TableName.valueOf(Bytes.toBytes("testtable"));
Table table = conn.getTable(tableName);

刪除數據

   普通刪除

   

Delete delete=new Delete(Bytes.toBytes("row-1"));
delete.addColumn(Bytes.toBytes("colfam1"), Bytes.toBytes("name"));//根據行鍵 列族 列來刪除數據
delete.addColumn(Bytes.toBytes("colfam1"), Bytes.toBytes("name"), 120000);//根據行鍵 列族 列  時間戳來刪除數據
delete.addFamily(Bytes.toBytes("colfam1"));//刪除整個列族中的數據
delete.addFamily(Bytes.toBytes("colfam1"),3);//刪除整個列族中對應時間戳的數據
table.delete(delete);

  原子刪除

Delete delete=new Delete(Bytes.toBytes("row-1"));
delete.addColumn(Bytes.toBytes("colfam1"), Bytes.toBytes("name"));
//原子刪除的原理和上面提到的原子修改的一樣,在檢查成功之後才能進行刪除操作
boolean res=table.checkAndDelete(Bytes.toBytes("row-1"),Bytes.toBytes("colfam1"), Bytes.toBytes("name"),Bytes.toBytes("Vogt"), delete);

  批量刪除
 

Configuration conf = HBaseConfiguration.create();
conf.set("hbase.zookeeper.quorum", "bigdate01:2181,bigdate02:2181,bigdate03:2181");
Connection conn = ConnectionFactory.createConnection(conf);
TableName tableName = TableName.valueOf(Bytes.toBytes("testtable"));
Table table = conn.getTable(tableName);
List<Delete> deletes=new ArrayList<>();
Delete delete=new Delete(Bytes.toBytes("row-1"));
delete.addColumn(Bytes.toBytes("colfam1"), Bytes.toBytes("name"));
deletes.add(delete);
Delete delete1=new Delete(Bytes.toBytes("row-1"));
delete1.addColumn(Bytes.toBytes("colfam1"), Bytes.toBytes("lib"));
deletes.add(delete1);
table.delete(deletes);
table.close();
conn.close();

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章