[Open Source] CNPJ Data Pipeline – 50 M de CNPJs no seu PostgreSQL sem dor de cabeça 🚀
Você já abriu os dumps da Receita e viu 85 GB de CSV em ISO-8859-1?
Eu também. Depois de travar uma VPS de 4 GB tentando importar linha por linha, escrevi um pipeline que faz o trabalho sujo por nós — e decidi liberar o código.
O que ele entrega
- Arquitetura modular — separa download, parsing e banco; fácil estender.
- PostgreSQL de primeira classe — placeholders para MySQL/BigQuery já no código.
- Estratégia inteligente — detecta sua RAM e escolhe
memory_constrained
,high_memory
oudistributed
. - Incremental por design — baixa só o que mudou, não reprocessa ZIP já marcado.
- Bulk-upsert via COPY — 10 × mais rápido que INSERT tradicional em nossos testes.
- Setup sem fricção —
python setup.py
cria um.env
otimizado; ou roda tudo em Docker.
Benchmarks de campo
Máquina | RAM | Tempo p/ dump completo |
---|---|---|
VPS 4 GB | 4 GB | ~12 h |
Notebook Dev | 16 GB | ~3 h |
Server 64 GB+ | 64 GB | ~1 h |
Mãos à obra
git clone https://github.com/cnpj-chat/cnpj-data-pipeline
cd cnpj-data-pipeline
# modo interativo
python setup.py
# ou direto no Docker
docker-compose --profile postgres up --build
Vai pegar um café; quando voltar, seu banco terá 50 M CNPJs prontos para query.
Exemplo de query
-- Startups de software abertas em SP nos últimos 3 anos
SELECT COUNT(*)
FROM estabelecimentos e
JOIN empresas emp ON e.cnpj_basico = emp.cnpj_basico
WHERE e.uf = 'SP'
AND e.cnae_fiscal_principal LIKE '62%' -- Software
AND e.data_inicio_atividade > CURRENT_DATE - INTERVAL '3 years'
AND emp.porte IN ('01', '03'); -- ME ou EPP
Como você pode ajudar
Conte nos comentários:
- Em que hardware rodou e quanto tempo levou?
- Que insights ou pain points de mercado você resolve com esse dataset?
- Sugestões de otimização ou novos back-ends?
- Encontrou algum bug?
Feedbacks e contribuições são sempre bem-vindos ❤️
Reflexão final
Planilhas públicas só geram valor quando viram infraestrutura de consulta.
Transformar dados brutos em SQL rápido é a ponte entre burocracia e inovação; cada melhoria nesse pipeline diminui o atrito para quem resolve problemas reais com software.