Introduzione
x
01010101011010
(C
)-GSM-HSDPA -··
10110101001010
010101010
Argomenti del Corso
- Presentazione del corso
- Introduzione:
- Percorso storico delle organizzazioni dei dati
- Flat files, Modelli gerarchici e reticolari. Il modello relazionale. NoSQL
- Cluster Computing
- Cloud Computing
- Convergenza tra cluster e cloud computing
- Conclusioni
Obiettivi della Lezione
2Obiettivi
- Gli obiettivi della lezione sono:
- presentare il corso di Sistemi di Big Data Analytics;
- illustrare il percorso compiuto negli ultimi decenni dalle tecnologie software
di organizzazione e gestione dei dati e dalle architetture dei sistemi di
elaborazione;
- illustrare le caratteristiche dei Data Base Management System (DBMS)
relazionali e di nuova generazione;
- fornire evidenza di come l'attuale offerta dei servizi tecnologicamente più
avanzati, quali le architetture cluster ed il cloud computing, siano al giorno
f'oggi determinanti per l'abilitazione di modelli di business capaci di
cogliere le opportunità offerte dall'economia globale.
3
Presentazione del Corso
- Il corso ha come obiettivo quello di mettere i partecipanti in grado di
progettare ed implementare un sistema di Big Data Analytics.
- Verranno dapprima illustrati i motivi per cui i sistemi di Big Data Analytics sono
il naturale contesto per l'implementazione di applicazioni industriali di
Intelligenza Artificiale.
- Dopo aver approfondito i concetti architetturali e funzionali dei sistemi di Big
Data e del software di Analytics, i partecipanti realizzeranno, durante lo
svolgimento del corso, un sistema near real time di Big Data Analytics,
sufficientemente rappresentativo, nell'architettura, nelle funzionalità e nella
complessità, di un sistema reale.
- Verranno utilizzati, sia per il software di base che per i linguaggi di sviluppo del
software applicativo, esclusivamente componenti open source.
4Presentazione del corso
- La piattaforma software di riferimento è Python / Apache Spark / R che, oltre a
rappresentare le tecnologie più utilizzate nello sviluppo di sistemi di Big Data
Analytics, costituiscono il cuore di un ecosistema dalle infinite potenzialità di
applicazione industriale. Verranno inoltre illustrati i principi base del Version
Control System ed utilizzato il software GIT per la sua implementazione.
- Gli studenti verranno guidati nell'istallazione di tutte le componenti software,
all'interno di una macchina virtuale VM VirtualBox (Oracle). Il sistema operativo
prescelto è Ubuntu 19.04 Desktop.
- Gli argomenti teorici verranno affiancati da esempi collaudati, in modo da
consentirne una rapida e completa comprensione in ogni fase del corso.
. Il corso prende a riferimento il dominio applicativo del manufacturing,
all'interno del quale verrà sviluppato un semplice ma indicativo sistema di Big
Data Analytics.
5
5
Obiettivi del Corso per i Partecipanti
Presentazione del corso
- Al termine del corso, i partecipanti saranno in grado di:
- conoscere ed implementare l'architettura e le principali componenti di un
sistema di Big Data Analytics;
- installare
ed
utilizzare
la
piattaforma Ubuntu/Python/Apache
Spark/R/MariaDB;
- progettare e sviluppare semplici moduli software per ogni fase del ciclo
elaborativo di un sistema di Big Data Analytics in Python/Apache Spark/R;
- eseguire la ingestion, sia batch che streaming, di dati esterni (raw data),
aggiornare il Data Lake ed il Data Warehouse, eseguire alcuni algoritmi di
Machine Learning;
- Implementare un semplice Distributed Version Control System mediante i
software Git e BitBucket.
6DBMS gerachici e reticolari
DBMS Relazionali
Percorso Storico delle Tecnologie
Percorso storico
V
Hierarchical
DBMS
Relational
DBMS
Data
Warehouse
Cloud
Computing
Data Lake
1970
1980
1990
2000
2010
2020
Cluster
computing
NoSQL
Flat files
Network
DBMS
Integrazione
di basi dati
Big Data
ad hoc
procedures
owner DML
SQL
Business Intelligence
xOLAP, Data Mining
ML, DL, NLP, Analytics
7
negli anni 70 si utilizzavano
linguaggi procedurali come
Assembler, Cobol, Fortran
e strutture dati FLAT FILES
(strutture dati sequenziali)
L'accesso ai dati era a carico del
programmatore. Non c'erano
DBMS
Percorso storico
- In questa lezione ripercorreremo brevemente la storia delle tecnologie di data
storage, cioè delle modalità di memorizzazione e gestione dei dati offerte dai
sistemi di elaborazione, a partire dagli anni '70.
. Al giorno d'oggi le architetture cluster ed il cloud computing sono le tecnologie
fondamentali per lo sviluppo di applicazioni enterprise capaci di abilitare e
supportare modelli di business data-driven.
- La conoscenza di come nel corso degli ultimi decenni le tecnologie si siano
sviluppate ed avvicendate, nonché delle difficoltà che le precedenti generazioni
di programmatori hanno affrontato, aiuta a comprendere appieno le
caratteristiche e le potenzialità delle tecnologie attuali.
- In particolare si capirà il grande salto di qualità avutosi con l'avvento dei
RDBMS, che hanno comportato la disponibilità del linguaggio SQL e la
disponibilità dei metadati.
8Flat files storage
- Negli anni '70, dominati dalle architetture mainframe e dalla IBM, la prima
soluzione dopo le schede ed i nastri furono i dischi magnetici e le
organizzazioni sequenziali, seguite da quelle sequenziali con indici.
. Queste tecnologie erano sotto il controllo diretto del file system e non erano
corredate di software di base di più alto livello per l'interazione tra i dati ed il
software applicativo.
- Pertanto sia i metadati che il modello dei dati erano a carico del
programmatore, ed erano embedded all'interno del software applicativo. Era
quindi totalmente a carico del programmatore l'implementazione dell'accesso e
dell'aggiornamento dei dati.
- Il software applicativo risultava pertanto estremamente personalizzato ed
eterogeneo.
- Esempi celebri sono SAM (Sequential Access Method), ISAM e VSAM della IBM,
gestiti tipicamente mediante linguaggio COBOL.
9
Database Gerarchici
Database gerarchici
- Alla fine degli anni '70 vennero rilasciati i DBMS gerarchici, il più famoso dei
quali era il DL/1 della IBM.
- Un database gerarchico è contraddistinto da:
- naturale rappresentazione delle relazioni gerarchiche (uno a molti) presenti
nella realtà;
- implementazione fisica delle relazioni mediante liste di puntatori ed indici;
- perdita di efficienza nell'implementazione e gestione di relazioni molti a
molti, con conseguente ridondanza logica e fisica;
- inevitabile utilizzo di spazio eccessivo e perdita dei collegamenti durante gli
aggiornamenti;
- procedure di accesso ai dati ancora in buona parte demandate
all'esperienza ed impostazione metodologica dei programmatori.
10Database reticolari
- Il modello reticolare di database (network database) viene proposto da Charles
Bachman nel 1969, come estensione del modello gerarchico, per superarne i
limiti.
- Il modello reticolare è caratterizzato da:
- rappresentazione diretta delle relazioni molti a molti;
- implementazione delle associazioni tra dati mediante liste di puntatori
fisici ed indici;
- difficoltà nella navigazione delle strutture reticolari non particolarmente
semplici;
- perdita dell'integrità e della consistenza delle associazioni implementate, a
causa delle difficoltà nella navigazione ed aggiornamento dei dati.
- Casi di prodotti industriali sono: IDMS (Cullinet); IDS, nato dai laboratori della
General Electric, divenuti poi Honeywell Information Systems.
11
Esempi di Schemi Dati
Esempi di schemi dati gerarchici e reticolari
College
Department
Infrastructure
Course
Teachers
Students
+
+
Theory
Labs
Schema gerarchico
Cunaver
Company
You Tube
Cuvoorser
Schema reticolare
12Il modello relazionale
- Il modello relazionale o RDBMS (Relational Data Base Management System) si
basa su alcuni concetti dell'algebra, quali gli insiemi, le relazioni tra insiemi,
prodotto cartesiano ed operatori logici.
- Fu introdotto per la prima volta dal celebre articolo «A Relational Model of Data
for Large Shared Data Banks", pubblicato nel 1970 da Edgar F. Codd,
ricercatore della IBM. Nel 1981 E. F. Codd pubblico un secondo, altrettanto
celebre articolo, dal titolo "Relational Database: A Practical Foundation for
Productivity".
- Esempi di RDBMS disponibili sul mercato sono:
- ORACLE, della omonimia azienda;
- Ingres, della Università di Berkeley (California);
- DB2, della IBM;
- Postgres and MySQL (open source);
- Microsoft SQL Server.
13
Caratteristiche del Modello Relazionale
Il modello relazionale
- Principali caratteristiche:
- si basa sui concetti algebrico/insiemistici di attributo primario e secondario,
relazione, partizione, entità, tupla, cardinalità;
- è naturalmente integrato con una metodologia di modellizzazione dei dati,
denominata «Entity-Relationship Model», che supporta il progettista nel
disegno di modelli dati privi di ridondanza e consistenti rispetto agli
aggiornamenti;
- è fornito di un DDL (Data Definition Language), specifico per la gestione
dei metadati e per l'implementazione dello schema fisico;
- è fornito di un DML (Data Manipulation Language) per la ricerca e
l'aggiornamento dei dati;
- DDL e DML aderiscono allo standard SQL (Structured Query Language)
emanato dalla ISO (International Organization for Standard).
14Flat File Storage
Esempio: Un sistema di archiviazione su nastro magnetico utilizzato per la gestione dei dati dei
dipendenti in una grande azienda degli anni '70. Ogni record di dipendente era memorizzato uno dopo
l'altro in un grande file sequenziale su nastro.
Pro: La semplicità è il principale vantaggio di questo approccio. I dati possono essere facilmente letti e
scritti con un minimo di sovraccarico, rendendolo efficace per operazioni batch che processano grandi
volumi di dati.
Contro: L'accesso ai dati è lento e inefficiente per le query che richiedono la ricerca di record specifici,
poiché potrebbe essere necessario leggere una grande quantità di dati prima di trovare il record
desiderato. Inoltre, l'aggiornamento dei dati può essere complesso e richiedere la riscrittura dell'intero
file.
Database Gerarchici
Database Gerarchici
Esempio: IBM Information Management System (IMS) usato in una banca per gestire conti e
transazioni. I dati erano organizzati in una struttura ad albero, con il conto cliente come nodo principale
e le transazioni come nodi figli.
Pro: Offre accesso efficiente ai dati attraverso percorsi predefiniti, il che è ideale per applicazioni con
relazioni chiaramente definite e query prevedibili.
Contro: La flessibilità è limitata. Le relazioni many-to-many sono difficili da rappresentare, e le modifiche
alla struttura dei dati possono richiedere un'ampia ristrutturazione.
Database Reticolari
Database Reticolari
Esempio: Integrated Data Store (IDS) per la gestione dell'inventario in un magazzino. Ogni articolo
poteva essere parte di più categorie, e ogni categoria poteva contenere molti articoli, formando una rete
di relazioni.
Pro: Maggiore flessibilità rispetto ai modelli gerarchici, permettendo relazioni complesse tra i dati.
Contro: La complessità della struttura a rete può rendere le query e l'aggiornamento dei dati più
complicati e meno performanti, soprattutto con l'aumento della dimensione del database.