2012-03-30 7 views
3

Welche Aufgaben sollte man nicht verwenden HBase für?HBase Anti-Patterns

Mein Verständnis ist, dass HBase und HDFS behandelt werden sollten als transiente Datenspeicher, Daten nur für die Dauer der Zeit, die eine Karte/reduzieren Job braucht sie für.

Ist es unangemessen, HBase als kanonischen Datenspeicher zu verwenden? Seine Random-Access-Latenzspitzen machen dies ohnehin unpraktisch, aber dies könnte durch Caching und andere Badn-Aids gemildert werden.

+0

Was hast du dieses Verständnis? –

+0

Da HDFS für den wahlfreien Zugriff nicht besonders schnell ist, eignet es sich jedoch zum Streamen großer Dateien. Auch seine verteilte Natur eignet sich für Abbildungs ​​/ Reduzierungs-Aufträge, da es eine große Anzahl von gleichzeitigen Lesevorgängen ermöglicht, die den Operationen, die es lesen, nahe kommen. –

Antwort

2

HBase soll als kanonischer Datenspeicher verwendet werden (wie Big Table, der in vielen Google-Diensten verwendet wird). HDFS wurde für MapReduce entwickelt, aber HBase basiert auf HDFS, um mehr als nur MapReduce zu ermöglichen. HBase ist wirklich eine Datenbank.

Der Hauptgrund, warum Sie HBase gegenüber herkömmlichen relationalen Datenbanksystemen wählen sollten, ist Skalierbarkeit. Wenn Sie keine Big Data haben, verwenden Sie HBase nicht. Wenn Ihre Anwendung viele Joins benötigt, eine Abfragesprache wie SQL benötigt und keine Datenskalierung rund um den Globus hat, bevorzugen Sie ein RDBMS.

Auf der anderen Seite, wenn Ihre relationale Datenbank eine große Anzahl von NULL-Einträgen hat, ist HBase eine gute Alternative, da es spärlich ist: Es speichert keine NULL.