tl; dr: Вони суттєво відрізняються у багатьох аспектах, і я не можу подумати, що Redshift замінить Hadoop.
-Функція
На Redshift ви не можете запустити нічого, крім SQL. Мабуть, найголовніше, що ви не можете запускати на Redshift будь-який тип користувацьких функцій. У Hadoop можна, використовуючи багато мов (Java, Python, Ruby .. ви її називаєте). Наприклад, NLP в Hadoop простий, тоді як в Redshift це більш-менш неможливо. Тобто, у Hadoop можна багато чого зробити, але не на Redshift. Це, мабуть, найважливіша відмінність.
-Виконання профільного
запиту на Redshift в більшості випадків значно ефективніше, ніж на Hadoop. Однак ця ефективність виходить із індексування, яке робиться під час завантаження даних у Redshift (тут я використовую термін indexing
дуже вільно). Тому чудово, якщо ви завантажуєте свої дані один раз і виконуєте кілька запитів, але якщо ви хочете виконати лише один запит, наприклад, ви можете фактично втратити ефективність.
-Cost Profile
Яке рішення виграє у вартості, залежить від ситуації (наприклад, продуктивності), але вам, мабуть, потрібно досить багато запитів для того, щоб зробити його дешевшим за Hadoop (точніше зменшити Elastic Map Amazon). Наприклад, якщо ви робите OLAP, дуже ймовірно, що Redshift вийде дешевше. Якщо ви робите щоденні партії ETL, Hadoop швидше вийде дешевше.
Сказавши це, ми замінили частину нашого ETL, яка була зроблена в Hive to Redshift, і це був досить чудовий досвід; переважно для зручності розвитку. Система запитів Redshift заснована на PostgreSQL і дуже зріла, порівняно з Hive's. Його кислотні характеристики полегшують міркування про це, а швидший час реакції дозволяє зробити більше тестування. Це чудовий інструмент, але він не замінить Hadoop.
EDIT : Щодо складності налаштування, я б навіть сказав, що з Hadoop простіше, якщо ви використовуєте EMR AWS. Їх інструменти настільки зрілі, що безглуздо легко запустити роботу Hadoop. Інструменти та механізми, що впливають на функціонування Redshift, ще не такі зрілі. Наприклад, Redshift не може впоратися з завантаженням дрібниць, і, отже, вам доведеться придумати щось, що перетворює це в пакетне навантаження, що може додати певної складності вашому ETL.