Tipo di tesi
Tesi di laurea magistrale
Titolo
Sviluppo di un'architettura basata su Apache Spark per l'elaborazione massiva di dati di fatturazione in ambito energetico e comparazione con un'architettura basata su database relazionale Oracle
Dipartimento
INGEGNERIA DELL'INFORMAZIONE
Corso di studi
COMPUTER ENGINEERING
Parole chiave
- apache spark
- big data
- dati massivi
- hbase
- nosql
Data inizio appello
20/07/2020
Consultabilità
Non consultabile
Data di rilascio
20/07/2090
Riassunto (Italiano)
Il tema centrale di questo lavoro di tesi è illustrare i passaggi chiave che hanno portato alla costruzione di un’architettura distribuita in grado di processare e gestire in maniera efficiente dati massivi.
L’idea nasce dalle esigenze di un’azienda di sostituire l’attuale architettura Standalone, implementata completamente in linguaggio Java e procedure PL/SQL, che va a sfruttare principalmente l’affidabilità di un database relazionale Oracle, ma che presenta dei limiti prestazionali e difficoltà di gestione di una quantità così importante di dati. In particolare l’obiettivo dell’azienda è poter processare dati massivi in tempi relativamente ridotti e di poter memorizzare queste informazioni su database NoSql in grado in primo luogo di poter gestire dati non strutturati ed in secondo luogo di rendere l’accesso a queste informazioni efficiente. Questo permetterà di processare nuovamente i dati attraverso l’uso di algoritmi di Business Intelligence che permetteranno di estrarre informazioni utili al business aziendale.
La realizzazione del progetto va a sfruttare l’ecosistema Hadoop, in particolare le potenzialità del framework Spark e del database NoSql, HBase. Il sistema è stato implementato interamente in Scala, un linguaggio funzionale che meglio si presta ad effettuare operazioni di filtraggio e trasformazione dei dati necessarie per poter applicare determinate logiche di business. Il sistema deve poter leggere una notevole quantità di dati attraverso file xml o csv ed elaborarli attraverso l’esecuzione di processi Batch che si occuperanno di scrivere i risultati delle esecuzioni su HDFS (Hadoop Distributed File System). La scelta del framework Spark è sicuramente attribuibile alla sua capacità di processare i dati in modo veloce e sicuro grazie ai metodi innovativi di gestione dei dati e della computazione in-memory. Questo permette a Spark di ottenere delle performance maggiori rispetto ad esempio al framework MapReduce che va ad interagire direttamente con il disco.
L’obiettivo finale è duplice: implementare un’architettura basata sul framework Spark e ottimizzarla in modo da poter dimostrare l’efficienza di un sistema di calcolo distribuito predisposto per la gestione di dati massivi a discapito di un sistema Standalone, che soffre la gestione di una così vasta quantità di informazioni.