Skip to content

This project is destinate a study for create a environment Apache Airflow

Notifications You must be signed in to change notification settings

borgettas/apache-airflow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

📄 Documentação

Objetivo geral

Criar um ambiente do Apache Airflow containerizado, de fácil controle do ambiente e adição e remoção de DAGs.


Solução

Criado um ambiente com base no python e bash, conteinerizado via Docker, sendo utilizado uma imagem oficial do Apache Airflow airflow:2.5.0-python3.10.



🗂️ Estrutura do projeto

.
├── dags
│   └── origem-dados
│       └── script-with-dag.py
├── docker
│   ├── healthcheck.bash
│   └── startup.bash
├── Dockerfile
├── Makefile
└── README.md


Airflow

Diretório responsável por armazenar os scripts que contém as DAGs. Cada script estará sob o diretório, onde o nome será inspirado na fonte de dados(domínio, nome empresa, etc).

Docker

Diretório responsável por armazenar os scripts que tratarão alguns requisitos básicos para que o ambiente possa funcionar perfeitamente, alguns itens são:

  • Limpreza de possíveis arquivos antigos relacionados ao ambiente do Apache Airflow;
  • Ativação do banco de dados do Apache Airflow, armazenamento dos metadados;
  • Criação de um usuário com Role Admin para o acesso ao Airflow;
  • Inicialização do Scheduler e Webserver do Airflow;
  • Validação de disponibilidade da porta http://localhost:8080/ , esta que será utilizada para a UI do Airflow;


⛏️ Preparando o ambiente localmente

Requisitos

  • SO: Linux
  • Docker sudo apt install docker.io
  • Make sudo apt install make
  • Conexção de internet

*Ambiente construido no PopOS 22.04(baseado no Ubuntu)


⚠️ Importante saber

Todos os comandos necessários para controle do ambiente estão no arquivo Makefile.


🏁 Inicializando

*Os comandos abaixo precisam ser inseridos no terminal da pasta raiz do projeto.

  1. Construir o ambiente make run
  2. Acessar UI do Apache Airflow http://localhost:8080/
  3. Realizar o login, insira em Username admin e em Password admin

🪚 Executando

Seguindo o modelo de estrutura do projeto, quando adicionar um arquivo .py contendo uma DAG, automaticamente ela aparecerá na UI do Airflow em alguns segundos, isso ocorre pelo fato da existência de um Bind Mount que mantém esse armazenamento persistente e síncrono.


🔎 Extras

  1. Parando o ambiente(container) make stop
  2. Retomar ambiente make start
  3. Limpar ambiente(excluir imagens e container) make finish


About

This project is destinate a study for create a environment Apache Airflow

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published