2013-09-27 65 views
1

我是Accumulo的新手。我知道我可以編寫Java代碼來使用Hadoop和MapReduce掃描,插入,更新和刪除數據。我想知道的是在Accumulo中聚合是否可行。Accumulo是否支持聚合?

我知道,在MySQL的,我們可以使用groupbyorderbymaxmincountsumjoin S,嵌套查詢等是他們的任何可能性,以直接或間接使用Accumulo這些功能。

回答

0

Some aggregationis supportedinAccumulo,通過多個條目,甚至多個行,在每個平板電腦內。平板電腦之間的聚合需要在客戶端或MapReduce作業中完成。

+0

我有一個Mongo聚合(多階段)查詢形式的複雜查詢。我試圖在Accumulo中建模。據瞭解,由於我掌握的知識有限,我創建了一個擴展Filter類的類。我的問題是:因爲我的查詢依賴於輸入,是否有任何其他方式使用迭代器/過濾器僅用於一個查詢或更改每個查詢的輸入?截至目前,我的過濾器已經連接到'SCAN'上的表格,這意味着輸出將對後續查詢而不是完整的數據庫可見。 –

+1

我認爲擴展Combiner可能比擴展Filter更合適。但是,是的,您可以基於每個掃描設置迭代器,並使用不同的輸入選項。 – Christopher

+0

想通了,但無論如何感謝:) –

2

Accumulo通過使用組合器迭代器支持聚合(Accumulo Combiner Example)。

迭代器主要運行在服務器端,但可以運行在客戶端,並且可以在將數據發送回客戶端之前執行相當多的計算。

Accumulo包含許多迭代器,更具體地說,summingCombiner用於總結條目的值。 Dave Medinet的博客有一些很好的例子(Accumulo Blog)。更具體地說,使用summingCombiner來實現wordcount(Word Count in Accumulo)。我還建議註冊Accumulo用戶郵件列表(mailing lists)。

0

我喜歡認爲Accumulo具有很好的agg功能。我使用40個節點上的數億個密鑰對其運行OLAP解決方案。除了基本的SummingCombiner,我建議新statscombiner以及

http://accumulo.apache.org/1.4/apidocs/org/apache/accumulo/examples/simple/combiner/StatsCombiner.html

,讓你瞭解一組鍵的基本統計資料。

您可以在maj壓實,輕微壓實或掃描時間設置合成器。如果您有大量滴漏密鑰的數據,我不建議掃描時間合併,因爲它可以減慢掃描時間(並非總是)。

HTH