tl; dr: Они заметно отличаются во многих аспектах, и я не думаю, что Redshift заменит Hadoop.
-Function
Вы не можете запустить ничего, кроме SQL в Redshift. Возможно, самое главное, вы не можете запускать любые типы пользовательских функций в Redshift. В Hadoop вы можете, используя множество языков (Java, Python, Ruby ... вы называете это). Например, NLP в Hadoop прост, а в Redshift более или менее невозможен. Т.е. есть много вещей, которые вы можете делать в Hadoop, но не в Redshift. Это, наверное, самое важное отличие.
Профиль производительности
Выполнение запроса в Redshift в большинстве случаев значительно более эффективно, чем в Hadoop. Тем не менее, эта эффективность происходит от индексации, которая выполняется при загрузке данных в Redshift (здесь я использую термин indexing
очень свободный). Поэтому было бы здорово, если вы загрузите свои данные один раз и выполните несколько запросов, но если вы хотите выполнить, например, только один запрос, вы можете фактически потерять производительность в целом.
-Производительный профиль
Какое решение выигрывает в цене, зависит от ситуации (например, производительности), но вам, вероятно, понадобится довольно много запросов, чтобы сделать его дешевле, чем Hadoop (точнее, Amazon Elastic Map Reduce). Например, если вы делаете OLAP, очень вероятно, что Redshift выйдет дешевле. Если вы выполняете ежедневные ETL, то Hadoop с большей вероятностью выйдет дешевле.
Сказав это, мы заменили часть нашего ETL, которая была сделана в Hive, на Redshift, и это был довольно большой опыт; в основном для простоты разработки. Механизм запросов Redshift основан на PostgreSQL и является очень зрелым по сравнению с Hive. Его характеристики ACID облегчают рассуждения об этом, а более быстрое время отклика позволяет проводить больше испытаний. Это отличный инструмент, но он не заменит Hadoop.
РЕДАКТИРОВАТЬ : Что касается сложности установки, я бы даже сказал, что с Hadoop проще, если вы используете AWS EMR. Их инструменты настолько зрелы, что смехотворно легко запустить вашу работу в Hadoop. Инструменты и механизмы, связанные с работой Redshift, еще не настолько развиты. Например, Redshift не может справиться с промежуточной загрузкой, и поэтому вам нужно придумать что-то, что превращает это в пакетную загрузку, что может добавить некоторую сложность вашему ETL.