Amazon DEA-C01: Transformação e Processamento de Dados — 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 os serviços e padrões da AWS usados para limpar, transformar e preparar dados para analytics e ML em grande escala. Ele se concentra na seleção da computação e das ferramentas corretas (Glue, Lambda, EMR, DataBrew) com base no volume de dados, nos requisitos de latência e nas restrições de custo. Compreender os limites dos serviços, os parâmetros de configuração de jobs e como os formatos de dados e catálogos interagem é fundamental para construir pipelines confiáveis e incrementais.

Jobs ETL do AWS Glue (Spark e Python shell)

Os jobs Spark do Glue são a principal escolha para ETL distribuído e em grande escala: eles rodam em Apache Spark gerenciado pelo AWS Glue, usam o GlueContext e operam nos tipos DynamicFrame e Spark DataFrame. Configure pelo console ou pela CLI com o tipo de job “glueetl”, workerType (G.1X, G.2X, G.4X) e NumberOfWorkers; inicie com a CLI: aws glue start-job-run –job-name my-spark-job –arguments ‘–execution-class=STANDARD’. Use as APIs do DynamicFrame (create_dynamic_frame.from_options, apply_mapping) quando precisar de transformações com esquema flexível, transformações integradas (Relationalize, Unnest) e tratamento automático de dados semiestruturados; converta para um Spark DataFrame com dyf.toDF() quando precisar de Spark SQL, joins de maior desempenho ou UDFs personalizadas.

Os jobs Python shell do Glue usam o tipo de job “pythonshell” para scripts leves e tarefas de plano de controle. Eles são de uma única DPU (1 DPU) com paralelismo limitado e são ideais para manipulações de arquivos pequenos, atualizações de metadados ou orquestração. Configure via aws glue create-job –name my-pyjob –command ‘{“Name”:“pythonshell”,“PythonVersion”:“3”}’ e inicie com aws glue start-job-run. Observe que os jobs Python shell têm um limite de 1 DPU — use o Spark para grandes conjuntos de dados.

Os bookmarks de job do Glue permitem o processamento incremental ao rastrear objetos e partições do S3 processados anteriormente. Habilite os bookmarks na configuração do job ou ao iniciar as execuções: aws glue start-job-run –job-name my-job –job-bookmark-option job-bookmark-enable. Os bookmarks funcionam para fontes baseadas no S3 que usam conectores integrados; fontes JDBC não suportam bookmarks por padrão e exigem watermarking personalizado ou armazenamento de estado.

O Glue agora suporta a ExecutionClass FLEX para jobs não urgentes e com custo otimizado. Inicie com aws glue start-job-run –job-name my-job –execution-class FLEX para permitir que o Glue agende o job a um custo menor com SLAs de tempo de início mais flexíveis. Use FLEX para backfills em lote e cargas de trabalho não sensíveis à latência; use STANDARD para latência previsível.

Critérios de decisão — comparações rápidas:

AWS Lambda para transformações leves

O Lambda é ideal para transformações leves, orientadas a eventos e de baixa latência, acionadas diretamente pelo S3, Kinesis ou EventBridge. Os usos típicos incluem validação de arquivos, extração de metadados, conversão de JSON para CSV para arquivos pequenos ou processamento de registros em stream. Configure a memória e o timeout com aws lambda update-function-configuration –function-name myFunc –memory-size 2048 –timeout 300. A simultaneidade provisionada (Provisioned Concurrency) pode ser definida com aws lambda put-provisioned-concurrency-config para mitigar cold starts em pipelines de streaming sensíveis à latência.

Esteja ciente dos limites do Lambda para processamento de dados: execução máxima de 15 minutos, 10 GB de memória (10.240 MB) e apenas 512 MB de armazenamento efêmero em /tmp. Para o processamento de arquivos maiores, use processamento em cadeia (dividindo arquivos), faça o stage para o S3 e invoque um job do Glue ou EMR, ou use processamento multipartes com o AWS Step Functions. Use variáveis de ambiente para configurações pequenas e políticas de IAM role que concedam estritamente o menor privilégio.

Critérios de decisão — quando escolher o Lambda:

Amazon EMR para processamento em grande escala

O EMR é a principal opção para processamento de big data personalizável e em grande escala (Spark, Hadoop, Presto, Flink), onde controle no nível do cluster, ações de bootstrap personalizadas ou bibliotecas especializadas são necessárias. Crie clusters via CLI com aws emr create-cluster e escolha entre --instance-groups ou --instance-fleets. As frotas de instâncias (Instance Fleets) fornecem combinações flexíveis de tipos de instância e combinações de instâncias Spot/On-Demand; os grupos de instâncias (Instance Groups) são mais simples, com tamanho fixo.

