Coder Social home page Coder Social logo

georgevbsantiago / qsacnpj Goto Github PK

View Code? Open in Web Editor NEW
305.0 51.0 75.0 2.9 MB

Pacote que trata e organiza os dados do Cadastro Nacional da Pessoa Jurídica (CNPJ)

License: GNU General Public License v3.0

R 100.00%
cnpj data-wrangling r dados-abertos receita-federal consulta-cnpj dadosgovbr

qsacnpj's Introduction

Pacote desenvolvido para tratar e organizar a Base de dados do Cadastro Nacional da Pessoa Jurídica (CNPJ)

O Projeto

O pacote qsacnpj é uma das ferramentas utilizadas no projeto de “Transparência das Contas Públicas”, desenvolvido e executado pelo Observatório Social do Brasil - Município de Santo Antônio de Jesus - Estado da Bahia.

Atualmente, o projeto é composto das seguintes ferramentas:

Pacotes desenvolvidos em Linguagem R para realizar Web Scraping e tratamento de dados:

Paineis desenvolvidos em Power BI para produzir diversas visualização dos dados:

Sobre a proposta e o objetivo do pacote

O objetivo do pacote é tornar os dados do Cadastro Nacional da Pessoa Jurídica (CNPJ) mais acessível, num padrão legível por máquina, para que a Sociedade possa utilizá-los em diversas iniciativas, atividades, projetos etc. Isso se faz necessário porque a Receita Federal publicou a base num formato do tipo fixed width - arquivo de largura fixa, o que requer o prévio tratamento dos dados (com elevado grau de dificuldade técnica e esfoço computacional adicional) antes do seu consumo imediato em sofwares de análise de dados.

Por congregar diversas informações sobre as Pessoas Jurídicas constituídas no Brasil, a base de dados do CNPJ é uma das fontes governamentais de informação pública mais relevantes do país.

Ao ter acesso aos dados tratados, o Observatório Social do Brasil - Município de Santo Antônio de Jesus poderá utilizá-los para aprimor dois outros projetos na área de “Transparência das Contas Públicas”:

Os dois painéis têm como objetivo tornar os dados do Tribunais de Contas dos Municípios do Estado da Bahia mais acessíveis e possibilitar outras visualizações dos dados para fornecer informações de alto interesse social.

Comunidade e Colaboração

O Observatório Social do Brasil, aqui representado pelo Observatório Social do Município de Santo Antônio de Jesus - Ba, gostaria de agradecer o apoio da Comunidade ‘Dados Abertos .BR’ no Telegram, pela incessante busca de tornar os dados governamentais públicos e de alto interesse social abertos à Sociedade. A resiliência dos membros que provocaram à Receita Federal sobre a obrigação de abertura dos dados, conforme determina a Constituição Federal de 1988 c/c a Lei de Acesso à Informação e c/c o Decreto Federal n.° 8.777/2016, foi um fator fundamental para essa conquista.

Gostaríamos de agradecer também à comunidade da Linguagem de Programação R que foi utilizada para o desenvolvimento do presente pacote, em especial à comunidade TidyVerse, ao Curso-R pela colaboração ativa e material disponibilizado, à comunidade R Brasil no Telegram, e todos aqueles de disponibilizam ebook sobre a linguagem R link, posts e desenvolvem pacotes e soluções de infraestrutura para a linguagem. Sem o esforço, colaboração, cooperativismo e abnegação de todos, esse trabalho não seria possível.

Ademais, quaisquer sugestões, reclamações ou críticas podem ser realizadas no área issues do GitHub.

Preparando e Executando o pacote qsacnpj

Preparativos

1 - Baixe os arquivos (.zip) da base de dados do CNPJ no site da Receita Federal.

2 - Salve o arquivo ‘.zip’ no diretório que será utilziado para o processamento dos dados.

3 - Descompacte os arquivos no diretório. Talvez os arquivos tenhom nomes semelhantes a ‘K3241.K03200DV.D91111.L00001’. OBS: Os arquivos descompactados tem mais de 99Gb. Verifique se há espaço suficiente no seu HD

4 - IMPORTANTE: Crie uma pasta específica para armazenar somente os arquivos.

5 - Instale e execute o pacote. Abaixo, seguem algumas sugestões:

Executando o pacote

# Para garantir a instalação e execução do pacote `qsacnpj` sem maiores dificuldades,
# é só seguir os 7 passos a seguir:

