tl; dr: differiscono nettamente per molti aspetti e non posso pensare che Redshift sostituirà Hadoop.
-Funzione
Non è possibile eseguire nient'altro che SQL su Redshift. Forse soprattutto, non è possibile eseguire alcun tipo di funzioni personalizzate su Redshift. In Hadoop puoi, usando molte lingue (Java, Python, Ruby .. lo chiami). Ad esempio, la PNL in Hadoop è facile, mentre è più o meno impossibile in Redshift. Cioè ci sono molte cose che puoi fare in Hadoop ma non su Redshift. Questa è probabilmente la differenza più importante.
-L'esecuzione delle
query del profilo delle prestazioni su Redshift è nella maggior parte dei casi significativamente più efficiente rispetto a Hadoop. Tuttavia, questa efficienza deriva dall'indicizzazione che viene eseguita quando i dati vengono caricati in Redshift (sto usando il termine indexing
molto sciolto qui). Pertanto, è ottimo se carichi i tuoi dati una volta ed esegui più query, ma se vuoi eseguire una sola query, ad esempio, potresti effettivamente perdere le prestazioni in generale.
-Cost Profile La
soluzione vincente in termini di costi dipende dalla situazione (come le prestazioni), ma probabilmente avrai bisogno di molte domande per renderla più economica di Hadoop (in particolare Elastic Map Reduce di Amazon). Ad esempio, se stai facendo OLAP, è molto probabile che Redshift sia più economico. Se si eseguono ETL batch giornalieri, è più probabile che Hadoop ne risulti più economico.
Detto questo, abbiamo sostituito parte del nostro ETL che è stato fatto in Hive to Redshift, ed è stata un'esperienza davvero fantastica; principalmente per la facilità di sviluppo. Il motore di query di Redshift si basa su PostgreSQL ed è molto maturo, rispetto a quello di Hive. Le sue caratteristiche ACID facilitano il ragionamento e il tempo di risposta più rapido consente di eseguire ulteriori test. È un ottimo strumento da avere, ma non sostituirà Hadoop.
EDIT : per quanto riguarda la complessità della configurazione, direi che è più facile con Hadoop se utilizzi EMR di AWS. I loro strumenti sono così maturi che è incredibilmente facile far funzionare il tuo lavoro su Hadoop. Gli strumenti e i meccanismi che circondano l'operazione di Redshift non sono ancora così maturi. Ad esempio, Redshift non è in grado di gestire il caricamento di mantenimento e quindi è necessario elaborare qualcosa che lo trasformi in un carico batch, che può aggiungere una certa complessità al tuo ETL.