2010-06-16 5 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

+1

Просто записка для читателей, начиная с 2014 года, Cassandra поддерживает скопления: https://issues.apache.org/jira/browse/CASSANDRA-4914 –

2

Использование SliceRange можно рассматривать как версию LIMIT и ORDER BY от Cassandra.

GROUP BY, COUNT и SUM не поддерживаются из коробки.

Взгляд на API page из вики - хорошее начало.

0

Текущая версия Кассандры не поддерживают SUM(). Поддерживается только count(*).

Смежные вопросы