使用HBase进行分析

时间:2011-11-17 18:37:52

标签: hadoop analytics hbase

我对HBase几乎全新。我想基于MySQL进行当前的站点跟踪并将其放到HBase中,因为MySQL根本不再进行扩展。

我完全失去了第一步......

我需要跟踪用户的不同行为,并且需要能够通过某些方面(日期,他们来自的国家,他们执行操作的产品等等)聚合它们。

我目前存储它的方式是我有一个包含所有这些方面(国家,日期,产品......)的复合PK的表,其余字段是操作的计数器。执行某个操作时,我会将其插入到按行增加操作列的表中(ON DUPLICATE KEY UPDATE ...)。

*date      | *country | *product | visited | liked | put_to_basket | purchased
2011-11-11 | US       | 123      | 2       | 1     | 0             | 0
2011-11-11 | GB       | 123      | 23      | 10    | 5             | 4
2011-11-12 | GB       | 555      | 54      | 0     | 10            | 2

我有一种感觉,这完全违背了HBase的方式,并且也没有真正的扩展(如果密钥插入变得越来越贵,而且数量越来越多)并且不是很灵活。

如何在HBase中有效跟踪用户操作属性?表格应该如何? MapReduce出现在哪里?

感谢所有建议!

2 个答案:

答案 0 :(得分:1)

Lars George的“HBASE:权威指南”解释了一个与您想要实现的设计非常相似的设计in the introduction chapter

答案 1 :(得分:1)

这可以按照以下方式完成,

在Hbase中拥有唯一的行ID,如下所示,

rowid =日期+国家+产品--->将这些附加到单个实体中并将其作为关键。

然后将计数器作为列。所以当你得到像这样的事件时,

if(event == liked){
increment the liked column of the hbase by 1 for the corresponding key combination.
}

等其他案例。

希望这会有所帮助!!