2010-06-16 98 views
9

我對Apache Cassandra和一般的nosql相當陌生。Apache Cassandra如何完成聚合操作?

在SQL我可以做聚合操作,如:

SELECT 
    country, sum(age)/count(*) AS averageAge 
FROM people 
GROUP BY country; 

,因爲它是數據庫中計算,而不是在「人」表移到每一行到客戶端層要做到這一點是好的計算。

這在Apache Cassandra中可能嗎?怎麼樣?

回答

9

Cassandra主要是一種支持快速寫入和查找的機制。不支持像SQL中的聚合這樣的計算,因爲它不是爲此設計的。我建議閱讀流行的Cassandra用例以獲得更好的洞察力:)我已在我的美味頁面上添加了一些書籤。這裏是鏈接:

http://delicious.com/vibhutesagar/cassandra

+0

您仍然可以集成[Cassandra和Hadoop](http://wiki.apache.org/cassandra/HadoopSupport#MapReduce),然後使用MapReduce。 – user359996 2012-03-09 00:17:59

+1

給讀者的一封信,截至2014年,Cassandra支持聚合:https://issues.apache.org/jira/browse/CASSANDRA-4914 – 2015-03-19 18:37:38

2

使用SliceRange可以被認爲是Cassandra的LIMIT和ORDER BY版本。

GROUP BY,COUNT和SUM不支持開箱即用。

看看來自wiki的API page是一個好的開始。

0

卡桑德拉當前版本不支持SUM()。 僅支持count(*)