Amazon DEA-C01: Catalogação de Dados e Gerenciamento de Metadados — Guia de estudos
Faz parte do Amazon Data Engineer Associate DEA-C01 — Guia de estudos. Pratique com respostas verificadas no centro de exames da Amazon, ou faça testes cronometrados no ExamRoll.io.
Este domínio abrange a camada de metadados que torna os dados detectáveis, consultáveis e governáveis em uma plataforma de dados da AWS. A catalogação e o gerenciamento de metadados eficazes reduzem o atrito para a análise e garantem que os consumidores downstream possam encontrar esquemas, partições, políticas de acesso e linhagem. Os serviços da AWS nesta área — Glue Data Catalog, Glue Schema Registry, Lake Formation, integração com o Athena e DataBrew — fornecem ferramentas complementares para descoberta, evolução de esquema, governança e criação de perfis. Entender como esses serviços interagem, seus detalhes de configuração e modos de falha típicos é essencial para a confiabilidade operacional e a segurança.
Estrutura e operações do AWS Glue Data Catalog
O Glue Data Catalog é o repositório de metadados centralizado e regional para bancos de dados, tabelas, partições, conexões e classificadores definidos pelo usuário. As primitivas principais são:
- Database: um contêiner lógico (use o aws cli: aws glue create-database –database-input Name=analytics_db).
- Table: descreve um conjunto de dados (serde, formatos de entrada/saída, colunas, tableType EXTERNAL_TABLE). Você pode criar/atualizar pelo console, pela API do Glue ou pelo CloudFormation; por exemplo, aws glue create-table –database-name analytics_db –table-input file://table.json.
- Partition: mapeamento entre valores de chave de partição e prefixos do S3; as partições podem ser gerenciadas por crawlers do Glue (aws glue start-crawler –name my-crawler) ou adicionadas explicitamente (aws glue batch-create-partition).
Padrões operacionais:
- Crawlers para descoberta: agende crawlers para layouts do S3 em evolução, escolha a ordem dos classificadores (CSV/JSON/Parquet) e defina a política do crawler para atualizações incrementais.
- Controle programático: prefira as APIs do Glue ou o Lambda para adicionar partições quando você tem chegadas de dados no S3 orientadas a eventos, em vez de depender exclusivamente de crawlers.
- Replicação do catálogo: o Glue Data Catalog é regional. Para leituras multirregionais, considere executar crawlers em cada região, construir automação para replicar metadados ou usar padrões de vinculação de recursos; as decisões de design dependem do custo, das necessidades de consistência e dos padrões de consulta entre regiões.
Critérios de decisão:
- Use crawlers quando a detecção de esquema é necessária e os formatos de dados são heterogêneos; use a criação explícita de tabelas para esquemas rígidos e para conjuntos de dados previsíveis e de alto volume.
- Use batch-create-partition ou gerenciamento de partições baseado em Lambda para chegadas de arquivos pequenos com alta frequência para evitar a latência do crawler e reduzir os custos da API do Glue.
Descoberta e evolução de esquemas
O Schema Registry e o suporte a esquemas do Glue são compatíveis com Avro, JSON e Protobuf para streaming e contratos de longa duração entre produtores e consumidores. Principais capacidades:
- Registrar esquemas via console ou CLI (aws glue create-schema –schema-name orders –data-format AVRO –compatibility BACKWARD).
- Modos de compatibilidade: BACKWARD (consumidores podem ler dados novos), FORWARD (novos consumidores podem ler dados antigos) e FULL (ambos). Escolha com base nos padrões de implantação dos consumidores.
- Aplicação de esquema: para streaming, integre o registro com Kinesis Data Streams, MSK ou clientes Kafka e SDKs da AWS para serializar/desserializar com versões de esquema e validação embutidas.
Padrões práticos de configuração e evolução:
- Para Avro com muitos consumidores, use a compatibilidade BACKWARD para permitir que novos campos sejam adicionados com valores padrão; evite remoções que quebrem a compatibilidade.
- Para uma evolução de contrato estrita entre equipes, exija compatibilidade total (FULL) e condicione as alterações de esquema a uma etapa de CI que executa a validação do esquema.
- Para JSON, onde os campos são opcionais e o esquema é fluido, use a evolução de esquema com padrões permissivos, mas versione os metadados no catálogo para evitar quebras silenciosas nos consumidores.
Critérios de decisão:
- Use o Schema Registry para eventos de streaming e quando vários consumidores precisam de um esquema canônico. Use esquemas de tabela do Glue para conjuntos de dados em lote onde o formato (Parquet/ORC) fornece esquema na leitura (schema on read).
- Escolha o modo de compatibilidade avaliando se você controla todos os consumidores (pode coordenar o modo FORWARD) ou se precisa de alterações aditivas seguras (escolha BACKWARD).
Linhagem e governança de dados com o Lake Formation
O Lake Formation se baseia no Glue Data Catalog para fornecer controle de acesso refinado, auditoria e controles de linhagem. Recursos principais:
- LF-Tags: controles de acesso baseados em tags aplicados a bancos de dados, tabelas e colunas. Crie LF-Tags no Lake Formation, atribua pares de chave:valor e, em seguida, conceda permissão a principais (principals) do IAM por meio de concessões baseadas em tags, em vez de concessões baseadas em recursos.
- Controles em nível de coluna: use LF-Tags para mascarar ou restringir colunas; configure permissões em nível de coluna no console do Lake Formation ou com aws lakeformation grant-permissions.
- Linhagem e auditoria: habilite o CloudTrail e as métricas de job do Glue para capturar a linhagem de jobs de ETL; use os marcadores de trabalho (job bookmarks) do Glue e os metadados dos marcadores de trabalho no catálogo para rastrear os dados processados.
Padrões de configuração:
- Defina um conjunto pequeno e consistente de chaves de LF-Tag (por exemplo, sensitivity:public/private/PII) e automatize a aplicação de tags na criação de tabelas ou via crawlers do Glue usando a configuração do crawler ou código de pós-processamento.
- Delegue a administração por meio de funções de Administrador Delegado (Delegated Admin) do Lake Formation e conceda permissões do Lake Formation a equipes de análise, restringindo o acesso ao S3 no nível do IAM.
Critérios de decisão:
- Use o Lake Formation quando precisar de controles centralizados, em nível de coluna e baseados em tags para muitos consumidores e quando a governança/auditabilidade for obrigatória.
- Se suas necessidades de controle de acesso forem simples (em nível de bucket), as políticas do IAM+S3 podem ser suficientes; use o Lake Formation para controles refinados e integrados ao catálogo.
Integração do Athena com o Glue Data Catalog
O Athena depende do Glue Data Catalog para metadados. Pontos de integração e ajustes operacionais comuns:
- Gerenciamento de partições: O Athena lê as partições do catálogo do Glue. Quando novas partições do S3 são adicionadas, você deve atualizar o catálogo. Opções:
- Execute
undefined
a partir do Athena ou use
undefined
com esse SQL para atualizar as partições descobertas no local da tabela.
- Use
undefined
para adicionar partições programaticamente em eventos PUT do S3 (recomendado para fluxos orientados a eventos).
- Use a projeção de partição (partition projection) definindo propriedades da tabela como
undefined
,
undefined
,
undefined
e
undefined
— isso evita totalmente as buscas no Glue e é essencial para contagens de partições muito grandes.
- Trade-offs de desempenho de consulta e custo:
- A projeção de partição remove chamadas de API do Glue e reduz drasticamente a latência para muitas partições pequenas, mas exige uma nomeação de partição determinística.
undefined
é simples para chegadas ad-hoc ocasionais, mas pode ser lento para grandes conjuntos de dados.
Complemento do Glue DataBrew:
- Use o DataBrew para profiling e transformações no-code; aponte o DataBrew para tabelas do Glue Catalog ou caminhos do S3, execute jobs de profiling, crie recipes e publique a saída de volta no S3 ou como novas tabelas do Glue.
- Use o DataBrew para verificações de qualidade exploratórias e para gerar transformações para posterior produção em Glue ETL quando uma lógica Spark complexa for necessária.
Critérios de decisão:
- Use a projeção de partição quando as partições são numerosas e seguem um esquema previsível (baseado em data / numérico).
- Use atualizações programáticas de partição do Glue para ingestão orientada a eventos e quase em tempo real (near-real-time).
- Execute
undefined
apenas para backfills ocasionais ou quando a automação não estiver disponível.
Armadilhas Comuns e Critérios de Decisão
- Consultas do Athena falham porque as partições do Glue não são atualizadas após as chegadas no S3: evite depender exclusivamente de crawlers; execute
undefined
para atualizações ocasionais, invoque
undefined
em eventos do S3 ou implemente a projeção de partição para grandes conjuntos de partições previsíveis.
- Escolher o modo de compatibilidade errado do schema registry quebra os consumidores: selecione
undefined
para alterações aditivas e estabilidade do consumidor,
undefined
quando os produtores devem permanecer compatíveis com consumidores mais antigos e
undefined
quando ambas as direções devem ser seguras; valide as alterações em CI contra os esquemas do consumidor.
- Assumir que o Glue Data Catalog é global: o catálogo é regional. Para acesso entre regiões (cross-region), projete a replicação ou execute catálogos nas regiões de destino; não presuma que os metadados do Glue estão automaticamente disponíveis entre regiões.
- Conceder acesso S3 no IAM, mas não permissões do Lake Formation: O Athena e o Lake Formation aplicam permissões no nível do catálogo; sempre conceda permissões do Lake Formation (e LF-Tags, onde usadas) além de quaisquer políticas do IAM.
- Granularidade excessiva de partição: usar muitas partições minúsculas prejudica o planejamento da consulta e aumenta o overhead de metadados; prefira partições mais grosseiras (diárias vs. por minuto) ou use a projeção de partição.
- Negligenciar as permissões da role do DataBrew: os jobs do DataBrew exigem uma service role com permissões para o Glue e S3; garanta que a role tenha
undefined
, leitura/escrita no S3 e
undefined
se os conjuntos de dados estiverem criptografados.
Problema Prático: Cenário de Caso de Uso
A Acme Retail recebe arquivos de vendas por hora no S3 com partições de data/hora, e os analistas consultam os dados no Athena; após o carregamento, os usuários encontram falhas nas consultas e resultados desatualizados porque as partições não estão visíveis no Glue Data Catalog.
- Implemente uma notificação de evento PUT do S3 para invocar uma função Lambda que chama
undefined
para registrar a nova partição imediatamente. 2. Para dados mais antigos ou backfills, agende uma consulta do Athena que execute
undefined
; ou execute um
undefined
direcionado para intervalos conhecidos. 3. Se as partições seguirem uma convenção de nomenclatura estrita de data/hora, habilite a projeção de partição na tabela do Glue (defina
undefined
e as propriedades de ano/mês/dia/hora) para eliminar os custos de atualização do catálogo. 4. Adicione LF-Tags de sensibilidade à tabela e conceda permissões do Lake Formation aos analistas para que as consultas do Athena sejam permitidas e governadas. 5. Use o Glue DataBrew para fazer o profiling de novos arquivos horários em um ambiente de staging para detectar desvios de esquema (schema drift); se forem encontradas alterações de esquema, registre novas versões do esquema no Glue Schema Registry e valide a compatibilidade antes do lançamento em produção.
Justificativa: o registro automático de partição ou a projeção removem o atraso de metadados (metadata lag) que quebra as consultas do Athena; combinar isso com a governança do Lake Formation garante o acesso seguro, e o profiling orientado pelo DataBrew detecta o desvio de esquema (schema drift) precocemente, enquanto o Glue Schema Registry protege os consumidores de streaming e batch contra alterações de esquema incompatíveis.
← Armazenamento de Dados e Arquitetura de Lake · Todos os domínios · Transformação e Processamento de Dados →
Pratique estas questões → · Prática cronometrada no 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.
Passe no seu exame →