Padrões de cluster EMR a serem considerados:

Exemplos de configuração:

Use o EMR quando precisar de controle total sobre os componentes do ecossistema Hadoop, scripts de bootstrap personalizados ou HDFS persistente para dados intermediários; caso contrário, o Glue Spark é mais simples para ETL Spark gerenciado que se integra com o Glue Data Catalog.

Glue DataBrew e transformações visuais

O Glue DataBrew é uma ferramenta visual, no-code/low-code, para criação de perfil (profiling), limpeza e transformação de dados, voltada para analistas e engenheiros de dados que trabalham de forma interativa. Crie um dataset a partir do S3 ou do Glue Catalog, construa uma receita (recipe) de transformações no console, visualize o resultado em uma amostra e execute jobs para aplicar as receitas em escala. Agende jobs do DataBrew ou execute-os via CLI com aws databrew start-job-run --name my-databrew-job.

O DataBrew é otimizado para tarefas de preparação de dados como padronização, desduplicação, conversão de tipos e transformações no nível da coluna com funções integradas. Ele se integra com o Glue Catalog e grava as saídas no S3. Escolha o DataBrew quando usuários de negócio precisam de limpeza de dados self-service e criação rápida de perfil; para lógica de transformação pesada, joins complexos ou conjuntos de dados muito grandes, prefira o Glue Spark ou o EMR.

Comparação de transformações visuais vs. baseadas em código:

Armadilhas Comuns e Critérios de Decisão

Problema Prático: Cenário de Caso de Uso

A AcmeRetail processa arquivos Parquet de clickstream noturnos em uma tabela unificada de atividade do cliente e deseja processamento incremental para evitar reprocessar meses de dados, mantendo os custos baixos para preenchimentos retroativos (backfills) não urgentes.

  1. Use um layout particionado no S3 (year=/month=/day=) e registre o dataset no Glue Data Catalog.
  2. Crie um job do Glue Spark (glueetl) que lê DynamicFrame.from_catalog para flexibilidade de esquema, aplica mapeamentos, converte para DataFrame para joins complexos e grava o Parquet particionado de volta no S3.
  3. Habilite os bookmarks de job do Glue (job-bookmark-enable) para as execuções noturnas para processar apenas as partições novas; para fontes de enriquecimento JDBC, implemente colunas de marca d’água (watermark) persistidas no DynamoDB para rastrear o timestamp máximo processado.
  4. Para execuções noturnas de rotina, use ExecutionClass=STANDARD; para reprocessamento histórico não urgente, submeta as execuções com --execution-class FLEX para economizar custos.
  5. Monitore com métricas do CloudWatch e defina alarmes para falhas de job; para escala muito grande ou bibliotecas personalizadas, considere clusters transitórios do EMR que gravam resultados intermediários no S3 e encerram automaticamente.

Justificativa: Esta abordagem aproveita o Spark gerenciado do Glue para transformações escaláveis e os DynamicFrames para entradas semiestruturadas, usa bookmarks de job para processamento incremental do S3 e usa o FLEX para reduzir custos de preenchimentos retroativos — preservando custo, confiabilidade e simplicidade operacional.


Catalogação de Dados e Gerenciamento de Metadados · Todos os domínios · Orquestração de Dados e Gerenciamento de Fluxo de Trabalho

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 →

Navegar Amazon →

Related guides

Acesso completo

Uma assinatura. Todos os exames.

Todo plano desbloqueia pesquisa ilimitada de respostas, testes práticos, explicações de AI e a biblioteca completa de recursos — em mais de 20 idiomas.

Mensal
24.87
Just €0.83/day
Tudo incluído:
  • Pesquisa ilimitada de respostas
  • Testes práticos ilimitados
  • Explicações com AI
  • Biblioteca completa de recursos
  • Mais de 20 idiomas
  • Atualizações semanais de conteúdo
  • Recompensas e indicações
  • Suporte prioritário
Iniciar teste grátis

*Não é necessário cartão de crédito

Melhor custo-benefício
12 meses
179.87
Just €0.49/daySave 40%
Tudo incluído:
  • Pesquisa ilimitada de respostas
  • Testes práticos ilimitados
  • Explicações com AI
  • Biblioteca completa de recursos
  • Mais de 20 idiomas
  • Atualizações semanais de conteúdo
  • Recompensas e indicações
  • Suporte prioritário
Iniciar teste grátis

*Não é necessário cartão de crédito

✓ Plano gratuito incluído · ✓ Cancele a qualquer momento · ✓ Todos os planos desbloqueiam o produto completo