Amazon DEA-C01: Трансформация и обработка данных — Руководство по подготовке

Часть Amazon Data Engineer Associate DEA-C01 — Руководство по подготовке. Практикуйтесь с проверенными ответами в центре экзаменов Amazon, или пройдите тесты на время на ExamRoll.io.

Этот раздел охватывает сервисы и паттерны AWS, используемые для очистки, преобразования и подготовки данных для аналитики и машинного обучения в больших масштабах. Основное внимание уделяется выбору подходящих вычислительных ресурсов и инструментов (Glue, Lambda, EMR, DataBrew) в зависимости от объема данных, требований к задержке и ограничений по стоимости. Понимание ограничений сервисов, параметров конфигурации заданий и взаимодействия форматов данных с каталогами является ключевым для построения надежных инкрементальных конвейеров данных.

ETL-задания AWS Glue (Spark и Python shell)

Задания Glue Spark — это основной выбор для крупномасштабных, распределенных ETL-процессов: они выполняются на управляемом AWS Glue кластере Apache Spark, используют GlueContext и оперируют типами DynamicFrame и Spark DataFrame. Настраиваются через консоль или CLI с указанием типа задания (job type) «glueetl», типа воркера (workerType) (G.1X, G.2X, G.4X) и количества воркеров (NumberOfWorkers); запускаются через CLI:

undefined

. Используйте API DynamicFrame (create_dynamic_frame.from_options, apply_mapping), когда вам нужны гибкие к схеме преобразования, встроенные трансформации (Relationalize, Unnest) и автоматическая обработка полуструктурированных данных; преобразуйте в Spark DataFrame с помощью dyf.toDF(), когда вам нужен Spark SQL, более производительные соединения или пользовательские функции (UDF).

Задания Glue Python shell используют тип задания «pythonshell» для легковесных скриптов и задач уровня управления (control-plane). Они используют один DPU (1 DPU) с ограниченным параллелизмом и лучше всего подходят для манипуляций с небольшими файлами, обновления метаданных или оркестрации. Настраиваются с помощью

undefined

и запускаются командой

undefined

. Обратите внимание, что задания Python shell ограничены одним DPU — для больших наборов данных используйте Spark.

Закладки (bookmarks) в заданиях Glue обеспечивают инкрементальную обработку, отслеживая ранее обработанные объекты и партиции в S3. Включите закладки в конфигурации задания или при его запуске:

undefined

. Закладки работают для источников на базе S3 при использовании встроенных коннекторов; источники JDBC по умолчанию не поддерживают закладки и требуют реализации кастомных водяных знаков (watermarking) или хранения состояния.

Glue теперь поддерживает ExecutionClass FLEX для оптимизированных по стоимости, несрочных заданий. Запустите задание с

undefined

, чтобы позволить Glue запланировать его выполнение по более низкой цене с менее строгими SLA по времени запуска. Используйте FLEX для пакетных дозагрузок данных (backfills) и рабочих нагрузок, нечувствительных к задержкам; используйте STANDARD для предсказуемой задержки.

Критерии выбора — краткое сравнение:

AWS Lambda для легковесных преобразований

Lambda идеально подходит для управляемых событиями, низколатентных, легковесных преобразований, которые напрямую запускаются событиями в S3, Kinesis или EventBridge. Типичные сценарии использования включают валидацию файлов, извлечение метаданных, конвертацию JSON в CSV для небольших файлов или потоковую обработку записей. Настройте память и таймаут с помощью

undefined

. Можно настроить Provisioned Concurrency с помощью

undefined

, чтобы смягчить проблему «холодных стартов» для чувствительных к задержкам потоковых конвейеров.

Помните об ограничениях Lambda при обработке данных: максимальное время выполнения 15 минут, 10 ГБ памяти (10 240 МБ) и всего 512 МБ временного хранилища в /tmp. Для обработки файлов большего размера используйте цепочки вызовов (разделяя файлы), выгружайте данные в S3 и запускайте задание Glue или EMR, либо используйте многоэтапную обработку с помощью AWS Step Functions. Используйте переменные окружения для небольшой конфигурации и политики IAM-ролей, которые строго следуют принципу наименьших привилегий.

Критерии выбора — когда использовать Lambda:

Amazon EMR для крупномасштабной обработки

EMR — это основной выбор для настраиваемой, крупномасштабной обработки больших данных (Spark, Hadoop, Presto, Flink), когда требуется контроль на уровне кластера, пользовательские начальные загрузочные действия (bootstrap actions) или специализированные библиотеки. Создавайте кластеры через CLI с помощью

undefined

и выбирайте либо

undefined

, либо

undefined

. Флоты инстансов (instance fleets) предоставляют гибкое сочетание типов инстансов и комбинации спотовых/по требованию инстансов; группы инстансов (instance groups) — это более простые группы фиксированного размера.

Паттерны использования кластеров EMR:

undefined

