Riassunto analitico
Il presente lavoro riguarda un'attività progettuale in ambito Business Intelligence (lato backend) svolta in azienda, la quale ha coinvolto il refactoring di un database (PostgreSQL) contenente dati ambientali ARPA e dei relativi flussi ETL (Extract-Transform-Load), nonchè lo sviluppo di nuovi flussi ETL per integrare dati ambientali INEMAR nella piattaforma. Per la parte di ETL è stato utilizzato Talend, richiamando inoltre in alcune situazioni procedure sviluppate in PL/pgSQL. La prima parte di questa attività si concentra sul refactoring del database, partendo da un'analisi as-is fino ad arrivare nel to-be ad avere una struttura uniforme ed ottimizzata per i dati esistenti, con una tabella di storico e una tabella popolata da appositi flussi batch per le varie tipologie di dato ambientale. Viene anche effettuata un'analisi sul perchè è stato adottato il partizionamento, facendo un confronto con altre tecniche di ottimizzazione quali indici e viste materializzate. Vengono infine descritti gli script di DDL (Data Definition Language) realizzati e le funzioni e procedure di supporto implementate utilizzando il linguaggio PL/pgSQL. Successivamente si passa al refactoring dei flussi ETL esistenti, i quali vengono adattati alla struttura delle nuove tabelle. Vengono anche aggiunti sia un meccanismo di log ove assente, sia un meccanismo di invio mail di KO (esecuzione fallita) con l’errore riscontrato, nel caso l’esecuzione di un flusso (tra quelli di batch) non vada a buon fine. In alcuni casi, i flussi sono stati riprogettati ex-novo. Nel capitolo riguardante questa parte, viene prima effettuata un'introduzione in merito alle tipologie di flussi ETL e al tema della data cleaning, per poi fornire una panoramica tecnica e metodologica dei vari flussi riprogettati. Nel fare ciò, vengono descritte inoltre le problematiche tipiche che si possono riscontrare nello sviluppo di flussi ETL e indicate le soluzioni adottate in questo progetto, spiegandone le motivazioni. Viene realizzato inoltre un flusso "main", schedulato giornalmente, che si occupa di lanciare i vari flussi di batch. Infine, viene descritta la parte di attività relativa allo sviluppo dei nuovi flussi ETL per integrare i dati INEMAR nella piattaforma. Questa attività parte dall'analisi della struttura dei dataset disponibili fino ad arrivare alla definizione delle DDL per le varie tabelle e alla descrizione dei relativi flussi implementati. Nel corso della trattazione vengono presentate poi le varie viste unificate (viste di union tra storici e tabelle popolate da flussi batch) e le query per la loro creazione. Tali viste potranno poi essere utilizzate come entry point per effettuare analisi/ulteriori elaborazioni sui dati e/o realizzare opportune dashboard.
|