Вопрос: Что такое AWS Glue?

AWS Glue – полностью управляемый сервис с оплатой по факту использования, позволяющий выполнять извлечение, преобразование и загрузку данных (ETL) и автоматизировать трудоемкие этапы процесса подготовки данных к анализу. AWS Glue автоматически определяет и профилирует данные с помощью каталога данных Glue, рекомендует и генерирует ETL-код для преобразования исходных данных в целевые схемы и запускает ETL-задания в полностью управляемой масштабируемой среде Apache Spark для загрузки данных в место назначения. Сервис также позволяет осуществлять настройку, оркестрацию и мониторинг комплексных потоков данных.

Вопрос: Как начать работу с AWS Glue?

Чтобы начать использовать AWS Glue, просто войдите в Консоль управления AWS и перейдите в раздел «Glue», который расположен в категории «Analytics». Можно воспользоваться одним из наших пошаговых учебных пособий, в котором рассмотрен пример использования сервиса AWS Glue. Образцы ETL-кода также можно найти в репозитории GitHub (раздел «AWS Labs»).

Вопрос: Каковы главные компоненты сервиса AWS Glue?

AWS Glue включает в себя каталог данных, который является центральным репозиторием метаданных, программное ядро ETL, способное автоматически генерировать код на Python, и гибкий планировщик, отвечающий за разрешение зависимостей, мониторинг заданий и их повторный запуск. Вместе эти возможности позволяют автоматизировать большую часть сложных задач, связанных с обеспечением работоспособности, включая обнаружение, классификацию, очистку, дополнение и перемещение данных, что позволяет использовать больше времени на их анализ.

Вопрос: В каких случаях стоит использовать AWS Glue?

AWS Glue следует использовать для обнаружения характеристик данных, для преобразования данных и их подготовки к анализу. Glue может автоматически обнаруживать структурированные и слабоструктурированные данные, сохраненные в озере данных в Amazon S3, хранилище данных в Amazon Redshift и различных базах данных на платформе AWS. Сервис предлагает унифицированное представление данных с помощью каталога данных Glue, доступного для ETL-операций, опросов и составления отчетов в таких сервисах, как Amazon Athena, Amazon EMR и Amazon Redshift Spectrum. Glue автоматически генерирует код ETL-заданий на Python, и этот код можно редактировать с помощью уже привычных инструментов. AWS Glue – бессерверное решение, поэтому настраивать вычислительные ресурсы и управлять ими не требуется.

Вопрос: Какие источники данных поддерживает AWS Glue?

AWS Glue обеспечивает встроенную поддержку данных, хранящихся в Amazon Aurora, Amazon RDS для MySQL, Amazon RDS для Oracle, Amazon RDS для PostgreSQL, Amazon RDS для SQL Server, Amazon Redshift и Amazon S3, а также в базах данных MySQL, Oracle, Microsoft SQL Server и PostgreSQL в облаке Amazon Virtual Private Cloud (Amazon VPC), работающем на Amazon EC2. К метаданным, сохраненным в каталоге данных AWS Glue, можно получить доступ из сервисов Amazon Athena, Amazon EMR и Amazon Redshift Spectrum. Можно также написать специальный код на PySpark и импортировать пользовательские библиотеки в ETL-задания Glue, чтобы получить доступ к источникам данных, не имеющим встроенной поддержки в сервисе AWS Glue. Дополнительную информацию о пользовательских библиотеках см. в документации.

К началу »


Вопрос: Что такое каталог данных AWS Glue?

Каталог данных AWS Glue – центральный репозиторий, предназначенный для хранения структурных и операционных метаданных всех наборов данных. Для определенного набора данных можно сохранять определения таблиц и физическое местонахождение, добавлять релевантные бизнес-атрибуты, а также отслеживать изменения данных с течением времени.

Каталог данных AWS Glue совместим с Apache Hive Metastore и является готовой заменой для приложений Apache Hive Metastore для больших данных, работающих в сервисе Amazon EMR. Дополнительную информацию о настройке кластера EMR для использования каталога данных AWS Glue в качестве Apache Hive Metastore см. здесь.

Каталог данных AWS Glue также обеспечивает встроенную интеграцию с сервисами Amazon Athena, Amazon EMR и Amazon Redshift Spectrum. Определения таблиц, добавленные в каталог данных Glue, сразу становятся доступными для ETL-операций и запросов из сервисов Amazon Athena, Amazon EMR и Amazon Redshift Spectrum, что позволяет достичь унифицированного представления данных в этих сервисах.

