GithubHelp home page GithubHelp logo

leandrovr13 / dados-cnpj Goto Github PK

View Code? Open in Web Editor NEW

This project forked from mtrentz/dados-cnpj

0.0 1.0 0.0 110 KB

Baixa e organiza dados abertos de CNPJ em um banco de dados.

Go 99.16% Dockerfile 0.84%

dados-cnpj's Introduction

Dados-Cnpj

Programa para baixar, limpar e importar os dados abertos de CNPJ para um banco de MySQL.

O banco está conforme ao novo padrão da receita federal.

Requisitos

O mais fácil é rodar utilizando o docker, no qual será criado um container contendo o banco em MySQL, acessável no port 3307.

Porém é possível rodar com Go e um banco MySQL para conectar.

Rodando com Docker

docker volume create cnpj_db

docker-compose build

docker-compose run --rm dados-cnpj download   // Downloads podem ser instáveis, ler a seção de Dados no README
docker-compose run --rm dados-cnpj transform
docker-compose run --rm dados-cnpj insert

Rodando sem Docker

Pra rodar sem docker é necessário configurar algum banco de dados, preferencialmente MySQL, alterando a variável dsn em database/database.go.

{USER}:{PASSWD}@tcp({HOST}:{PORT})/{DB_NAME}?charset=latin2&collation=latin2_general_ci&autocommit=false&parseTime=true

Além disso é necessário preparar o banco a partir do dados/create.sql.

Por fim:

go get

go run main.go download
go run main.go transform
go run main.go insert

Outros databases

A conexão do Go é feita utilizando GORM, assim, é possível apenas alterar o arquivo database.go e importar o driver correto para conectar com outros bancos como PostgreSQL ou SQLite. Preparando o banco conforme o create.sql é provavel que a importação funcione sem maiores problemas.

Dados

O download dos dados providenciados pela receita federal pode ser bastante instável. As velocidades são bem baixas e muitas vezes não concluêm. Assim, recomendo baixar diretamente pelo site ao invés de utilizar o comando download, garantindo que todos os arquivos zips foram baixados por completos.

Após isso basta colocar os arquivos ZIP dentro da pasta data e rodar os comandos transform e insert.

Sobre

Esse projeto foi bastante baseado na implementação do minha-receita do Cuducos, porém funcionando com a nova versão dos dados e com o MySQL.

dados-cnpj's People

Contributors

mtrentz avatar

Watchers

James Cloos 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.