A transformação de dados é como uma linha de produção industrial que converte matérias-primas em produtos acabados. Os dados brutos coletados de diversas fontes frequentemente não estão prontos para análise — podem precisar de limpeza, reformatação, enriquecimento com outros dados ou conversão para uma estrutura mais eficiente. ETL (Extrair, Transformar, Carregar) é o termo para todo esse processo. No exame AWS DEA-C01, as perguntas se concentram em "qual ferramenta de transformação escolher, qual formato de arquivo usar e como projetar o processamento distribuído."
Comparação de Serviços ETL — Qual Ferramenta Se Encaixa em Qual Situação?
A AWS oferece múltiplos serviços para transformação de dados. Entender no que cada um é bom é a chave para responder corretamente às perguntas do exame.
| Serviço | Características | Melhor situação | |---------|----------------|----------------| | AWS Glue ETL | Completamente serverless, baseado em Apache Spark, auto-scaling | Transformação em lote de dados estruturados/semiestruturados, mover dados entre S3/Redshift/RDS | | Amazon EMR | Gerencia seu próprio cluster Hadoop/Spark | Processamento personalizado em larga escala, pipelines complexos, otimização de custos com Spot | | AWS Lambda | Completamente serverless, orientado a eventos, máx. 15 minutos | Transformações simples, dados pequenos, jobs acionados por eventos | | Amazon Redshift | Transformação baseada em SQL | Transformar e agregar dados já carregados no Redshift |
Regras de decisão: Construindo um novo pipeline ETL serverless? Use Glue ETL. Tem uma carga de trabalho Hadoop/Spark existente ou precisa de controle fino do cluster? Use EMR. Transformação simples acionada por upload de arquivo ou chamada de API? Use Lambda. Quer transformar dados que já estão dentro do Redshift? Use SQL do Redshift.
AWS Glue ETL — A Fábrica de Processamento de Dados Serverless
AWS Glue ETL é um serviço serverless que permite realizar transformações de dados em larga escala sem gerenciar nenhuma infraestrutura. Pense nele como um chef (Glue) que recebe os ingredientes (dados brutos), segue uma receita (script ETL) para cozinhar o prato (transformar) e depois o serve (entrega para S3, Redshift, etc.). Você nunca precisa comprar ou manter a cozinha.
O que é um DynamicFrame?
Um DynamicFrame é a unidade básica de dados no Glue ETL, similar ao DataFrame do Apache Spark mas mais inteligente para lidar com dados do mundo real. Se alguns registros têm um campo "idade" e outros não, ou se o mesmo campo tem tipos inconsistentes entre linhas, o DynamicFrame lida com isso automaticamente sem lançar erros. Isso o torna ideal para trabalhar com dados imperfeitos e inconsistentes que vêm de sistemas de produção reais.
Glue Job Bookmarks
Bookmarks são a forma do Glue de "lembrar onde parou." Imagine que novos arquivos de log chegam ao S3 toda noite. Sem bookmarks, cada execução reprocessaria todos os arquivos desde o início. Com bookmarks habilitados, o Glue rastreia quais arquivos e registros já processou e os pula na próxima execução — como um marcador em um livro dizendo em qual página começar.
Três tipos de job:
Jobs Spark: Ideais para processamento em lote em larga escala. Distribuídos em múltiplos nós, capazes de processar terabytes de dados. Jobs de Streaming: Processam dados em tempo real do Kinesis ou MSK em micro-lotes. Jobs Python Shell: Scripts Python simples para tarefas leves, conjuntos de dados pequenos ou chamadas de API.
Glue Studio
Um editor visual de arrastar e soltar para construir pipelines ETL sem escrever código. Você conecta fontes de dados, etapas de transformação e destinos visualmente, e o Glue Studio gera o código PySpark automaticamente. Isso torna a criação de pipelines ETL acessível a não desenvolvedores.
Seleção de Formato de Arquivo — Em Qual Contêiner Seus Dados Devem Viver?
A escolha do formato de arquivo tem um impacto importante no desempenho e no custo. Pense em escolher contêineres para alimentos: o contêiner certo mantém a comida fresca por mais tempo, é mais fácil de transportar e ocupa menos espaço. O formato de dados certo lê mais rápido, custa menos para consultar e comprime melhor.
| Formato | Estrutura | Compressão | Caso de uso | |---------|-----------|-----------|------------| | CSV | Baseado em linhas, texto | Baixa | Dados brutos legíveis por humanos, pequena escala | | JSON | Baseado em linhas, texto | Baixa | Respostas de API, dados de estrutura aninhada | | Parquet | Baseado em colunas (columnar), binário | Alta | Consultas analíticas (Athena, Redshift Spectrum, Spark) | | ORC | Baseado em colunas, binário | Alta | Cargas de trabalho Apache Hive, EMR | | Avro | Baseado em linhas, binário | Média | Streaming, esquemas que mudam frequentemente |
Por que formatos colunares (Parquet/ORC) são superiores para análise
Imagine procurar um assunto em um livro. Em vez de ler cada página, você vai ao índice e salta diretamente para a página certa. Os formatos colunares funcionam da mesma forma. As consultas analíticas normalmente precisam de apenas algumas colunas de potencialmente centenas. O Parquet armazena dados coluna por coluna, então lê apenas as colunas revenue e date — pulando todas as outras completamente. Em tabelas com centenas de colunas, isso reduz dramaticamente tanto o tempo de consulta quanto o custo.
Por que Avro é forte para streaming
O Avro armazena o esquema junto com os dados. Quando o esquema muda — um novo campo é adicionado, um antigo é removido — você não precisa reescrever os registros existentes. Os registros antigos continuam funcionando corretamente com o novo esquema. Essa capacidade de evolução do esquema torna o Avro a escolha natural para fluxos de dados em tempo real onde a estrutura dos dados recebidos pode mudar ao longo do tempo.
Regras de seleção de formato: Consultas analíticas com Athena ou Redshift Spectrum são o objetivo principal → Parquet Cargas de trabalho Apache Hive ou EMR → ORC Dados de streaming ou esquema que muda frequentemente → Avro Recebeu arquivos CSV e quer consultá-los eficientemente com Athena → Converta primeiro para Parquet com Glue
Amazon EMR — Você Dirige o Cluster de Processamento Distribuído
Amazon EMR (Elastic MapReduce) é um serviço que executa frameworks de processamento distribuído como Apache Hadoop e Apache Spark em um cluster de instâncias EC2 na AWS. Se o Glue ETL é um "táxi" (serverless, sem necessidade de dirigir), o EMR é mais como um "carro próprio" — você tem controle total mas também o gerencia você mesmo.
Os três papéis do grupo de instâncias do EMR
Nó Mestre (Master Node): O cérebro do cluster. Distribui o trabalho e coordena o cluster. Sempre há exatamente um nó mestre, e se ele falhar todo o cluster falha — use instâncias On-Demand aqui. Nó Core (Core Node): Lida com o processamento real de dados e armazenamento HDFS. Se um nó core desaparecer, os dados armazenados nele podem ser perdidos — use instâncias On-Demand aqui também. Nó Tarefa (Task Node): Lida apenas com processamento, sem armazenamento HDFS. Como os nós tarefa não armazenam dados, podem ser adicionados ou removidos a qualquer momento sem perda de dados. Isso os torna perfeitos para Spot Instances (capacidade AWS não utilizada disponível com desconto), reduzindo significativamente os custos.
Estratégia de Spot Instances:
| Tipo de nó | Instância recomendada | Razão | |-----------|----------------------|-------| | Mestre | On-Demand | Essencial para estabilidade do cluster | | Core | On-Demand | Prevenir perda de dados | | Tarefa | Spot Instances | Sem armazenamento de dados, ótimo para economizar custos |
EMR Serverless
Uma forma de executar jobs Spark ou Hive sem configurar um cluster. Similar ao Glue ETL no aspecto serverless, mas a diferença principal é que o EMR Serverless executa código puro de Spark/Hive como está, enquanto o Glue ETL fornece sua própria camada de API DynamicFrame.
Resumo dos Pontos-Chave para o Exame
| Palavra-chave | Serviço/Conceito | |--------------|-----------------| | ETL serverless, baseado em Spark, auto-scaling | AWS Glue ETL | | Processamento Hadoop/Spark personalizado em larga escala | Amazon EMR | | Rastrear dados já processados, prevenir reprocessamento | Glue Bookmarks | | Tratamento automático de incompatibilidades de esquema | Glue DynamicFrame | | Construir pipeline ETL sem código | Glue Studio | | Formato colunar otimizado para consultas analíticas | Parquet | | Formato colunar para cargas de trabalho Hive/EMR | ORC | | Dados de streaming, esquema que muda frequentemente | Avro | | Redução de custos do EMR | Usar Spot Instances nos nós Tarefa | | Job ETL excedendo o limite de 15 minutos do Lambda | Mudar para Glue ou EMR |
Converter CSV para Parquet é um tema recorrente do exame DEA-C01 porque melhora dramaticamente tanto a velocidade quanto o custo das consultas do Athena.