HBase cassandra CouchDB mongodb..jakaś zasadnicza różnica?

Chciałem tylko wiedzieć, czy istnieje zasadnicza różnica między hbase, cassandra, couchdb i monogodb ? Innymi słowy, czy wszyscy konkurują na tym samym rynku i próbują rozwiązać dokładnie te same problemy. Czy najlepiej pasują do różnych scenariuszy?

Wszystko to sprowadza się do pytania, co wybrać, kiedy. Kwestia gustu?

Dzięki,

Federico

Author: Community, 2010-09-06

4 answers

Oto kilka długich odpowiedzi od @ Bohzo . (ale to dobre linki)

Prawda jest taka, że" jakby " rywalizują. Ale na pewno mają różne mocne i słabe strony i zdecydowanie nie wszystkie rozwiązują te same problemy.

Na przykład Couch i Mongo zapewniają Silniki Map-Reduce jako część pakietu głównego. HBase jest (w zasadzie) warstwą nad górną warstwą Hadoop, więc otrzymujesz również M-R przez Hadoop. Cassandra jest bardzo skoncentrowana na byciu magazynem kluczowych wartości i ma wtyczki do" warstwy " Hadoop over top (dzięki czemu można map-reduce).

Niektóre z DBs zapewniają MVCC (Multi-version concurrency control). Mongo nie.

Wszystkie te DBs są przeznaczone do skalowania poziomego, ale robią to na różne sposoby. Wszystkie te DBs starają się również zapewnić elastyczność na różne sposoby. Elastyczne rozmiary dokumentów, interfejsy API REST, duża redundancja lub łatwość obsługi sprawiają, że wszystkie one osiągają różne kompromisy.

Więc do twojego pytania: innymi słowy, są wszyscy konkurują na tym samym rynku i próbują rozwiązać dokładnie te same problemy?

  1. Yes : wszyscy próbują rozwiązać problem skalowalności i wydajności baz danych.
  2. nie : zdecydowanie robią różne kompromisy.

Od czego zacząć?

Człowieku, to trudne pytanie. Pracuję dla dużej firmy, która dostarcza mnóstwo danych i przeszliśmy przez kilka lat. Próbowaliśmy Cassandry w pewnym momencie. kilka lat temu i nie mógł znieść obciążenia. Używamy Hadoop wszędzie, ale na pewno ma stromą krzywą uczenia się i nie działa w niektórych naszych środowiskach. Ostatnio próbowaliśmy wykonać Cassandra + Hadoop, ale okazało się, że to dużo pracy konfiguracyjnej.

Osobiście mój dział przenosi kilka rzeczy do MongoDB . Powodem tego jest prostota.

Konfiguracja Mongo na Linuksie zajmuje kilka minut i nie wymagaj dostępu roota lub zmiany systemu plików lub czegokolwiek wymyślnego. Nie są wymagane żadne szalone pliki konfiguracyjne ani rekompile Javy. Tak więc z tej perspektywy, Mongo był najłatwiejszym "narkotykiem bramy" do pozyskiwania ludzi do sklepów KV/Document.

 12
Author: Gates VP,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-08 15:30:50
  • CouchDB i MongoDB są magazynami dokumentów
  • Cassandra i HBase są oparte na wartości klucza

Oto szczegółowe porównanie HBase i Cassandra
Oto (stronnicze) porównanie MongoDB i CouchDB

 5
Author: Bozho,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-09-06 14:47:59

Krótka odpowiedź: przetestuj przed użyciem w produkcji.

Mogę zaoferować moje doświadczenie zarówno z HBase (obszerny) i MongoDB (dopiero początek).

Mimo, że nie są to te same sklepy, rozwiązują te same problemy:

  • skalowalne przechowywanie danych
  • losowy dostęp do danych
  • low latency access

Na początku byliśmy bardzo entuzjastycznie nastawieni do HBase. Zbudowany jest na Hadoopie (który jest solidny), jest pod Apache, jest aktywny... czego chcieć więcej? Nasze doświadczenie:

  • Hbaza jest krucha
  • koszmar administratora (pełen ustawień konfiguracyjnych, gdzie domyślne są mniej niż idealne, nieprzezroczysta konfiguracja, zmiany z wersji na wersję,...)
  • traci dane (chyba że ustawiłeś konfigurację X i zmieniłeś Y na... rozumiesz o co chodzi :) - dowiedzieliśmy się o tym, gdy HBase rozbił się i straciliśmy 2 godziny (!!!) danych, ponieważ WAL nie był ustawiony properly
  • brak indeksów drugorzędnych
  • Brak możliwości wykonania kopii zapasowej bazy danych bez jej wyłączania

W sumie, HBase był koszmarem. Nie poleciłbym go nikomu poza naszymi bezpośrednimi konkurentami. :)

MongoDB rozwiązuje wszystkie te problemy i wiele innych. Konfiguracja jest przyjemnością, sprawia, że administrowanie nią jest prostym i przejrzystym zadaniem, a domyślne ustawienia konfiguracji mają sens. Możesz wykonywać (gorące) kopie zapasowe, możesz mieć indeksy wtórne. Z tego, co czytałem, nie polecałbym MapReduce na MongoDB( JavaScript, tylko 1 wątek na węzeł), ale możesz do tego użyć Hadoop.

I jest również bardzo aktywny w porównaniu do HBase.

Także: http://www.google.com/trends?q=HBase%2CMongoDB

Czy muszę mówić więcej? :)

Aktualizacja: wiele miesięcy później muszę powiedzieć, że MongoDB dostarczony na wszystkich kontach i nie tylko. Jedynym prawdziwym minusem jest to, że Firmy hostingowe nie oferują tego w sposób oferują MySQL. ;) Wygląda też na to, że MapReduce stanie się wielowątkowym w 2.2. Nie używałbym Pana w ten sposób. YMMV.

 5
Author: johndodo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-08 12:53:54

Cassandra jest dobra do zapisu danych. ma tę zaletę, że "pisze nigdy nie zawodzi". Nie posiada ani jednej awarii punktowej.

HBase jest bardzo dobry do przetwarzania danych. HBase jest oparty na systemie plików Hadoop (HDFS), więc HBase nie musi się martwić o replikację danych, spójność danych. HBase ma jeden punkt awarii. Nie jestem do końca pewien, co to znaczy, jeśli ma pojedynczy punkt awarii, to jest somethow podobny do RDBMS, gdzie mamy pojedynczy punkt awarii. Mogę się mylić w sens, bo jestem całkiem nowy.

Jak tam RIAK ? Czy ktoś ma doświadczenie w używaniu RIAKA? Nie wiem, gdzie trzeba zapłacić. Potrzebuję wyjaśnienia.

Jeszcze jedna rzecz, którą wolisz używać, gdy martwisz się tylko o odczyt dużej ilości danych. Nie masz żadnych problemów z pisaniem. Wyobraź sobie, że masz bazę danych z pitabajtem i chcesz szybko wyszukać, którą bazę NOSQL wolisz ?

 1
Author: Ansar Khan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-03-22 16:05:18