hbase,是否可以使用前缀计数行键?

hbase,是否可以使用前缀计数行键?,hbase,Hbase,我对hbase很陌生,想象一下,我们希望每天为每个类别聚合唯一的文档计数 第一个想法有点像下面 表名:yyyyMMdd 行键:类别\文档ID 列族:以后似乎要使用的内容 在这种情况下,我想我可以使用rowkey start prefix和end prefix进行扫描,然后计算它们的键数 但有几个问题 1.扫描对于计数操作来说似乎很繁重,因为我必须自己扫描所有的结果数组和增量。 2.类别在不断变化,如果可以在SQL中执行类似“分组方式”的操作,情况会好得多,但我还没有发现是如何做到的 您对这种方法

我对hbase很陌生,想象一下,我们希望每天为每个类别聚合唯一的文档计数

第一个想法有点像下面

表名:yyyyMMdd 行键:类别\文档ID 列族:以后似乎要使用的内容

在这种情况下,我想我可以使用rowkey start prefix和end prefix进行扫描,然后计算它们的键数

但有几个问题 1.扫描对于计数操作来说似乎很繁重,因为我必须自己扫描所有的结果数组和增量。 2.类别在不断变化,如果可以在SQL中执行类似“分组方式”的操作,情况会好得多,但我还没有发现是如何做到的


您对这种方法有何看法?或者还有其他更好的方法吗?

HBase不提供实时表计数,它必须执行完整的表扫描来计数行,这很慢

为了获得实时计数,您必须在表中实现自己的计数器,并在插入新行时增加计数器(或在删除行时减少计数器)。HBase可以完美地处理每秒数吨的写操作,这是他的最大优点。您甚至可以通过使用多个族/列并结合生存时间来自动修剪旧记录,从而拥有范围计数器(每小时、每天、每周、每月、每年…)。如何实施取决于您:)


请参阅。

在扫描对象上设置时间范围筛选器以及rowkey前缀筛选器中的(),这将帮助您完成任务。

可以考虑添加一个额外的密钥,以保持您感兴趣的密钥模式的计数。因此,您可以执行单个GET操作,而不是计数操作/扫描操作。