# 1 - Instale o interpretador da linguagem R, disponível no
# site do CRAN: https://cran.r-project.org/.
# OBS1: A título de exemplo, utilizamos a versão 4.0.3 do R
# para tratar os dados publicados em novembro de 2020;
# OBS2: Verifique a distribuição apropriada para o seu
# sistema operacional (Windows, Linux, macOS)


# 2 - Instale o RStudio Desktop, ambiente de desenvolvimento integrado (IDE)
# para a linguagem R, disponível no site https://rstudio.com/products/rstudio/download/; 

# 3 - No console do RStudio Desktop, instale o pacote `remotes`
# para poder baixar o pacote `qsacnpj` no repositório do GitHub;

install.packages("remotes")

remotes::install_github("georgevbsantiago/qsacnpj")

# 4 - Em seguida, aparecerá o seguinte aviso e opções de escolhas (abaixo).
# Nessa etapa, em geral, a opção "2" instalará os pacotes que o respectivo desenvolvedor 
# considera como estável e adequado para o ambiente de produção.
# Já a opção "1" instalará os pacotes em desenvolvimento armazenados no repositório
# do GitHub. Por serem pacotes em desenvolvimento, podem ter (ou não) algum tipo de instabilidade
# ou inconsistência, mas, em contrapartida, tendem a ter um desempenho melhor durante a execução.

    # Downloading GitHub repo georgevbsantiago/qsacnpj@master
    # These packages have more recent versions available.
    # It is recommended to update all of them.
    # Which would you like to update?
    # 1: All                                           
    # 2: CRAN packages only

# 5 - Após selecionar uma das opções acima, o pacote será instalado.
# Então, no console do RStudio, carregamos o pacote na memória.

library(qsacnpj)

# 6 - Em seguida, criamos e selecionamos a pasta de trabalho (Work Directory). 
# Neste diretório, devem ser armazenados apenas os arquivos
# que foram baixados e descompactados do site da Receita Federal.
# A título de exemplo, indicamos o diretório "D:/qsa_cnpj". 
# Caso prefira, pode utilizar outro disco, a exemplo do disco "D:", em vez de "C:"

dir.create(file.path("C:", "qsa_cnpj"))

setwd(file.path("C:", "qsa_cnpj"))

# 7 - Por fim, executamos o pacote. Para tanto, elaboramos 4 sugestões de execução do pacote abaixo.
# (OBS: No argumento "path_arquivos_txt", indique o diretório
# no qual estão armazenados apenas os arquivos que foram
# baixados e descompactados do site da Receita Federal. 
# IMPORTANTE: O diretório deve conter APENAS os arquivos
# descompactados da Receita Federal que serão tratados!!!
# Já no início da execução, será criada um diretório
# `bd_cnpj_tratados` com os arquivos tratados.
# O tempo total da execução é de 4 a 5 horas, para tratamento completo da base de dados;

# Sugestão 1: Tratar toda a base do CNPJ, 100.000 linha a cada interação,
# armazenando os dados no SQLite
qsacnpj::gerar_bd_cnpj(path_arquivos_txt = "C:/qsa_cnpj",
                       localizar_cnpj = "NAO",
                       n_lines = 100000,
                       armazenar = "sqlite")


# Sugestão 2: Tratar toda a base do CNPJ, 100.000 linha a cada interação,
# armazenando os dados no CSV (OBS: O delimitador do CSV é o simbolo: "#').
qsacnpj::gerar_bd_cnpj(path_arquivos_txt = "C:/qsa_cnpj",
                       localizar_cnpj = "NAO",
                       n_lines = 100000,
                       armazenar = "csv")


# Sugestão 3: Localziar um conjunto de CNPJ, interando a base a cada 100.000 linha,
# armazenando os dados localizados no SQLite
# (OBS1: O delimitador do CSV é o simbolo: "#');
# (OBS2: Exemplo com número de CNPJ, entre aspas (""), do Banco do Brasil, Banco do Nordeste,
# Banco da Amazônia e Caixa Econômica)
qsacnpj::gerar_bd_cnpj(path_arquivos_txt = "C:/qsa_cnpj",
                       localizar_cnpj = c("00000000000191", "07237373000120",
                                          "00360305000104", "04902979000144"),
                       n_lines = 100000,
                       armazenar = "sqlite")


