2012-04-26 58 views
2

在這裏爲Map/Reduce和CouchDB的業餘愛好者排名。我有一個CouchDB,裏面有大約600,000行數據,表示記錄的視圖。我的願望是生成一個圖表,顯示整個數據集中每條記錄的點擊率。CouchDB - 將MapReduce結果傳遞到第二個MapReduce函數

我已經實現的Map/Reduce函數來分組,像這樣:

function(doc) { 
    emit(doc.id, doc); 
} 

和:

function(key, values) { 
    return values.length; 
} 

,因爲現在還是有降低值相當數量的,我們只希望,比如圖表上的100個數據點,這不是很有用。另外,它需要永遠運行。

我可以檢索每一個X行,但將是理想將通過這些降低的結果反饋到另一個減少函數,它接受它的值的平均值,所以我最終得到一套漂亮的,比方說,100結果,這對於投入高級概覽圖來查看匹配的分佈非常有用。

這可能嗎? (如果是的話,密鑰會是什麼?)或者我只是在我的MapReduce代碼中搞砸了一些東西,這使得它非常不友好,因此允許我在我的應用程序代碼中執行此操作。只有33,500個結果返回。

謝謝, 馬特

+0

兩個相關的問題 - 如果等待時間是通過網絡攪動了JSON,是有一些工廠做服務器上的基於JS定製後處理?或者我只是做錯了什麼?特別是在閱讀[這篇文章](http://wiki.apache.org/couchdb/How_to_handle_stats_aggregation)後,我想知道是否需要在它到達CouchDB之前進行預先聚合(這是不行的,因爲我總是需要查看整個數據集的摘要 - 即不按時間分割),或者不使用CouchDB。 我確實試圖強迫它做一些不擅長的事情嗎? – nullPainter 2012-04-26 20:48:28

+0

再次閱讀這篇文章,我想我不是索引原始訪問日誌數據,而是可以爲每個記錄每個適當粒度的時間段(例如,每個記錄每天的點擊次數)命中索引。將實驗! – nullPainter 2012-04-26 23:59:52

回答

1

要回答我的問題:

  1. this article,CouchDB的不支持傳遞的Map/Reduce的輸入輸出到其他的Map/Reduce函數,雖然文章指出,其他項目如disco確實支持這一點。

  2. 自定義服務器端處理可以通過CouchDB列表的方式執行 - 例如,sorting by value

相關問題