Ersetzt Amazon RedShift Hadoop für ~ 1XTB-Daten?

12

Es gibt viel Hype um Hadoop und sein Ökosystem. Ist es in der Praxis jedoch nicht sinnvoller, Amazon RedShift zum Abfragen großer Datenmengen zu verwenden, als Zeit und Mühe für die Erstellung eines Hadoop-Clusters zu investieren , wenn sich viele Datenmengen im Terabyte-Bereich befinden ?

Wie ist der Vergleich zwischen Amazon Redshift und Hadoop hinsichtlich der Komplexität, Kosten und Leistung des Setups?

Trienismus
quelle
Meinen Sie Hadoop oder meinen Sie ein bestimmtes Gegenstück zu Redshift wie Impala?
Sean Owen
@ SeanOwen in meiner Frage bezog ich mich auf Apache Hadoop. Obwohl es interessant wäre, auch den Impala zu vergleichen.
Dreiheit

Antworten:

12

tl; dr: Sie unterscheiden sich in vielen Aspekten deutlich und ich kann nicht glauben, dass Redshift Hadoop ersetzen wird.

-Funktion
Sie können unter Redshift nichts anderes als SQL ausführen. Am wichtigsten ist vielleicht, dass Sie auf Redshift keine benutzerdefinierten Funktionen ausführen können. In Hadoop können Sie unter Verwendung vieler Sprachen (Java, Python, Ruby .. Sie nennen es). Zum Beispiel ist NLP in Hadoop einfach, während es in Redshift mehr oder weniger unmöglich ist. Dh es gibt viele Dinge, die Sie in Hadoop tun können, aber nicht in Redshift. Dies ist wahrscheinlich der wichtigste Unterschied.

-Die
Ausführung von Leistungsprofilabfragen unter Redshift ist in den meisten Fällen wesentlich effizienter als unter Hadoop. Diese Effizienz ergibt sich jedoch aus der Indizierung, die durchgeführt wird, wenn die Daten in Redshift geladen werden (ich verwende den Begriff hier indexingsehr lose). Daher ist es hilfreich, wenn Sie Ihre Daten einmal laden und mehrere Abfragen ausführen. Wenn Sie jedoch beispielsweise nur eine Abfrage ausführen möchten, kann dies zu Leistungseinbußen führen.

-Kostenprofil
Welche Lösung bei den Kosten gewinnt, hängt von der jeweiligen Situation (wie der Leistung) ab. Wahrscheinlich benötigen Sie jedoch eine Reihe von Abfragen, um sie günstiger als Hadoop (genauer gesagt Elastic Map Reduce von Amazon) zu machen. Wenn Sie beispielsweise OLAP durchführen, ist es sehr wahrscheinlich, dass Redshift billiger herauskommt. Wenn Sie tägliche Batch-ETLs durchführen, ist es wahrscheinlicher, dass Hadoop billiger herauskommt.

Trotzdem haben wir einen Teil unserer ETL ersetzt, die in Hive to Redshift durchgeführt wurde, und es war eine großartige Erfahrung. vor allem für die einfache Entwicklung. Die Query Engine von Redshift basiert auf PostgreSQL und ist im Vergleich zu Hive sehr ausgereift. Die ACID-Eigenschaften erleichtern das Nachdenken und die schnellere Reaktionszeit ermöglicht mehr Tests. Es ist ein großartiges Werkzeug, aber es wird Hadoop nicht ersetzen.

EDIT : In Bezug auf die Komplexität des Setups würde ich sogar sagen, dass es mit Hadoop einfacher ist, wenn Sie AWS EMR verwenden. Ihre Tools sind so ausgereift, dass es unglaublich einfach ist, Ihren Hadoop-Job auszuführen. Die Werkzeuge und Mechanismen rund um Redshifts Betrieb sind noch nicht so ausgereift. Zum Beispiel kann Redshift das Erhaltungsladen nicht bewältigen, und daher müssen Sie sich etwas einfallen lassen, das daraus eine Batch-Ladung macht, die Ihrer ETL eine gewisse Komplexität verleihen kann.

Enno Shioji
quelle
2
easier to develop because of Redshift's maturitywiderspricht Redshift isn't that mature yetalso was ist dein urteil?
M. Mimpen
@ M.Mimpen: Bearbeitete Antwort, um genauer zu sein
Enno Shioji
5

Die derzeitige Größenbeschränkung für Amazon Redshift beträgt 128 Knoten oder 2 PB komprimierter Daten. Unkomprimiert ca. 6PB, obwohl die Laufleistung für die Komprimierung variiert. Sie können uns jederzeit Bescheid geben, wenn Sie mehr benötigen. anurag @ aws (ich verwende Amazon Redshift und Amazon EMR)

Anurag Gupta
quelle
3

Persönlich denke ich, dass es nicht allzu schwierig ist, einen Hadoop-Cluster einzurichten, aber ich weiß, dass es manchmal schmerzhaft ist, wenn Sie anfangen.

HDFS-Größenbeschränkungen überschreiten deutlich eine TB (oder meinten Sie Exabyte?). Wenn ich mich nicht irre, skaliert es auf Yottabyte oder ein anderes Maß, für das ich nicht einmal das Wort kenne. Was auch immer es ist, es ist wirklich groß.

Tools wie Redshift haben ihren Platz, aber ich mache mir immer Gedanken über herstellerspezifische Lösungen. Mein Hauptanliegen ist immer "Was mache ich, wenn ich mit ihrem Service unzufrieden bin?" - Ich kann googeln und meine Analyse in ihr Paradigma umwandeln, oder ich kann hadoop und dieselbe Arbeit in dieses System umwandeln. In jedem Fall muss ich etwas Neues lernen und viel übersetzen.

Trotzdem ist es schön, einen Datensatz hochladen zu können und schnell zur Arbeit zu kommen - vor allem, wenn das, was ich tue, einen kurzen Lebenszyklus hat. Amazon hat das Datensicherheitsproblem gut gelöst.

Wenn Sie Hadoop vermeiden möchten, gibt es immer eine Alternative. Aber es ist nicht allzu schwierig, damit zu arbeiten, wenn man erst einmal damit anfängt.

Steve Kallestad
quelle
3
Ich gehe davon aus, dass der Verweis des OP auf TBs "für Daten am kleinen Ende dessen, wofür Sie Hadoop verwenden könnten" bedeutet. Wenn Sie mehrere Petabyte oder mehr haben, ist Redshift eindeutig nicht geeignet. (Ich glaube, es ist auf hundert 16-TB-Knoten begrenzt.)
Tim Goodman,