AWS Glue против бессерверного EMR
Недавно AWS анонсировала Amazon EMR Serverless (предварительная версия) https://aws.amazon.com/blogs/big-data/announcing-amazon-emr-serverless-preview-run-big-data-applications-without-managing-servers/ - новая очень перспективная услуга.
Насколько я понимаю, AWS Glue - это управляемый сервис поверх Apache Spark (для уровня трансформации). AWS EMR также в основном используется для Apache Spark. Таким образом, EMR Serverless (для Apache Spark) выглядит как нечто похожее на AWS Glue.
Прямо сейчас у меня возникает один вопрос: в чем основное отличие от AWS Glue и когда лучше выбрать EMR Serverless вместо Glue?
Потенциально EMR Serverless, может быть даже частью экосистемы AWS Glue для уровня трансформации? Возможно, AWS собирается заменить уровень преобразования в AWS Glue на EMR Serverless, и тогда это может иметь смысл. AWS Glue будет играть роль ETL Overlay, Metastore с EMR Serverless в качестве уровня обработки.
2 ответа
Я дам вам свои два цента по этому поводу, потому что мне было интересно то же самое.
Клей
Согласно документации AWS, AWS Glue — это « простая, масштабируемая и бессерверная интеграция данных ». Glue можно использовать для самых разных целей: в качестве репозитория метаданных, автоматического обнаружения схемы, генерации кода и запуска конвейеров ETL для подготовки данных. Glue позаботится о предоставлении и управлении вычислительными ресурсами, необходимыми для запуска ваших конвейеров данных. Glue — это бессерверная служба, поэтому вам не нужно создавать инфраструктуру и управлять ею, потому что Glue делает это за вас.
Если мы сосредоточимся только на функции обработки и отбросим функции, специфичные для Glue (обнаружение схемы, генерация кода и т. д.), то службы EMR Serverless и Glue будут выглядеть практически одинаково. Одним из ключевых преимуществ обоих сервисов является возможность запуска бессерверных приложений Spark или Hive.
Какое преимущество будет у EMR Serverless перед заданиями Glue Spark?
Чтобы запустить Glue, вы должны либо указать
MaxCapacity
(для работы Glue версии 1.0 или более ранней) или
Worker type
и
Number of workers
(для заданий Glue версии 2.0). Оба варианта предполагают, во-первых, что есть некоторое представление о данных и рабочей нагрузке на кластер, а во-вторых, что рабочая нагрузка во время выполнения задания будет равномерной, т. е. не будет чрезмерного или недостаточного использования выделенных ресурсов.
EMR без сервера
EMR Serverless — это новый вариант развертывания для AWS EMR. Благодаря EMR Serverless вам не нужно настраивать, оптимизировать, защищать или управлять кластерами для запуска приложений на этих платформах. EMR Serverless помогает избежать чрезмерного или недостаточного выделения ресурсов для обработки заданий на уровне отдельных стадий.
EMR Serverless автоматически определяет ресурсы, необходимые заданиям, выделяет эти ресурсы для выполнения заданий и освобождает их по завершении заданий. В случаях, когда приложениям требуется ответ в течение нескольких секунд, например, для интерактивного анализа данных, инженер может предварительно инициализировать необходимые ресурсы во время создания приложения. Это обеспечивает простую инициализацию, быстрый запуск заданий, автоматическое управление мощностью и простой контроль затрат.
Дополнительная информация: https://luminousmen.com/post/emr-serverless-a-400level-guide .
AWS Glue — это сервис интеграции данных и ETL. Совершенно другой сервис, чем EMR Analytics.
AWS Glue можно использовать в качестве хранилища метаданных (схемы таблиц) для EMR и выполнять задания интеграции для подготовки данных (например, для EMR). Существуют задания по интеграции данных и рабочие процессы. По крайней мере, это намерение сделать рабочие места ограниченными, но более простыми в управлении.
ЭМИ намного больше (и сильно отличается). Теоретически EMR также может запускать задания интеграции данных Python в пакетном режиме поверх кластера Spark, но вы можете запускать любые задания внутри кластера Spark. EMR — это скорее инструмент аналитики и обработки. Это не ограничивается обработкой Spark пакетных заданий Python, вы можете использовать разные фреймворки. Хотя бессерверные документы EMR упоминают только запросы Spark и Hive, у вас гораздо больше контроля над заданием обработки.
Если что-то и можно сравнить со службой EMR, так это Athena, которая представляет собой что-то вроде бессерверной службы EMR со Spark и Presto и в собственной сети.