Афина против Redshift Spectrum

Я вроде как оцениваю Athena & Redshift Spectrum. Оба служат для одной и той же цели: Spectrum нужен кластер Redshift, тогда как Athena полностью бессерверна. Афина использует Presto, а Spectrum использует движок Redshift.

Есть ли какие-то специфические недостатки для спектра Athena или Redshift? Есть ли ограничения на использование Athena или Spectrum?


comment
Хорошее прочтение: upsolver.com/blog/.   -  person Shiwangini    schedule 08.09.2020


Ответы (5)


Я использовал оба варианта в нескольких разных сценариях использования и пришел к выводу:

Преимущества Redshift Spectrum:

  • Позволяет создавать таблицы Redshift
  • Возможность эффективно объединять таблицы Redshift с таблицами спектра Redshift

Если вам не нужны эти вещи, вам следует подумать и об Афине.

Отличия Афины от спектра Redshift:

  • Биллинг. Это основная разница, и в зависимости от вашего варианта использования вы можете найти один намного дешевле, чем другой.
  • Представление. Я нашел Афину немного быстрее.
  • Синтаксис и особенности SQL. Athena происходит от presto и немного отличается от Redshift, корни которого уходят в postgres.
  • Связь. Достаточно легко подключиться к Athena с помощью API, JDBC или ODBC, но многие другие продукты предлагают "стандартное из коробки" подключение к Redshift.

Кроме того, для любого решения убедитесь, что вы используете метаданные AWS Glue, а не Athena, поскольку здесь меньше ограничений.

person Jon Scott    schedule 09.05.2018
comment
Большое спасибо, мистер Джон Скотт, - person Mukund; 09.05.2018
comment
привет, так афина стоит меньше спектра? также использование спектра красного смещения увеличивает нагрузку на существующее использование красного смещения - person akash sharma; 02.08.2020
comment
За 2 года, прошедшие после этой публикации, были внесены некоторые улучшения в планирование запросов спектра красного смещения, однако в целом результаты все еще остаются верными. Один только спектр красного смещения не использует много ресурсов красного смещения, поскольку он просто планирует запрос и передает его Афине. - person Jon Scott; 03.08.2020
comment
@JonScott. Не могли бы вы расширить свое утверждение, что Redshift Spectrum просто планирует запрос и передает его Афине? У меня нет свидетельств обратного из первых рук, но это кажется, по крайней мере, немного удивительным. - person John; 03.01.2021
comment
Он определенно НЕ использует ваш кластер красных смещений осмысленным образом. однако вы можете быть правы в том, что он каким-то образом отделен от Афины. Тесты, которые я сделал, похоже, показывают близкое соответствие афины и красного смещения, однако я не могу найти никакой документации от AWS, чтобы доказать это в любом случае. С тех пор, как я опубликовал ответ выше, Афина все больше и больше страдает от очередей запросов, я не видел, чтобы то же самое происходило в спектре Redshift. - person Jon Scott; 05.01.2021

Этот вопрос поднимался довольно давно, но, тем не менее, я думаю, что могу внести свой вклад в обсуждение.

Что такое Афина?

Amazon Athena - это интерактивная служба запросов, которая упрощает анализ данных в Amazon S3 с использованием стандартного SQL. Athena не имеет сервера, поэтому нет инфраструктуры для управления, и вы платите только за запросы, которые выполняете. (Из документа)

Довольно прямолинейно, правда?

Затем возникает вопрос, что такое Redshift Spectrum и почему люди из Amazon сделали это, когда Athena в значительной степени была решением для запросов к внешним таблицам?

Итак, люди из AWS хотели создать расширение для Redshift (которое в настоящее время довольно популярно как управляемое столбцовое хранилище данных) и дать ему возможность взаимодействовать с внешними таблицами (обычно S3). Но они хотели облегчить жизнь пользователям Redshift, в основном аналитикам. Многие инструменты аналитики не поддерживают Athena, но в настоящее время поддерживают Redshift. Но создание кластера Reshift и хранение данных было узким местом. Опять же, Redshift не настолько масштабируем по горизонтали и требует некоторого времени простоя в случае добавления новых машин. Если вы пользуетесь Redshift, удешевление хранилища существенно упрощает вашу жизнь.

Я предлагаю вам использовать спектр Redshift в следующих случаях:

  • Вы уже являетесь пользователем Redshift и хотите хранить больше данных в Redshift.

  • Вы хотите переместить более холодные данные во внешнюю таблицу, но все же в некоторых случаях хотите присоединиться к таблицам Redshift.

  • Выгрузка ваших данных и если вы просто хотите импортировать данные в Pandas или любые другие инструменты для анализа.

А Афина может быть полезна, когда:

  • Вы новый пользователь и у вас нет кластера Redshift. Для доступа к Spectrum требуется активный, работающий экземпляр Redshift. Так что Redshift Spectrum - это не вариант без Redshift.
  • Поскольку Spectrum все еще находится в стадии разработки, они как бы добавляют некоторые функции, такие как транзакции, чтобы сделать его более эффективным.
  • Кстати, Athena поставляется с хорошим REST API, так что дерзайте, если хотите.

Все, что нужно сказать, Redshift + Redshift Spectrum действительно мощный инструмент с множеством обещаний. Но ему еще предстоит пройти долгий путь, чтобы стать зрелым.

person james.bondu    schedule 28.01.2019
comment
привет, у меня возник вопрос, какой подход экономически эффективен: использование athena для соединения таблиц s3 и таблиц красного смещения (с использованием склеивающих устройств) ИЛИ использование спектра красного смещения для соединения таблиц красного смещения с внешними таблицами s3? увеличивает ли использование спектра красного смещения нагрузку на существующее использование красного смещения - person akash sharma; 02.08.2020

