Este repositório é destinado à orquestração de aplicações Spark utilizando a ferramenta Apache Airflow e ao armazenamento de arquivos no AWS S3. O objetivo é implementar uma arquitetura de dados baseada no modelo Lakehouse (camadas landing, bronze, silver e gold) com transformações feitas em PySpark.
- Tecnologias Utilizadas
- Requisitos e Configurações
- Execução do Projeto
- Arquitetura Lakehouse
- Padronização de Commits
- Python: Versão 3.12
- PySpark: Versão 3.5.3
- Apache Airflow: Versão 2.5.3
- Amazon AWS S3: Armazenamento de dados
- Ubuntu Linux: Ambiente operacional utilizado
-
Clonar o repositório:
git clone git@github.com:seuusuario/ProjetoAirflowSpark.git cd ProjetoAirflowSpark
-
Criar e ativar um ambiente virtual:
- Linux/MacOS:
python3 -m venv venv source venv/bin/activate
- Windows:
python -m venv venv venv\Scripts\activate
- Linux/MacOS:
-
Instalar os pacotes necessários:
pip install -r requirements.txt
-
Configurar o Apache Airflow:
Caso seja a primeira execução do Airflow na sua máquina, inicialize o banco de dados e crie o usuário administrador:
airflow db init airflow users create \ --username admin \ --firstname Admin \ --lastname User \ --role Admin \ --email admin@email.com \ --password sua_senha
-
Configurar as DAGs no Airflow:
Edite o arquivo de configuração
airflow.cfg
para alterar o caminho padrão das DAGs:dags_folder = /caminho/para/seu/repositório/dags
-
Configurar as credenciais AWS no Airflow:
- Acesse o menu Admin > Connections.
- Encontre a conexão
aws_default
e configure os seguintes campos:- Access Key: Sua chave de acesso.
- Secret Key: Sua chave secreta.
- Adicione também as seguintes variáveis em Admin > Variables:
AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY
AWS_SESSION_TOKEN
(caso necessário).
-
Iniciar o Apache Airflow:
Abra dois terminais:
- No primeiro terminal, execute o servidor web:
airflow webserver --port 8080
- No segundo terminal, execute o scheduler:
airflow scheduler
- Ou utilize a opção:
airflow standalone
- No primeiro terminal, execute o servidor web:
-
Acessar a interface do Airflow:
Abra o navegador e acesse: http://localhost:8080.
Efetue o login com as credenciais criadas anteriormente. -
Executar a DAG:
- Procure pela DAG desejada na interface.
- Clique no botão Trigger DAG para iniciar a execução.
- Acompanhe o progresso das tarefas pela visualização gráfica.
A arquitetura Lakehouse segue o padrão Medallion e é dividida em três camadas principais:
- Landing: Dados brutos extraídos de sistemas externos.
- Bronze: Dados transformados para um formato otimizado (Parquet).
- Silver: Dados limpos e com colunas renomeadas para facilitar análises.
- Gold: Dados agregados e preparados para análises mais profundas, como relatórios e dashboards.
Para manter a organização do histórico de commits, utilize a seguinte convenção:
- feat: Para novos recursos.
- fix: Para correção de bugs.
- refac: Para refatoramento de código.
- docs: Para alterações na documentação (como este README).
- test: Para modificações em testes.
Exemplo de commit:
feat: adicionar transformação da camada gold no Lakehouse
Este repositório não inclui o diretório de instalação do Spark (spark-3.5.3-bin-hadoop3
). Certifique-se de instalar esta versão antes de executar o projeto. O Spark pode ser baixado aqui.