Ingestão, organização e catalogação de dados na AWS
Batch, streaming, Glue Studio, S3 e Data Catalog na prática
Este conjunto de questões foi construído para avaliar execução com critério técnico. O foco não é decorar nomes de serviços, e sim montar um fluxo completo: ingestão de dados de e-commerce, organização em Data Lake, escrita tratada em S3 e catalogação para consumo analítico.
Ao longo do caminho, você precisa lidar com decisões que aparecem em projetos reais de dados: quando usar batch, quando justificar streaming, por que converter para Parquet, por que particionar por data e como transformar estrutura física em metadado utilizável no Glue Data Catalog.
O diferencial está na evidência. Além de configurar o pipeline, você precisa provar resultado com prints do fluxo no Glue Studio, estrutura particionada no S3 e tabela catalogada com schema e metadados de negócio. Essa disciplina de validação é parte central da competência profissional em engenharia de dados na nuvem.
Em termos didáticos, o melhor jeito de estudar este material é pensar cada etapa em quatro perguntas: o que a questão quer, qual configuração atende ao pedido, como validar tecnicamente e qual erro comum pode comprometer a entrega.
Esta etapa valida se você sai da explicação abstrata e consegue estruturar um fluxo operacional no Glue Studio. O caminho esperado é um Visual ETL Job com nós de leitura, transformação e escrita, deixando o grafo legível e coerente com o objetivo da ingestão.
Para chegar na resposta correta, selecione um dataset de e-commerce, envie a origem bruta para o S3 e configure o job visual com source no S3, ao menos uma transformação simples e target também no S3. O ponto de avaliação não é apenas criar o job, mas mostrar o fluxo conectado com propósito técnico claro.
Checkpoint: o print mais forte desta etapa é o grafo completo do job, não a tela inicial do console. É isso que evidencia que o pipeline foi realmente desenhado e não apenas iniciado.
Como pensar esta etapa
Exemplo de origem bruta:
s3://raw-zone/ecommerce/sales/
Exemplo de colunas esperadas:
order_id, order_timestamp, customer_id, product_id, amount, statusAqui, a exigência é processamento em lote: ler um recorte fechado de dados de vendas, tratar tipos e escrever saída tratada. O formato Parquet é parte importante da resposta porque melhora leitura analítica e organiza melhor o armazenamento do que arquivos crus.
Não basta trocar extensão. A validação real passa por schema coerente antes da escrita: campos temporais como timestamp, campos monetários como decimal ou double e identificadores estáveis como string.
Checkpoint: a validação é dupla: execução concluída com sucesso no job e presença de arquivos Parquet no destino do S3.
Raciocínio mínimo para acertar o batch
Exemplo de validação conceitual do schema:
- order_timestamp -> timestamp
- amount -> decimal/double
- order_id -> string
Saída esperada:
arquivos .parquet no bucket de destinoEsta etapa demonstra entendimento de modelagem física de Data Lake. Particionar não é detalhe estético; impacta custo de leitura, rastreabilidade operacional e desempenho em consultas por período.
A resposta esperada é gravar em uma área clean-zone, em Parquet, com partições derivadas da data do evento de venda: ano, mês e dia. Isso mostra organização do dado com critério técnico e não apenas armazenamento bruto.
Checkpoint: o print deve mostrar a hierarquia de partições no S3 e os arquivos Parquet dentro delas.
Como decidir uma partição defensável
Exemplo de estrutura esperada no S3:
s3://clean-zone/ecommerce/sales/ano=2026/mes=03/dia=11/part-0000.parquetO objetivo aqui é mostrar raciocínio de arquitetura. A proposta mais sólida é usar Kinesis Data Streams para ingestão de eventos de clique e um job de streaming do Glue para consumir, transformar e gravar os dados no S3.
A defesa técnica precisa ir além de “streaming é mais rápido”. O ponto certo é explicar que batch processa conjuntos fechados em janelas definidas, enquanto streaming processa eventos continuamente, com menor latência.
Checkpoint: uma resposta boa conecta o tipo de evento à estratégia de processamento escolhida e deixa explícita a diferença entre fluxo contínuo e lote fechado.
Batch versus streaming sem resposta automática
Exemplo de evento:
{
"event_time": "2026-03-11T17:20:00Z",
"user_id": "u123",
"session_id": "s456",
"page": "/produto/789",
"action": "click_buy",
"device": "mobile"
}
Fluxo proposto:
site/app -> Kinesis Data Streams -> Glue Streaming Job -> S3Depois da escrita no S3, entra a etapa de catalogação. O crawler conecta o armazenamento físico do lake à representação lógica em tabela, permitindo descoberta de schema e partições no Glue Data Catalog.
A configuração esperada é apontar para a raiz lógica do dataset na clean-zone, vincular a um database do catálogo e executar a varredura. Apontar para subpastas isoladas pode gerar catálogo incompleto.
Checkpoint: a evidência correta é a tabela criada no catálogo com colunas e partições detectadas.
Como configurar o crawler sem se sabotar
Exemplo de database:
ecommerce_clean
Origem do crawler:
s3://clean-zone/ecommerce/sales/Esta etapa trata de significado, não apenas estrutura. O crawler descobre schema técnico, mas a camada de entendimento depende de revisão humana e de metadados de negócio bem escritos.
A resposta esperada é revisar nomes, tipos e partições da tabela no catálogo e adicionar descrições que expliquem o papel de cada coluna no processo de negócio.
Checkpoint: quando isso é feito, o dado deixa de ser apenas armazenado e passa a ser interpretável por outras pessoas do time com menos risco de erro semântico.
Como enriquecer o catálogo de forma útil
Exemplos de descrições de negócio:
- order_id: identificador único do pedido
- order_timestamp: data e hora de registro do pedido
- amount: valor total do pedido em BRL
- status: estado do pedido no processo comercial
- ano/mes/dia: campos usados para particionamento temporal