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 indexing
sehr 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.