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.