# Sugestão 4: Localziar um conjunto de CNPJ, interando a base a cada 100.000 linha,
# armazenando os dados localizados no CSV
# (OBS1: O delimitador do CSV é o simbolo: "#');
# (OBS2: Exemplo com número de CNPJ, entre aspas (""), do Banco do Brasil, Banco do Nordeste,
# Banco da Amazônia e Caixa Econômica)
qsacnpj::gerar_bd_cnpj(path_arquivos_txt = "C:/qsa_cnpj",
                       localizar_cnpj = c("00000000000191", "07237373000120",
                                          "00360305000104", "04902979000144"),
                       n_lines = 100000,
                       armazenar = "csv")

Resultado esperado: No teste realizado sem aplicar o filtro ‘localizar_cnpj’, o código executou com sucesso o tratamento e organização de todos os dados no tempo de 4 horas, usando um notebook com processador i7 5ª Geração, 16Gb DDR3 e disco HDD.

Ao final do processamento, o usuário visualizará, no diretório escolhido, o arquivo SQLite com 03 tabelas (cnpj_dados_cadastrais_pj, cnpj_dados_socios_pj e cnpj_dados_cnae_secundario_pj), ou, caso opte pelo CSV, 03 arquivos CSV cnpj_dados_cadastrais_pj.csv, cnpj_dados_socios_pj.csv e cnpj_dados_cnae_secundario_pj.csv, dentre outras tabelas que forem adicionadas com as atualizações do pacote.

Informações técnicas complementares podem ser obtidas na documentação do pacote ao digitar ?qsacnpj

Base de dados Complementares

Adicionamos, no pacote, um conjunto de Tabelas complementares disponíveis no site da Receita Federal para enriquecer e detalhar a Bases de Dados do CNPJ.

Adicionamos, no pacote, um conjunto de Tabelas complementares disponíveis no site do IBGE para enriquecer e detalhar a Bases de Dados do CNPJ

Base de Dados do CNPJ tratada

A base de dados do CNPJ já tratada está disponível nos links abaixo, nos formatos SQLite e CSV:

Para acessar os dados usando o SQLite, siga os 3 passos seguintes:

1 - Baixe os arquivos ‘.zip’. OBS: O arquivo no formato ‘.zip’ tem cerca de 5Gb;

2 - Descompacte o arquivo. OBS: Após ser descompactado, o arquivo ficará com 14Gb. Verifique se há espaço no disco;

3 - Instale o programa DB Browser for SQLite ( neste link ). Trata-se de uma programa que permite visualizar os dados do SQLite e fazer consultas SQL;

4 - Ao abrir o arquivo dados_qsa_cnpj.db com o DB Browser for SQLite, o tempo de carregamento do banco de dados no programa pode demorar de 3 a 7 minutos a depender das configurações do computador, caso o usuário opte pela opção de “Nevegar pela tabela”. Se optar por realizar consultas SQL, a base estará pronta para uso imediato.









Modelo Lógico do Banco de Dados

Para melhor visualização das tabelas do Banco de Dados, disponibilizamos esse imagem (link) do Modelo Lógico . (OBS: O modelo lógico foi desenhado sem rigor técnico. A sua disponibilização é só para efeito de visualização das tabelas que compõem a Base de Dados)

Futuras Implementações, Atualizações e BUGs

Futuras Implementações ou Melhorias

  • Implementar função para criar tabela contendo o CNPJ dos entes públicos;

  • Incluir a base de dados do “Mapa das Organizações da Sociedade Civil”, disponibilizado no Portal de Dados Abertos

  • Implementar uma função para verificar se os CNPJ na variável ‘localizar_cnpj’ são válidos;

  • Criar uma função para verificar a adequação da base de dados;

  • Incluir rotina para baixar a Base de dados do CNPJ e as Tabelas complementares disponibilizadas pela Receita Federal

  • Criar índice no SQLite para todas as tabelas;

Atualizações

qsacnpj - versão: 0.2.2

1 - BUGs Corrigidos:

