Hbase自动递增任何列/行键

sak*_*ake 1 hadoop hbase cassandra nosql

我是Hbase的新手

是否可以/如何在Hbase中自动增加行键?(比如每个插入行键必须自动递增)

或者是否可以自动增加任何其他列?(对于每个插入,此列必须自动递增1)

0x0*_*FFF 6

在HBase中不建议单列增加行键,请参阅此参考:http://hbase.apache.org/book/rowkey.design.html,第6.3.2页.实际上,使用全局排序的行键会导致分布式应用程序的所有实例写入同一区域,这将成为瓶颈.

如果您可以避免使用自动增量ID并且需要在分布式系统中只具有唯一ID,则可以使用"hostname"+"PID"+"TIMESTAMP"之类的键作为键.这样,每行都是唯一的

如果您确定需要表中的全局自动增量(它可以是列中的键或某个值),您可以使用incrementColumnValue调用 - 在表中有一个单独的行(或为此创建一个专用表),存储实际值,进程将在插入新行之前调用incrementColumnValue以获取下一个值.但是这样你就无法保证没有间隙:如果客户端在调用incrementColumnValue后失败,你可能会使计数器递增但不会插入行.

简而言之,所有提出的解决方案都是客户端的,HBase中没有针对此功能的服务器端实现