2012-12-28 53 views
2

最近我學習了hbase協處理器,我用端點來累計一列hbase表。例如,名爲「pendings」的hbase表,其家族是「資產」,我累計了「asset:amount」的所有值。該表還有其他欄,例如「asset:customer_name」。我想要做的第一件事是通過「asset:customer_name」來累計「asset:amount」組的值。但是我發現groupby沒有API,或者我沒有找到它。你知道如何實現GROUPBY或者如何使用HBASE提供的API嗎?如何使用hbase協處理器來實現groupby?

回答

1

您應該使用端點來完成這項工作。

你在這篇文章中有一個總和的例子:https://blogs.apache.org/hbase/entry/coprocessor_introduction

你基本上需要添加的是追加你的行鍵和客戶名稱,形成你的新密鑰「MyKey」。您應該保留上次看到的MyKey的變量,並且當前的MyKey與前一個MyKey不同時,您應該發出前一個與其總和並覆蓋以前的MyKey到當前的MyKey。

您必須確保在客戶端執行聚合,因爲您可以在URL中提供的示例中完成聚合,因爲您可能在兩個不同區域的邊緣有客戶。

0

使用端點協處理器可以做到這一點。你應該做的就是:首先定義相關接口(reduce)協議擴展CoprocessorProtocol,然後對其進行實現,最後編寫客戶端邏輯。