我是Cassandra的新手我实际上正在做一些调查和概念验证,看它是否适合我们当前的任务。 在我阅读Cassandra时,根据我的理解,它不支持Aggregations或Map Reduce框架来完成聚合任务。 我已经检查了这些问题,但它们不是我问题的具体答案: Aggregation queries in Cassandra CQL 例如,如果我有一个CDR表(呼叫数据记录)
+--------------+----------+---------+------------+
| src | duration | billsec | route_rate |
+--------------+----------+---------+------------+
| 0000FFFF0008 | 37 | 30 | 0.01 |
+--------------+----------+---------+------------+
在Casandra中,我可以执行一些像
这样的查询SELECT * FROM CDRS GROUP BY src ORDER BY src, billsec
MongoDB,Hadoop和其他人可以提供Map Reduce,RDBMS提供GROUP BY。
Cassandra是否提供类似的东西,你能提供一些例子吗?
答案 0 :(得分:2)
Cassandra是一个NoSQL数据库,它本身不支持map reduce聚合(尽管你可以用CQL接口做很多事情)。另一方面,它支持ColumnFamilyInputFormat和ColumnFamilyOutputFormat类,mapreduce用于分别从Cassandra读取和写入数据。 Cassandra还附带了一些组件,可以很好地与Spark集成。
答案 1 :(得分:1)
Cassandra 2.2包括CASSANDRA-4914 - Aggregate Functions in CQL。目前,这可以作为cassandra downloads页面上的候选版本(2.2-rc1)。
答案 2 :(得分:0)
使用Cassandra在MapReduce上:您可以轻松使用Apache Hive,它将您的查询转换为Hadoop Job&在Cassandra之上提供JDBC层,或者您也可以选择Spark。