Amazon DEA-C01: Каталогизация данных и управление метаданными — Руководство по подготовке
Часть Amazon Data Engineer Associate DEA-C01 — Руководство по подготовке. Практикуйтесь с проверенными ответами в центре экзаменов Amazon, или пройдите тесты на время на ExamRoll.io.
Этот домен охватывает слой метаданных, который делает данные обнаруживаемыми, запрашиваемыми и управляемыми в рамках платформы данных AWS. Эффективная каталогизация и управление метаданными упрощают аналитику и гарантируют, что последующие потребители смогут найти схемы, секции, политики доступа и происхождение данных. Сервисы AWS в этой области — Glue Data Catalog, Glue Schema Registry, Lake Formation, интеграция с Athena и DataBrew — предоставляют взаимодополняющие инструменты для обнаружения, эволюции схем, управления и профилирования. Понимание того, как эти сервисы взаимодействуют, их деталей конфигурации и типичных режимов отказа, имеет решающее значение для эксплуатационной надежности и безопасности.
Структура и операции AWS Glue Data Catalog
Glue Data Catalog — это региональный централизованный репозиторий метаданных для баз данных, таблиц, секций, подключений и определяемых пользователем классификаторов. Основные примитивы:
- База данных: логический контейнер (используйте aws cli: aws glue create-database –database-input Name=analytics_db).
- Таблица: описывает набор данных (serde, форматы ввода/вывода, столбцы, tableType EXTERNAL_TABLE). Вы можете создавать/обновлять ее через консоль, Glue API или CloudFormation; например, aws glue create-table –database-name analytics_db –table-input file://table.json.
- Секция (partition): сопоставление между значениями ключей секционирования и префиксами S3; секциями могут управлять краулеры Glue (aws glue start-crawler –name my-crawler) или их можно добавлять явно (aws glue batch-create-partition).
Операционные шаблоны:
- Краулеры для обнаружения: планируйте запуск краулеров для изменяющейся структуры в S3, выбирайте порядок классификаторов (CSV/JSON/Parquet) и устанавливайте политику краулера для инкрементальных обновлений.
- Программное управление: предпочитайте использовать Glue API или Lambda для добавления секций при поступлении данных в S3, управляемом событиями, вместо того чтобы полагаться исключительно на краулеры.
- Репликация каталога: Glue Data Catalog является региональным. Для чтения из нескольких регионов рассмотрите запуск краулеров в каждом регионе, создание автоматизации для репликации метаданных или использование шаблонов связывания ресурсов; решения о проектировании зависят от стоимости, требований к согласованности и шаблонов межрегиональных запросов.
Критерии принятия решений:
- Используйте краулеры, когда требуется обнаружение схемы и форматы данных гетерогенны; используйте явное создание таблиц для строгих схем и для больших, предсказуемых наборов данных.
- Используйте batch-create-partition или управление секциями на основе Lambda при частом поступлении небольших файлов, чтобы избежать задержек краулера и сократить затраты на Glue API.
Обнаружение и эволюция схемы
Schema Registry и схемы Glue поддерживают Avro, JSON и Protobuf для потоковой передачи данных и долгосрочных контрактов между производителями и потребителями. Ключевые возможности:
- Регистрация схем через консоль или CLI (aws glue create-schema –schema-name orders –data-format AVRO –compatibility BACKWARD).
- Режимы совместимости: BACKWARD (потребители могут читать новые данные), FORWARD (новые потребители могут читать старые данные) и FULL (оба). Выбирайте в зависимости от шаблонов развертывания потребителей.
- Принудительное применение схемы: для потоковой передачи интегрируйте реестр с Kinesis Data Streams, MSK или клиентами Kafka и AWS SDK для сериализации/десериализации со встроенными версиями схемы и валидацией.
Практические шаблоны конфигурации и эволюции:
- Для Avro с множеством потребителей используйте совместимость BACKWARD, чтобы разрешить добавление новых полей со значениями по умолчанию; избегайте ломающих удалений.
- Для строгой эволюции контракта между командами требуйте полную совместимость (FULL) и контролируйте изменения схемы через шаг CI, который выполняет валидацию схемы.
- Для JSON, где поля необязательны, а схема гибкая, используйте эволюцию схемы с гибкими значениями по умолчанию, но с версионированием метаданных в каталоге для предотвращения незаметных сбоев у потребителей.
Критерии принятия решений:
- Используйте Schema Registry для потоковых событий и когда нескольким потребителям нужна каноническая схема. Используйте схемы таблиц Glue для пакетных наборов данных, где формат (Parquet/ORC) предоставляет схему при чтении (schema on read).
- Выбирайте режим совместимости, оценивая, контролируете ли вы всех потребителей (можете скоординировать переход на FORWARD) или вам нужны безопасные аддитивные изменения (выбирайте BACKWARD).
Происхождение данных и управление (governance) с помощью Lake Formation
Lake Formation основывается на Glue Data Catalog для обеспечения гранулярного контроля доступа, аудита и контроля происхождения данных. Основные возможности:
- LF-Tags: контроль доступа на основе тегов, применяемый к базам данных, таблицам и столбцам. Создавайте LF-Tags в Lake Formation, присваивайте пары ключ:значение, а затем предоставляйте разрешения IAM-субъектам через разрешения на основе тегов, а не на основе ресурсов.
- Контроль на уровне столбцов: используйте LF-Tags для маскировки или ограничения доступа к столбцам; настраивайте разрешения на уровне столбцов в консоли Lake Formation или с помощью aws lakeformation grant-permissions.
- Происхождение и аудит: включите CloudTrail и метрики заданий Glue для отслеживания происхождения данных в ETL-заданиях; используйте закладки заданий Glue (job bookmarks) и их метаданные в каталоге для отслеживания обработанных данных.
Шаблоны конфигурации:
- Определите небольшой, согласованный набор ключей LF-Tag (например, sensitivity:public/private/PII) и автоматизируйте присвоение тегов при создании таблиц или через краулеры Glue, используя конфигурацию краулера или код постобработки.
- Делегируйте администрирование через роли Delegated Admin в Lake Formation и предоставляйте разрешения Lake Formation командам аналитиков, ограничивая при этом доступ к S3 на уровне IAM.
Критерии принятия решений:
- Используйте Lake Formation, когда вам нужен централизованный контроль на уровне столбцов и на основе тегов для множества потребителей, а также когда управление (governance) и аудит являются обязательными.
- Если ваши потребности в контроле доступа просты (на уровне бакета), может быть достаточно политик IAM и S3; используйте Lake Formation для гранулярного контроля, интегрированного с каталогом.
Интеграция Athena и каталога Glue
Athena зависит от Glue Data Catalog в части метаданных. Распространенные точки интеграции и операционные настройки:
- Управление партициями: Athena считывает партиции из каталога Glue. При добавлении новых партиций в S3 необходимо обновить каталог. Варианты:
- Выполнить
undefined
из Athena или использовать
undefined
с этим SQL-запросом для обновления партиций, обнаруженных в местоположении таблицы.
- Использовать
undefined
для программного добавления партиций по событиям S3 PUT (рекомендуется для событийно-ориентированных процессов).
- Использовать проекцию партиций, задав свойства таблицы, такие как
undefined
,
undefined
,
undefined
и
undefined
— это полностью исключает обращения к Glue и крайне важно при очень большом количестве партиций.
- Компромиссы между производительностью запросов и затратами:
- Проекция партиций устраняет вызовы Glue API и значительно снижает задержку для множества мелких партиций, но требует детерминированного именования партиций.
undefined
прост в использовании для редких нерегулярных поступлений данных, но может быть медленным для больших наборов данных.
Дополнение в виде Glue DataBrew:
- Используйте DataBrew для профилирования и преобразований без написания кода; укажите DataBrew на таблицы Glue Catalog или пути в S3, запускайте задания профилирования, создавайте “рецепты” (recipes) и публикуйте результат обратно в S3 или в виде новых таблиц Glue.
- Используйте DataBrew для исследовательских проверок качества и для генерации преобразований с последующим внедрением в продуктивную среду в Glue ETL, когда требуется сложная логика Spark.
Критерии принятия решений:
- Используйте проекцию партиций, когда партиций много и они следуют предсказуемой схеме (на основе даты / числовой).
- Используйте программные обновления партиций Glue для событийно-ориентированной загрузки данных в режиме, близком к реальному времени.
- Выполняйте
undefined
только для редких бэкфиллов или когда автоматизация недоступна.
Распространенные ошибки и критерии принятия решений
- Запросы Athena завершаются сбоем, потому что партиции Glue не обновляются после поступления данных в S3: избегайте зависимости исключительно от краулеров; либо выполняйте
undefined
для периодических обновлений, вызывайте
undefined
по событиям S3, либо реализуйте проекцию партиций для больших наборов с предсказуемыми партициями.
- Выбор неправильного режима совместимости реестра схем нарушает работу потребителей: выбирайте
undefined
для аддитивных изменений и стабильности потребителей,
undefined
, когда производители должны оставаться совместимыми со старыми потребителями, и
undefined
, когда оба направления должны быть безопасными; проверяйте изменения в CI на соответствие схемам потребителей.
- Предположение, что Glue Data Catalog является глобальным: каталог является региональным. Для межрегионального доступа спроектируйте репликацию или запускайте каталоги в целевых регионах; не думайте, что метаданные Glue автоматически доступны во всех регионах.
- Предоставление доступа IAM к S3, но не разрешений Lake Formation: Athena и Lake Formation применяют разрешения на уровне каталога; всегда предоставляйте разрешения Lake Formation (и LF-Tags, где они используются) в дополнение к любым политикам IAM.
- Избыточная гранулярность партиций: использование слишком большого количества крошечных партиций ухудшает планирование запросов и увеличивает накладные расходы на метаданные; предпочитайте более крупные партиции (ежедневные вместо ежеминутных) или используйте проекцию партиций.
- Игнорирование разрешений роли DataBrew: заданиям DataBrew требуется сервисная роль с разрешениями для Glue и S3; убедитесь, что у роли есть права
undefined
, на чтение/запись в S3 и
undefined
, если наборы данных зашифрованы.
Практическая задача: сценарий использования
Компания Acme Retail ежечасно получает файлы с данными о продажах в S3 с партициями по дате/часу, и аналитики запрашивают эти данные в Athena; после загрузки пользователи сталкиваются со сбоями запросов и устаревшими результатами, поскольку партиции не видны в Glue Data Catalog.
- Реализуйте уведомление о событии S3 PUT для вызова функции Lambda, которая вызывает
undefined
для немедленной регистрации новой партиции. 2. Для старых данных или бэкфиллов запланируйте выполнение запроса Athena, который запускает
undefined
; или выполните целевой вызов
undefined
для известных диапазонов. 3. Если партиции следуют строгому соглашению об именовании по дате/часу, включите проекцию партиций для таблицы Glue (установите
undefined
и определите свойства year/month/day/hour), чтобы исключить затраты на обновление каталога. 4. Добавьте к таблице LF-Tags для обозначения конфиденциальности и предоставьте аналитикам разрешения Lake Formation, чтобы запросы Athena были разрешены и управляемы. 5. Используйте Glue DataBrew для профилирования новых ежечасных файлов в staging-среде, чтобы отлавливать дрейф схемы; при обнаружении изменений схемы зарегистрируйте новые версии в Glue Schema Registry и проверьте совместимость перед развертыванием в продуктивной среде.
Обоснование: автоматическая регистрация партиций или их проекция устраняет задержку метаданных, которая приводит к сбоям запросов Athena; сочетание этого с управлением доступом через Lake Formation обеспечивает безопасный доступ, а профилирование с помощью DataBrew позволяет на раннем этапе выявлять дрейф схемы, в то время как Glue Schema Registry защищает потоковых и пакетных потребителей от несовместимых изменений схемы.
← Хранение данных и архитектура озера данных · Все домены · Трансформация и обработка данных →
Отработать эти вопросы → · Тесты на время на 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.
Сдайте экзамен →