2010-06-16 52 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(*)