и передают шаги (steps), чтобы кластер завершил работу после их выполнения. Хорошо подходит для контроля затрат, но эфемерное состояние HDFS и локальное состояние будут потеряны при завершении работы.

Примеры конфигурации:

undefined

undefined

с распределением OnDemand/Spot и несколькими типами инстансов для отказоустойчивости и оптимизации затрат.

Используйте EMR, когда вам нужен полный контроль над компонентами экосистемы Hadoop, пользовательские bootstrap-скрипты или постоянное хранилище HDFS для промежуточных данных; в противном случае Glue Spark проще для управляемых ETL-процессов на Spark, которые интегрируются с Glue Data Catalog.

Glue DataBrew и визуальные преобразования

Glue DataBrew — это визуальный инструмент без кода/с минимальным кодом для профилирования, очистки и преобразования данных, предназначенный для аналитиков данных и инженеров, работающих в интерактивном режиме. Создайте набор данных из S3 или Glue Catalog, соберите «рецепт» преобразований в консоли, просмотрите результат на выборке и запустите задания для применения рецептов в большом масштабе. Планируйте задания DataBrew или запускайте их через CLI с помощью

undefined

.

DataBrew оптимизирован для задач подготовки данных, таких как стандартизация, дедупликация, преобразование типов и преобразования на уровне столбцов с помощью встроенных функций. Он интегрируется с Glue Catalog и записывает результаты в S3. Выбирайте DataBrew, когда бизнес-пользователям требуется самостоятельная очистка и быстрое профилирование; для сложной логики преобразований, комплексных соединений или очень больших наборов данных предпочтительнее использовать Glue Spark или EMR.

Сравнение визуальных и кодовых преобразований:

Распространенные ошибки и критерии выбора

undefined

/

undefined

.

Практическая задача: Пример использования

Компания AcmeRetail обрабатывает ночные файлы Parquet с данными о кликах (clickstream) в единую таблицу активности клиентов и хочет внедрить инкрементальную обработку, чтобы избежать повторной обработки данных за месяцы, сохраняя при этом низкие затраты на несрочные дозагрузки данных (backfills).

  1. Используйте секционированную структуру в S3 (year=/month=/day=) и зарегистрируйте набор данных в Glue Data Catalog.
  2. Создайте задание Glue Spark (

undefined

), которое читает данные с помощью

undefined

для гибкости схемы, применяет сопоставления, преобразует в DataFrame для сложных соединений и записывает секционированный Parquet обратно в S3. 3. Включите закладки заданий Glue (

undefined

) для ночных запусков, чтобы обрабатывать только новые разделы; для источников обогащения данных из JDBC реализуйте столбцы «водяных знаков», сохраняемые в DynamoDB, для отслеживания максимальной обработанной временной метки. 4. Для рутинных ночных запусков используйте

undefined

; для несрочной повторной обработки исторических данных запускайте задания с

undefined

для экономии средств. 5. Отслеживайте с помощью метрик CloudWatch и настраивайте оповещения о сбоях заданий; для очень больших масштабов или использования пользовательских библиотек рассмотрите возможность использования кратковременных кластеров EMR, которые записывают промежуточные результаты в S3 и автоматически завершают работу.

Обоснование: Этот подход использует управляемый Spark в Glue для масштабируемых преобразований и DynamicFrames для полуструктурированных входных данных, применяет закладки заданий для инкрементальной обработки в S3 и использует FLEX для снижения затрат на дозагрузки, обеспечивая экономичность, надежность и простоту эксплуатации.


Каталогизация данных и управление метаданными · Все домены · Оркестрация данных и управление рабочими процессами

Отработать эти вопросы → · Тесты на время на ExamRoll.io →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

Сдайте экзамен →

Просмотреть Amazon →

Related guides

Все включено

Одна подписка. Каждый экзамен.

Каждый план открывает неограниченный поиск ответов, практические тесты, объяснения AI и полную библиотеку ресурсов — на более чем 20 языках.

Ежемесячно
24.87
Just €0.83/day
Все включено:
  • Неограниченный поиск ответов
  • Неограниченные практические тесты
  • Объяснения на основе AI
  • Полная библиотека ресурсов
  • 20+ языков
  • Еженедельные обновления контента
  • Награды и рефералы
  • Приоритетная поддержка
Начать бесплатную пробную версию

Кредитная карта не требуется*

Лучшая цена
12 месяцев
179.87
Just €0.49/daySave 40%
Все включено:
  • Неограниченный поиск ответов
  • Неограниченные практические тесты
  • Объяснения на основе AI
  • Полная библиотека ресурсов
  • 20+ языков
  • Еженедельные обновления контента
  • Награды и рефералы
  • Приоритетная поддержка
Начать бесплатную пробную версию

Кредитная карта не требуется*

✓ Включен бесплатный план · ✓ Отмена в любое время · ✓ Все планы открывают полный продукт