Statistics 如何从Hbase表中检索基于时间的数据

Statistics 如何从Hbase表中检索基于时间的数据,statistics,hbase,aggregation,Statistics,Hbase,Aggregation,HBase表结构: 键、事件名、时间戳 我的密钥是UUID,时间戳是长格式的。如何从该表结构中检索数据时间间隔数据(例如每小时数据) 时间间隔是固定的,即0000-0100小时、0100-0200小时。。。。2300-0000小时 谢谢。如果您不知道聚合周期是什么,或者您不需要实时性,那么您可以扫描该表并在客户端聚合它以查找微小的数据集。如果您的数据集很大,那么如果您使用的是HBase,那么您需要设置一个map reduce以利用并行化或HIVE 二,。如果你需要实时,你应该考虑使用计数器来根据

HBase表结构:

键、事件名、时间戳 我的密钥是UUID,时间戳是长格式的。如何从该表结构中检索数据时间间隔数据(例如每小时数据)

时间间隔是固定的,即0000-0100小时、0100-0200小时。。。。2300-0000小时

谢谢。如果您不知道聚合周期是什么,或者您不需要实时性,那么您可以扫描该表并在客户端聚合它以查找微小的数据集。如果您的数据集很大,那么如果您使用的是HBase,那么您需要设置一个map reduce以利用并行化或HIVE

二,。如果你需要实时,你应该考虑使用计数器来根据你需要的间隔预先聚合数据。 柜台简介:

保存数据:

考虑这种行键允许无限多个不同的事件类型:

8字节分片键:有点像substrmd5EventType,0,8 每天00:00:00的4字节POSIX时间戳Integer.MAX_NUMBER-首先写入最新行的时间戳。 基于此,您可以有25列,每小时一列,全天一列,并为整个家庭提供3个月的TTL来修剪旧数据。这样,您就可以增加total列的计数器+存储该间隔的列

虽然还有其他的选择,比如把“一天”列为专栏的一部分,但这种模式非常灵活、强大,对我来说非常有用

请求数据:

要请求已知事件间隔的数据,只需执行get请求。 要请求一个已知事件的最后X天,您必须使用开始和停止行键进行扫描,这将非常快。每一行都有total列和hourly列。 缺点:

使用计数器进行预聚合需要1个GET+1个PUT,这比仅使用PUT更昂贵。 如果对同一类型的事件有很多增量,您将得到非常热门的区域。在这种情况下,最好将内存中的计数器作为原子变量保存,并每X秒将其刷新到HBase。