Общие вопросы

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

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

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

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

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

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

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

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

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

AWS Glue обеспечивает встроенную поддержку данных, хранящихся в Amazon Aurora, Amazon RDS для MySQL, Amazon RDS для Oracle, Amazon RDS для PostgreSQL, Amazon RDS для SQL Server, Amazon DynamoDBAmazon 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. Кроме того, можно написать специальный код на Scala или Python и импортировать пользовательские библиотеки и файлы Jar в ETL‑задания AWS Glue, чтобы получить доступ к источникам данных, не имеющим встроенной поддержки в сервисе AWS 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. Определения таблиц, добавленные в каталог данных AWS Glue, сразу становятся доступными для ETL‑операций и запросов из сервисов Amazon Athena, Amazon EMR и Amazon Redshift Spectrum, что позволяет достичь унифицированного представления данных в этих сервисах.

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

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

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

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

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

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

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

Нет. Каталог данных AWS Glue совместим с Apache Hive Metastore. Можно указать адрес сервера для каталога данных AWS 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)

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

Можно использовать Scala или Python.

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

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

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

Да. Можно импортировать собственные библиотеки Python и файлы Jar в свое ETL‑задание AWS Glue. Дополнительную информацию см. в документации по ссылке.

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

Да. Можно написать код самостоятельно с помощью ETL‑библиотеки AWS Glue или создать код на Scala или Python и загрузить его в ETL‑задание AWS Glue. Дополнительную информацию см. в документации по ссылке.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Возможности интеграции продукта AWS

Вопрос: В каких случаях стоит использовать 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 работают на базе Scala или Python. Если требуется использовать программное ядро, отличное от 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 Data Analytics?

Amazon Kinesis Data 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 по регионам см. в таблице регионов AWS.

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

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

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

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

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

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

Подробнее о ценах на AWS Glue.

Перейти на страницу цен
Готовы приступить к разработке?
Начать работу с AWS Glue
Есть вопросы?
Свяжитесь с нами