Вопрос: Как добавить метаданные в каталог данных AWS Glue?

AWS Glue предлагает несколько способов отправки метаданных в каталог данных AWS Glue. Сканеры Glue исследуют различные хранилища данных для автоматического обнаружения схем, структуры разделов и наполнения каталога данных Glue соответствующими определениями таблиц и статистикой. Сканеры можно запускать по расписанию, чтобы метаданные всегда были актуальными и соответствовали реальным данным. Кроме того, сведения о таблицах можно добавлять и обновлять вручную с помощью консоли AWS Glue или через вызов API. Можно также исполнять операторы DDL Hive вручную через консоль Amazon Athena или клиент Hive в кластере Amazon EMR. Наконец, если у вас есть постоянное хранилище Apache Hive Metastore, можно выполнить групповой импорт метаданных в каталог данных AWS Glue с помощью нашего скрипта импорта.

Вопрос: Что представляют собой сканеры AWS Glue?

Сканер AWS Glue подключается к хранилищу данных, проходит по ранжированному списку классификаторов для извлечения схемы данных и прочей статистики, а затем заносит эти метаданные в каталог данных Glue. Сканеры можно запускать периодически, чтобы определять появление новых данных или изменения в существующих данных, включая изменения в определениях таблиц. Сканеры AWS Glue добавляют новые таблицы, новые разделы к существующим таблицам и новые версии определений таблиц. Сканеры Glue можно настроить на работу с пользовательскими типами файлов.

Вопрос: Как импортировать данные из существующего хранилища Apache Hive Metastore в каталог данных AWS Glue?

Нужно просто запустить ETL-задание, которое считает данные из Apache Hive Metastore, экспортирует их в промежуточном формате в Amazon S3, а затем импортирует в каталог данных AWS Glue.

Вопрос: Нужно ли поддерживать работу с Apache Hive Metastore, если метаданные хранятся в каталоге данных AWS Glue?

Нет. Каталог данных AWS Glue совместим с Apache Hive Metastore. Можно указать адрес сервера для каталога данных Glue и использовать его в качестве замены для Apache Hive Metastore. Дополнительную информацию о настройке кластера на работу с каталогом данных AWS Glue в качестве хранилища Apache Hive Metastore см. в документации по ссылке.

Вопрос: Если я работаю с сервисом Amazon Athena или Amazon Redshift Spectrum и таблицы размещены во внутреннем каталоге данных Amazon Athena, как начать работу с каталогом данных AWS Glue в качестве общего репозитория метаданных?

Перед началом работы с каталогом данных AWS Glue в качестве общего репозитория метаданных для сервисов Amazon Athena, Amazon Redshift Spectrum и AWS Glue необходимо преобразовать каталог данных Amazon Athena в каталог данных AWS Glue. Процесс преобразования описан здесь.

К началу »


Вопрос: Как можно настроить ETL-код, генерируемый сервисом AWS Glue?

Система рекомендации ETL-скриптов AWS Glue генерирует код PySpark. Она использует специальную ETL-библиотеку сервиса Glue, которая позволяет упростить доступ к источникам данных, а также управлять выполнением заданий. Дополнительные сведения о библиотеке см. в документации. Пользователи могут писать ETL-код с помощью специальной библиотеки AWS Glue или создавать произвольный код Spark на Python (код PySpark) с помощью встроенного редактора скриптов в консоли AWS Glue, а также загружать автоматически сгенерированный код и редактировать его в собственной среде разработки. Кроме того, можно загрузить один из множества примеров, размещенных в репозитории Github, и настроить этот код.

Вопрос: Можно ли импортировать в составе ETL-скрипта пользовательские библиотеки?

Да. Пользовательские библиотеки PySpark можно импортировать в ETL-задания AWS Glue. Дополнительную информацию см. в документации по ссылке.

Вопрос: Можно ли использовать собственный код?

Да. Вы можете написать код сами с помощью ETL-библиотеки AWS Glue или написать код PySpark и загрузить его в ETL-задание Glue. Дополнительную информацию см. в документации по ссылке.

Вопрос: Как можно разработать ETL-код в собственной среде разработки?

При создании кода можно подключиться к конечным точкам разработки, предлагающим различные варианты подключения текстовых редакторов и сред разработки.

Вопрос: Как можно построить комплексный рабочий процесс ETL с помощью нескольких заданий в AWS Glue?

Помимо ETL-библиотеки и генерации кода, сервис AWS Glue предлагает надежный набор функций оркестрации, позволяющий управлять зависимостями между несколькими заданиями при построении комплексных рабочих процессов ETL. ETL-задания AWS Glue можно инициировать по расписанию или по событию завершения задания. Можно инициировать несколько задач параллельно или выполнять их последовательно по событию завершения задания. Дополнительно можно инициировать одно или несколько заданий Glue из внешнего источника, например с помощью функции AWS Lambda.

Вопрос: Как AWS Glue осуществляет мониторинг зависимостей?

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

Вопрос: Как AWS Glue обрабатывает ошибки?

AWS Glue отслеживает метрики событий и ошибки задания и отправляет уведомления в Amazon CloudWatch. С помощью Amazon CloudWatch можно настроить перечень действий, которые можно инициировать на основании определенных уведомлений, полученных из AWS Glue. Например, при получении уведомления об ошибке или успешном завершении из сервиса Glue можно настроить запуск функции AWS Lambda. Glue также предлагает повторное выполнение по умолчанию: при возникновении сбоя выполняется еще три попытки, после чего отправляется уведомление об ошибке.

Вопрос: Можно ли исполнять существующие задания ETL в AWS Glue?

Да. Существующий код PySpark можно исполнять в AWS Glue. Просто загрузите код в Amazon S3 и создайте одно или несколько заданий, использующих этот код. Один и тот же код можно использовать в нескольких заданиях, указав в них местонахождение кода в сервисе Amazon S3.

Вопрос: Как можно использовать сервис AWS Glue для выполнения ETL-операций над потоковыми данными?

ETL-операции сервиса AWS Glue оптимизированы для работы с пакетами, задания ETL допускают планирование с минимальным интервалом в 5 минут. И хотя сервис способен обрабатывать микропакеты, он не предназначен для работы с потоковыми данными. Если в вашем сценарии использования необходимо выполнять ETL-операции с данными в процессе потоковой передачи, можно выполнить первый этап ETL с помощью сервисов Amazon Kinesis, Amazon Kinesis Firehose или Amazon Kinesis Analytics, затем сохранить данные в Amazon S3 или Amazon Redshift и инициировать ETL-задание Glue на прием этого набора данных и выполнение дополнительных преобразований.

Вопрос: Обязательно ли при работе с сервисом использовать и каталог данных AWS Glue, и ETL?

Нет. Мы считаем, что каталог данных AWS Glue и ETL вместе образуют комплексное ETL-решение, но можно использовать каждую из этих возможностей и в отдельности.

К началу »


Вопрос: Когда лучше использовать AWS Glue, а когда – AWS Data Pipeline?

AWS Glue предлагает управляемый ETL-сервис, работающий в бессерверной среде Apache Spark. Это позволяет сосредоточиться на разработке ETL-заданий и избавиться от необходимости конфигурирования и управления базовыми вычислительными ресурсами. Сервис AWS Glue использует подход, заключающийся в первостепенной значимости данных, и позволяет сосредоточиться на свойствах данных и операциях их преобразования с целью извлечения важной бизнес-информации. Он предлагает интегрированный каталог данных, благодаря которому метаданные становятся доступны для ETL-операций, а также выполнения запросов сервисами Amazon Athena и Amazon Redshift Spectrum.

Сервис AWS Data Pipeline предлагает управляемый сервис оркестрации, обеспечивающий повышенную гибкость в вопросах среды исполнения, а также доступа и контроля над вычислительными ресурсами, исполняющими код, а также самим кодом, отвечающим за обработку данных. AWS Data Pipeline запускает вычислительные ресурсы в аккаунте пользователя, обеспечивая прямой доступ к инстансам Amazon EC2 или кластерам Amazon EMR.

Кроме того, ETL-задания AWS Glue работают на основе PySpark. Если требуется использовать программное ядро, отличное от Apache Spark, или если вы хотите исполнять разноплановый набор заданий, работающих на различных платформах, например Hive, Pig, и т. п., в таких случаях следует использовать сервис AWS Data Pipeline.

Вопрос: Когда лучше использовать AWS Glue, а когда – Amazon EMR?

