Um script modular e configurável para processar arquivos CNPJ da Receita Federal do Brasil. Processamento inteligente de 50+ milhões de empresas com suporte a múltiplos bancos de dados.
- Arquitetura Modular: Separação clara de responsabilidades com camada de abstração de banco de dados
- Multi-Banco: PostgreSQL totalmente suportado, com placeholders para MySQL, BigQuery e SQLite
- Processamento Inteligente: Adaptação automática da estratégia baseada em recursos disponíveis
- Processamento Incremental: Rastreamento de arquivos processados para evitar duplicações
- Performance Otimizada: Operações bulk eficientes com tratamento de conflitos
- Configuração Simples: Setup interativo + variáveis de ambiente
O assistente irá:
- Detectar recursos do sistema
- Configurar conexão com banco de dados
- Instalar dependências necessárias
- Criar configuração otimizada
O sistema detecta automaticamente a estratégia ideal:
| <8GB | memory_constrained | Processamento em chunks pequenos |
| 8-32GB | high_memory | Batches maiores, cache otimizado |
| >32GB | distributed | Processamento paralelo máximo |
| BATCH_SIZE | 50000 | Tamanho do lote para operações |
| MAX_MEMORY_PERCENT | 80 | Uso máximo de memória |
| TEMP_DIR | ./temp | Diretório temporário |
| DB_HOST | localhost | Host PostgreSQL |
| DB_PORT | 5432 | Porta PostgreSQL |
| DB_NAME | cnpj | Nome do banco |
Este é um job batch que processa dados CNPJ e finaliza. A Receita Federal atualiza os dados mensalmente, então agende a execução mensal.
Linux/Mac (cron):
Windows (Task Scheduler):
- Criar tarefa agendada mensal
- Comando: docker-compose up
Kubernetes:
GitHub Actions:
Algumas plataformas (PaaS) esperam que containers permaneçam em execução. Se necessário:
- Descoberta: Localiza diretório mais recente de dados CNPJ
- Download: Baixa e extrai arquivos ZIP com retry automático
- Processamento: Parse dos CSVs com estratégia adaptativa
- Carga: Bulk upsert otimizado no banco de dados
- Rastreamento: Marca arquivos como processados
| CNAECSV | cnaes | Classificações de atividade econômica |
| EMPRECSV | empresas | Registros de empresas |
| ESTABELECSV | estabelecimentos | Dados de estabelecimentos |
| MOTICSV | motivos_situacao_cadastral | Motivos de situação cadastral |
| MUNICCSV | municipios | Códigos de municípios |
| NATJUCSV | naturezas_juridicas | Naturezas jurídicas |
| PAISCSV | paises | Códigos de países |
| QUALSCSV | qualificacoes_socios | Qualificações de sócios |
| SIMPLECSV | dados_simples | Dados do Simples Nacional |
| SOCIOCSV | socios | Quadro societário |
Tempos típicos de processamento:
| VPS básico | 4GB | ~8 horas |
| Servidor padrão | 16GB | ~2 horas |
| Servidor high-end | 64GB+ | ~1 hora |
- Modular: Cada componente com responsabilidade única
- Resiliente: Tratamento de erros e retry automático
- Eficiente: Uso otimizado de memória e operações bulk
- Adaptativo: Ajuste automático aos recursos disponíveis
- Criar adapter em src/database/seu_banco.py
- Implementar métodos abstratos de DatabaseAdapter
- Registrar no factory em src/database/factory.py
- Criar arquivo de requirements em requirements/seu_banco.txt
A configurable, modular data pipeline for Brazilian CNPJ registry files. Smart processing of 50+ million companies with multi-database support.
- Modular Architecture: Clean separation with database abstraction
- Multi-Database: Full PostgreSQL support, placeholders for others
- Smart Processing: Auto-adapts to available resources
- Incremental: Tracks processed files
- Optimized: Efficient bulk operations
- Easy Config: Interactive setup + env vars
This is a batch job that processes CNPJ data and exits. Schedule it to run monthly.
Linux/Mac (cron):
Other platforms: Use your platform's scheduler (Task Scheduler, Kubernetes CronJob, GitHub Actions, etc.)
If your platform requires containers to stay running:
Set DATABASE_BACKEND and PROCESSING_STRATEGY in .env file.
Factory pattern for database adapters, intelligent resource detection, chunked processing for large files.
Processes 60M+ records in 1-12 hours depending on system resources.
Made with engineering excellence for the Brazilian tech community.
.png)

