注意: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没有,也不需要。
(二)批量处理操作: