🗣📖 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.
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.
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.
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)
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.
- 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.
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.
Execute o seguinte passo para fazer download do repositório em sua máquina.
git clone git@github.com:FelipeGaleao/anac-data-ingest.git .
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