2012-06-06 3 views
10

Ich habe HBase für die letzten sechs Monate verwendet und ich lernte DynamoDB von Amazon kennen. Wartungsfreundlich Dynamo db sieht einfacher zu handhaben aus als es von Amazon übernommen wurde. Aber ob ich von HBase auf dynamo db umstellen soll, ist eine Frage für mich.AWS DynamoDB VS HBase

Ich kann nicht befriedigend Grund finden, von hbase zu Dynamo db zu wechseln, außer für den Cluster zu halten.

Kann jemand die Gedanken in Bezug auf diese teilen.

+5

Ich würde sagen, es ist völlig auf Ihren Anwendungsfall abhängt. Kannst du mehr über deine Bewerbung teilen? – Suman

+2

Es kommt darauf an. Bitte lesen Sie dieses großartige Whitepaper, das einen detaillierten Vergleich bietet - http://d0.awsstatic.com/whitepapers/AWS_Comparing_the_Use_of_DynamoDB_and_HBase_for_NoSQL.pdf –

Antwort

12

Sie müssen im Wesentlichen für Ihre Anforderungen aussehen, bietet DynamoDB große Skalierbarkeit und Leistung bei minimalem Wartungsaufwand und einem attraktiven finanziellen Kosten. Apache HBase ist jedoch viel flexibler in Bezug auf was Sie speichern können (Größe und Datentyp).

Ein weiterer sehr wichtiger Punkt zu bewerten ist, welches Datenmodell, Spalt breit oder Schlüsselwert, besser Ihre Anwendungsfälle paßt.

Apache HBase bietet die Möglichkeit, sehr flexibel Zeilenschlüssel-Datentypen zu haben, während nur DynamoDB skalare Typen für die Primärschlüsselattribute erlaubt. DynamoDB hingegen bietet sehr einfache Erstellung und Pflege von Sekundärindizes, was Sie in Apache HBase manuell erledigen müssen.

Weitere Informationen in den folgenden Link: http://d0.awsstatic.com/whitepapers/AWS_Comparing_the_Use_of_DynamoDB_and_HBase_for_NoSQL.pdf

Hier ist eine Zusammenfassung der wichtigsten Punkte ist:

Zusammengefasst sowohl Amazon DynamoDB und Apache HBase definieren Datenmodelle die effiziente Speicherung ermöglichen, von Daten zur Optimierung der Abfrageleistung. Amazon DynamoDB beschränkt seine Artikelgröße auf effiziente Verarbeitung und reduziert Kosten.

Apache HBase verwendet das Konzept der Spalte Familien Daten für effizientere Leseoperationen Ort zur Verfügung zu stellen.

Amazon DynamoDB unterstützt sowohl skalare als auch mehrwertige Mengen an , die eine breite Palette unstrukturierter Datensätze aufnehmen können. Ähnlich Apache HBase speichert seine Schlüssel/Wert-Paare als beliebige Arrays von Bytes, gibt es die Flexibilität, jeden Datentyp zu speichern.

Amazon DynamoDB unterstützt integrierte sekundäre Indizes und aktualisiert und synchronisiert automatisch alle Indizes mit ihren übergeordneten Tabellen. Mit Apache HBase können Sie benutzerdefinierte sekundäre Indizes selbst implementieren und verwalten.

Aus Datenmodellsicht können Sie Amazon DynamoDB wählen, wenn Ihre Artikelgröße relativ klein ist. Obwohl Amazon DynamoDB eine Anzahl von Optionen zur Überwindung von Zeilengrößenbeschränkungen bietet, ist Apache HBase besser ausgestattet, um große komplexe Payloads mit minimalen Einschränkungen zu handhaben.

Throughput Modell

Obwohl Lese- und Schreibanforderungen an das Erstellen von Tabellen angegeben sind Zeit, Amazon DynamoDB können Sie erhöhen oder den bereitgestellten Durchsatz verringern Last ohne Ausfallzeiten gerecht zu werden.

In Apache HBase kann die Anzahl der Knoten in einem Cluster durch den erforderlichen Durchsatz von für Lese- und/oder Schreibvorgänge gesteuert werden.

Konsistenz Modell

Amazon DynamoDB können Sie die gewünschte Konsistenz Eigenschaften angeben, für jede Anforderung in einer Anwendung zu lesen. Sie können angeben, ob ein Lesen schließlich konsistent oder stark konsistent ist.

Die Option für die eventuelle Konsistenz ist die Standardeinstellung in Amazon DynamoDB und maximiert den Lesedurchsatz. Ein eventuell konsistenter Lesevorgang spiegelt jedoch möglicherweise nicht immer die Ergebnisse eines kürzlich abgeschlossenen Schreibvorgangs wider. Konsistenz über alle Kopien von Daten wird normalerweise innerhalb einer Sekunde erreicht.

Apache HBase Lese- und Schreibvorgänge sind stark konsistent. Dies bedeutet, dass alle Lese- und Schreibvorgänge in einer einzelnen Zeile in Apache HBase atomar sind. Jeder gleichzeitige Leser und Schreiber kann sichere Annahmen über den Zustand einer Reihe machen. Multi-Versionierung und Zeitstempelung in Apache HBase tragen zu seinem stark konsistenten Modell bei.

Transaktionsmodell

Weder Amazon DynamoDB noch Apache HBase unterstützt Multi-Element/Cross-Reihe oder Kreuztisch Transaktionen aufgrund Leistungsüberlegungen. Allerdings bieten beide Datenbanken Batch-Operationen zum Lesen und Schreiben mehrere Elemente/Zeilen über mehrere Tabellen ohne Transaktion garantiert.

Tabelle Operationen

Ein wesentlicher Unterschied zwischen den beiden Datenbanken ist die flexible bereitgestellt Durchsatz Modell von Amazon DynamoDB. Die Möglichkeit, die Kapazität zu wählen, wenn Sie sie benötigen, und sie nach Beendigung wieder zu wählen ist nützlich für die Verarbeitung variabler Arbeitslasten mit unvorhersehbaren Spitzen.

Für Workloads, die hohe Aktualisierungsraten benötigen, um Datenaggregationen durchzuführen oder Zähler zu warten, ist Apache HBase eine gute Wahl. Dies liegt daran, Apache HBase unterstützt eine Multi-Version Parallelität Steuerungsmechanismus, , die zu seinen stark konsistenten Lese-und Schreibvorgänge beiträgt. Amazon DynamoDB gibt Ihnen die Flexibilität, anzugeben, ob Ihre Leseanforderung letztendlich konsistent oder stark konsistent sein soll , abhängig von Ihrer spezifischen Auslastung. innerhalb einer Sekunde erreicht.

Quelle: http://d0.awsstatic.com/whitepapers/AWS_Comparing_the_Use_of_DynamoDB_and_HBase_for_NoSQL.pdf