Il corso mira a illustrare le moderne soluzioni tecniche e metodologiche alla gestione dei big data, ovvero collezioni di dati destrutturati le cui dimensioni superano le capacità di memorizzazione, gestione e analisi tipiche dei tradizionali sistemi per basi di dati. Partendo dai requisiti delle moderne applicazioni per basi di dati, verranno affrontate le diverse problematiche di memorizzazione e uso dei big data, illustrando le architetture hardware e software che sono state proposte per la loro gestione. Gli argomenti che verranno trattati includono: il le architetture basate su cluster, il paradigma map-reduce, il Cloud computing, i sistemi NoSQL, gli strumenti e i linguaggi per l'analisi dei dati. Durante il corso si cercherà di coniugare aspetti metodologici e tecnologici mediante esercitazioni pratiche con l'ausilio di sistemi reali, seminari aziendali e svolgimento di progetti pratici.
scheda docente
materiale didattico
- L'ecosistema Hadoop
- Cloud computing
- Elaborazione di big data (MapReduce, Hive, Spark)
- I sistemi NoSQL
- Tecniche di analisi di big data
- I Data Lake
- Sistemi e applicazioni
- Seminari aziendali
Materiale predisposto dal docente (disponibile sul sito Web del corso)
Programma
- Infrastrutture e paradigmi di programmazione per i big data- L'ecosistema Hadoop
- Cloud computing
- Elaborazione di big data (MapReduce, Hive, Spark)
- I sistemi NoSQL
- Tecniche di analisi di big data
- I Data Lake
- Sistemi e applicazioni
- Seminari aziendali
Testi Adottati
Martin J. Fowler, PramodkumarJ. Sadalage. "NoSQL Distilled: A Brief Guide to the Emerging World of Polyglot Persistence".Materiale predisposto dal docente (disponibile sul sito Web del corso)
Modalità Erogazione
Lezioni frontali Esercitazioni Seminari Lavoro di gruppo Casi di studioModalità Valutazione
La verifica dell’apprendimento avviene attraverso una prova scritta e da alcuni progetti assegnati durante il corso da svolgere in gruppi di due persone. Lo scritto consiste in un problema di big data finalizzato a verificare il livello di comprensione effettiva dei concetti e la capacità degli studenti di applicarli in contesti reali.