Este projeto tem como objetivo criar um pipeline completo de dados para gerenciar, analisar e visualizar informações relacionadas ao aluguel de imóveis. A arquitetura desenvolvida permite desde a extração de dados do nosso banco de origem até o processamento, armazenamento e visualização em dashboards interativos.
O foco principal é oferecer uma solução escalável e eficiente, utilizando ferramentas modernas para integrar grandes volumes de dados, garantindo a confiabilidade, segurança e acessibilidade das informações. O projeto cobre todas as etapas da engenharia de dados: ingestão, transformação, análise e apresentação, com ênfase em boas práticas e tecnologias amplamente utilizadas no mercado.
Entre os casos de uso contemplados, estão:
- Análise de mercado imobiliário para identificar tendências de preço e demanda.
- Monitoramento de locações e contratos por meio de relatórios dinâmicos.
- Insights sobre desempenho e ocupação de imóveis para proprietários e administradoras.
A solução foi desenvolvida pensando em flexibilidade e expansibilidade, permitindo futuras integrações e escalabilidade para lidar com novos cenários e dados.
Utilizamos a ferramenta de modelagem de dados MySQL Workbench para criação do modelo físico do banco de dados, para posterior exportação dos scripts DDL das tabelas e relacionamentos.
As informações sobre as tabelas e índices foram documentadas na planilha template imóvel.
Essas instruções permitirão que você obtenha uma cópia do projeto em operação na sua máquina local para fins de desenvolvimento e teste.
Consulte Instalação. para saber como implantar o projeto.
Para executar o projeto, você precisa ter os seguintes softwares instalados na sua máquina:
- Docker: Ferramenta para criar e gerenciar containers.
- Docker Compose: Ferramenta para definir e rodar aplicações com múltiplos containers.
docker volume create portainer_data2
docker run -d -p 8000:8000 -p 9443:9443 --name portainer2 --restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data2:/data \
portainer/portainer-ce:2.21.4
docker compose -f docker-compose.yaml up -d
docker compose run airflow-webserver airflow users create --role Admin \
--username airflow --email airflow@example.com \
--firstname airflow --lastname airflow --password airflow
Application | URL | Credentials |
---|---|---|
Airflow | http://localhost:8085 | User: airflow Pass: airflow |
MinIO | http://localhost:9001 | User: airflow Pass: airflowairflow |
Postgres | Server/Database: localhost:5432/airflow | User: airflow Pass: airflow |
Spark (Master) | http://localhost:8081 |
As seguintes ferramentas foram utilizadas no projeto:
- PostgreSQL - Banco de dados relacional
- Apache Airflow - Gerenciador de workflows
- Apache Spark - Processamento distribuído de dados
- MinIO - Armazenamento de objetos compatível com S3
Ferramentas auxiliares:
- Python - Linguagem de programação para desenvolvimento de scripts e análises
- Docker - Containerização para ambientes de desenvolvimento consistentes
- Delta Lake - Armazenamento de dados transacional para lakes
Se desejar publicar suas modificações em um repositório remoto no GitHub, siga estes passos:
- Crie um novo repositório vazio no GitHub.
- No terminal, navegue até o diretório raiz do projeto.
- Execute os seguintes comandos:
git remote set-url origin https://github.com/seu-usuario/nome-do-novo-repositorio.git
git add .
git commit -m "Adicionar minhas modificações"
git push -u origin master
Isso configurará o repositório remoto e enviará suas modificações para lá.
- Erik Schneider - (https://github.com/marchingbeagle)
- Gabriel William - https://github.com/GabrielWDuarte
- Dauane Neves - https://github.com/dauaneneves
- Gabriel Rodrigues - https://github.com/gabrieldorodrigues
Você também pode ver a lista de todos os colaboradores que participaram deste projeto.
Este projeto está sob a licença (sua licença) - veja o arquivo LICENSE para detalhes.
https://github.com/andrejnevesjr/airflow-spark-minio-postgres.git