Musisz zasadniczo poszukiwać swoich wymagań, DynamoDB zapewnia świetną skalowalność i wydajność przy minimalnym nakładzie prac konserwacyjnych i atrakcyjnych kosztach finansowych. Jednak Apache HBase jest znacznie bardziej elastyczny pod względem tego, co można przechowywać (rozmiar i typ danych są mądre).
Kolejnym bardzo ważnym punktem do oceny jest model danych, kolumna szeroka lub klucz-wartość, lepiej pasuje do przypadków użycia.
Apache HBase daje opcję posiadania bardzo elastycznych typów danych klucza rzędu, natomiast DynamoDB zezwala tylko na typy skalarne dla atrybutów klucza głównego. DynamoDB z drugiej strony zapewnia bardzo łatwe tworzenie i utrzymywanie indeksów pomocniczych, co trzeba zrobić ręcznie w Apache HBase.
Podsumowując, modele danych zarówno Amazon DynamoDB i Apache HBase określić które umożliwiają efektywne przechowywanie dane do optymalizacji wydajności zapytań. Amazon DynamoDB nakłada ograniczenie na rozmiar przedmiotu, aby umożliwić wydajne przetwarzanie i zmniejszyć koszty.
Apache HBase wykorzystuje koncepcję rodzin kolumn, aby zapewnić lokalizację danych dla bardziej wydajnych operacji odczytu.
Amazon DynamoDB obsługuje zarówno zestawy skalarne, jak i wielowartościowe do , obsługując szeroki zakres nieuporządkowanych zestawów danych. Podobnie, HBase przechowuje swoje pary klucz/wartość jako arbitralne tablice bajtów, co daje elastyczność do przechowywania dowolnego typu danych.
Amazon DynamoDB obsługuje wbudowane indeksy pomocnicze i automatycznie aktualizuje i synchronizuje wszystkie indeksy z ich tabelami nadrzędnymi. Z Apache HBase możesz samodzielnie zaimplementować niestandardowe indeksy pomocnicze i zarządzać nimi .
Z perspektywy modelu danych można wybrać opcję Amazon DynamoDB, jeśli rozmiar pozycji jest stosunkowo niewielki. Chociaż Amazon DynamoDB oferuje liczbę opcji pozwalających na obejście ograniczeń wielkości wierszy, Apache HBase jest lepiej przystosowany do obsługi dużych złożonych ładunków z minimalnymi ograniczeniami w zakresie .
Przepustowość model
Chociaż odczytu i zapisu Wymagania te określone są w tworzeniu tabeli czas, Amazon DynamoDB pozwala zwiększyć lub zmniejszyć zabezpieczony przepustowości, aby pomieścić ładunek bez przestojów.
W serwerze Apache HBase liczba węzłów w klastrze może być obsługiwana przez wymaganą przepustowość do odczytu i/lub zapisywania.
Spójność modelu
Amazon DynamoDB umożliwia określenie pożądanej konsystencji cechy dla każdego żądania odczytu w aplikacji. Możesz określić, czy odczyt jest w końcu spójny, czy też mocno spójny.
Opcja ostatecznej konsystencji jest domyślna w Amazon DynamoDB, a zwiększa przepustowość odczytu. Jednak ostatecznie spójny odczyt może nie zawsze odzwierciedlać wyniki ostatnio ukończonego zapisu. Spójność we wszystkich kopiach danych jest zwykle usuwana w ciągu sekundy.
Apache HBase czyta i pisze są silnie spójne. Oznacza to, że wszystkie odczyty i zapisy do pojedynczego wiersza w Apache HBase są atomowe. Każdy współbieżny czytnik i program piszący może tworzyć bezpieczne założenia dotyczące stanu rzędu. Wielokrotne wersjonowanie i oznaczanie czasu w Apache HBase przyczyniają się do jego silnie spójnego modelu.
transakcja model
Ani Amazon DynamoDB ani Apache HBase wspierać multi-item/cross-wiersz lub transakcji Tabela według Ze względów wydajności. Jednak obie bazy danych zapewniają operacje wsadowe do odczytu i zapisu wielu pozycji/wierszy w wielu tabelach bez gwarancji transakcji .
Operations Tabela
Jednym z kluczowych różnic między dwoma bazami danych jest elastyczny zabezpieczony modelu przepustowość Amazon DynamoDB. Możliwość wybrania numeru w razie potrzeby i wybrania go ponownie, gdy skończysz, jest przydatna do przetwarzania zmiennych obciążeń z nieprzewidywalnymi wartościami szczytowymi.
W przypadku obciążeń wymagających wysokiej częstotliwości aktualizacji w celu przeprowadzenia agregacji danych lub zachowania liczników, Apache HBase to dobry wybór. Jest tak, ponieważ Apache HBase obsługuje mechanizm kontroli współbieżności wielu wersji, , który przyczynia się do jego silnie spójnych odczytów i zapisów. Amazon DynamoDB umożliwia określenie, czy żądanie odczytu ma być spójne, czy spójne w zależności od obciążenia. osiągnięty w ciągu sekundy.
powiedziałbym, że całkowicie zależy od przypadku użycia. Czy możesz udostępnić więcej informacji na temat swojej aplikacji? – Suman
To zależy. przeczytaj ten wspaniały dokument zawierający szczegółowe porównanie - http://d0.awsstatic.com/whitepapers/AWS_Comparing_the_Use_of_DynamoDB_and_HBase_for_NoSQL.pdf –