Если вы используете базу данных Redshift, будет разумно использовать Spectrum вместе с красным смещением, чтобы получить требуемую производительность.

Однако, если вы только начинаете изучать варианты, мы можем рассматривать Афину как инструмент для продвижения вперед.

person Rama krishna    schedule 15.05.2018
comment
Плата за сканирование данных для Spectrum и Athena одинакова. Даже если я использую Redshift, зачем мне использовать Spectrum и увеличивать нагрузку на кластер Redshift. Если кластер уже используется для отчетности, то использование Spectrum будет излишним. Вместо этого я могу использовать Афину и переложить нагрузку на Афину. - person Mukund; 16.05.2018
comment
Использует ли Spectrum кластер с красным смещением? Я думал, что аналогичная архитектура позволит добавить больше серверов виртуально, чтобы помочь кластеру красного смещения. Единственное, что мы здесь делаем, это создаем внешние таблицы? Не так ли? - person Rama krishna; 25.05.2018
comment
@Ramakrishna есть некоторые дополнительные рабочие процессы между кластером Redshift и S3, и если вы тщательно разрабатываете запросы, на этом уровне может быть некоторая оптимизация предиката push-down, но затем данные считываются в кластер Redshift, и существует конкуренция за параллелизм с существующими Использование Redshift. Вы можете увидеть это на explain планах. Идеальный вариант использования - это когда у вас много данных - дешево храните их на s3 - но не нужно масштабировать свои вычисления. В старом добром Redshift хранилище привязано к вычислениям, поэтому оба должны масштабироваться вместе. - person Davos; 30.07.2019

Я узнал (из курса Adrian Cantril / LA 2019 SA Pro), что Redshift Spectrum будет использовать собственный кластер Redshift для обеспечения более стабильной производительности, чем это доступно за счет использования общей емкости, которую AWS предоставляет для запросов Athena. Я понимаю, что эта информация может быть полезна только для экзамена, я не нашел его аргументы убедительными.

Я написал этот ответ, потому что меня не устраивало, что в главном ответе Афина превосходит Redshift Spectrum. Остальная часть этого ответа хороша, и я не хочу напрямую копировать что-либо из этого здесь (без ссылок, которые не были зарегистрированы у меня, когда я писал это).

Я (опять же, основываясь исключительно на моих независимых исследованиях) выбрал бы Spectrum, когда большая часть моих данных находится в S3, что обычно будет для больших наборов данных. Однако недавние экземпляры RA3, похоже, перекрывают эту нишу. Итак, я считаю, что Spectrum лучше всего подходит для тех случаев, когда у нас есть долгосрочные кластеры Redshift, которые, будучи узлами OLAP, имеют резервную емкость для запроса S3.

Зачем вам использовать собственное поместье для выполнения запросов, которые Афина могла бы выполнить без таких вложений с вашей стороны? Кеширование там, где оно подходит. И стабильная игра, если верить Адриану Кантриллу больше, чем Джону Скотту. Это заставило меня подозревать, что RA3 может вытеснить Spectrum; это и отсутствие достойной литературы по Спектруму. Почему Amazon предлагает бессерверный продукт в Афине, который превосходит Redshift Spectrum, более дорогой? Вот как они решили отказаться от RRS. Я не могу поверить, что Spectrum устарел, поэтому должен предложить этот ответ, чтобы оспорить это. Просто посмотрите на https://aws.amazon.com/redshift/whats-new/.

Думаю, изображение ниже (из https://d1.awsstatic.com/events/Summit/AMER2020/May13SummitOnline/Modernize_your_data_warehouse.pdf) совершенно ясно, что вычислительные узлы здесь имеют большое значение, и, возможно, вопреки ценной информации @ JonScott выше.

Spectrum il

Еще одно большое отличие заключается в том, что Athena ограничена IAM для аутентификации, как показано на слайде Revent 2018 (ANT201-R1):

введите описание изображения здесь

person John    schedule 06.01.2021

Одно большое ограничение и отличный фактор - это возможность использовать структурированные данные. Athena поддерживает его как для форматов файлов JSON, так и для файлов Parquet, в то время как Redshift Spectrum принимает только плоские данные.

Другой фактор - это наличие у Athena функций ГИС, а также лямбда-выражений, которые иногда могут пригодиться.

Теперь, если вы запускали новый автономный Postgres, он делает все и даже больше, но что касается сравнения между Redshift (и Spectrum) - это инструмент, который прекратил развиваться.

person LauriK    schedule 09.05.2018
comment
Поддерживаемые Spectrum форматы: JSON, ION, Parquet, RCFile, SequenceFile, TextFile, ORC, Avro - person Joe Harris; 09.05.2018
comment
Да, он поддерживает эти форматы, но только плоские данные, записанные в этих форматах. Вы можете написать структуру и массив в Parquet и запросить их с помощью Athena, но не через Spectrum. - person LauriK; 11.05.2018
comment
Я думаю, что в то время, когда это было опубликовано, LauriK справедливо высказался по поводу некоторых из вышеперечисленных. Как специалист по обработке данных, в некоторых случаях использование вложенных данных имеет первостепенное значение для эффективного хранения данных. Redshift Spectrum теперь поддерживает вложенные данные, хотя aws.amazon.com/about-aws/whats-new/2018/08/ - person softdevlife; 14.03.2019
comment
Spectrum по-прежнему имеет множество ограничений, связанных с документами вложенных данных. aws.amazon.com/redshift/latest/dg/ Эффективное хранение данных - не лучший вариант использования вложенных данных. Обычный случай - это запрос необработанного json и преобразование его во что-то полезное, например, паркет или орк. - person Davos; 30.07.2019