JAVA操作Hbase的CURD操作
2019-04-12 本文已影响0人
analanxingde
这篇文章简要总结JAVA中常用的操作Hbase函数,与之前提到的基本操作不同,本节所介绍的CURD操作不借助于管理元数据的Admin类,而是借助于Table接口。
基本操作
1. put C,U
Put put=new Put(Bytes.toBytes("row1"));
put.addColumn(Bytes.toBytes("mycf"),Bytes.toBytes("name"),Bytes.toBytes("jack"));
table.put(put);//table
2. append U
append.add(Bytes.toBytes("mycf"),Bytes.toBytes("name"),Bytes.toBytes("Wang"))
//或append.add(cell)向目标行的相同列和相同列族添加cell里面的value
table.append(append)
3. increment U
Increment inc=new Increment(Bytes.toBytes("row1"));
inc.addColumn(Bytes.toBytes("mycf"),Bytes.toBytes("age"),10L);
table.increment(inc);
4. get R
Result result=table.get(get);
byte [] name=result.getValue(Bytes.toBytes("mycf"),Bytes.toBytes("name"));
System.out.println(Bytes.toString(name));
5. exists R
table.exists(Get get)
6. delete D
Delete delete=new Delete(Bytes.toBytes("row2"));
delete.addColumn(Bytes.toBytes("mycf"),Bytes.toBytes("name"));
table.delete(delete);
7. mutation
合并同一个rowkey的put,add,delete操作
批量操作
批量put 可能会部分put成功
批量get 不会部分成功
批量delete 可能会部分delete成功
批量操作void batch(List<Row> actions,Object[] result)
示例如下:
List<Row> actions=new ArrayList<Row>();
Get get=new Get(Bytes.toBytes("row2"));
actions.add(get);
Put put=new Put(Bytes.toBytes("row1"));
put.addColumn(Bytes.toBytes("mycf"),Bytes.toBytes("name"),Bytes.toBytes("jack"));
actions.add(put);
Delete delete=new Delete(Bytes.toBytes("row2"));
delete.addColumn(Bytes.toBytes("mycf"),Bytes.toBytes("name"));
actions.add(delete);
Object[] results=new Object[actions.size()];
table.batch(actions,results);
System.out.println(((Result)results[0]).getValue(Bytes.toBytes("mycf"),Bytes.toBytes("name")));