Informazioni Generali

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 streaming ed i sistemi per il machine learning distribuito.

Pagina su DidatticaWeb
Link per Microsoft Teams

CFU

6 CFU, 60 ore di didattica frontale distribuite in 4 ore a settimana.

Risultati dell'apprendimento

Principi, paradigmi e tecnologie per la progettazione e gestione di sistemi a larga scala che processano ed analizzano Big Data.

Prerequisiti

Il corso presuppone una conoscenza delle basi di dati, dei sistemi distribuiti e del Cloud computing.

Modalità di svolgimento delle lezioni

La didattica è svolta esclusivamente in presenza.
La classe virtuale su Teams è utilizzata per condividere il materiale del corso e per le informazioni.

Orario delle lezioni

Orario valido dal 4/3/2024 al 14/6/2024 (secondo semestre)
  • Lunedì dalle 11:30 alle 13:15, aula C5 edificio didattica
  • Giovedì dalle 11:30 alle 13:15, aula B8 edificio didattica

Docenti

Valeria Cardellini
Tel.: 067259 7388
E-mail: img (è 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.



Materiale Didattico

Testi consigliati

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:

Slide delle lezioni

Argomento Lucidi Ultima modifica
Organizzazione del corso Organization.pdf 7/3/2024
Introduzione ai Big Data IntroBD.pdf 10/3/2024
Sistemi per storage dei dati Storage_DFS.pdf 15/3/2024
Hands-on Hadoop Distributed File System
Storage_HandsOn_HDFS.pdf
scaletta
scripts_hdfs.zip
Docker Image Repository
26/3/2024
Data store NoSQL Storage_NoSQL.pdf 24/4/2024
Hands-on NoSQL: Key-value - Redis Storage_HandsOn_NoSQL_KV.pdf
scaletta.txt
scripts_redis.zip
26/3/2024
Hands-on NoSQL: Document-oriented - MongoDB Storage_HandsOn_NoSQL_Doc.pdf
scaletta.txt
scripts_mongo.zip
4/4/2024
Hands-on NoSQL: Column-oriented - HBase Storage_HandsOn_NoSQL_CG.pdf
scaletta.txt
scripts_hbase.zip
Code: HBase Client
18/4/2024
Hands-on NoSQL: Graph - Neo4j (lezione precedente)
scripts_neo4j.zip
18/4/2024
Database NewSQL e database per serie temporali Storage_NewSQL&TSDB.pdf 24/4/2024
Introduzione a MapReduce e Spark Intro_Hadoop+Spark.pdf 24/4/2024
MapReduce e Apache Hadoop MapReduce&Hadoop.pdf 24/4/2024
Apache Spark Spark.pdf
Spark_RDD_examples.pdf
Spark_DF_examples.pdf
11/5/2024
Hands-on NoSQL: InfluxDB Storage_HandsOn_NoSQL_TSDB.pdf
scaletta.txt
scripts_influxdb.zip
7/5/2024
Hands-on Apache Spark and Spark SQL Spark_HandsOn.pdf
Code: Hands-On Spark
7/5/2024
Hands-on CockroachDB Storage_HandsOn_NewSQL_CockroachDB.pdf 7/5/2024

Articoli

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)

Introduzione ai Big Data

Storage: File System Distribuiti

Storage: Data store NoSQL e NewSQL

MapReduce

Spark

Video

Video di presentazioni utili per approfondire alcuni argomenti del corso.


Programma preliminare

  • 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, DynamoDB, 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: Flink, Spark Streaming, Kafka Streams
  • Batch and stream processing in the Cloud
  • Frameworks for cluster resource management
    • Case study: Mesos
  • Distributed and federated machine learning
    • Case studies: Spark MLlib, TensorFlow distributed

Esami

Modalità di esame

  1. 2 progetti assegnati durante il corso: il primo su batch processing, il secondo su data stream processing.
    Progetti da svolgere preferibilmente in gruppo composto da 2 o 3 studenti (singolarmente se non possibile altrimenti).
    Le tracce dei progetti sono pubblicate sul canale Teams del corso.
  2. Prova orale sul programma del corso.

Appelli

  • 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