A Receita Federal do Brasil disponibiliza bases com os dados públicos do cadastro nacional de pessoas jurídicas (CNPJ).
De forma geral, nelas constam as mesmas informações que conseguimos ver no cartão do CNPJ, quando fazemos uma consulta individual, acrescidas de outros dados de Simples Nacional, sócios e etc. Análises muito ricas podem sair desses dados, desde econômicas, mercadológicas até investigações.
Nesse repositório consta um processo de ETL para i) baixar os arquivos; ii) descompactar; iii) ler, tratar e iv) inserir num banco de dados relacional PostgreSQL.
-
Com o Postgres instalado, inicie a instância do servidor (pode ser local) e crie o banco de dados conforme o arquivo
banco_de_dados.sql
. -
Crie um arquivo
.env
no diretóriocode
, conforme as variáveis de ambiente do seu ambiente de trabalho (localhost). Utilize como referência o arquivo.env_template
. Você pode também, por exemplo, renomear o arquivo de.env_template
para apenas.env
e então utilizá-lo:OUTPUT_FILES_PATH
: diretório de destino para o donwload dos arquivosEXTRACTED_FILES_PATH
: diretório de destino para a extração dos arquivos .zipDB_USER
: usuário do banco de dados criado pelo arquivobanco_de_dados.sql
DB_PASSWORD
: senha do usuário do BDDB_HOST
: host da conexão com o BDDB_PORT
: porta da conexão com o BDDB_NAME
: nome da base de dados na instância (Dados_RFB
- conforme arquivobanco_de_dados.sql
)
-
Instale as bibliotecas necessárias, disponíveis em
requirements.txt
:
pip install -r requirements.txt
- Execute o arquivo
ETL_coletar_dados_e_gravar_BD.py
e aguarde a finalização do processo.- Os arquivos são grandes. Dependendo da infraestrutura isso deve levar muitas horas para conclusão.
- Arquivos de 08/05/2021:
4,68 GB
compactados e17,1 GB
descompactados.
-
Para maiores informações, consulte o layout.
empresa
: dados cadastrais da empresa em nível de matrizestabelecimento
: dados analíticos da empresa por unidade / estabelecimento (telefones, endereço, filial, etc)socios
: dados cadastrais dos sócios das empresassimples
: dados de MEI e Simples Nacionalcnae
: código e descrição dos CNAEsquals
: tabela de qualificação das pessoas físicas - sócios, responsável e representante legal.natju
: tabela de naturezas jurídicas - código e descrição.moti
: tabela de motivos da situação cadastral - código e descrição.pais
: tabela de países - código e descrição.munic
: tabela de municípios - código e descrição.
-
Pelo volume de dados, as tabelas
empresa
,estabelecimento
,socios
esimples
possuem índices para a colunacnpj_basico
, que é a principal chave de ligação entre elas.