A Receita Federal disponibiliza dados abertos sobre empresas no Brasil. Seu objetivo é realizar a ingestão de duas tabelas a partir de um end-point e processar esses dados para chegar a um output esperado.
- Arquivo: Uma das pastas Empresas.ZIP
- Schema:
| Nome da Coluna | Tipo de Dado | Descrição |
|---|---|---|
| cnpj | string | Número de inscrição no CNPJ (Cadastro Nacional da Pessoa Jurídica) |
| razão_social | string | Nome empresarial da pessoa jurídica |
| natureza_juridica | int | Código da natureza jurídica |
| qualificacao_responsavel | int | Qualificação da pessoa física responsável pela empresa |
| capital_social | float | Capital social da empresa |
| cod_porte | string | Código do porte da empresa |
- Arquivo: Uma das pastas Socios.ZIP
- Schema:
| Nome da Coluna | Tipo de Dado | Descrição |
|---|---|---|
| cnpj | string | Número de inscrição no CNPJ (Cadastro Nacional da Pessoa Jurídica) |
| tipo_socio | int | Identificador de sócio |
| nome_socio | string | Nome do sócio pessoa física, razão social ou nome empresarial da pessoa jurídica |
| documento_socio | string | CPF ou CNPJ do sócio (preenchido com 'NOVES' para sócio estrangeiro) |
| codigo_qualificacao_socio | string | Código de qualificação do sócio |
- Tabela resultante com o seguinte schema:
| Nome da Coluna | Tipo de Dado | Descrição |
|---|---|---|
| cnpj | string | Número de inscrição no CNPJ (Cadastro Nacional da Pessoa Jurídica) |
| qtde_socios | int | Número de sócios participantes no CNPJ |
| flag_socio_estrangeiro | boolean | True se contém pelo menos 1 sócio estrangeiro, False caso contrário |
| doc_alvo | boolean | True se porte da empresa = 03 & qtde_socios > 1, False caso contrário |
- Utilizar Python em sua última versão para o desenvolvimento;
- Arquivo raw pode estar no projeto do GitHub ou em fonte acessível para download;
- Utilização do modelo medalhão (camadas bronze, silver e gold) para o processamento;
- Todo ambiente deve ser containerizado (Docker) e preferencialmente executado com todos serviços dependentes em um único comando;
- Armazenamento do output em um banco que permita aplicações transacionais plugarem, seja SQL ou NoSQL;
- Uso consciente de frameworks e boa organização do código;
- Repositório público, bem documentado e de fácil utilização;
- Funcionalidade e cumprimento dos requisitos apresentados no desafio.