Code Monkey home page Code Monkey logo

cnpj-full's Introduction

Dados Públicos CNPJ - Conversão para CSV ou SQLITE

Utilitário em Python para carregar a base completa de CNPJ disponibilizada pela Receita Federal (aprox. 85 GB!) e transformá-la em arquivos csv ou sqlite para fácil consumo. Processa dados de empresas, sócios e CNAEs.

Configurações prévias

Para executar o script, é necessário que seu sistema contenha essas instalações:

Python

Versão mais atual, caso não consiga executar usando somente o comando python. Para isso, execute no terminal (se estiver usando sistemas GNU/Linux derivados do Debian):

$ sudo apt upgrade python3

Gerenciador de Pacotes do Python (Pip)

A versão mais atual. Se estiver usando Python3:

$ python3 -m pip install --upgrade pip

Biblioteca de Data Science "Pandas"

A versão mais atual da biblioteca Pandas para Python. Para instalar via Pip:

$ python3 -m pip install pandas

Pacote NumPy

A princípio, não é necessário. O script neste repositório usa funções da biblioteca Pandas, que utiliza uma extensão de NumPy chamada NumExpr. Então, caso seu terminal retorne erros por ausência do pacote NumPy, esse é o motivo. Para instalá-lo (se precisar):

$ python3 -m pip install numpy

NumExpr

A Pandas usa. É uma extensão que melhora a velocidade de análise no pacote NumPy. Para instalar a versão mais atual da NumExpr:

$ python3 -m pip install numexpr

Antes de executar

Tenha em mente que essa base de dados da RF é imensa! Para executar esse script, é bastante provável que sua máquina (a não ser que seja um supercomputador) dedique bastante tempo a essa execução, podendo variar de 1 a 4 horas.

O script informa no terminal o parcial do processamento, mostrando o "bloco" (conjunto parcial) de linhas que está sendo convertido. Cada bloco contempla 100.000 linhas (registros) da base de dados. Ao todo, são 724 blocos processados, o que quer dizer que a base de dados da RF, na versão publicada em 23/11/2018, tem entre 72.400.000 e 72.500.000 linhas!

Esse não é o total de CNPJs cadastrado, pois além dos CNPJs o arquivo também contempla os CNAES secundários de cada CNPJ (cada CNPJ pode ter mais de um CNAE secundário), bem como os sócios.

Em suma, prepare seu computador (e seu tempo) para esperar o script ser executado. Se possível, feche tudo que estiver fazendo e deixe-o processando apenas esse script. Se estiver no GNU/Linux, é interessante realizar logout na interface gráfica e utilizar algumas das telas do tty (acesso usando control + alt + F1 ou outro até F6).

Tamanho das tabelas geradas

Tabela Tamanho do arquivo Quantidade de linhas
Empresas Aprox. 12gb 49.238.928
CNAES secundárias 1,18gb 43.680.906
Sócios 1,71gb 18.398.543

Como executar

python cnpj.py <arquivo original> <tipo de saída:csv ou sqlite> <pasta saída>

ou, no python3:

python3 cnpj.py <arquivo original> <tipo de saída:csv ou sqlite> <pasta saída>

Exemplo

python cnpj.py "data\F.K032001K.D81106D" sqlite "data"

ou, no python3:

python3 cnpj.py "data\F.K032001K.D81106D" sqlite "data"

cnpj-full's People

Contributors

fabioserpa avatar igorasantos avatar

Watchers

Tharlysson Breno  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.