Pipeline de Extração, Tratamento e Carregamento para o BigQuery de Dados da Plataforma Nilo Peçanha (PNP)
Este projeto consiste em um pipeline de dados automatizado, desenvolvido em notebooks do Google Colab, que permite a extração, tratamento e carregamento de dados da Plataforma Nilo Peçanha (PNP).
O objetivo é transformar e analisar grandes volumes de dados, disponibilizados anualmente em formato .csv.gz, em um DataFrame limpo, personalizado, padronizado e pronto para análise. O armazenando do Data Frame Pandas final serão tabelas do Google BigQuery, que podem ser conectadas a quaisquer ferramentas de Business Intelligence (BI), como o Google Looker Studio, entre outras. O pipeline é configurável através de uma interface interativa, permitindo que o usuário selecione a tabela de dados conforme a dimensão da PNP, o período de análise e as instituições de ensino desejadas.
- Notebook Colab 1: ETL da PNP para Big Query - dimensão
matriculas - Notebook Colab 2: ETL da PNP para Big Query - dimensão
eficiencia_academica - Notebook Colab 3: ETL da PNP para Big Query - dimensão
servidores - Visualize os resultados no Painel de Análise de Indicadores do IFRN extraídos da PNP.
- Observação: algumas tabelas do painel BI podem, momentaneamente, não estar sendo exibidas, pois podem ter expirado no BigQuery (modo gratuito).
- Download Automatizado: Baixa os arquivos de microdados da PNP diretamente da fonte oficial para uma pasta no Google Drive do usuário.
- Interface Interativa: Permite a configuração de parâmetros (tabela, ano inicial/final, instituição) de forma amigável, sem necessidade de alterar o código.
- Análise de Cabeçalhos: Compara os cabeçalhos dos arquivos CSV de diferentes anos, identificando colunas comuns e inconsistências.
- Processamento Eficiente de Big Data: Utiliza a leitura de dados em chunks (pedaços), permitindo processar arquivos grandes sem sobrecarregar a memória.
- Filtragem e Unificação: Filtra os dados para uma ou mais instituições específicas e unifica os arquivos de múltiplos anos em um único DataFrame.
- Limpeza e Padronização: Aplica um conjunto robusto de regras para limpar, padronizar e enriquecer os dados, com destaque para a normalização de nomes de cursos.
- Exportação para BigQuery: Carrega o DataFrame final e tratado diretamente em uma tabela no Google BigQuery, deixando os dados prontos para consultas e visualizações.
Este notebook automatiza a extração, tratamento e carga (ETL) dos microdados da Plataforma Nilo Peçanha (PNP) para o Google BigQuery. O fluxo foi projetado em etapas sequenciais para garantir a integridade e a qualidade dos dados.
- Instalação das bibliotecas Python necessárias (
pandas-gbq,gspread, etc.). - Autenticação do usuário para permitir o acesso ao Google Drive e aos serviços Google Cloud.
- Ação do Usuário: Executar a célula e autorizar o acesso à sua Conta Google quando solicitado.
- Carregamento das funções em memória que realizam as principais tarefas do pipeline: download, descompressão, análise de cabeçalhos, processamento e tratamento dos dados.
- O usuário define os parâmetros da extração através numa interface básica interativa:
- Ação do Usuário:
- Tabela de Dados: Escolher a base de dados de interesse (ex:
matriculas,servidores). - Período: sefine o intervalo de anos (Ano Inicial e Final) para a extração.
- Nome da Instituição: Inserir o nome ou sigla da(s) instituição(ões) a serem filtradas, separados por vírgula (ex:
IFRN, Instituto Federal do Rio Grande do Norte). - Forçar Atualização: Opção para baixar novamente os arquivos, ignorando o cache local no Google Drive.
- Tabela de Dados: Escolher a base de dados de interesse (ex:
- Com base nos parâmetros da Etapa 3, o script baixa os arquivos
.gz, os descompacta e lê o cabeçalho de cada.csv. Ao final, exibe uma tabela comparativa e sugere uma lista de colunas que são comuns a todos os arquivos do período. - Ponto de Decisão do Usuário: Analisar a tabela de cabeçalhos e copiar e editar conforme a necessidade a lista de colunas sugerida em (
manter_colunas = [...]) a ser utilizada na próxima etapa.
- O usuário deve copiar a lista de colunas sugerida (e editá-la conforme a necessidade) e inseri-la na célula de código desta etapa
- O Script irá utilizar a lista de colunas definida pelo usuário para ler, filtrar (pela instituição selecionada) e unificar todos os arquivos CSV em um único DataFrame Pandas (
df_filtrado). - Ação do Usuário: Colar a lista de colunas copiada da Etapa 4 no local indicado e executar a célula.
- Uma sequência de tratamentos é aplicada ao DataFrame
df_filtradopara criar uma versão limpa e padronizada, chamadadf_tratado. As principais ações são:- Criação da coluna
Cursos: Adiciona prefixos como "Licenciatura em", "Tecnologia em" e "FIC" aos nomes dos cursos de modo a evitar que no passo seguinte, cursos com mesmo nome mas em níveis distintos sejam padronizados equivocadamente. - Padronização de Nomes de Cursos: Executa uma limpeza profunda na coluna
Cursos, removendo prefixos, corrigindo erros e aplicando regras de normalização. - Conversão para Booleano: Trata a coluna
Matrícula Atendidapara que contenha apenas valoresTrueouFalse. - Ajustes Categóricos: Padroniza valores em colunas como
Forma de ingresso. - Renomeação de Colunas: Renomeia todas as colunas para o padrão
snake_case, ideal para bancos de dados. - Conversão de Tipos: Ajusta os tipos de dados de cada coluna (inteiro, data, string, etc.).
- Cálculo de Métricas: Criação de colunas-chave para análise, como
VagaseInscritos, aplicando a lógica de desduplicação para evitar somas inflacionadas.
- Criação da coluna
- Ação do Usuário: Executar as células em sequência para aplicar todo o tratamento.
- São realizadas análises estatísticas descritivas e de outliers sobre os dados tratados para verificar a qualidade final.
- Finalmente, a última etapa do pipeline, envio do DataFrame final (
df_tratado) para uma tabela no Google BigQuery, finalizando o processo de ETL. O script gera um link direto para a tabela criada. - Ação do Usuário:
- Definir as variáveis
project_idedataset_idcom as informações do seu projeto no Google Cloud. - Executar a célula para iniciar o upload.
- Definir as variáveis
- Abra o Notebook: Inicie o arquivo
.ipynbno ambiente Google Colab. - Execute a Etapa 1: Instale as dependências e autentique sua conta Google para acessar o Drive.
- Execute a Etapa 2: Carregue as funções do pipeline.
- Configure na Etapa 3: Preencha os campos da interface interativa com a tabela, período e instituição de seu interesse.
- Execute a Etapa 4: Aguarde o download e a análise dos cabeçalhos. Ao final, copie a lista de colunas (
manter_colunas). - Cole na Etapa 5: Cole a lista de colunas no local indicado e execute a célula para criar o DataFrame bruto (
df_final). - Execute a Etapa 6: Rode todas as células desta etapa para realizar a limpeza e o processamento dos dados.
- Configure e Execute a Etapa 7: Insira o ID do seu projeto e do seu dataset do BigQuery e execute a célula para exportar a tabela final.
- Uma Conta Google com acesso ao Google Drive.
- Um projeto no Google Cloud Platform com a API do BigQuery ativada.
- Permissões de Editor (
BigQuery Data EditoreBigQuery Job User) no projeto do Google Cloud.
- MORAES, Gustavo Henrique et al. Plataforma Nilo Peçanha: guia de referência metodológica. Brasília, DF: Editora Evobiz, 2020. 131 p. E-book (PDF). Disponível em: (https://dadosabertos.mec.gov.br/images/pdf/grm-2020-isbn-revisado.pdf).
- Plataforma Nilo Peçanha no Power BI. Disponível em: (https://app.powerbi.com/view?r=eyJrIjoiZDhkNGNiYzgtMjQ0My00OGVlLWJjNzYtZWQwYjI2OThhYWM1IiwidCI6IjllNjgyMzU5LWQxMjgtNGVkYi1iYjU4LTgyYjJhMTUzNDBmZiJ9).