首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取基于日期的hbase表计数

获取基于日期的hbase表计数
EN

Stack Overflow用户
提问于 2015-10-21 00:43:09
回答 2查看 2.6K关注 0票数 0

使用插入的时间戳根据时间段获取hbase表行数的最简单方法是什么?我只发现使用:

代码语言:javascript
运行
复制
hbase> count ‘t1’, INTERVAL => 100000

这并不能解决我的问题。似乎还有另一个选择,但我得到的结果是0吗?

代码语言:javascript
运行
复制
hbase>  get 'hbase_output', '*', {TIMERANGE => [1445212800,1445299200]}
COLUMN                                   CELL
0 row(s) in 0.0900 seconds

这是做这件事的唯一两个选择吗?我为表中的所有行添加了'*',并认为这可能是不正确的。

EN

回答 2

Stack Overflow用户

发布于 2015-10-22 02:19:45

HBase维护每条记录的时间戳和版本。

get用于根据行键检索特定的记录。因此,一旦您满足了该标准,您就可以获得针对不同版本和时间戳的附加选项。

扫描用于获取所有记录。同样,您可以选择指定版本和时间戳。但是,由于scan会给出整个记录列表,所以不能进行计数操作。

所以,我担心,你最好的选择是,写一个地图缩减到扫描,与时间戳范围,并获得计数。事实上,与count shell方法相比,使用map reduce行计数器是获取Hbase计数的最佳方法。

我也做过类似的事情。从行计数器源代码开始,并调整以添加筛选器。对于date,您可以维护自己的字段,也可以使用任何列限定符recent date(只要您将整个记录存储到Hbase中)。否则,如果要单独保存行的某些部分,则必须使用特定的列限定符。

票数 1
EN

Stack Overflow用户

发布于 2021-06-02 17:13:03

从HBase 2.0开始,您可以为count命令指定过滤器。

例如:

代码语言:javascript
运行
复制
hbase> count 't1', FILTER => "(QualifierFilter (>=, 'binary:xyz')) AND (TimestampsFilter ( 123, 456))"

https://issues.apache.org/jira/browse/HBASE-18001

https://github.com/apache/hbase/blob/master/hbase-shell/src/main/ruby/shell/commands/count.rb

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33242202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档