HBase表结构:
Key,EventName,TimeStamp 我的密钥是UUID,时间戳是长格式的。如何从此表结构中检索数据时间间隔数据(例如每小时)。
时间间隔是固定的(即0000 - 0100 HRS),(0100 - 0200小时)....(2300 - 0000)HRS。
由于
答案 0 :(得分:0)
1。如果你不知道聚合期是什么,或者你不需要实时,你可以只扫描表并将其聚合到客户端(对于微小的数据集)。如果您的数据集很大(如果您使用的是HBase),则需要设置map-reduce以使用并行化(或使用HIVE)。
http://hbase.apache.org/book/mapreduce.example.html
2. 如果您需要实时,则应考虑实施计数器,以根据您需要的时间间隔预先汇总数据。
计数器简介:http://my.safaribooksonline.com/book/databases/database-design/9781449314682/counters/id3238520
保存数据:
考虑这种行键(允许无限多种不同的EventTypes):
在此基础上,您可以拥有25个列(每小时一个,全天一个),并为整个家庭提供3个月的TTL(用于修剪旧数据)。这样,您只需递增总列的计数器+存储该间隔的列。
虽然还有其他选项(例如将日期作为专栏的一部分),但这个模型既非常灵活又强大,对我来说非常有用。
申请数据:
<强>缺点:强>