Skip to content
This repository was archived by the owner on Jan 14, 2026. It is now read-only.

HugoPereira97/IPCA_LESI_ISI_P01

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 

Repository files navigation

Trabalho Prático I de Integração de Sistemas de Informação

Repositório

Link do repositório GitHub


Equipa de Desenvolvimento

  • Duarte Pereira — Nº 27959
  • Hugo Pereira — Nº 27970

Descrição

Este projeto demonstra a aplicação de processos ETL (Extract, Transform, Load) na integração e tratamento de dados de um dataset de inscrições em eventos.


Ferramentas utilizadas

  • KNIME — utilizado pelo aluno Hugo Pereira.
  • Pentaho Kettle — utilizado pelo aluno Duarte Pereira.

Requisitos

  • KNIME Analytics Platform
  • Pentaho Data Integration (Kettle)

Estrutura de Pastas

KNIME

├── data
│ ├── input/ # Ficheiros de dados de entrada
│ │ ├── event_attendance.csv
│ ├── output/ # Dados de saída, logs, amostras, análises e base de dados
│ │ ├── analysis/
│ │ ├── logs/
│ │ └── samples/
│ │ └── database/
├── dataint/ # Workflows de ETL
│ ├── 00_job.knwf
│ ├── 01_preparacao_dados.knwf
│ ├── 02_processo_principal.knwf
│ └── 03_enviar_email.knwf

Pentaho Kettle

├── data
│ ├── input/ # Ficheiros de dados de entrada
│ │ ├── event_attendance.csv
│ ├── output/ # Dados de saída, logs e análises
│ │ ├── analysis/
│ │ ├── logs/
├── dataint/ # Workflows de ETL
│ ├── event_cleaning.ktr
│ ├── event_analysis.ktr

Processos KNIME

Preparação de Dados

  • Invalidação intencional de alguns dados para testar o comportamento do processo principal

Processo Principal

  • Limpeza de duplicados e valores em falta.
  • Validação de campos (e-mail, telemóvel, datas).
  • Criação de identificadores únicos para os utilizadores.
  • Filtragem e seleção de colunas.
  • Normalização e combinação de dados.
  • Criação de amostras representativas.
  • Geração de logs para dados inválidos.
  • Cálculo de métricas e estatísticas.

Escrita na Base de Dados

  • Persistência dos dados validados e normalizados em tabelas da base de dados SQLite.

Disponibilização dos Dados

  • Seleção e combinação das tabelas armazenadas.
  • Disponibilização dos dados combinados para outros processos, como envio de e-mails.

Envio de E-mail

  • Envio de e-mails para participantes inscritos em eventos futuros.

Processos Pentaho

Preparação de Dados

  • Importação dos dados de participantes a partir de ficheiros CSV.
  • Criação de dados de teste com registos inválidos (e-mails e números de telemóvel) para validar a robustez do processo.

Limpeza e Validação (event_cleaning.ktr)

  • Remoção de registos duplicados e valores em falta.
  • Validação de campos críticos, incluindo e-mail e número de telemóvel.
  • Filtragem de inscrições duplicadas no mesmo evento, considerando e-mail e telemóvel.
  • Exportação de logs em JSON dos registos inválidos ou removidos.
  • Geração do ficheiro final limpo em CSV.

Análise e Agregação (event_analysis.ktr)

  • Cálculo do número de participantes por evento.
  • Identificação dos cinco eventos com maior número de participantes (Top 5).
  • Agregação de participantes por estado, extraindo o estado das localizações e somando os participantes por região.
  • Exportação dos resultados em JSON para utilização em dashboards ou outros processos.

Disponibilização e Utilização dos Dados

  • Criação de ficheiros JSON com os resultados das métricas e agregações.
  • Dados preparados para futuras visualizações ou integração em sistemas de análise.

Vídeos Demonstrativos

Vídeo de demonstração do KNIME


Execução

KNIME

  1. Abrir o processo principal (00_job.knwf) no KNIME.
  2. Executar o processo completo ou etapas individuais:
    • Preparação de Dados
    • Processo Principal
    • Escrita Base de Dados
    • Disponibilização dos dados
    • Envio de e-mail

⚠️ Observação: Os processos usam caminhos específicos para os ficheiros (isto é, não usam caminhos relativos). Para executar é necessário adaptar os caminhos dos ficheiros conforme a localização dos ficheiros e da base de dados.

Pentaho

Pré-requisitos

  • Pentaho Data Integration (Spoon) instalado.
  • Ficheiros CSV com os dados de inscrições disponíveis.
  • Pastas de saída configuradas para os ficheiros limpos e JSON.

Passo a Passo

  1. Abrir o Spoon (interface gráfica do Pentaho).
  2. Carregar a transformação event_cleaning.ktr:
    • Este passo lê os ficheiros CSV originais.
    • Aplica validações de campos e remove duplicados.
    • Gera ficheiros JSON de logs e o CSV final limpo.
  3. Carregar a transformação event_analysis.ktr:
    • Lê o CSV limpo gerado pelo event_cleaning.ktr.
    • Calcula métricas: participantes por evento, Top 5 eventos, participantes por estado.
    • Exporta os resultados em JSON.
  4. Verificar os ficheiros de saída nas pastas configuradas:
    • CSV limpo dos participantes.
    • JSON com logs de dados inválidos.
    • JSON com métricas e agregações.

Observações

  • Ambas as transformações podem ser executadas diretamente no Spoon.
  • É importante garantir que as pastas de saída existem antes de executar, para evitar erros de gravação.

⚠️ Observação: Os processos usam caminhos específicos para os ficheiros (isto é, não usam caminhos relativos). Para executar é necessário adaptar os caminhos dos ficheiros conforme a localização dos ficheiros.

About

Trabalho prático I realizado em Integração de Sistemas de Informação (ISI) como parte do curso de Engenharia de Sistemas Informáticos no IPCA.

Topics

Resources

Stars

Watchers

Forks

Contributors