2012-01-16 4 views
2

지도 축소 개념이 새로워서 다음과 같은 문제를 해결할 수 있는지 궁금합니다.지도 시간축 분석을위한 Reduce

우리는이 같은 형태의 데이터의 로그를 가지고 :

우리는 다음과 같은 서로 다른 시간 측정, 계산 할 수있게하려면
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을 고려 중입니다.

데이터 양은 많을 수 있습니다 - 수십억 개의 레코드. 감사!

+0

이것은 확실히 가능합니다. 이전에 해 보았습니다. –

답변

1

트릭은지도 단계에서 데이터를 "평평하게"작성하여 계산을 위해 감속기로 보내야한다는 것입니다. 따라서 귀하의 키는 DocumentID (귀하의 유스 케이스에 따라 사용자가 될 것입니다)가되고 그 값은 시간과 작업입니다 (그런 식으로 정렬하면 시간을 먼저 둡니다). 귀하의 감속기에서 위의 행은 키가 루프 내에서 순환 할 수있게합니다. 다음은 매우 유사한 것의 예입니다. http://allthingshadoop.com/2010/12/16/simple-hadoop-streaming-tutorial-using-joins-and-keys-with-python/