Skip to content

Construção de um pipeline de dados escalável na AWS utilzando jobs em Spark com orquestração no Apache Airflow.

Notifications You must be signed in to change notification settings

wca01/Projeto_Aplicado_mba_xpe22

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation

Projeto Aplicado (MBA - XPEducação 2022)

Projeto Aplicado para o curso de MBA de Engenharia de Dados da XPEducação

Resumo:

Construção de um pipeline de dados escalável na AWS utilzando jobs em Spark com orquestração no Apache Airflow.

Para nosso Projeto Aplicado idealizamos um cenário fictício onde a empresa trabalha com um pipeline que executa cargas de trabalho em Spark no cluster EMR (ambiente AWS), onde também possui o seu datalake. As tarefas são executadas sob demanda e trabalham com uma faixa de tempo por vez.

image

OBS.: Estes são dados comerciais reais, foram anonimizados e as referências às empresas e parceiros no texto da revisão foram substituídas pelos nomes das principais casas de Game of Thrones.Os dados trabalhados se encontram em https://www.kaggle.com/datasets/olistbr/brazilian-ecommerce?select=olist_order_items_dataset.csv![image](https://github.com/wca01/Projeto_Aplicado_mba_xpe22/assets/105304356/aec18eef-8325-47f0-9498-07abd2878015)

Problema

Os dados são recebidos e lidos, processados por um cluster EMR através de tarefas em Spark, depois enviados aos buckets para serem depois acessados pela áreas interessadas. A pipeline ETL segue o diagrama abaixo. Temos um ambiente com tarefas Spark rodando dentro de um cluster EMR e carregando dados em buckets no ambiente AWS. image

Alguns pontos onde é possível fazer melhorias:

  • Performance
  • Eficiência de custo
  • Tolerância a falhas

Solução

O pipeline proposto com o cluster Kubernetes executa tarefas do Spark e é orquestrado pelo Airflow. Os dados são extraidos da landing zone, tratados e enviados para a zona de entrega ao fim do processo. Adicionamos um crawler para enviar dados específicos para um database e preencher uma tabela que poderá ser consultada no Athena utilizando linguagem SQL.

image

Para a parte de código das tarefas Spark, configuramos um repositório Github onde s desenvolvedores poderão editar e administrar as DAGs.

  • Criação de buckets no Datalake via Terraform

    image

  • Script eksctl para criação do Cluster EKS

    image

  • Deploy do Airflow no Kubernetes

    image

  • Código YAML para configurar o Github

    image

  • Pod do Airflow no cluster Kubernetes

    image

  • Código pyspark para o Airflow

    image

  • DAG

    image

  • Airflow executando os jobs

image

  • Pipeline final

    image

Pipeline completo, utilizando o EKS, Airflow, tarefas Spark, DAGs remotas no Github e consulta de dados no Athena.

About

Construção de um pipeline de dados escalável na AWS utilzando jobs em Spark com orquestração no Apache Airflow.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages