Skip to content

🗣📖 Este repositório contém o código fonte utilizado para desenvolver uma plataforma de dados que seja possível orquestrar a ingestão de dados (extração e carregamento) de microdados estatístico do transporte aéreo disponibilizado pela ANAC (Agência nacional de Aviação Cívil) e disponibilizar para futuro tratamento e consumo no Azure Datalake Gen2.

Notifications You must be signed in to change notification settings

FelipeGaleao/anac-data-ingest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 

Repository files navigation

ANAC Data Ingest

🗣📖 Este repositório contém o código fonte utilizado para desenvolver uma plataforma de dados que permita a ingestão de dados (extração e carregamento) de microdados estatístico do transporte aéreo disponibilizado pela ANAC (Agência nacional de Aviação Cívil) em um Datalake, neste caso, Azure Datalake Storage, para que venha ser consumido e tratado futuramente.

https://i.imgur.com/30hqmcW.jpg

https://i0.wp.com/www.theseattledataguy.com/wp-content/uploads/2022/01/https___bucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com_public_images_7b1cc394-c7be-46fc-a772-b78d02299fbb_1620x620.png?resize=1024%2C392&ssl=1

Para o desenvolvimento dessa plataforma, me baseei no diagrama acima. A presente solução visa conseguir fazer a ingestão dos dados até a camada RAW para que seja possível a etapa de tratamento. Utilizando o Apache Spark e o notebook é possível, embora como os arquivos não estejam no mesmo provedor, você terá um tempo maior para baixar o arquivo e executar o processamento localmente. Uma das soluções então seria utilizar uma camada de storage on-promise também.

cluster-architecture.png

Uma das grandes sacadas que pude aplicar, é poder fazer com que o JupyterLab interaja com o Cluster de Spark (aqui criado com dois Workers). Isso faz com que outras pessoas que consigam utilizar também a plataforma.

Tecnologias utilizadas:

Para fazer com que o ambiente rodando Apache Airflow e Spark seja fácil de montar, recorremos ao Docker. As tecnologias utilizadas neste projeto foram:

  • Apache Airflow 2.2.5 (Utilizando CeleryExecutor)
  • Apache Spark 3.2.1 (Utilizando essa imagem)
  • Azure Datalake Gen 2 (Utilizando a subscrição "Azure for Students", thanksss Mr. Gates)
  • Jupyter Notebooks (Sim, já preparamos o terreno para analistas/cientistas, utilizando essa imagem)

📖 Motivação

Atualmente, possuo um computador parrudo, mas não possuo créditos para utilizar o Apache Databricks, e para aperfeiçoar os meus estudos em Data Plataform Engineer, bem como em Data Engineering, resolvi subir um pequeno cluster (com dois nós) de Apache Spark, bem como utilizar o Airflow/Jupyter replicando uma arquitetura de plataforma de dados moderna. De brinde, resolvi aproveitar o desconto da Azure for Students.

🔧🔨 Ferramentas necessárias para desenvolver

  • Git (Utilizado para versionamento do código)
  • Docker (Para montarmos subirmos o Apache Spark, Apache Airflow e Jupyter)
  • Subscrição da Azure para armazenarmos o Blob Storage.

🆘 Como subir o ambiente?

Para subir o ambiente de desenvolvimento é necessário ter as ferramentas instaladas, em seguida, gerar as chaves SSH para conseguir utilizar o GitHub (veja esse tutorial). Em seguida, siga os seguintes passos de execução.

Clonar o repositório na máquina

Execute o seguinte passo para fazer download do repositório em sua máquina.

git clone git@github.com:FelipeGaleao/anac-data-ingest.git .

Subir o container com o Apache Spark e Apache Airflow.

Navegue até a pasta do Apache Spark, e execute o seguinte comando. Após concluir e subir o container, navegue até a pasta do Apache Airflow e execute novamente o comando para subir o container do Apache Airflow.

docker-compose up -d --build

About

🗣📖 Este repositório contém o código fonte utilizado para desenvolver uma plataforma de dados que seja possível orquestrar a ingestão de dados (extração e carregamento) de microdados estatístico do transporte aéreo disponibilizado pela ANAC (Agência nacional de Aviação Cívil) e disponibilizar para futuro tratamento e consumo no Azure Datalake Gen2.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published