Map Reduce用于分析时间序列

时间:2012-01-16 09:03:49

标签: mongodb hadoop mapreduce time-series cluster-computing

我是新手来映射简化概念,并想知道是否可以使用它来解决以下问题。

我们有以下格式的数据记录:

TransID     Date           Operation   DocumentID   User
1           01/01/2010     Open        aaa          Anne
2           01/11/2010     Close       aaa          Anne
3           01/12/2010     Open        bbb          Mary
4           01/12/2010     Close       bbb          Mary

我们希望能够计算不同的时间指标,例如:

  • 全球平均开放和平均操作之间的平均时间是多少?或
  • 每个用户的打开和平均平均值之间经过多少时间?

有没有一种简单的方法来实现map-reduce?我们正在考虑使用MongoDB或Hadoop。

数据量可能很大 - 数十亿条记录。谢谢!

1 个答案:

答案 0 :(得分:1)

这里的技巧是你需要在地图阶段“压扁”你的数据并将其发送到reducer进行计算。因此,您的密钥将是DocumentID(也可能是用户,具体取决于您的使用案例),然后值是时间和操作(如果排序更好,那么首先将时间放在第一位)。在您的reducer中,上面的行只会导致行能够在键中循环。以下是非常相似http://allthingshadoop.com/2010/12/16/simple-hadoop-streaming-tutorial-using-joins-and-keys-with-python/

的示例