Открыть сервис

AWS Glue

AWS Glue — это полностью управляемый сервис интеграции данных (ETL, ELT), предоставляемый Amazon Web Services (AWS). Он предназначен для подготовки, очистки, преобразования и перемещения данных между различными источниками и хранилищами, включая базы данных, озёра данных и хранилища данных. Сервис автоматизирует большую часть рутинной работы, связанной с обнаружением, каталогизацией и трансформацией данных, позволяя пользователям сосредоточиться на логике обработки, а не на управлении инфраструктурой.

История и развитие

AWS Glue был анонсирован на конференции AWS re:Invent в ноябре 2014 года и стал общедоступным в августе 2015 года. Первоначально сервис позиционировался как средство для упрощения ETL-процессов (Extract, Transform, Load) в облачной среде. Ключевым нововведением стала интеграция с AWS Glue Data Catalog — централизованным репозиторием метаданных, который стал обязательным компонентом для многих других сервисов AWS, таких как Amazon Athena, Amazon Redshift Spectrum и Amazon EMR.

В последующие годы сервис значительно расширил свои возможности. В 2017 году была добавлена поддержка потоковой передачи данных (streaming ETL) через интеграцию с Amazon Kinesis и Apache Kafka. В 2019 году появилась версия AWS Glue Studioграфический интерфейс для визуального построения ETL-конвейеров без написания кода. В 2020 году была запущена AWS Glue DataBrew — визуальный инструмент для очистки и нормализации данных, а также AWS Glue Elastic Views — сервис для создания материализованных представлений из нескольких источников. В 2022 году была представлена AWS Glue for Ray — бессерверная среда для распределённой обработки данных на Python с использованием библиотеки Ray.

Архитектура и ключевые компоненты

AWS Glue Data Catalog

Data Catalog — это центральное хранилище метаданных, которое содержит информацию о схемах, расположении, форматах и свойствах данных. Он автоматически заполняется с помощью Crawler — программного компонента, который сканирует источники данных (S3, JDBC-совместимые базы данных, DynamoDB, Kafka и др.), извлекает схему и регистрирует её в каталоге. Data Catalog интегрирован с другими сервисами AWS, что позволяет им использовать единый набор метаданных.

ETL-движок

Основой сервиса является бессерверный ETL-движок, который выполняет скрипты на Python или Scala (с использованием Apache Spark). Пользователь может писать код вручную, использовать визуальный редактор AWS Glue Studio или генерировать шаблонный код с помощью AWS Glue Code Generator. Движок автоматически управляет ресурсами: выделяет, масштабирует и освобождает кластеры Spark в зависимости от объёма обрабатываемых данных.

AWS Glue Studio

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

AWS Glue DataBrew

DataBrew — это визуальный инструмент для очистки и нормализации данных, ориентированный на аналитиков и специалистов по данным, не владеющих программированием. Он предоставляет более 250 предварительно заданных преобразований (удаление дубликатов, фильтрация, изменение типов данных, заполнение пропусков и т.д.). DataBrew автоматически генерирует код на Python, который может быть выполнен в среде Glue.

AWS Glue for Ray

Glue for Ray — это бессерверная среда для выполнения Python-скриптов с использованием библиотеки Ray. В отличие от Spark, Ray ориентирован на задачи, требующие интенсивных вычислений на Python (например, машинное обучение, обработка изображений, сложные численные расчёты). Он позволяет легко масштабировать Python-код на несколько узлов без необходимости глубокого понимания распределённых систем.

AWS Glue Elastic Views

Elastic Views — сервис для создания материализованных представлений (materialized views) из нескольких источников данных (например, DynamoDB, Aurora, S3). Он автоматически поддерживает актуальность представления, обрабатывая изменения в исходных данных. Elastic Views упрощает создание единого представления данных, разрозненных по разным системам.

Классификация и виды

AWS Glue можно классифицировать по функциональному назначению:

  • Пакетная обработка (Batch ETL): Традиционный режим, при котором данные обрабатываются по расписанию или по запросу. Подходит для периодической загрузки данных из операционных систем в хранилище.
  • Потоковая обработка (Streaming ETL): Обработка данных в реальном времени по мере их поступления из потоковых источников (Kinesis, Kafka). Позволяет создавать конвейеры для аналитики в реальном времени.
  • Интерактивная обработка (Interactive Sessions): Режим, при котором пользователь может запускать сессии Jupyter Notebook или Zeppelin для интерактивного исследования и преобразования данных без необходимости развёртывания полноценного ETL-задания.
  • Визуальная обработка (DataBrew): Ориентирована на пользователей без навыков программирования, предоставляя графический интерфейс для очистки и нормализации данных.

Применение и значение

AWS Glue широко применяется для построения современных архитектур данных, особенно в рамках концепции озёр данных (Data Lake) и озёр-хранилищ (Lake House). Основные сценарии использования:

  • Построение озёр данных: Автоматическое обнаружение и каталогизация данных, хранящихся в Amazon S3, и их преобразование в оптимизированные форматы (Parquet, ORC) для эффективного анализа.
  • Интеграция данных: Объединение данных из различных источников (реляционные базы данных, NoSQL, файлы, SaaS-приложения) в единое хранилище для бизнес-аналитики.
  • Подготовка данных для машинного обучения: Очистка, нормализация и преобразование данных для обучения моделей в Amazon SageMaker.
  • Миграция данных: Перенос данных из локальных баз данных (например, Oracle, SQL Server) в облачные хранилища AWS (Redshift, S3, RDS).
  • Обработка потоковых данных: Анализ логов, событий IoT, данных сенсоров в реальном времени для мониторинга и оповещения.

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

Интересные факты

  • AWS Glue является одним из наиболее часто используемых сервисов AWS для построения озёр данных, наряду с Amazon Athena и Amazon Redshift Spectrum.
  • Data Catalog, создаваемый Glue, может быть использован для автоматического обнаружения и регистрации схем данных, что значительно упрощает работу аналитиков и инженеров данных.
  • Сервис поддерживает интеграцию с более чем 30 различными источниками данных, включая популярные базы данных, файловые системы и облачные сервисы.
  • AWS Glue Studio позволяет визуализировать ETL-конвейеры, что облегчает их понимание и отладку для команд, не имеющих опыта работы с Apache Spark.
  • Glue for Ray, представленный в 2022 году, расширяет возможности сервиса за пределы классического ETL, позволяя выполнять сложные Python-задачи, такие как обучение моделей машинного обучения и обработка изображений.

Критика

Несмотря на широкое распространение, AWS Glue имеет ряд недостатков. Критики отмечают, что сервис может быть дорогим при обработке больших объёмов данных, особенно если задания выполняются часто или имеют длительное время выполнения. Также существует мнение, что управление конфигурацией и отладка скриптов Spark могут быть сложными для пользователей, не имеющих глубоких знаний в области распределённых вычислений. Некоторые пользователи указывают на ограниченную гибкость в настройке параметров кластера Spark по сравнению с самостоятельным развёртыванием. Кроме того, сервис является проприетарным, что может привести к привязке к вендору (vendor lock-in), если организация решит мигрировать на другую облачную платформу.

Источники

  • Документация AWS Glue (AWS Documentation)
  • Официальный блог AWS (AWS News Blog)
  • Книга «Data Engineering with AWS» (Gareth Eagar)
  • Статья «AWS Glue: A Comprehensive Guide» (Towards Data Science)

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →