现在的位置: 首页 > 综合 > 正文

HBase概念学习(三)Java API之CRUD(增查改删)

2019年10月14日 ⁄ 综合 ⁄ 共 681字 ⁄ 字号 评论关闭

注意:Put,Get,Delete三个类都是Row这个类的子类,由此可见这三个类都是代表一行数据,其所有操作都是针对一行数据的操作。

 

(一) Put、Get、Delete

1、Put

New出Put实例,需要行健作为构造器参数,一个Put实例对应一行。

可以调用Htable的Put方法执行Put操作,两种执行方式:

(1)      执行一个Put操作:

下面是示例:

 

注意:每个Put操作都会产生一次RPC,但是这只适合于数据量比较小的操作,有的应用程序需要每秒存放上千行到Hbase数据库,这可以通过设置自动刷写为false开启客户端写缓冲区来做到。

(2)执行Put列表操作

默认将所有Put操作放入客户端的写缓冲区。

因为涉及到多行,所以可能部分成功,部分失败,失败的行会返回IOException给客户端。

并且客户端不能保证服务器端执行Put的顺序,如果想要保证操作的顺序,慎用。

 

原子操作检查写(Checkand put)

这个操作会先执行检查,检查通过则写,不通过则放弃写。

这种原子性保证的操作经常用于账户结余,状态转换,数据处理等场景,这些场景的共同点是读取数据的同时需要处理数据,一旦你想把一个处理好的写过写进数据库,并且保证没有其他客户端已经做了同样的事情,那么就可以用这个原子性保证的操作,先比较原值,再修改。

 

2、Get、Delete

Get和Delete和Put类似,提供了执行一个Get/Delete操作的方法,也提供了对应的执行Get/Delete列表的方法。

Delete也有一个原子性的操作“检查删除”,但是Get没有,也不需要。

 

(二)批量处理操作:

抱歉!评论已关闭.