大型hbase事务表中有大量记录。
来自Hbase shell:
如何获取在过去6中插入/更新的样本记录 小时
是否可以在最后获得插入/更新记录的计数 6个小时?
答案 0 :(得分:1)
如何获取过去6小时内插入/更新的样本记录?
以下查询从hbase表中获取样本记录,该记录在过去6小时内插入/更新。
scan 'my.table', { LIMIT =>1, TIMERANGE => [(Time.now.to_f.round()*1000).to_i-21600000, (Time.now.to_f.round()*1000).to_i]}
是否可以在过去6小时内获取插入/更新记录的数量?
基于SO回答:Count number of records in a column family in an HBase table
# count_table 'test.table', { CACHE => 1000 }
# --- Count rows with caching.
#
def count_table(tablename, args = {})
table = @shell.hbase_table(tablename)
# Run the scanner
scanner = table._get_scanner(args)
count = 0
iter = scanner.iterator
# Iterate results
while iter.hasNext
row = iter.next
count += 1
end
# Return the counter
return count
end
查询是:
count_table 'my.table', { TIMERANGE => [(Time.now.to_f.round()*1000).to_i-21600000, (Time.now.to_f.round()*1000).to_i] , CACHE => 10000000}
以上查询获取过去6小时内插入/更新记录的数量。
它返回所需的结果但尚未测试w.r.t性能负载。
注意:虽然我已经回答了我的问题,但我仍然保留这个帖子 愿意从别人那里得到更好的答案。