Il corso copre un'ampia varietà di argomenti avanzati riguardanti il data intensive computing, inclusi i file system distribuiti, i database NoSQL, l'elaborazione di dati batch e dati streaming ed i sistemi per il machine learning distribuito.
Risultati dell'apprendimento
Principi, paradigmi e tecnologie per la progettazione e gestione di sistemi a larga scala che processano ed analizzano Big Data.
CFU
6 CFU, 60 ore di didattica frontale distribuite in 4 ore a settimana
Prerequisiti
Il corso presuppone una conoscenza delle basi di dati, dei sistemi distribuiti e del Cloud computing.
Orario delle lezioni
Il corso si tiene nel secondo semestre.
Orario valido dal 6/3/2023 al 15/6/2023
- Lunedì dalle 11:30 alle 13:15, aula C5 edificio didattica
- Giovedì dalle 11:30 alle 13:15, aula B8 edificio didattica
Classe virtuale
Microsoft Teams:
link
Valeria Cardellini
Tel.: 067259 7388
E-mail:

(è necessario specificare [SABD] nell'oggetto della mail)
Ufficio: stanza D1-17,
corpo D dell'edificio "Ingegneria dell'Informazione", primo piano.
Orario di ricevimento: in aula al termine delle lezioni oppure per appuntamento (contattare via email per concordare giorno e orario).
Matteo Nardelli
E-mail:
(è necessario specificare [SABD] nell'oggetto della mail)
Orario di ricevimento: online, da concordare tramite email.
Non c'è un libro di testo, in quanto il materiale si basa principalmente su
articoli scientifici e documentazione dei framework e tool per Big Data.
Ma se sei interessata/o ad un testo, quelli elencati di seguito coprono una buona parte degli argomenti trattati nel corso:
I seguenti articoli approfondiscono ed integrano gli argomenti trattati a lezione; la loro lettura è raccomandata.
When I talk to researchers, when I talk to people wanting to engage in entrepreneurship, I tell them that if you read research papers consistently, if you seriously study half a dozen papers a week and you do that for two years, after those two years you will have learned a lot. This is a fantastic investment in your own long term development.
(Andrew Ng,
Inside The Mind That Built Google Brain: On Life, Creativity, And Failure)
-
T.H. Davenport and D.J. Patil,
Data Scientist: The Sexiest Job of the 21st Century, Harvard Business Review, 2012.
-
J. Heidrich, A. Trendowicz and C. Ebert,
Exploiting Big Data's Benefits,
in IEEE Software, 2016.
[pdf]
-
H.V. Jagadish et al.,
Big Data and Its Technical Challenges,
Commun. ACM, vol. 57, no. 7, pp. 86-94, July 2014.
[pdf]
-
J. Wing, The Data Life Cycle, Harvard Data Science Review, 1(1), 2019.
[html]
- K. Grolinger, W.A. Higashino, A. Tiwari and M. Capretz, Data management in cloud environments: NoSQL and NewSQL data stores, Journal of Cloud Computing, 2013.
- G. DeCandia, D. Hastorun, M. Jampani, G. Kakulapati, A. Lakshman, A. Pilchin, S. Sivasubramanian, P. Vosshall, and W. Vogels, Dynamo: Amazon's highly available key-value store, In Proceedings of the 21st ACM SIGOPS Symposium on Operating Systems Principles (SOSP '07), 2007.
-
F. Chang, J. Dean, S. Ghemawat, W.C. Hsieh, D.A. Wallach, M. Burrows, T. Chandra, A. Fikes, R.E. Gruber, Bigtable: A distributed storage system for structured data, In Proceedings of the 7th USENIX Symposium on Operating Systems Design and Implementation (OSDI '06), 2006.
-
A. Lakshman and P. Malik, Cassandra: a decentralized structured storage system, SIGOPS Oper. Syst. Rev., Vol. 44, No. 2, pp. 35-40, 2010.
- J. Corbett et al., Spanner: Google’s Globally-Distributed Database, Proc. OSDI '12, 2012.
- M. Stonebraker and A. Weisberg, The VoltDB main memory DBMS, 2013.
-
M. Zaharia et al.,
Spark: Cluster Computing with Working Sets,
In Proceedings of USENIX HotCloud’10, 2010.
-
M. Zaharia et al.,
Resilient Distributed Datasets: A fault-tolerant abstraction for in-memory cluster computing,
In Proceedings of USENIX NSDI’12, 2012.
-
M. Zaharia et al.,
Apache Spark: A Unified Engine For Big Data Processing,
In Commun. ACM, Nov. 2016.
-
M. Armbrust et al.,
Spark SQL: Relational data processing in Spark, In Proceedings of ACM SIGMOD’15, 2015.
-
T. Akidau,
Streaming 101: The world beyond batch, 2015.
-
A. Margara et al., A Model and Survey of Distributed Data-Intensive Systems, arXiv, 2023.
-
M. Fragkoulis et al., A Survey on the Evolution of Stream Processing Systems, arXiv, 2023.
-
P. Carbone et al.,
Apache Flink: Stream and batch processing in a single engine,
In Bulletin of IEEE Computer Society Technical Committee on Data Engineering, 2015.
-
P. Carbone et al.,
State management in Apache Flink, In Proc. VLDB Endow., 2017.
-
M. Hirzel, R. Soulé, S. Schneider, B. Gedik, R. Grimm, A catalog of stream processing optimizations, ACM Comput. Surv., 2014.
-
V. Cardellini, F. Lo Presti, M. Nardelli, G. Russo Russo, Run-time adaptation of data stream processing systems: The state of the art, ACM Computing Surveys, 2022.
Video di presentazioni utili per approfondire alcuni argomenti del corso.
- Introduction to Big Data: issues and challenges
- Data storage: distributed file systems, NoSQL data stores, NewSQL databases, time series databases
- Case studies: HDFS, Dynamo, Redis, MongoDB, Bigtable, HBase, Cassandra, and Neo4j
- Lab: HDFS, Redis, MongoDB, HBase, Neo4j, InfluxDB
- Systems for data acquisition and ingestion: pub/sub, message queues, collection systems
- Case studies: Kafka, Flume, and NiFi
- Systems for batch processing
- Case studies: Hadoop, Spark, and Spark SQL
- Lab: Hadoop, Spark, Spark SQL
- Systems for stream processing
- Case studies: Storm, Flink, Spark Streaming
- Lab: Storm, Spark Streaming, Kafka Streams
- Batch and stream processing in the Cloud
- Frameworks for cluster resource management
- Distributed and federated machine learning
- Case studies: Spark MLlib, TensorFlow distributed
- 2 progetti assegnati durante il corso.
Progetti da svolgere preferibilmente in gruppo composto da 2 o 3 studenti
(singolarmente se non possibile altrimenti).
Le tracce sono pubblicate sul canale Teams del corso.
- Prova orale sul programma del corso.
- I appello sessione estiva
Prova orale: venerdì 23 giugno 2023 ore 10:00, aula B7
- II appello sessione estiva
Prova orale: giovedì 20 luglio 2023 ore 10:00, aula B6
- I appello sessione autunnale
- II appello sessione autunnale
- I appello sessione invernale
- II appello sessione invernale