2013-08-30 53 views
1

我有一種情況,需要在Cassandra中記錄用戶操作,然後在任意時間段內檢索具有最大操作數的用戶的排序列表。在Cassandra中添加和檢索排序的計數

任何人都可以提出一種方法來存儲和檢索這種數據在一個預先彙總的方法?

回答

1

在卡桑德拉之外,我會建議使用stream-summary或計數最小素描,你將能夠用更少的空間解決這個問題,並立即得到結果。只需更新並定期序列化並保留它(假設您不需要保證的準確性)

在Cassandra中,您可以按小時保留一行,並在該行中有每位用戶的計數器,並在使用時遞增。然後使用批量作業來貫穿它們並找到沉重的擊球手。你將被限制爲最少查詢時間爲1小時,並且它不會特別便宜或快速計算,但它會起作用。

一般來說,將它們當作操作日誌是很好的,每次有事件存儲它時,批量作業都會使用hadoop或custom來對其進行分析。如果需要,實時編號推薦上述在內存中保存流摘要的方法。