1.1 - Corrige o erro na Tabela da Receita Federal (tab_qualificacao_responsavel_socio), na qual os números identificadores de 1 a 9, deveriam constar com 0 na frente. Ex: 01, 02, 03, 04 … (#20)

qsacnpj - versão: 0.2.1

1 - BUGs Corrigidos:

1.1 - Retirado espaços duplos e quebra de linhas nos valores das Base de dados Complementares (#18)

qsacnpj - versão: 0.1.9

1 - BUGs Corrigidos:

1.1 - Aprimorada a regra da Expressão Regular (regex) que faz a substituição dos caracteres iniciais 000*** por *** no CPF dos sócios. A regex anterior, usada junto com a função gsub, estava substitundindo indevidamente números do CNPJ/PJ sócio com 0000001 por ***1, afetendo cerca de mil de registro.

2 - MELHORIAS:

2.1 - Aprimorada o tratamento das strings usando as funções do pacote stringr.

qsacnpj - versão: 0.1.8

1 - MELHORIAS:

1.1 - Atualizamos a Tabela de Qualificação do Responsável no Quadro Societário da Pessoa Jurídica de acordo com o arquivo mais recente disponibilizado pela Receita Federal qsacnpj::tab_qualificacao_responsavel_socio.

qsacnpj - versão: 0.1.7

1 - MELHORIAS:

1.1 - Adicionamos, no pacote, uma Tabela com o código dos Municípios do SIAFI, foi incluída dentro do pacote, podendo ser acessada pela variável tab_codigo_municipios_siafi. Essa tabela é extremamente relevante, pois será possível, agora, realizar a correspondência entre os códigos dos municípios contidos na base de dados do CNPJ (que são os códigos atribuídos pelo SIAFI - OBS: Sistema Integrado de Administração Financeira do Governo Federal) com o código dos Municípios do IBGE. Ou seja, essa base de dados disponibilizada pelo Tesouro Nacional é uma tabela de correspondência entre os códigos dos municípios da base do CNPJ (os mesmos usados no SIAFI) e os códigos da tabela do IBGE.

2 - BUGs Corrigidos:

2.1 - A coluna tipo_de_registro não estava sendo incluída na tabela cnpj_dados_cnae_secundario_pj.

qsacnpj - versão: 0.1.6

1 - MELHORIAS:

1.1 - Incluída rotina para tratamento de dados. Substituição do “Ç” por “C” na coluna descricao_tipo_logradouro da tabela cnpj_dados_cadastrais_pj, com o objetivo de evitar problemas de encoding ao importar os dados para Sistemas de Gerenciamento de Banco de Dados ou por Ferramentas de Análise de Dados.

1.2 - Reformulado o código para conexão com os SGBDs. Agora, é possível conectar o script com SQLite, MS SQL Server, Oracle e MySQL. Os desenvolvedores conseguirão também implementar a conexão com outros SGBDs.

qsacnpj - versão: 0.1.5

Foram realizados ajustes no código, visto que a Receita Federal, a partir do mês de maio de 2019, passou a liberar a base do CNPJ por meio de 20 arquivos, e não mais num arquivo único.

qsacnpj - versão: 0.1.4

1 - BUGs Corrigidos:

1.1 - Implementado uma rotina de tratamento adequado para construção da tabela referente aos CNAEs secundários.

2 - MELHORIAS:

2.1 - Adicionamos, no pacote, um conjunto de Tabelas complementares disponíveis no site do IBGE para enriquecer e detalhar a Bases de Dados do CNPJ.

2.2 - Tratamento de dados

  • Os dados das colunas que representam datas foram tratados para o padrão internacional (ano-mes-dia). Ex: Antes: 20180505 / Depois: 2018-05-05 . As datas com valores inválidos (Ex: 00000000), ficaram como NULL (vazio) na tabela;

  • Os dados das colunas que representam a capital social foram transformadas para o padrão de valores monetários internacional: Antes: 00000001272800 / Depois: 12728.00

qsacnpj - versão: 0.1.3

1 - BUGs Corrigidos:

1.1 - Corrigido o problema das linhas NULL. Estava relacionado ao encoding, devido a letras com “Ç”, a exemplo da palavra “PRAÇA”. Como tivemos que implementar o argumento locale = readr::locale(encoding = "ISO-8859-1") na função, houve uma perda substancial no desempenho do processamento, fazendo que com a criação da base de dados demore mais de 3h.

2 - MELHORIAS:

2.1 - Rotina para tratar o número dos CPFs dos sócios retirando os 03 zeros iniciais. Antes: 000***718468** / Depois: ***718468**

2.2 - Adicionamos, no pacote, um conjunto de Tabelas complementares disponíveis no site da Receita Federal para enriquecer e detalhar a Bases de Dados do CNPJ.

2.3 - Com a implementação das novas tabelas, o código foi reestruturado. Agora, o tratamento e organização dos dados da base do CNPJ é executado com a função qsacnpj::gerar_bd_cnpj

qsacnpj - versão: 0.1.2

  • Adicionado rotina para substituir “;” por “#”, em virtude da base de dados usar o “;” no corpo de diversos dados.

BUGs e Warnings

Caso identifique um BUG, favor abrir uma issues no Github.

Outras alternativas em R ou Python

Por fim, deixo a sugestão de outras alternativas que foram criados com o mesmo propósito:

qsacnpj's People

Contributors

georgevbsantiago avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

qsacnpj's Issues

A receita federal mudou completamento o layout dos arquivos

A receita federal mudou completamente o layout dos arquivos e tambem a pagina de download.
O novo link: https://www.gov.br/receitafederal/pt-br/assuntos/orientacao-tributaria/cadastros/consultas/dados-publicos-cnpj
Embora o novo layout indique que existe informacao de simples/mei, os arquivos disponibilizados nao tem simples/mei.
Um dos arquivos ( DADOS_CNPJ_EMPRESAS_1.zip ) esta incompleto.
O good news é que os arquivos agora estao em formato csv.

erro no trata_arquivo_txt

Boa tarde ao tentar gerar bd da o seguite erro :
[1] "Iniciando o tratamento e consolidação dos dados do CNPJ. Esse processo pode levar entre 4h a 5h, dependenndo da configuração do computador!"
Error in tratar_arquivo_txt(arquivo_txt, localizar_cnpj, n_lines, armazenar) :
não foi possível encontrar a função "tratar_arquivo_txt"

como posso resolver !?

Possível erro na coluna "opção_pelo_mei"

Antes de mais nada, parabéns pelo trabalho com esse pacote e muito obrigado por disponibilizar os csv's. É incrível o benefício que está gerando ao facilitar o acesso a esses dados!

Trabalhando com o csv da ultima atualização (set/2020), notei um número muito grande de células vazias na coluna "opção_pelo_mei", que deveria ter valores "S" ou "N". Eu estava procurando a quantidade de MEI na situação cadastral "8" (que significa "baixado") e o resultado foi absurdamente pequeno, se não me engano 225 linhas em toda a base, quando na verdade deveria ter sido algo na casa dos milhões.

Pensei ser algum erro no download ou no carregamento da base que fiz por aqui. Mas repeti o processo e deu a mesma coisa. Pode me ajudar a solucionar essa questão?

Nova versão da base tratada

Percebi que mais ou menos de dois em dois meses uma nova versão processada da base é lançada e o ultimo lançamento ocorreu no mês 09, então teoricamente o próximo lançamento seria esse mês, porém ainda não aconteceu.

Existe previsão para a liberação da próxima versão tratada da base?

Parabéns pelo excelente trabalho, de verdade.

Isaac Souza

Possível erro na tabela tab_cnae

Baixei os arquivos gerados a partir da base disponibilizada pela RFB em 04/07/2020 e encontrei alguns problemas, que parecem se repetir tanto nos arquivos CSV quanto na base SQLite. Parece estar relacionado com a presença do caractere line_feed ('\n' ou 0x10) dentro de alguns campos de texto. As seguintes consultas, quando executadas dentro do SQLite retornam linhas:

  • select * from tab_cnae where nm_divisao like '%'||char(10)||'%';
  • select * from tab_cnae where nm_grupo like '%'||char(10)||'%';
  • select * from tab_cnae where nm_classe like '%'||char(10)||'%';
  • select * from tab_cnae where nm_cnae like '%'||char(10)||'%';

Ao abrir o CSV dessa tabela em algum software como o Notepad++ no Windows é possível verificar que esse caractere de quebra de linha interfere no arquivo. Isso também gerou problemas para mim ao exportar um arquivo CSV a partir da base SQLite, pois apareceram quebras de linha em locais errôneos.

Não verifiquei se o problema se repete em outras tabelas.

Não estou conseguindo gerar a base em CSV

Prezado George,
Primeiramente, muito obrigado por disponibilizar sua contribuição ela me poupará inúmeras horas.

Atualmente estou com dificuldade ma pacote., o mesmo não está gerando todos os arquivos que deveria criar.
Ao rodar ele avisa que a "Base de Dados do CNPJ gerada com Sucesso!", contudo só cria 5 arquivos não gerando os dados_cadastrais_pj, dados_socios_pj e dados_cnae_secundario_pj. Você poderia me ajudar?
Estou gerando numa máquina com 24 processadores, 200 Gb ram, 2,39 Ghz, 1Tb de HD (em resumo não é a máquina), através do RStudio 1.2.1335 e R v.3.6.

Publicação no Dados Gov BR

Olá, primeiramente muito obrigado por dedicar(em) um tempo para o tratamento desses dados, e publicar o trabalho para todos! Ótima iniciativa.

Sugestão: publicar, se possível, o fruto desse trabalho no http://dados.gov.br/ visando atingir ainda mais pessoas.

👍

Link do arquivo CSV quebrado

No arquivo readme o link para download dos arquivos em CSV da última atualização está quebrado. Poderia atualizar com o link correto?

Obrigado!

Início, fim e duração - Tempo de processamento

Boa noite, George,

Sugiro que o script que processa a base de dados de CNPJ informe o horário de início, fim e duração do processamento.

Como pitaco, se possível, informar também o fabricante e modelo da CPU; e a quantidade de memória utilizada pelo processo.

Atenciosamente,

Adriano Cunha

Atualização das base de dados SQL Lite

Boa tarde, primeiramente parabéns pelo projeto, a base de dados gerada é extremamente útil!

Acabei de ver que a base de dados no site da receita foi atualizada recentemente, algum previsão de atualização da base de dados no formato SQL Lite ?

Obrigado pela ajuda e continue com o projeto pois ele é ótimo!

Problema com coluna qualificacao responsavel/socio em diferentes tabelas

Encontrei um problema para fazer join entre as tabelas usando a coluna qualificacao_responsavel. Nas tabelas cnpj_dados_cadastrais_pj e cnpj_dados_socios_pj as colunas estão sempre com 2 dígitos, com o zero à esquerda quando é o caso.

Na tabela tab_qualificacao_responsavel_socio aparecem valores com apenas 1 dígito, sem zero à esquerda.

Atualização da Base da Receita

Boa tarde,

gostaria de saber quando será feita a atualização dos dados de CNPJ com a última q saiu.
Desde já grato e parabéns pelas informações,

Christian

Base de Dados em CSV de 05/09/20

Oi, George, tudo bem? Parabéns pelo trabalho! Estava baixando os dados direto da RFB qd vi que vc disponibilizou tudo compilado! Me economiza várias horas...

Estou com uma dúvida sobre a base tratada em CSV (https://bit.ly/2GTGHHM). Vc reporta que há 45.153.764 CNPJs, mas encontrei apenas 20.363.178 (CNPJs únicos) no arquivo cnpj_dados_cadastrais_pj.csv. Estou lendo no R, com o read.csv.

Pode haver alguma imprecisão minha, no CSV ou no texto explicativo?

Muito Obrigado, Fabio

Alguém conseguiu realizar o download?

Estou tentando realizar o download pelo site do governo, mas é muito lento e acaba tendo problemas no processo. Tem algum outro método que agilize isso, ou alguém consegue disponibilizar?

Sócios "duplicados"

Bom dia a todos!
Utilizamos a base da receita em alguns enriquecimentos que temos e surgiu uma duvida.
Nos arquivos enviados temos o nome completo do sócio e o CPF parcial como dados para identificar o sócio.
Temos dúvidas sobre as situações que podem gerar duplicidade
EX (real tirado da base):
Nome:JOSE ALVES
CPF parcial: *972838

Porém fazendo buscas na internet encontrei dois JOSE ALVES com CPF diferentes, porém com "mesmo" cpf parcial, conforme abaixo:

Nome:JOSE ALVES
CPF completo: 637.972.838-49
CPF parcial: 972.838

Nome:JOSE ALVES
CPF completo: 095.972.838-40
CPF parcial: 972.838

Minha duvida é, como só temos o CPF parcial vindo da receita, quando agrupamos as empresas de uma pessoa (Nome completo + CPF parcial) não corre o risco de estamos apresentando empresas que não sejam de uma pessoa especifica?

Alguém já se deparou com essa situação? Acharam uma solução?

Dúvida - Como conectar o script com SQLite, MS SQL Server, Oracle e MySQL

Olá !

Lendo o README, reparei nesta parte:

1.2 - Reformulado o código para conexão com os SGBDs. Agora, é possível conectar o script com SQLite, MS SQL Server, Oracle e MySQL. Os desenvolvedores conseguirão também implementar a conexão com outros SGBDs.

Como meu objetivo é tratar os dados com o pacote e subir para postgreSQL, fiquei curioso.

Como funcionaria esta conexão? Poderia dar um exemplo?

Obrigado!

Por que a base de dados do CNPJ é importante para você?

Olá, Pessoal

Resolvi criar esse tópico para concentrar alguns depoimentos de pessoas que usam a base de dados do CNPJ disponibilizada pela Receita Federal e que, eventualmente, utilizam nosso código para tratar os dados ou baixam os arquivos já tratados, por meio dos links disponibilizados no GitHub.

Seria muito relevante conhecer como os usuários estão usando a base de dados para promover futuras implementações ou apenas para efeito de registro histórico 📃, que também é muito importante.

Atualização de Dados

Olá George,

Primeiro parabéns pelo trabalho e disponibilização.

Estou tentando apoiar minha esposa em um projeto de mestrado e para isso ela precisa acessar os dados atualizados dos CNPJ. Li todo seu trabalho aqui e não entendi totalmente como rodar estes dados, pode nos ajudar? há uma nova atualização depois da última que você disponibilizou aqui. Obrigado, Att, Mateus

Quantidade reduzida de CNPJs

Olá!
Antes de tudo, parabéns pela iniciativa e pela qualidade do código. Ficou show!!!

Fiz o download hoje dos dados de CNPJ (a partir do arquivo CSV único) e verifiquei que constam em torno de 20 milhões de CNPJs. Ocorre que aqui no órgão onde trabalho temos uma base de cnpj adquirida em 12/2017 junto ao SERPRO e nessa base constam 36 milhões de CNPJs.

Sabem explicar essa grande diferença? será que algum tipo de empresa não foi incluída na exportação? ou será que houve algum erro no código q fez com que alguns cnpjs não fossem gerados no cvs?

Se souberem alguma explicação, favor me avisem.

Evaluation error: object 'df_qsa_6' not found.

Olá, George! Primeiro, parabéns pelo excelente trabalho com a base de CNPJs!

Estou com um problema quando vou rodar a sugestão 4, localizar um conjunto de CNPJs e armazená-lo em um csv:

qsacnpj::gerar_bd_cnpj(path_arquivos_txt = "~/Downloads/CNPJ/Dados",
localizar_cnpj = c("00000000000191", "07237373000120",
"00360305000104", "04902979000144"),
n_lines = 100000,
armazenar = "csv")

Usando os próprios CNPJs de exemplo do manual, está dando um erro na leitura do penúltimo arquivo. A execução do código é interrompida no seguinte ponto e com a seguinte mensagem:

22% 1145 MB[1] "Analisando linhas: 900001 a 1000000 - arq: K3241.K03200DV.D00422.L00019"

Error in read_lines_chunked_(ds, locale, na, chunk_size, callback, progress) :
Evaluation error: object 'df_qsa_6' not found.

Estou usando os últimos dados disponíveis da Receita, Data de geração do arquivo: 26/04/2020.
Já refiz o download do arquivo 19, achando que poderia ter sido problema no arquivo, mas não resolveu.

Sabe como posso resolver isso?
Obrigado.

Muito Útil

A taxa de transmissão do arquivo original da RFB é muito baixa. O tratamento e armazenamento dos dados em sqlite é muito útil para consulta de grande volume de dados. Agradeço a disponibilização do link para download dos dados devidamente estruturados e de fonte confiável.

Enalteço os esforços da comunidade Dados Abertos BR para que essa e outras bases de dados sejam disponibilizadas à sociedade e atualizadas periodicamente.

Duvidas sobre uma coluna

Estamos usando a base para levantar algumas informações e fazer alguns cruzamentos de dados e estamos tendo um problema com a coluna "opcao_pelo_simples" na tabela de CNPJ, que está apresentando diversos códigos. Já foi identificado o que significa cada código?
Abçs.
Thiago

Geração das bases com problema

Bom dia pessoal! Parabéns pelo trabalho que foi realizado, caso consigam solucionar o problema do novo layout, este código será muito útil no meu dia a dia. Infelizmente após baixar toda a base da receita e rodar o programa, ele gerou uma base sqllite com menos de 2GB, o que está aparentemente incorreto. Farei um teste no formato CSV porém creio que não dará certo também se o problema está no layout =(

library_error, não consigo iniciar o tratamento dos dados

Erro: Cannot read file D:/CNPJ/R/3/K3241.K032001K.CNPJ.D01120.L00003.txt: boost::interprocess_exception::library_error
sou novato, não entendo oque este erro significa, pode me ajudar?
(tentativas para contornar: 3 reinstalações, mudança de local de arquivo, renomeação de arquivo para nome curto, baixar os dados novamente e rezar pra são Sebastião dos arquivos corrompidos uahsuhasuas )
obs: o arquivo "K3241.K032001K.CNPJ.D01120.L00003.txt", abre em outros editores de texto como Emed e Glogg.

Atualização do CSV com a base tratada

Oi, pessoal, tudo bem?

Primeiramente, parabéns pelo trabalho! Me ajudou muito.

Venho aqui pedir uma atualização das bases tratadas disponíveis para download. Consegui usar o csv com a base liberada pela RFB no dia 23/11/2022:

Base de dados liberada pela RFB no dia 23/11/2020 e Processada com a versão 0.2.2 do pacote:
Base de Dados do CNPJ - SQLite
Base de Dados do CNPJ - CSV (OBS: Delimitador do CSV: ‘#’)
Informações sobre a Base de Dados:
Número de CNPJ: 46.535.803

É possível atualizar os csv's disponíveis para download para as bases mais recentes? Não estou conseguindo trabalhar com as bases originais, pois são muito pesadas e meu notebook não tem processador/memória RAM muito potentes.

Agradeço novamente pelo trabalho e grande abraço!

Tabelas não Geradas

@georgevbsantiago Executei o comando "qsacnpj::gerar_bd_cnpj(path_arquivos_txt = "D:/qsa_cnpj",localizar_cnpj = "NAO", n_lines = 100000, armazenar = "sqlite")" para avaliar as tabelas criadas.

Entendi que seriam geradas 9 tabelas mas apenas 6 estão disponíveis no banco criado.

Abaixo segue o resultado da execução no R Studio

[1] "Pasta 'bd_cnpj_tratados' criada com sucesso!"
[1] "Iniciando o tratamento e consolidação dos dados do CNPJ. Esse processo pode levar entre 4h a 5h, dependenndo da configuração do computador!"
[1] "Base de Dados do CNPJ gerada com Sucesso! Tabelas geradas: dados_cadastrais_pj, dados_socios_pj e dados_cnae_secundario_pj"
[1] "Adicionando na base a tabela com dados dos Entes Públicos Federais, Estaduais e Municipais!"
[1] "Tabela tab_cnpj_entes_publicos_br gerada com Sucesso!"
[1] "Adicionando na base a tabela com Código e Nome da Qualificação dos Responsáveis!"
[1] "Tabela tab_qualificacao_responsavel_socio gerada com Sucesso!"
[1] "Adicionando na base a tabela com Código e Nome da Situação Cadastral!"
[1] "Tabela tab_situacao_cadastral gerada com Sucesso!"
[1] "Adicionando na base a tabela com Código e Nome da Natureza Jurídica!"
[1] "Tabela tab_natureza_juridica gerada com Sucesso!"
[1] "Adicionando na base a tabela com os CNAEs!"
[1] "Tabela tab_cnae gerada com Sucesso!"
[1] "Adicionando na base a tabela com os Códigos dos Municípios do SIAFI-IBGE!"
[1] "Tabela codigo_municipios_siafi gerada com Sucesso!"
Fim do Processamento: Base de Dados do CNPJ gerada com Sucesso!

O processo em si foi rápido mas não executou o passo de geração das tabelas dados_cadastrais_pj, dados_socios_pj e dados_cnae_secundario_pj" Onde elas podem ser visualizadas? Ou geradas novamente conforme o tempo previsto de 4 a 5 horas. Existe algum erro meu na sintaxe do comando ou podemos estar enfrentando algum problema no pacote QSACNPJ?

Mais uma vez parabéns e agradeço pela ajuda na identificação de algo incorreto que eu possa ter incorrido.
Tela do Banco de Dados QSACNPJ.docx

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.