tl; dr: Ils diffèrent sensiblement à bien des égards et je ne peux pas penser que Redshift remplacera Hadoop.
-Fonction
Vous ne pouvez pas exécuter autre chose que SQL sur Redshift. Peut-être plus important encore, vous ne pouvez exécuter aucun type de fonctions personnalisées sur Redshift. Dans Hadoop, vous pouvez, en utilisant de nombreux langages (Java, Python, Ruby .. vous l'appelez). Par exemple, la PNL dans Hadoop est facile, alors qu'elle est plus ou moins impossible dans Redshift. C'est-à-dire qu'il y a beaucoup de choses que vous pouvez faire dans Hadoop mais pas sur Redshift. C'est probablement la différence la plus importante.
-L'exécution des
requêtes de profil de performance sur Redshift est dans la plupart des cas beaucoup plus efficace que sur Hadoop. Cependant, cette efficacité provient de l'indexation qui est effectuée lorsque les données sont chargées dans Redshift (j'utilise indexing
ici le terme très lâche). Par conséquent, c'est génial si vous chargez vos données une fois et exécutez plusieurs requêtes, mais si vous souhaitez exécuter une seule requête par exemple, vous risquez de perdre des performances globales.
-Cost Profile
Quelle solution gagne en coût dépend de la situation (comme les performances), mais vous avez probablement besoin de beaucoup de requêtes afin de la rendre moins chère que Hadoop (plus spécifiquement Elastic Map Reduce d'Amazon). Par exemple, si vous utilisez OLAP, il est très probable que Redshift soit moins cher. Si vous effectuez des ETL par lots quotidiennement, Hadoop est plus susceptible de sortir moins cher.
Cela dit, nous avons remplacé une partie de notre ETL qui a été effectuée dans Hive to Redshift, et ce fut une très bonne expérience; principalement pour la facilité de développement. Le moteur de requête de Redshift est basé sur PostgreSQL et est très mature, par rapport à Hive. Ses caractéristiques ACID facilitent son raisonnement et le temps de réponse plus rapide permet d'effectuer plus de tests. C'est un excellent outil, mais il ne remplacera pas Hadoop.
EDIT : En ce qui concerne la complexité de la configuration, je dirais même que c'est plus facile avec Hadoop si vous utilisez EMR d'AWS. Leurs outils sont si matures qu'il est ridiculement facile d'exécuter votre travail Hadoop. Les outils et mécanismes entourant le fonctionnement de Redshift ne sont pas encore arrivés à maturité. Par exemple, Redshift ne peut pas gérer le chargement lent et vous devez donc trouver quelque chose qui le transforme en une charge par lots, ce qui peut ajouter une certaine complexité à votre ETL.