O projeto consiste em um sistema de geração de DAGs (Directed Acyclic Graphs) para o Apache Airflow, uma plataforma de orquestração de fluxo de trabalho. A geração das DAGs é feita usando modelos Jinja2 e configurações YAML.
- Geração Dinâmica de DAGs: Crie DAGs dinamicamente com base em modelos Jinja2 e configurações YAML.
- Estrutura de Diretórios Flexível: Lida facilmente com uma estrutura flexível de diretórios, permitindo a organização de arquivos em diferentes subdiretórios.
- Configuração Centralizada: As configurações das DAGs são definidas em arquivos YAML para uma configuração centralizada e fácil personalização.
- Geração Automatizada: Pode ser integrado a pipelines de CI/CD para automatizar a geração de DAGs em diferentes ambientes.
- DAG Generator: Classe responsável por gerar as DAGs com base nos modelos Jinja2 e configurações YAML fornecidos.
- Templates Jinja2: Definem a estrutura das DAGs, incluindo tarefas, dependências e outros parâmetros configuráveis.
- Configurações YAML: Contêm as configurações específicas de cada DAG, como nome, cronograma de execução e parâmetros de tarefas.
- CLI (Command Line Interface): Fornece uma interface de linha de comando para interagir com o sistema de geração de DAGs. O arquivo cli.py contém os comandos disponíveis para gerar DAGs.
├── app/
│ ├── configs/
│ │ ├── config_dag_exemple_1.yaml
│ │ ├── config_dag_exemple_2.yaml
│ ├── dags/
│ │ ├── dag_template_exemple_1.py
│ │ ├── dag_template_exemple_2.py
│ ├── templates/
│ │ ├── dag_template.jinja2
│ ├── __init__.py/
│ ├── cli.py/
│ ├── dag_generator/
├── .gitignore
├── .python-version
├── poetry.lock
├── pyproject.toml
├── requirements.txt
└── README.md
Certifique-se de ter os seguintes pré-requisitos instalados:
Para a instalação do projeto, siga as instruções abaixo:
-
Clone o repositório:
git clone https://github.com/marcus-moura/airflow-dag-generator-jinja.git
-
Navegue até o diretório do projeto recém-clonado:
cd airflow-dag-generator-jinja
Se você preferir usar o pip
para instalar as dependências, siga estas etapas:
-
Criação e Ativação do Ambiente Virtual Python:
-
No Linux:
python3 -m venv venv source venv/bin/activate
-
No Windows:
python3 -m venv venv .\venv\Scripts\activate
-
-
Instalação dos Pacotes Python Necessários:
Execute os seguintes comandos para instalar os pacotes listados nos arquivos
requirements.txt
pip install -r requirements.txt
Se você preferir usar o gerenciador de pacotes Poetry, siga estas etapas:
-
Instalação das Dependências com Poetry:
Instale as dependências do projeto usando Poetry:
poetry install
-
Ativação do Ambiente Virtual:
Ative o ambiente virtual criado pelo Poetry:
poetry shell
- Defina seus Templates: Crie templates Jinja2 para suas DAGs com as tarefas e dependências desejadas.
- Configure suas DAGs: Especifique as configurações de cada DAG em arquivos YAML no diretório
configs
.
Para executar o gerador de DAGs acesse o diretório app
e execute a CLI.
O arquivo cli.py
fornece uma interface de linha de comando para interagir com o gerador de DAGs. Aqui estão alguns comandos disponíveis:
- Gerar todas DAGs: Use o comando
python -m cli all
para gerar todas as DAGs disponíveis no diretórioconfigs
com base nos templates Jinja2. - Gerar DAG Específica: Use o comando
python -m cli {config_file_name}.yaml
para gerar uma dag com base em um arquivo de configuração específico.
Certifique-se de ter todas as dependências instaladas e as configurações corretamente definidas antes de usar os comandos CLI.
Se você tiver dúvidas ou sugestões, entre em contato comigo em [email protected].