Este projeto automatiza o espelhamento mensal da base de dados do SICAR (Sistema Nacional de Cadastro Ambiental Rural). Ele deleta os dados locais defasados, realiza o download dos dados atualizados de todo o Brasil e os converte para o formato Apache Parquet, otimizando o armazenamento e a performance de consulta.
- Agendamento Inteligente: Execução automática no dia 01 de cada mês às 00:01 via
APScheduler. - Gestão de Armazenamento: Limpeza automática do diretório de dados antes de cada novo ciclo de download.
- Conversão Otimizada: Transforma o conjunto de dados bruto em arquivos
.parquet. - Ambiente Isolado: Execução via Docker utilizando
uvpara gestão ultrarrápida de dependências Python.
- Linguagem: Python 3.12
- Gestor de Pacotes: uv
- Agendador: APScheduler
- Containerização: Docker & Docker Compose
- Formato de Saída: Apache Parquet
CAR-SCHEDULER/
├── docker/
│ └── Dockerfile # Configuração da imagem com suporte a cron/python
├── src/
│ ├── main.py # Ponto de entrada e lógica do agendador
│ └── scripts/
│ └── hello_world.py # Script principal de extração e conversão
├── pyproject.toml # Definições de dependências (uv)
└── compose.yml # Orquestração do container
- Docker instalado
- Docker Compose instalado
- Clone o repositório:
git clone https://github.com/seu-usuario/car-scheduler.git
cd car-scheduler
- Suba o serviço:
docker compose up -d --build
- Verifique se o agendador está ativo:
docker compose logs -f
O sistema está configurado para o seguinte gatilho:
- Frequência: Mensal
- Dia: 01
- Horário: 00:01
- Fuso Horário: UTC (conforme configuração do container)