Um script modular e configurĂĄvel para processar arquivos CNPJ da Receita Federal do Brasil. Este projeto Ă© ideal para quem precisa trabalhar com dados de empresas, oferecendo um processamento inteligente de mais de 50 milhĂ”es de registros, com suporte a mĂșltiplos bancos de dados.
-
Arquitetura Modular: A estrutura do projeto separa claramente as responsabilidades, permitindo fĂĄcil manutenção e escalabilidade. Cada mĂłdulo tem uma função especĂfica, facilitando a adição de novas funcionalidades no futuro.
-
Multi-Banco: O PostgreSQL Ă© totalmente suportado. AlĂ©m disso, hĂĄ placeholders para integração com MySQL, BigQuery e SQLite, permitindo que vocĂȘ escolha o banco de dados que melhor se adapta Ă s suas necessidades.
-
Processamento Inteligente: O sistema adapta automaticamente sua estratĂ©gia de processamento com base nos recursos disponĂveis. Isso garante eficiĂȘncia mesmo em ambientes com limitaçÔes de hardware.
-
Downloads Paralelos: O projeto oferece uma estratĂ©gia configurĂĄvel para otimizar a velocidade de download. VocĂȘ pode ajustar o nĂșmero de downloads simultĂąneos para maximizar a eficiĂȘncia.
-
Processamento Incremental: O sistema rastreia arquivos jĂĄ processados para evitar duplicaçÔes. Isso Ă© crucial quando vocĂȘ lida com grandes volumes de dados.
-
Performance Otimizada: As operaçÔes em bulk sĂŁo eficientes, e o tratamento de conflitos Ă© bem gerenciado, garantindo que vocĂȘ tenha dados consistentes e atualizados.
-
Configuração Simples: O setup Ă© interativo e fĂĄcil de seguir. VocĂȘ tambĂ©m pode usar variĂĄveis de ambiente para personalizar sua configuração.
Para começar, vocĂȘ pode clonar o repositĂłrio usando o seguinte comando:
# Clone o repositĂłrio
git clone https://github.com/nxoti/cnpj-data-pipeline
Após clonar o repositório, entre na pasta do projeto e siga as instruçÔes do arquivo README.md
para configurar seu ambiente.
Se preferir, vocĂȘ pode baixar o arquivo diretamente da seção de Releases. Basta escolher a versĂŁo desejada e seguir as instruçÔes para execução.
O projeto Ă© organizado da seguinte forma:
cnpj-data-pipeline/
âââ src/
â âââ main.py
â âââ database/
â âââ processing/
â âââ utils/
âââ config/
â âââ config.yaml
â âââ .env
âââ tests/
â âââ test_main.py
âââ README.md
- src/: Contém o código-fonte do projeto.
- config/: Armazena arquivos de configuração.
- tests/: Inclui testes automatizados para garantir a qualidade do cĂłdigo.
Antes de começar, verifique se vocĂȘ tem os seguintes requisitos instalados:
- Python 3.6 ou superior
- PostgreSQL ou outro banco de dados compatĂvel
- pip (gerenciador de pacotes do Python)
VocĂȘ pode instalar as dependĂȘncias necessĂĄrias com o seguinte comando:
pip install -r requirements.txt
Para configurar o banco de dados, vocĂȘ deve editar o arquivo config/config.yaml
. Este arquivo contém todas as configuraçÔes necessårias para conectar ao seu banco de dados.
Aqui estĂĄ um exemplo de como o arquivo pode ser estruturado:
database:
type: postgresql
host: localhost
port: 5432
user: seu_usuario
password: sua_senha
database: nome_do_banco
Certifique-se de substituir os valores de exemplo pelos seus dados reais.
Depois de configurar o banco de dados, vocĂȘ pode executar o script principal. Navegue atĂ© a pasta src/
e execute o seguinte comando:
python main.py
Isso iniciarĂĄ o processo de download e processamento dos arquivos CNPJ.
O projeto inclui uma suĂte de testes para garantir que tudo funcione corretamente. VocĂȘ pode executar os testes com o seguinte comando:
pytest tests/
Isso irĂĄ rodar todos os testes definidos na pasta tests/
.
ContribuiçÔes sĂŁo bem-vindas! Se vocĂȘ deseja contribuir com o projeto, siga estas etapas:
- Fork o repositĂłrio.
- Crie uma nova branch (
git checkout -b feature/nova-funcionalidade
). - Faça suas alteraçÔes e commit (
git commit -m 'Adiciona nova funcionalidade'
). - Envie para o repositĂłrio remoto (
git push origin feature/nova-funcionalidade
). - Abra um Pull Request.
Este projeto estå licenciado sob a Licença MIT. Consulte o arquivo LICENSE
para mais detalhes.
Para mais informaçÔes, visite a seção de Releases para baixar as versĂ”es mais recentes do projeto. Aqui vocĂȘ encontrarĂĄ atualizaçÔes e melhorias contĂnuas.
Sinta-se à vontade para explorar o código, fazer perguntas ou contribuir com melhorias. Estamos sempre abertos a sugestÔes e colaboraçÔes.