2010-06-16 14 views
9

Jestem całkiem nowy dla Apache Cassandra i nosql w ogóle.W jaki sposób Apache Cassandra wykonuje operacje zbiorcze?

W SQL mogę zrobić operacje zbiorcze jak:

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

To jest dobre, bo jest ona obliczana w DB, zamiast przenieść każdy wiersz w tabeli „Ludzie” w warstwie klienckiej zrobić kalkulacja.

Czy to możliwe w Apache Cassandra? W jaki sposób?

Odpowiedz

9

Cassandra jest przede wszystkim mechanizmem obsługującym szybkie zapisywanie i wyszukiwanie. Nie ma wsparcia dla obliczeń, takich jak agregaty w SQL, ponieważ nie jest do tego przystosowany. Sugerowałbym przeczytanie popularnych przypadków użycia Cassandry, aby uzyskać lepszy wgląd :) Zrobiłem zakładkę do kilku artykułów na mojej pysznej stronie. Oto link:

http://delicious.com/vibhutesagar/cassandra

+0

Możesz nadal integrować [Cassandra i Hadoop] (http://wiki.apache.org/cassandra/HadoopSupport#MapReduce), a następnie używać MapReduce. – user359996

+1

Po prostu wiadomość dla czytelników, od 2014 roku Cassandra obsługuje agregacje: https://issues.apache.org/jira/browse/CASSANDRA-4914 –

2

Używanie SliceRange można uważać za wersję LIMIT i ORDER BY Cassandry.

GROUP BY, COUNT i SUM nie są obsługiwane po wyjęciu z pudełka.

Spojrzenie na API page z wiki to dobry początek.

0

Aktualna wersja Cassandra nie obsługują SUM(). Obsługiwany jest tylko count(*).

Powiązane problemy