Сервис AWS Glue работает на базе среды Apache Spark и предлагает масштабируемую среду исполнения заданий по преобразованию данных. AWS Glue формирует и оптимизирует ELT-задания и осуществляет мониторинг их выполнения, что позволяет значительно упростить процесс их создания и эксплуатации. Сервис Amazon EMR предоставляет прямой доступ к среде Hadoop, благодаря чему можно воспользоваться низкоуровневым доступом и повышенной гибкостью в работе с инструментами, отличными от Spark.

Вопрос: Когда лучше использовать AWS Glue, а когда – AWS Database Migration Service?

AWS Database Migration Services (DMS) позволяет быстро и безопасно выполнить миграцию баз данных на платформу AWS. Если в сценарии использования требуется миграция баз данных с локальных ресурсов в AWS или репликация баз данных между локальными источниками и источниками в AWS, в таком случае рекомендуется использовать сервис AWS DMS. Когда данные попадут в AWS, сервис AWS Glue можно использовать для перемещения и преобразования данных из источника в другую базу данных или хранилище данных, например в Amazon Redshift.

Вопрос: Когда лучше использовать AWS Glue, а когда – AWS Batch?

Сервис AWS Batch позволяет легко и эффективно исполнять любые пакетные вычисления в AWS, независимо от их сущности. AWS Batch создает вычислительные ресурсы в аккаунте AWS и управляет ими, обеспечивая наглядное представление и полный контроль над используемыми ресурсами. AWS Glue – это полностью управляемый ETL-сервис, позволяющий исполнять ETL-задания в среде Apache Spark. Если в сценарии использования участвуют ETL-операции, рекомендуется использовать сервис AWS Glue. В прочих сценариях использования, оптимизированных под пакетную обработку, в том числе для решения некоторых ETL-задач, возможно, лучше будет использовать AWS Batch.

Вопрос: Когда лучше использовать AWS Glue, а когда – Amazon Kinesis Analytics?

Amazon Kinesis Analytics позволяет исполнять стандартные SQL-запросы к входящему потоку данных. Для записи результатов можно указать место назначения, например сервис Amazon S3. Когда данные появятся в целевом источнике, можно запустить ETL-задание AWS Glue для дальнейшего преобразования данных и подготовки их к дополнительному анализу и составлению отчетности.

К началу »


Вопрос: Как оплачивается использование AWS Glue?

За хранение метаданных в каталоге AWS Glue и доступ к ним сверх уровня бесплатного пользования каталогом данных AWS Glue начисляется ежемесячная плата по фиксированным тарифам. Кроме того, на основе почасового тарифа начисляется посекундная плата за время исполнения ETL-заданий и работу сканера. Минимальная продолжительность исполнения задания/работы сканера – 10 минут. Если вы решите использовать конечную точку для интерактивной разработки ETL-кода, дополнительно на основе почасового тарифа будет начисляться посекундная плата за время выделения конечной точки разработки. Минимальная продолжительность – 10 минут. Дополнительную информацию см. на странице цен.

Вопрос: Когда начинается и когда заканчивается начисление платы за задания AWS Glue?

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

К началу »


Вопрос: Как Amazon Glue обеспечивает безопасность данных?

Мы предлагаем шифрование на стороне сервера для хранимых данных и используем SSL для передачи данных.

Вопрос: Какие лимиты действуют для сервиса AWS Glue?

Подробную информацию о лимитах сервиса см. в документации.

Вопрос: В каких регионах доступен сервис AWS Glue?

AWS Glue в настоящее время доступен в регионах Восток США (Сев. Вирджиния), Восток США (Огайо) и Запад США (Орегон); в ближайшие месяцы сервис начнет работу еще в нескольких регионах. Дополнительную информацию см. на странице цен.

Вопрос: Сколько блоков обработки данных (DPU) выделяется конечной точке разработки?

По умолчанию конечной точке разработки выделяется 5 DPU. Конечную точку разработки можно настроить на использование от 2 до 5 DPU.

Вопрос: Как масштабируется размер и производительность ETL-заданий в AWS Glue?

Сервис позволяет задать количество блоков обработки данных (DPU), выделенных под определенное ETL-задание. Каждому ETL-заданию Glue необходимо не менее 2 DPU. По умолчанию AWS Glue выделяет 10 DPU для каждого ETL-задания.

Вопрос: Как можно осуществлять мониторинг исполнения заданий AWS Glue?

AWS Glue выводит состояние по каждому заданию и передает все уведомления в события Amazon CloudWatch. Чтобы быть в курсе сбоев и успешного завершения заданий, можно настроить уведомления сервиса SNS на основе действий CloudWatch.

К началу »