HBase数据的行键为时间,扫描时按照时间从前往后排列。使用HBase时需要获取最新插入的一条数据,也就是“最后”一条数据。由于条数很多,不可能从前往后扫描;也不太希望使用“大数减去时间”作为行键的方式强制其最新时间放在最前。有没有更好的解决方式?
HBase数据的行键为时间,扫描时按照时间从前往后排列。使用HBase时需要获取最新插入的一条数据,也就是“最后”一条数据。由于条数很多,不可能从前往后扫描;也不太希望使用“大数减去时间”作为行键的方式强制其最新时间放在最前。有没有更好的解决方式?
也罢,又是自问自答。就当自己刷经验吧。。
一顿网上搜索之后,发现hbase0.98版本之后的Scan支持
setReversed()
函数。这个函数可以从后往前地扫描数据。有意思的是,扫描时设置的startRow
和stopRow
必须正好反过来。看来网上资料还是挺多的,自己又一次没有仔细搜索就跑过来提问了。。。
附上参考:
https://issues.apache.org/jira/browse/HBASE-4811