Skip to content
/ rfb-cnpj Public

Projeto que faz a leitura dos dados abertos disponibilizado pela Receita Federal do Brasil mensalmente e os converte para um banco de dados compatível com SQLAchemy

Notifications You must be signed in to change notification settings

faio/rfb-cnpj

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RFB CNPJ

  • Projeto criado para tratar os dados vindo da Receita Federal do Brasil (RFB) e converter os mesmos para um banco de dados suportado pela biblioteca SQLAlchemy.

Motivação

  • A RFB mudou o formato de arquivo que disponibilizava os dados públicos de CNPJ e com isso os sistema anteriores pararam de funcionar, anteriormente eu utilizava a biblioteca https://github.com/fabioserpa/CNPJ-full que por muito tempo resolveu o meu problema de tratar a base de dados e converter a mesma para um banco de dados relacional, com a mudança, a receita disponibizou os dados em um formato diferente e a biblioteca parou de funcionar. Resolvi criar essa biblioteca que já faz todo o processo de forma automática, baixando os dados da RFB, e realizando a conversão.

Objetivos da biblioteca

  • Realizar todo o processo de baixar e converter os dados disponibilizados pela RFB de forma automática, sem precisar de intervenção humana em nenhuma etapa do processo.

Funções

  • Baixar os arquivos públicos disponibilizados pela RFB.
  • Converter os dados de empresa, estabelecimento, sócio, cnae, países, municípios qualificações, naturezas e dados do simples para um SGBD compatível com a biblioteca SQLAchemy.
  • Possibilidade de executar o processo em threads, melhorando significativamente a performance

Docker

  • Para facilitar o teste/uso dessa biblioteca, disponibilizamos os arquivos Dockerfile e docker-compose.yml com o PostgreSQL

  • Para usar basta estar na raiz do projeto e executar o seguinte comando:

     docker-compose up -d
    
  • Caso não tenha familiaridade com Docker, por favor consulte a documentação

    Docker documentação

  • Atente-se ao tamanho em disco, necessário em torno de 25GB de espaço em disco. Os indíces não são criados automáticamente, ficando ao seu criterio cria-lós ou não.

OBS:

  • Biblioteca construída buscando a menor dependência possível de libs externas.

  • Requer python 3.7 ou superior, recomendado o python 3.9

  • Se for utilizar o PostgreSQL como banco de dados, adicionar a seguinte dependência ao arquivo requirements.txt, o tamanho do banco criado fica em torno de 24GB:

    psycopg2==2.9.3
    
  • Para executar o sistema:

    • Primeiro, instale as dependências:

      pip install -r requirements.txt
      
    • Depois execute o sistema:

      python main.py
      
  • Possíveis parametros:

Pârametro Default Decrição
--help - Exibe a guia de ajuda
--baixar true Ativa ou desativa o download dos dados no site da RFB
--threads true ativa ou desativa o processo em threads.
--diretorio_arquivos ./download Pasta de destino dos arquivos de download e/ou onde se localiza os arquivos da RFB
--database_url sqlite:///db.sqlite3 URL de conexão com o SGBD no formato exigido pela biblioteca SQLAchemy

OBS2:

  • No banco SQLite ocorreu erro ao executar o mesmo em threads, no postgreSQL funcionou corretamente o processo.
  • Processo testado apenas no SQLite e no PostgreSQL
  • Página com os layouts e arquivo para baixar: https://www.gov.br/receitafederal/pt-br/assuntos/orientacao-tributaria/cadastros/consultas/dados-publicos-cnpj
  • A biblioteca faz o download dos arquivos, porém, é recomendável utilizar um gerenciador de downloads, pois o siste da receita cai com muita frequência e é lento. Se fizer o download dos arquivos utilizando um programa externo, não esqueça de desativar a flag download ao executar

Contribuições

  • Motivo da Situação Cadastral / juanfariasdev (PR #9)
  • Docker / moisesrms (PR #10)

About

Projeto que faz a leitura dos dados abertos disponibilizado pela Receita Federal do Brasil mensalmente e os converte para um banco de dados compatível com SQLAchemy

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published