GithubHelp home page GithubHelp logo

cavaso / cnpj-mysql Goto Github PK

View Code? Open in Web Editor NEW

This project forked from rictom/cnpj-mysql

0.0 0.0 0.0 40 KB

Script em python para carregar os arquivos de cnpj dos dados públicos da Receita Federal em MYSQL e em POSTGRES.

License: MIT License

Python 100.00%

cnpj-mysql's Introduction

cnpj-mysql

Script em python para carregar os arquivos de cnpj dos dados públicos da Receita Federal em MYSQL e POSTGRESQL. O código é compatível com o layout das tabelas disponibilizadas pela Receita Federal a partir de 2021.

Dados públicos de cnpj no site da Receita:

Os arquivos csv zipados com os dados de CNPJs estão disponíveis em https://dados.gov.br/dados/conjuntos-dados/cadastro-nacional-da-pessoa-juridica---cnpj ou https://dadosabertos.rfb.gov.br/CNPJ/ (http://200.152.38.155/CNPJ/).

Pré-requisitos:

Python 3.8;
Bibliotecas pandas, dask, sqlalchemy. Para mysql instalar a biblioteca pymysql. Para postgres usar psycopg2.
Para instalar a biblioteca, use o comando
pip install pymysql
Para postgres, instale psycopg2 (recomenda-se psycopg2-binary para instalação mais simples)
pip install psycopg2-binary (testado no Ubuntu).

Utilizando o script:

Obtenha uma relação dos arquivos disponíveis pelo comando no Anaconda prompt:
python dados_cnpj_lista_url.py

Para baixar os arquivos, use o comando:
python dados_cnpj_baixa.py

Isso copiará os arquivos para a pasta "dados-publicos-zip".
Se o download estiverm muito lento, sugiro utilizar um gerenciador de downloads.

Crie uma pasta com o nome "dados-publicos". Esta pasta deve estar vazia.

No servidor MYSQL ou POSTGRES, crie um database, por exemplo, cnpj.
Especifique os parâmetros no começo do script:
dbname = 'cnpj'
username = 'root'
password = ''
host = '127.0.0.1'

Para iniciar esse script, em um console digite
python dados_cnpj_mysql.py
ou
python dados_cnpj_postgres.py

A execução durou cerca de 5hs em um notebook i7 de 8a geração com Windows 10 no script para mysql. No caso do postgres, fiz teste só com uma amostra em Linux (Ubuntu 20.4). Se a execução deste script demorar muito, uma opção é usar o projeto em https://github.com/rictom/cnpj-sqlite para gerar o arquivo em sqlite e usar uma ferramenta como o pgloader ou o DBeaver para converter depois em postgres. Este colega usou o pgloader com um bom desempenho: rictom#5

Outras referências:

Para trabalhar com os dados de cnpj no formato SQLITE, use o meu projeto (https://github.com/rictom/cnpj-sqlite).
A criação do arquivo sqlite é muita mais rápida que o carregamento da base em Mysql ou Postgres.
O projeto (https://github.com/rictom/rede-cnpj) utiliza os dados públicos de CNPJ para visualização de relacionamentos entre empresas e sócios.

Histórico de versões

versão 0.2 (janeiro/2022)

  • aceita sqlalchemy>=2.0;

versão 0.2 (julho/2022)

  • alterações menores no sql, para funcionar também em postgres;
  • versão para postgres.

versão 0.1 (novembro/2021)

  • primeira versão

cnpj-mysql's People

Contributors

rictom 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.