MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

MongoDB na serwerze EC2 czy AWS SimpleDB?

SimpleDB ma pewne ograniczenia skalowalności. Można skalować tylko przez sharding i ma większe opóźnienie niż mongodb lub cassandra, ma limit przepustowości i ma wyższą cenę niż inne opcje. Skalowalność jest ręczna (musisz shardować).

Jeśli potrzebujesz szerszych opcji zapytań i masz dużą szybkość odczytu i nie masz tak dużej ilości danych, mongodb jest lepsze. Ale dla trwałości musisz użyć co najmniej 2 instancji serwera mongodb jako master/slave. W przeciwnym razie możesz stracić ostatnią minutę swoich danych. Skalowalność jest ręczna. Jest znacznie szybszy niż simpledb. Autosharding jest zaimplementowany w wersji 1.6.

Cassandra ma słabe opcje zapytań, ale jest tak wytrzymała jak postgresql. Jest tak szybki jak mongo i szybszy przy większym rozmiarze danych. Operacje zapisu są szybsze niż operacje odczytu na Cassandrze. Może skalować się automatycznie, uruchamiając instancje ec2, ale trzeba trochę zmodyfikować pliki konfiguracyjne (jeśli dobrze pamiętam). Jeśli masz terabajty danych, cassandra jest najlepszym wyborem. Nie ma potrzeby dzielenia danych, został zaprojektowany z dystrybucją od pierwszego dnia. Możesz mieć dowolną liczbę kopii dla wszystkich swoich danych, a jeśli niektóre serwery są martwe, automatycznie zwróci wyniki z żywych i przekaże dane z martwego serwera innym. Jest wysoce odporny na błędy. Możesz uwzględnić dowolną liczbę instancji, znacznie łatwiej jest skalować niż inne opcje. Posiada silne opcje klienta .net i java. Mają pulę połączeń, równoważenie obciążenia, oznaczanie martwych serwerów...

Inną opcją jest hadoop dla dużych zbiorów danych, ale nie działa tak w czasie rzeczywistym jak inne, możesz użyć hadoop do hurtowni danych. Ani cassandra, ani mongo nie mają transakcji, więc jeśli potrzebujesz transakcji, postgresql jest lepszym rozwiązaniem. Inną opcją jest Amazon RDS, ale jego wydajność jest słaba, a cena wysoka. Jeśli chcesz korzystać z baz danych lub simpledb, możesz również potrzebować buforowania danych (np. memcached).

W przypadku aplikacji internetowych, jeśli twoje dane są małe, polecam mongo, jeśli jest duże, cassandra jest lepsza. Nie potrzebujesz warstwy buforowania z mongo lub cassandrą, są już szybkie. Nie polecam simpledb, jak powiedziałeś, blokuje Cię również w Amazon.

Jeśli używasz c#, java lub scala, możesz napisać interfejs i zaimplementować go dla mongo, mysql, cassandra lub czegokolwiek innego dla warstwy dostępu do danych. Jest prostszy w językach dynamicznych (np. rub,python,php). Możesz napisać dostawcę dla dwóch z nich, jeśli chcesz, i możesz zmienić pamięć w czasie wykonywania tylko przez zmianę konfiguracji, wszystkie są możliwe. Programowanie za pomocą mongo, cassandra i simpledb jest prostsze niż baza danych i są wolne od schematów, zależy to również od używanej biblioteki klienta/konektora. Najprostszym jest mongo. W cassandrze jest tylko jeden indeks na tabelę, więc musisz samodzielnie zarządzać innymi indeksami, ale wraz z wydaniem 0.7 cassandra indeksy drugorzędne będą możliwe, o ile wiem. Możesz również zacząć od dowolnego z nich i zastąpić go w przyszłości, jeśli zajdzie taka potrzeba.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak usunąć bazę danych w MongoDB z wiersza poleceń?

  2. Jak skonfigurować klaster MongoDB obsługujący sesje?

  3. Zmienne środowiskowe aplikacji Meteor

  4. Obsługa Spring Data MongoDB BigDecimal

  5. Uruchamianie mongodb na ubuntu 16.04 LTS