Stefano Bruni
Studente/i Relatore
Giovanni Taddei
Corso di laurea Modulo
2015
AnnoIngegneria Informatica
PAP
Progetto di Diploma
28.08.2015
DataLa gestione e il controllo di ogni minimo
dettaglio sono di fondamentale importanza per mantenere sana un’impresa. La business
intelligence si occupa di fornire gli strumenti (report e dashboard) necessari al controllo di cui sopra. Questo è reso possibile in quanto al giorno d’oggi la maggior parte dei processi aziendali è informatizzata; la conseguenza di ciò è che risulta assai semplice accedere ed estrarre i dati dai software in uso.
Le nuove strategie di sviluppo software, per ambire a performance e scalabilità sempre migliori, hanno la tendenza a persistere i dati in maniera non strutturata senza relazionarli tra di loro. Ciò pone però problemi in fase di
estrazione dei dati, infatti in queste condizioni le tecniche tradizionali vengono meno.
In questo senso presso EOC vengono utilizzate tecniche di sviluppo quali il Domain Driven
Design, l’event sourcing e il Command Query Responsibility Segregation. Questo approccio,
definito ad eventi, persiste le informazioni in maniera particolare: i dati non vengono salvati in schemi relazionali, bensì vengono registrati in oggetti JSON che a loro volta vengono inseriti in una tabella di database. Tali oggetti, non avendo uno schema relazionale, sono definiti non strutturati.
L’esigenza di estrarre dati rimane alta, ma con queste tecniche di sviluppo l’estrazione risulta molto più complessa.
Dopo aver valutato a fondo i possibili approcci al problema si è deciso di percorrere la via della computazione parallela su cluster. In un primo momento è stata installata una piattaforma di calcolo distribuito chiamata Hortonworks Data Platform. Essa è basata completamente sul file system distribuito hadoop. Per l’estrazione vera e propria è stato utilizzato Apache Spark, un motore generico adatto all’elaborazione di dati su larga scala.
I dati estratti sono stati inseriti in tabelle Sql
Server; su di esse è stato sviluppato un cubo OLAP. Tale strumento permette l’accesso da parte degli utenti con i più comuni mezzi di analisi.
Questo approccio ha portato alla corretta estrazione e fruizione della maggior parte dei dati di interesse. Va messo in evidenza che anche a livello di performance i risultati sono incoraggianti, infatti i file di maggior dimensione (circa 750'000 righe, 291 MB) sono stati
processati, quindi letti dal file su HDFS e inseriti nelle tabelle, in poco meno di 5 minuti.
A partire da questo progetto si possono pensare possibili sviluppi futuri: l’esplorazione di altre fonti dati non strutturate, l’analisi dei log
generati dalle macchine, un approccio differente per lo stream dei dati verso la piattaforma.
Spark su hadoop – Una nuova via di estrazione dati
Correlatore
-Committente