theses

annuncio pubblicitario
Università degli Studi Mediterranea di Reggio Calabria
Dipartimento di Ingegneria dell’Informazione, delle Infrastrutture e
dell’Energia Sostenibile
Corso di Laurea in Ingegneria dell’Informazione
Tesi di Laurea
Progettazione e implementazione di software multimediali
per l’apprendimento di Hadoop e Qlik Sense
Relatore
Candidata
Prof. Domenico Ursino
Antonia Russo
Anno Accademico 2015-2016
II
III
A mia madre, che ha sempre saputo tirare fuori
il meglio di me, insegnandomi a volare.
A mio padre, che pur tenendomi per mano, mi ha lasciata
camminare con le mie gambe lungo la mia strada.
A mia sorella, che porta il sole in tutti i giorni della mia vita.
A mia nonno, il quale avrebbe raccontato a tutto il paese,
con gli occhi pieni di gioia, di questo giorno.
Indice
Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
Introduzione ai Big Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1 Big Data: la loro natura e importanza . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.1 Caratteristiche fondamentali . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.2 Differenti tipi di dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1.3 Importanza dell’analisi dei Big Data . . . . . . . . . . . . . . . . . . . . . .
1.2 Ciclo di vita dell’analisi e risultati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.1 Step by step . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.2 Il lato umano dei Big Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 Investire sui Big Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.1 Le aziende . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.2 I singoli individui . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
7
7
8
8
10
10
11
12
12
13
Il software Camtasia Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.1 I tool per la realizzazione di software didattico . . . . . . . . . . . . . . . . . . .
2.2 Introduzione a Camtasia Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Principali funzionalità di Camtasia Studio . . . . . . . . . . . . . . . . . . . . . . .
2.3.1 Record the screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.2 Clip Bin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.3 Callouts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.4 Zoom-n-Pan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.5 Audio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.6 Transizioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.7 Library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3.8 Produce and share . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4 Perchè Camtasia Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
15
16
16
17
17
17
18
18
19
20
20
20
Hadoop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1 Introduzione ad Hadoop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Architettura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.1 Hadoop Distribuited File System . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.2 Hadoop MapReduce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
23
25
25
27
VI
Indice
3.3 Ecosistema Hadoop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.3.1 HBase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.3.2 Altri componenti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Progettazione di un software multimediale per l’apprendimento di
Hadoop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1 Descrizione della metodologia di progettazione . . . . . . . . . . . . . . . . . . .
4.2 Progettazione della vista logica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3 Progettazione della vista fisica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4 Progettazione della vista utente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.1 Hadoop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.2 Architettura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.3 HDFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.4 NameNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.5 DataNode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.6 Hadoop MapReduce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.7 Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.8 Reduce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.9 Running Hadoop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.10 Prerequisiti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.11 Java . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.12 Hduser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.13 SSH . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.14 Installazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.15 Download . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.16 Configurazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.17 Formattazione HDFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.18 Start single-node cluster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.19 Stop single-node cluster . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4.20 Esempio di implementazione di un job MapReduce . . . . . . . . .
4.4.21 Web Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
33
33
34
35
35
36
36
36
36
36
37
37
37
37
37
38
38
38
38
38
39
39
39
39
39
40
Implementazione di un software multimediale per l’apprendimento
di Hadoop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1 Scelte tecnologiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Implementazione del software multimediale . . . . . . . . . . . . . . . . . . . . . .
5.2.1 Inserimento delle immagini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.2 Registrazione della schermata . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.3 Editing del video . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.4 Salvataggio del filmato finale . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3 Uno sguardo al software . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
49
49
49
50
50
53
54
54
Qlik Sense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.1 Introduzione a Qlik Sense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2 Linea di prodotti Qlik Sense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3 Creazione di una nuova app . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3.1 Hub di Qlik Sense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3.2 I dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
57
57
58
59
59
60
Indice
VII
6.3.3 Fogli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3.4 Campi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3.5 Dimensioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3.6 Misure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3.7 Visualizzazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3.8 Snapshot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3.9 Racconto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3.10 Presentazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4 Condivisione e collaborazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4.1 Pubblicazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4.2 Esportazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
63
63
64
65
65
66
67
68
69
69
70
Progettazione di un software multimediale per l’apprendimento di
Qlik Sense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.1 Premessa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.2 Progettazione della vista logica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.3 Progettazione della vista fisica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4 Progettazione della vista utente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4.1 BI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4.2 Principali tool BI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4.3 Qlik Sense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4.4 Nuova App . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4.5 Caricamento Dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4.6 Gestione Dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4.7 Editor di caricamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4.8 Sistema di visualizzazione dei dati . . . . . . . . . . . . . . . . . . . . . . . .
7.4.9 Fogli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4.10 Campi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4.11 Misure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4.12 Dimensioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4.13 Drill Down . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4.14 Roll Up . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4.15 Visualizzazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4.16 Snapshot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4.17 Racconto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4.18 Presentazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4.19 Cloud . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4.20 Registrazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4.21 Condivisione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4.22 Collaborazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
71
71
71
71
71
72
73
74
74
74
74
75
75
75
75
76
77
77
77
77
77
78
78
78
78
78
79
Implementazione di un software multimediale per l’apprendimento
di Qlik Sense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.1 Implementazione del software multimediale . . . . . . . . . . . . . . . . . . . . . .
8.1.1 Descrizione del case study . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.1.2 Registrazione della schermata . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.2 Uno sguardo al software realizzato . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
89
89
90
90
91
VIII
Indice
Conclusioni e uno sguardo al futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Riferimenti bibliografici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Elenco delle figure
1.1
1.2
1.3
1.4
1.5
Il mondo dei Big Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Dai dati alla saggezza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
I diversi step dei Big Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Google e i Big Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Il valore dei Big Data per le donne oggi . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.1
2.2
2.3
2.4
2.5
2.6
2.7
2.8
2.9
2.10
2.11
Logo di Camtasia Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Interfaccia grafica iniziale di Camtasia Studio . . . . . . . . . . . . . . . . . . . . .
Registrazione di un video . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Esempio di utilizzo della funzionalità “Clip Bin” . . . . . . . . . . . . . . . . . .
Esempio di creazione di un Callout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Esempio di utilizzo della funzionalità “Zoom-n-Pan” . . . . . . . . . . . . . . .
Esempio di utilizzo della funzionalità “Audio” . . . . . . . . . . . . . . . . . . . . .
Esempio di utilizzo della funzionalità “Transizioni” . . . . . . . . . . . . . . . .
Esempio di utilizzo della funzionalità “Library” . . . . . . . . . . . . . . . . . . .
Esempio di utilizzo della funzionalità “Produce and Share” . . . . . . . . .
Play . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
16
17
18
18
19
19
20
21
21
22
3.1
3.2
3.3
3.4
3.5
Logo di Hadoop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Pricipali caratteristiche di Hadoop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Potenzialità di HDFS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Principio di funzionamento di MapReduce . . . . . . . . . . . . . . . . . . . . . . . .
L’ecosistema di Hadoop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
23
24
25
28
31
4.1
4.2
4.3
4.4
4.5
4.6
4.7
4.8
4.9
Visualizzazione dell’albero connesso alla vista logica . . . . . . . . . . . . . . .
Visualizzazione della lista degli argomenti derivante dalla vista fisica .
Mockup relativo alle principali caratteristiche di Hadoop . . . . . . . . . . .
Mockup relativo all’architettura di Hadoop . . . . . . . . . . . . . . . . . . . . . . .
Mockup relativo al funzionamento del file system HDFS . . . . . . . . . . . .
Mockup relativo ai compiti svolti dal NameNode . . . . . . . . . . . . . . . . . .
Mockup relativo ai compiti svolti dal DataNode . . . . . . . . . . . . . . . . . . .
Mockup relativo al principio di funzionamento di Hadoop MapReduce
Mockup che illustra la funzione map() . . . . . . . . . . . . . . . . . . . . . . . . . . .
34
35
36
37
38
39
40
41
41
X
Elenco delle figure
4.10
4.11
4.12
4.13
4.14
4.15
4.16
4.17
4.18
4.19
4.20
4.21
4.22
Mockup che illustra la funzione reduce() . . . . . . . . . . . . . . . . . . . . . . . .
Mockup relativo all’esecuzione di Hadoop . . . . . . . . . . . . . . . . . . . . . . . . .
Mockup relativo ai prerequisiti per installare Hadoop . . . . . . . . . . . . . .
Mockup relativo al download e all’installazione di Java . . . . . . . . . . . . .
Mockup relativo all’aggiunta di un user . . . . . . . . . . . . . . . . . . . . . . . . . .
Mockup relativo alla configurazione dell’accesso SSH . . . . . . . . . . . . . . .
Mockup relativo all’installazione di Hadoop . . . . . . . . . . . . . . . . . . . . . . .
Mockup relativo al download di Hadoop . . . . . . . . . . . . . . . . . . . . . . . . . .
Mockup relativo alla configurazione di Hadoop . . . . . . . . . . . . . . . . . . . .
Mockup relativo alla formattazione del file system di Hadoop . . . . . . .
Mockup relativo all’avvio dei servizi di Hadoop . . . . . . . . . . . . . . . . . . . .
Mockup relativo all’arresto dei servizi di Hadoop . . . . . . . . . . . . . . . . . .
Mockup relativo all’esempio dell’implementazione di un job
MapReduce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.23 Mockup relativo alle Web Interface di Hadoop . . . . . . . . . . . . . . . . . . . .
42
42
43
43
44
44
45
45
46
46
47
47
5.1
5.2
5.3
5.4
5.5
5.6
5.7
Configurazione (parte I) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Configurazione (parte II) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Esempio di una visualizzazione della vista utente nel filmato . . . . . . . .
Esempio di un’immagine creata ai fini del filmato . . . . . . . . . . . . . . . . . .
Esempio di utilizzo della funzionalità di “Zoom” nel filmato . . . . . . . . .
Esempio di utilizzo della funzionalità di “Callout” nel filmato . . . . . . .
Esempio di un frame di una registrazione della schermata nel filmato
51
52
54
55
55
55
56
6.1
6.2
6.3
6.4
6.5
6.6
6.7
6.8
6.9
6.10
6.11
6.12
6.13
6.14
6.15
6.16
6.17
Interfaccia utente di QlikSense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Linea di prodotti QlikSense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Blocchi di un’app . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Hub di Qlik Sense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Esempio del caricamento di un file con lo strumento di gestione di dati
Esempio del caricamento di un file tramite l’editor di caricamento . . .
Script inserito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Sistema di visualizzazione dei dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Esempio di diverse visualizzazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Campi di un’app . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creazione di una dimensione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Creazione di una misura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Esempi di diverse visualizzazioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Esempio di una selezione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Snapshot e libreria relativa agli snapshot . . . . . . . . . . . . . . . . . . . . . . . . .
Esempio di un racconto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Condivisione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
58
58
60
60
61
62
62
63
64
64
65
66
67
67
68
69
70
7.1
7.2
7.3
7.4
7.5
7.6
Visualizzazione dell’albero connesso alla vista logica . . . . . . . . . . . . . . .
Visualizzazione dell’albero connesso alla vista logica . . . . . . . . . . . . . . .
Mockup che illustra le principali applicazioni della BI . . . . . . . . . . . . . .
Mockup relativo ai principali tool di BI . . . . . . . . . . . . . . . . . . . . . . . . . .
Mockup per rappresentare le potenzialità di Qlik Sense . . . . . . . . . . . . .
Mockup volto ad illustrare come realizzare una nuova app . . . . . . . . . .
72
73
74
75
76
76
48
48
Elenco delle figure
7.7
7.8
7.9
7.10
7.11
7.12
7.13
7.14
7.15
7.16
7.17
7.18
7.19
7.20
7.21
7.22
7.23
7.24
8.1
8.2
8.3
8.4
8.5
1
Mockup relativo alle due opzioni di caricamento dati . . . . . . . . . . . . . . .
Mockup relativo alla sezione “Gestione Dati” . . . . . . . . . . . . . . . . . . . . .
Mockup relativo alla sezione “Editor di caricamento” . . . . . . . . . . . . . .
Mockup relativo alla sezione “Sistema di visualizzazione dei dati” . . .
Mockup rappresentativo di un foglio . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Mockup volto ad illustrare i campi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Mockup per illustrare cos’è una misura e come si può aggiungere . . . .
Mockup per illustrare il concetto di dimensione in Qlik Sense . . . . . . .
Mockup per illustrare la funzionalità di “Drill Down” su una
dimensione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Mockup per illustrare la funzionalità di “Roll Up” su una dimensione
Mockup per illustrare la lista delle visualizzazioni . . . . . . . . . . . . . . . . . .
Mockup relativo alle varie attività che è possibile effettuare sugli
snapshot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Mockup rappresentativo di un racconto . . . . . . . . . . . . . . . . . . . . . . . . . .
Mockup relativo alla funzionalità di “Presentazione” . . . . . . . . . . . . . . .
Mockup per illustrare la funzionalità di Qlik Sense Cloud . . . . . . . . . . .
Mockup rappresentativo della registrazione a Qlik Sense Cloud . . . . . .
Mockup per illustrare la condivisione in Qlik Sense . . . . . . . . . . . . . . . .
Mockup per illustrare la collaborazione in Qlik Sense e il concetto
di Qlik Community . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
77
78
79
80
80
81
81
82
Esempio di una visualizzazione della vista utente nel filmato . . . . . . . .
Esempio di utilizzo della funzionalità “Zoom” . . . . . . . . . . . . . . . . . . . . .
Esempio di un frame della registrazione relativa alla creazione di
una misura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Esempio di utilizzo della funzionalità “Callout” . . . . . . . . . . . . . . . . . . .
Prima slide del racconto “Analisi sui Dati EXPO 2015” . . . . . . . . . . . .
92
92
82
83
83
84
84
85
85
86
86
87
93
93
93
Introduzione
Imparare significa condividere il sapere degli altri e renderlo proprio; l’atto di apprendere un qualsiasi argomento e farne tesoro può, e deve essere reso, in ogni caso,
piacevole e interessante: questo è il Leitmotiv che ci ha guidato in tale lavoro di tesi.
L’obiettivo è stato quello di produrre un software didattico multimediale che potesse essere d’aiuto agli studenti interessati o appassionati ai Big Data; in particolar
modo, i software prodotti riguardano l’apprendimento di Hadoop e Qlik Sense, due
famosi tool per l’analisi di grandi quantità di dati.
È di recente origine l’utilizzo di software didattici multimediali per l’apprendimento; tale tecnica sta ottenendo, con il tempo, sempre più successo. I motivi sono
svariati; primo tra tutti è l’esigenza di rendere particolari tematiche appetibili ad
un pubblico quanto più vasto possibile; il secondo motivo è quello di favorire una
specializzazione approfondita ma allo stesso tempo rapida, nelle tematiche desiderate. Inoltre, assume sempre più valore l’interattività tra colui che studia e l’oggetto
dello studio, caratteristica che attraverso un software didattico multimediale può
essere garantita.
Infatti, gli studenti diventano i protagonisti, non spettatori passivi; il prodotto
realizzato (nel nostro caso) nasce, infatti, da uno studio attento delle esigenze dello
studente medio ch e si approccia ad una nuova tematica.
Questa nuova metodologia di apprendimento si sta diffondendo in molti settori
della cultura, in particolar modo sta assumendo un ruolo centrale nei settori ICT ;
quest’ultimo è un ambito in continuo aggiornamento, che vede nell’innovazione e
nella ricerca il proprio punto di forza.
Tra gli innumerevoli campi dell’ICT, ultimamente, emergono con prorompenza
i Big Data e la Big Data Analytics; per questo motivo abbiamo ritenuto utile e
significativo sviluppare un lavoro di tesi il cui fine fosse proprio quello di realizzare
del materiale didattico riguardante tali tematiche.
I Big Data ci interessano più di quanto noi crediamo e sono presenti nella nostra
vita senza che noi ce ne accorgiamo; addirittura, siamo noi stessi, a produrre dati che
potranno servire per condurre analisi o per produrre servizi di cui quotidianamente
usufruiamo.
Moltissime aziende stanno investendo sull’analisi dei Big Data, traendo da essa
benefici in termini di denaro, successo e innovazione; la Big Data Analytcs consiste,
infatti, nel trarre valore dai dati, ossia per un’azienda può voler dire riconoscere
4
Introduzione
trend o pattern particolari per essere in grado di prendere, in un tempo e in circostanze particolari, la decisione giusta e più opportuna; i tool di analisi dei Big Data
sono un ottimo strumento che affianca i decision maker durante tutto il processo
decisionale.
Uno dei tool più famosi è senza dubbio Hadoop, il quale nasce per memorizzare
e analizzare grandi quantità di dati; si distingue dagli altri tool per la sua potenza di
calcolo, la sua flessibilità e il suo basso costo se confrontato con le elevate prestazioni
che offre. Nonostante la lista di tool per l’analisi dei Big Data sia sempre in continuo
aggiornamento, Hadoop rimane, anche per la tolleranza ai guasti e la scalabilità che
esso possiede, uno degli attori principali in tale settore.
Ultimamente, nel mercato dell’analisi dei dati, sta emergendo con sempre maggiore prorompenza, Qlik Sense, tool di Business Intelligence che si pone nel quadrante dei LEADERS nel “Gartner 2016 Business Intelligence Magic Quadrants”.
Esso si distingue per le innumerevoli funzionalità che offre sull’analisi dei dati; Qlik
Sense permette, infatti, di effettuare in maniera intuitiva tutte le richieste sui dati
necessarie al supporto del processo decisionale. È uno strumento molto potente, il
quale si adatta alla perfezione a qualsiasi ambito e a qualsiasi livello di conoscenze
e competenze dell’utente che lo utilizza.
Il lavoro di tesi è stato strutturato in varie fasi, tutte tra loro complementari e
indispensabili.
Il primo passo è stato quello di studiare e imparare i tool sopra citati; è stato
necessario uno studio dell’ambiente Hadoop per comprenderne i principi di funzionamento e i concetti che stanno alla base di esso. Per quanto riguarda Qlik Sense,
il processo di apprendimento è stato più pratico e diretto avendo, infatti, preso
in considerazione un case study specifico, ovvero l’analisi dei dati provenienti dai
dataset “Open Data EXPO 2015”.
Per poter creare un software didattico multimediale che potesse essere d’aiuto
per gli studenti, il punto di partenza è stato quello di conoscere e approfondire, da
studentessa, le tematiche trattate nei filmati che sono stati realizzati.
Dunque, a partire da ciò, è stata definita una metodologia di progettazione, grazie alla quale è stato possibile creare un progetto di riferimento al quale appoggiarsi
durante l’implementazione del software.
Si è ritenuto che la metodologia opportuna da seguire fosse quella di prendere
come riferimento un modello formato da un insieme di viste, in particolar modo tre
viste differenti, ovvero la vista logica, quella fisica e quella utente.
La fase di progettazione è ciò che rende i software didattici multimediali creati
diversi dai “tutorial” che possono essere trovati in rete; durante tale fase sono emersi
dapprima, in forma gerarchica e successivamente in forma sequenziale, gli argomenti
che dovevano essere trattati e meritavano la giusta attenzione per uno studente che
si approccia allo studio di queste tematiche; l’obiettivo è stato quello di rendere tali
argomenti chiari e facili da imparare.
L’implementazione ha giocato un ruolo preminente nella presente tesi; essa, corrisponde al momento in cui tutto ciò che è stato appreso e studiato viene messo in
pratica.
Quest’ultima fase è stata la più impegnativa perchè è stato necessario trovare
il modo per comunicare e trasmettere agli altri, in modo efficace e realmente utile,
anche l’entusiasmo e l’interesse provati nell’imparare questi nuovi tool.
Introduzione
5
Il prodotto finale della presente tesi sono due software didattici multimediali
attraverso cui uno studente può conoscere e imparare ad utilizzare Hadoop e Qlik
Sense; in particolar modo, il filmato è un insieme di elementi, come immagini, testi
e registrazioni della schermata.
Un ruolo fondamentale viene giocato dalle registrazioni delle schermate effettutate, in quanto, attraverso queste, vengono mostrate, in maniera chiara e senza
filtri, le azioni da compiere e da replicare sul proprio computer.
Si è cercato di rendere il prodotto più vicino possibile agli studenti, inserendo
didascalie e spiegazioni nei momenti più opportuni, oppure completando il filmato
con un audio che potesse rendere la visione piacevole e alleggerisse i contenuti seri
e didattici.
Nella presente tesi verranno trattati gli argomenti e i processi di progettazione
ed implementazione menzionati in precedenza. Essa si struttura come di seguito
specificato:
•
•
•
•
•
•
•
•
•
Il Capitolo 1 presenta un’introduzione ai Big Data, esaminandone i caratteri
emblematici e i passi attraverso cui è possibile trarre valore dalla loro analisi;
successivamente, viene trattata l’importanza e l’influenza dei Big Data nella vita
aziendale e dei singoli individui.
Il Capitolo 2 illustra le caratteristiche e le potenzialità del software scelto e
utilizzato per la creazione dei software didattici multimediali, ovvero Camtasia
Studio.
Nel Capitolo 3 viene presentato il framework Hadoop, considerandone i punti di
forza e tutti i suoi componenti più importanti, al fine di comprendere i principi
di funzionamento del tool e le sue possibili applicazioni.
Il Capitolo 4 descrive il processo di progettazione del software multimediale per
l’apprendimento di Hadoop, a partire dalla progettazione della vista logica, per
passare a quella della vista fisica e concludendo con quella della vista utente.
Il Capitolo 5 descrive il processo di implementazione del software multimediale
per l’apprendimento di Hadoop, descrivendo le scelte tecnologiche effettuate e
tutti i processi compresi durante tale fase, per concludere con alcune schermate
del software stesso.
Nel Capitolo 6 viene presentato il tool Qlik Sense, enunciando le sue caratteristiche distintive e descrivendo tutte le sue possibili funzionalità.
Il Capitolo 7 descrive il processo di progettazione del software multimediale per
l’apprendimento di Qlik Sense; tale processo è analogo a quello effettuato per il
software volto all’apprendimento di Hadoop.
Il Capitolo 8 descrive il processo di implementazione del software multimediale
per l’apprendimento di Qlik Sense; tale processo è analogo a quello effettuato
per il software volto all’apprendimento di Hadoop.
Infine, nel Capitolo 9 vengono tratte le conclusioni del lavoro svolto e vengono
esaminati alcuni possibili sviluppi futuri.
1
Introduzione ai Big Data
Questo capitolo tratta i Big Data nella loro natura tecnologica, esaminandone le
caratteristiche primarie, i segni distintivi e i risultati che ne derivano dalla loro
analisi; inoltre viene dato spazio alla loro importanza e influenza nella vita aziendale
e dei singoli individui.
1.1 Big Data: la loro natura e importanza
Con il termine Big Data è possibile definire un insieme di dati la cui analisi, data
la loro grandezza e le loro caratteristiche specifiche, non può avvenire con i classici
metodi convenzionali, ma non solo. I Big Data devono essere visti come una grande
fonte di valore per l’umanità, ecco perchè moltissime aziende stanno investendo
sulle tecnologie innovative che permettono di estrarre informazioni utili dalle enormi
quantità di dati che hanno a disposizione, con il fine di produrre effetti sulle loro
politiche aziendali e sulla vita delle singole persone.
1.1.1
Caratteristiche fondamentali
I Big Data (Figura 1.1) si differenziano da un insieme di dati convenzionale non
soltanto per la loro dimensione ma, soprattutto, per alcune proprietà che vengono
definite “The Five Vs” , senza le quali non potremmo parlare di Big Data:
•
•
•
•
•
Volume: social media, sensori e transazioni online sono fonti di una mole enorme
di dati; ecco perchè la prima V è proprio il volume.
Velocità: considerate le esigenze dovute al progresso tecnologico, la rapidità con
la quale i suddetti dati sono prodotti e devono essere analizzati, la velocità di
elaborazione deve essere elevata e in continuo aumento.
Varietà: dati strutturati, testi, immagini, audio, XML, JSON, dati prodotti dai
sensori e metadat, sono i diversi tipi di dati che la parola “Big Data” racchiude.
Veracità: obiettivo dell’analisi dei Big Data è trarre informazioni utili dai dati,
motivo per cui l’accuratezza e la fedeltà di questi devono essere garantite.
Valore: il valore rappresenta l’ultima V, ma non per importanza, perchè i dati ma
soprattutto i risultati derivati dalla loro analisi, assumono una grande rilevanza
nella nostra vita.
8
1 Introduzione ai Big Data
Figura 1.1. Il mondo dei Big Data
1.1.2
Differenti tipi di dati
Nel contesto dei Big Data, i dati analizzati provengono da disparate fonti; per questo
la loro natura e il loro studio possono essere variegate. Ad ogni modo, per quanto
concerne questa tematica, i Big Data vengono racchiusi, in linea di massima, in tre
macrocategorie:
• Dati strutturati: sono i dati memorizzati nella classica forma tabellare, la quale
evidenzia chiare relazioni tra le diverse entità; data la frequenza con la quale tali
dati vengono prodotti dai sistemi informatici, esistono molti tool e database che
li supportano.
• Dati non strutturati: non possono essere ricondotti ad uno schema o a un modello
di dati, la loro crescita sta superando quella dei dati strutturati, essendo di
diversi tipi (immagini, video, audio, testi, e molto altro ancora); per la loro
varietà e le loro caratteristiche non possono essere memorizzati in un database
relazionale.
• Dati semi-strutturati: possiedono un livello di consistenza e di struttura definito,
non di natura relazionale, ma per esempio, di tipo gerarchico. I file XML sono
degli esempi di dati semi-strutturati; essi contengono al loro interno dei marcatori che consentono di mantenere la natura gerarchica tra i campi rappresentativi
dei dati.
1.1.3
Importanza dell’analisi dei Big Data
L’analisi dei dati è una disciplina che comprende tutti i passaggi grazie ai quali
è possibile estrarre valore dai dati. Prima di ogni cosa bisogna porsi un serie di
1.1 Big Data: la loro natura e importanza
9
domande del tipo: “Quale problema vogliamo risolvere?” e “Qual è il livello di complessità delle risposte che mi aspetto?”. A partire da ciò, è possibile comprendere,
innanzitutto, quali siano i dati da analizzare e il tipo di analisi che si deve effettuare.
Proprio per questo motivo esistono quattro categorie di analisi (Figura 1.2) che si
distinguono per i risultati che essi producono.
L’analisi descrittiva consiste nel ricavare informazioni utili relative ad eventi
che già sono accaduti nel passato, per esempio: “Quante sono state le vendite negli
scorsi 12 mesi?”
L’analisi diagnostica, piuttosto che sul “Che cosa?”, produce risposte sul “Perchè?”
dunque, studiando eventi passati e considerando le conseguenze che essi hanno apportato sul presente, si risale alle motivazioni che li hanno generati; questo tipo di
analisi è utile per diagnosticare, appunto, trend o pattern correnti.
Scopo dell’analisi predittiva è quello di determinare il risultato degli eventi che
potrebbero avvenire nel futuro, ottenendo, cosı̀, delle predizioni che dipendono implicitamente dagli eventi passati e dalle condizioni sulla base delle quali questi ultimi
si sono verificati.
A partire dai risultati emersi dall’analisi predittiva, mediante l’analisi prescrittiva, si prescrivono le decisioni che dovrebbero essere prese in determinate circostanze
che potrebbero riproporsi in futuro, in modo da ricavare le motivazioni per le quali
la scelta da prendere si eleva dalle altre.
Figura 1.2. Dai dati alla saggezza
Come si nota dalla breve descrizione dei diversi tipi di analisi, ognuna ha un
livello di complessità e un valore diverso; entrambi crescono dall’analisi descrittiva
fino a quella prescrittiva. Essere in grado di conoscere le azioni da compiere, date
alcune circostanze, in un tempo futuro, è il più grande valore che lo studio dei Big
Data può darci.
10
1 Introduzione ai Big Data
1.2 Ciclo di vita dell’analisi e risultati
Considerate le caratteristiche peculiari e i diversi tipi di analisi, percorreremo il
ciclo di vita dei Big Data, fase dopo fase e scopriremo quanto sia fondamentale,
per un’ottima riuscita dell’analisi, la presenza di figure professionali preparate e
specializzate nei vari aspetti che si dovranno affrontare. Un’idea delle varie fasi da
prendere in considerazione può essere dedotta esaminando la Figura 1.3.
Figura 1.3. I diversi step dei Big Data
1.2.1
Step by step
La fase iniziale dell’analisi consiste nell’individuare un business case chiaro e definito; quest’ultimo ha l’obiettivo di definire le motivazioni e gli obiettivi del progetto,
valutare le risorse di business, le sfide da affrontare, i costi e i vantaggi. Preso in
considerazione il business case, occorre valutare se esso tratta problemi che hanno a
che vedere con i Big Data; in caso affermativo, il prossimo passo è dedicato all’identificazione dei dati necessari per continuare e portare a termine l’analisi; tali dati
potranno essere dataset interni o esterni all’impresa e provenire da sorgenti diverse.
Subito dopo occorre considerare i dati che servono realmente ai fini della nostra analisi, filtrando ed eliminando quelli che potrebbero essere corrotti o inadatti
al nostro studio; lo step successivo consiste nell’estrarre i dati, ed eventualmente,
trasformarli in un formato adeguato alle soluzioni utilizzate per i Big Data, ossia
prelevare e separare gli uni dagli altri i dati necessari alla nostra analisi. In questa
fase è necessario definire delle regole per valutare la validità dei dati e, nel caso
in cui siano presenti dei dati non validi, prestare loro un’attenzione particolare; si
può, dunque, procedere rimuovendo tali dati o analizzandoli ulteriormente dal momento che potrebbero portare con sè un grande valore, perchè sintomi di eventuali
anomalie, o nuovi pattern.
1.2 Ciclo di vita dell’analisi e risultati
11
Ottenuti tutti i dati di cui abbiamo bisogno, occorre aggregarli e cercare delle
associazioni tra di essi, in modo da evitare di avere delle ridondanze, cercando di
avere un insieme di dati il più unificato possibile e di ottenere una rappresentazione
quanto più adatta possibile alle esigenze dell’analisi. Passo fondamentale è, dunque,
l’analisi dei dati con l’obiettivo di ottenere informazioni utili e creare valore dai dati
che abbiamo ricavato.
L’analisi può essere di due tipi: confermativa o esplorativa; la prima può essere
effettuata se si ha chiara, fin dall’inizio, la causa del fenomeno che si sta analizzando;
la seconda ha a che vedere con il data mining; non prevede, infatti alcuna ipotesi
ma i dati vengono analizzati per scoprire la causa del fenomeno.
L’ultimo passo consiste nella visualizzazione dei risultati ottenuti. Sebbene ogni
passo sia fondamentale, quest’ultimo assume un valore estremamente rilevante; esso
rappresenta, infatti, il momento in cui vengono interpretati i dati e, a partire da ciò,
vengono prese decisioni sul fenomeno analizzato o che è nato a partire dall’analisi;
ecco che una visualizzazione chiara e intuitiva è necessaria, anche perchè i risultati
ottenuti devono essere compresi non soltanto dal data scientist ma, forse, soprattutto
dai decision maker e da tutti coloro che operano sul settore a cui i dati si riferiscono.
Compresi i risultati, e resi gli stessi disponibili agli utenti aziendali per il decision
making aziendale, si passa all’azione: viene valutato, dunque, come i dati possono
realmente essere utilizzati per portare dei miglioramenti o correggere alcuni trend,
dell’azienda o dei suoi clienti stessi.
1.2.2
Il lato umano dei Big Data
Se il vostro intento è quello di raggiungere dei risultati tangibili per la vostra
organizzazione grazie ai Big Data, l’elemento più importante che dovete considerare è certamente quello umano. In fin dei conti, pressocchè tutti gli altri
fattori sono gratuiti, o poco costosi. In genere il software è open source; l’hardware è ormai a tutti gli effetti un bene di largo consumo. Accade spesso che i
dati siano già disponibili all’interno della vostra organizzazione, o siano reperibili a basso costo, per esempio su internet. Le risorse umane capaci di lavorare
con i Big Data, invece, sono sempre difficili da trovare e poi da trattenere in
azienda, e sono costose. Senza di loro però non si può fare molto.
Queste poche righe tratte dal libro “Big Data @l lavoro” di Thomas H. Davenport, evidenziano in modo molto chiaro l’importanza ricoperta dal fattore umano
nel contesto dei Big Data.
Come in qualsiasi ambito lavorativo o di ricerca, l’importanza dell’uomo, con le
sue conoscenze ed esperienze, va di pari passo con l’innovazione tecnologica e tutto
quello che essa comporta. Nello studio dei Big Data si incontra la figura del data
scientist, ovvero di colui che possiede competenze e conoscenze che ricoprono diversi
settori. Innanzitutto, egli deve conoscere e saper utilizzare le tecnologie per l’analisi
dei Big Data, prima fra tutte Hadoop/MapReduce. Egli inoltre, deve essere pronto
ad imparare le nuove metodologie di analisi e i tool che sono sempre in continuo
rinnovamento.
Deve essere un analista quantitativo, ossia deve sapere lavorare con i dati utilizzando i mezzi che la matematica e la statistica mettono a disposizione; deve,
12
1 Introduzione ai Big Data
dunque, ricavare delle visualizzazioni dei risultati e saperle spiegare anche ai meno
esperti. Ecco che, tra le competenze emerge, anche, la capacità di comunicazione e
di relazione con gli altri; egli deve essere un buon decision maker e deve avere ben
chiari in mente gli obiettivi e le strategie di marketing dell’azienda per cui porta
avanti il progetto.
Tutte queste qualità sono necessarie per la buona riuscita dell’analisi e possono essere distribuite all’interno di un team; ecco perchè, di solito, seppur il data
scientist sia colui che ha buone conoscenze riguardo tutta la dinamica di insieme
del progetto, esistono figure specializzate alle quali vengono attribuiti particolari
compiti all’interno del team.
1.3 Investire sui Big Data
Perchè un’azienda dovrebbe decidere di investire sui Big Data? Quanto siamo influenzati dai Big Data? Come e quanto ci stanno cambiando la vita? Sono, queste,
domande estremamente importanti e attuali a cui cercheremo di dare risposta in
questa sezione.
1.3.1
Le aziende
Molte delle più grandi compagnie della Silicon Valley hanno investito da tempo sui
Big Data, guadagnando in termini di successo, di efficienza e diventando imbattibili,
parliamo di Google (Figura 1.4), Amazon, Facebook, Yahoo!, LinkedIn, per esempio;
queste sono state da sempre promotori di tecnologie per l’analisi dei Big Data,
come, per esempio, il framework MapReduce, proposto da Google nel 2004, oppure
lo stesso Hadoop, lanciato da Yahoo!. Perchè investire sui Big Data? Ecco alcuni
motivi:
•
•
•
•
riduzione dei costi;
riduzione dei tempi;
rilevazione di rischi e frodi;
maggiore soddisfazione dei clienti.
Obiettivo di ogni azienda è quello di ottimizzare le risorse a disposizione, prendere le decisioni giuste nel momento giusto ed avere clienti felici, oltre a felici guadagni.
Da un report realizzato dalla SAS, nel quale vengono intervistate venti diverse compagnie riguardo al loro rapporto con i Big Data, emerge quanto un’azienda possa
risparmiare in un anno per memorizzare un terabyte di dati: dai 37.000 dollari per un
database relazionale tradizionale, a 2.000 dollari utilizzando un cluster di Hadoop.
In termini di tempo, invece, questo report ci suggerisce che la catena statunitense
Macy’s, utilizzando le tecnologie solite dei Big Data, è stata in grado di prezzare i
suoi 73 milioni di articoli in saldo, da 27 ore in solo un’ora.
Inoltre moltissime altre aziende si preoccupano non solo di ottimizzare prezzi e
tempi, ma di incrementare la soddisfazione dei clienti creando soluzioni ad hoc per
ciascuno di essi, per comprendere il grado di insoddisfazione riguardo ad alcune tematiche, oppure, ancora, per ricavare informazioni utili per il lancio di nuovi servizi
o prodotti. Un esempio ci viene offerto dalla United HealthCare, la quale utilizza
1.3 Investire sui Big Data
13
la tecnica NLP (Natural Language Processing) per capire il grado di soddisfazione
dei propri clienti; infatti, i dati provenienti dalle chiamate registrate dai call center
vengono collocati in un “data lake” gestito con Hadoop; l’analisi consiste nel conteggio di alcune parole, sinonimi di insoddisfazione, che possono, dunque, evidenziare
eventuali decisioni da prendere o cambiamenti di rotta su alcuni servizi offerti.
Un ulteriore esempio può essere uno dei progetti portato a termine della Verizon Wireless il più grande provider di telecomunicazioni wireless degli Stati Uniti,
realizzato per i Phoenix Suns, una squadra di pallacanestro della NBA. Grazie alle
informazioni che possiede la compagnia sui propri clienti, sono stati in grado di definire dove vivono gli spettatori, i loro profili (età, sesso, stato civile) e la frequenza
con la quale seguono le partite nell’area di Phoenix, informazioni estremamente utili
per definire le categorie di spettatori sulle quali puntare.
Come si nota, molte aziende stanno puntando sui Big Data, essendo essi fonte
di informazioni utili e di valore, talvolta indispendabili per la loro crescita e la loro
innovazione.
Figura 1.4. Google e i Big Data
1.3.2
I singoli individui
Big Data is everywhere
La nostra vita è sommersa di dati di ogni genere; quando effetuiamo una ricerca
su Google, acquistiamo e leggiamo un libro raccomandato da Amazon, guardiamo
video su YouTube, condividiamo un contenuto su Facebook, ascoltiamo musica su
Spotify, senza rendercene conto siamo noi stessi a generare e fornire dati. Questi
serviranno, in parte, a rendere più semplice la nostra vita, suggerendoci contenuti
sempre più pertinenti rispetto ai nostri interessi, guidandoci nelle nostre scelte quotidiane e influenzando le nostre abitudini. La sfida più grande dell’analisi dei Big
Data è quella di creare, come risposta alle nostre richieste, dei contenuti che siano
sempre più vicini alle nostre esigenze, che siano personalizzati, unici, proprio come
lo è ogni singolo individuo.
14
1 Introduzione ai Big Data
Lo studio dei Big Data sta producendo molti risvolti sociali positivi; un esempio
proviene dalla “Bill & Melinda Gates Foundation”, la quale è stata portatrice di
un progetto che riguarda l’utilizzo dei Big Data per migliorare la vita delle donne;
esso nasce dalla constatazione che esiste una grave mancanza di dati sulle donne,
anche dati di base, che rendono una donna, per lo Stato, inesistente. Si tratta di
un investimento di 80.000 dollari in tre anni per migliorare il modo in cui i dati
vengono raccolti e utilizzati e per evitare che esista, anche nei dati, il diffamato
Gender Gap (Figura 1.5).
Figura 1.5. Il valore dei Big Data per le donne oggi
2
Il software Camtasia Studio
Questo capitolo introduce le caratteristiche e le funzionalità del software Camtasia
Studio, indispensabile elemento attraverso cui realizzare il nostro software didattico.
2.1 I tool per la realizzazione di software didattico
Per software didattico intendiamo un prodotto creato per migliorare l’insegnamento e l’apprendimento in ambito scolastico e universitario; esso è un supporto grazie al quale lo studio di particolari tematiche o l’utilizzo di software propedeutici
all’insegnamento (come nel nostro caso) viene facilitato.
Esistono vari tool per realizzare software didattici, il più conosciuto è Power
Point, grazie al quale è possibile creare presentazioni nelle quali si alternano immagini e testi accompagnati da effetti ed animazioni; pur essendo uno strumento
molto semplice, Power Point a volte non basta per rispondere a tutte le esigenze
degli studenti. Ecco da dove nasce l’idea di utilizzare Camtasia Studio (Figura 2.1),
tool che permette di realizzare software didattici che comprendono video realizzati
registrando lo schermo del computer, oltre alle diapositive messe a disposizione da
qualsiasi software per presentazioni; in questo modo si possono illustrare, in modo
completo e senza filtri, le funzionalità di un qualsiasi sistema software.
Figura 2.1. Logo di Camtasia Studio
16
2 Il software Camtasia Studio
2.2 Introduzione a Camtasia Studio
Camtasia Studio è un software, utilizzato anche in ambito professionale, per creare
ed editare screencast, ossia registrazioni digitali dell’output dello schermo. Queste
registrazioni vengono realizzate, nella maggior parte dei casi, a scopo illustrativo
o educativo per mostrare ed insegnare le funzionalità di un software, oppure per
registrare e salvare, in maniera molto veloce, lezioni nelle quali è previsto l’uso del
proprio computer.
Il software permette di catturare l’intero schermo, o parte di esso; esso consente
di integrare l’audio, oppure le registrazioni tramite webcam; tuttavia ciò che lo
distingue dagli altri software è la possibilità di arricchire la propria registrazione
con moltissime funzionalità, come effetti o animazioni, per rendere il proprio video
il più utile ed efficiente possibile.
Una volta concluso, il video può essere salvato in molti formati e pubblicato
per essere condiviso da tutti coloro che ne vogliono usufruire. L’interfaccia grafica è
intuitiva, (Figura 2.2); al centro verrà visualizzata l’anteprima del video di output
(1), in basso sono presenti le timeline con i flussi di video, immagini e audio inseriti
nel progetto (2), in alto a sinistra (3), invece, è possibile visualizzare l’attività che
si seleziona dalla barra degli strumenti (con tutte le funzionalità possibili) sopra le
timeline (4).
Figura 2.2. Interfaccia grafica iniziale di Camtasia Studio
2.3 Principali funzionalità di Camtasia Studio
È possibile considerare tre macro funzionalità del software, ovvero:
• registrazione;
2.3 Principali funzionalità di Camtasia Studio
•
•
17
editing;
produzione.
Per ogni ciascuna di tali funzionalità il software mette a disposizione molti
strumenti e idee per rendere il video quanto più semplice ed accattivante possibile.
2.3.1
Record the screen
Il software consente, innanzitutto, di effettuare la registrazione dello schermo, impostando se essa è full screen o selezionando le dimensioni desiderate. Prima di iniziare
la registrazione è possibile impostare in modalità on/off la webcam o l’audio; di quest’ultimo, poi, si può scegliere il volume. Una volta iniziata la registrazione, verrà
registrato l’output del nostro schermo; nel mentre è possibile mettere in pausa e regolare il volume (Figura 2.3); concluso il video, esso può essere salvato o eliminato,
nel primo caso è pronto per essere editato, questa fase consiste nel rendere il video
il più chiaro ed esplicativo possibile.
Figura 2.3. Registrazione di un video
2.3.2
Clip Bin
Selezionando “Clip bin” si visualizzano i file multimediali importati nel progetto,
utili per la creazione del video finale e suddivisi per tipo (video, immagini, musica).
Ovviamente, sarà possibile ritagliare musica, video e audio, negli istanti di tempo
desiderati, e separare l’audio dal video, se quest’ultimo si vuole eventualmente eliminare. Inoltre, si potrà specificare e modificare la velocità di ogni video, a partire
da quella originale, secondo le diverse esigenze (Figura 2.4).
2.3.3
Callouts
Mediante la selezione “Callouts” è possibile inserire testo e forme. Entrambe queste entità possono essere personalizzate, modificandone il colore e inserendo effetti
particolari. La peculiarità di questa funzionalità è che è possibile creare il proprio
callout come, per esempio, la freccia nella Figura 2.5.
Camtasia Studio consente di scegliere colore, dimensione e carattere del font,
colore dei bordi e del riempimento, effetti e durata all’interno del video. I callout
sono uno strumento fondamentale per mettere in evidenza un dettaglio o un’azione
che, altrimenti, sarebbero poco notati nel video.
18
2 Il software Camtasia Studio
Figura 2.4. Esempio di utilizzo della funzionalità “Clip Bin”
Figura 2.5. Esempio di creazione di un Callout
2.3.4
Zoom-n-Pan
In un momento del video potrebbe nascere l’esigenza di effettuare lo zoom su un
particolare, questo con Camtasia Studio è possibile tramite la selezione “Zoom-nPan”. A tal fine, come si nota dalla Figura 2.6, si definisce la zona su cui puntare
l’attenzione e si imposta il tempo in cui il video riprenderà tale particolare, per poi
ritornare alle dimensioni originarie dell’immagine.
2.3.5
Audio
Per creare un buon video è necessario scegliere l’audio che si addice perfettamente
ad ogni suo frame. In Camtasia Studio c’è una parte interamente dedicata a ciò
2.3 Principali funzionalità di Camtasia Studio
19
Figura 2.6. Esempio di utilizzo della funzionalità “Zoom-n-Pan”
(Figura 2.7). È possibile definire, innanzitutto, l’inizio e la fine dell’audio tramite
gli “audio point”. È possibile, altresı̀, aumentare e diminuire il volume secondo
le proprie esigenze; inoltre con il tasto “silence” si può eliminare completamente
l’audio. Selezionando “fade in” e ‘fade out’, rispettivamente, l’audio aumenta e
diminuisce gradualmente, per migliorare l’ascolto.
Figura 2.7. Esempio di utilizzo della funzionalità “Audio”
2.3.6
Transizioni
Affinchè il video diventi interessante, e per evitare il rischio che esso diventi monotono, ad ogni immagine o video è possibile applicare le transizioni con le quali essi
20
2 Il software Camtasia Studio
compaiono; come si nota dalla Figura 2.8, cliccando “Transitions” si visualizzano
tutti gli effetti di transizione applicabili.
Figura 2.8. Esempio di utilizzo della funzionalità “Transizioni”
2.3.7
Library
Selezionando “Library” si accede a tutti i contenuti multimediali inclusi di default nell’applicazione, come musica e temi (Figura 2.9). Questo materiale è molto
utile se si desidera creare una introduzione al nostro video oppure se si desidera
personalizzarlo con uno stile particolare incluso nei temi.
2.3.8
Produce and share
Dopo aver creato il video, con tutti gli effetti e le animazioni desiderate, è possibile
produrlo e condividerlo. Camtasia Studio mette a disposizione moltissimi formati in cui salvarlo (Figura 2.10), e offre la possibilità di pubblicarlo direttamente
su piattaforme quali Vimeo, YouTube e Google Drive (effettuando, ovviamente, il
login).
2.4 Perchè Camtasia Studio
La scelta del tool per la produzione del software didattico è ricaduta su Camtasia
Studio perchè esso presenta molti vantaggi che lo contraddistinguono e lo rendono
alla portata di qualsiasi utente, tra questi vantaggi citiamo i seguenti:
• interfaccia grafica ben progettata;
• video editing facile e potente;
2.4 Perchè Camtasia Studio
21
Figura 2.9. Esempio di utilizzo della funzionalità “Library”
Figura 2.10. Esempio di utilizzo della funzionalità “Produce and Share”
•
•
•
ampia scelta di formati di output;
anteprima di produzione;
supporto per YouTube e video HD.
A tutto ciò si aggiunge, inoltre, la semplicità di utilizzo e la versatilità, in quanto
qualsiasi utente che abbia la necessità di imparare Camtasia Studio, può farlo in
poche ore e senza alcuna difficoltà. Camtasia Studio è uno strumento efficiente, semplice e veloce ed è adatto alla produzione del materiale didattico sui due software
Hadoop e QlikSense, che è l’obiettivo finale della presente tesi. La combinazione
di immagini, screencast, l’inserimento di testo ed effetti rendono Camtasia Studio
ideale per produrre un filmato che abbia come intento quello di illustrare le caratte-
22
2 Il software Camtasia Studio
ristiche e il funzionamento di un sistema software. Camtasia Studio ci permetterà,
dunque, a partire da un progetto definito per entrambi i due sistemi software di cui
sopra, di ottenere il risultato desiderato (Figura 2.11).
Figura 2.11. Play
3
Hadoop
In questo capitolo viene presentato il framework Hadoop a partire dalla sua nascita
e dalla sua importanza nell’ambito dei Big Data, per giungere all’analisi della sua
architettura e dell’ecosistema che lo circonda.
3.1 Introduzione ad Hadoop
Hadoop è un framework software che nasce per rispondere alle esigenze di lavorare
con un’enorme quantità di dati su cluster di grandi dimensioni (costituiti da migliaia di nodi), per ottenere da questi le risposte e i risultati desiderati, assicurando
un’elevata affidabilità e disponibilità. Venne ideato e sviluppato, a partire dai primi
anni del 2000, da Doug Cutting e Michael J. Cafarella; fin da subito venne integrato
nel suo funzionamento l’algoritmo “MapReduce” sviluppato da Google negli stessi
anni. Sia Hadoop che MapReduce nascono con lo stesso obiettivo; ovvero quello di
rendere l’archiviazione e l’elaborazione dei dati automatizzata e distribuita in modo
che i risultati della ricerche web siano restituiti il più velocemente possibile.
Nel 2008 nacque la prima release come progetto open-source indipendente di
Apache (Figura 3.1). Negli anni sono stati progettati e realizzati tutti i componenti che rendono Hadoop un ambiente di analisi completo, sempre in continuo
aggiornamento e con un’ampia applicabilità.
Figura 3.1. Logo di Hadoop
L’idea fondamentale su cui si basa Hadoop consiste nel prendere un problema
“Big” e ossia caratteristico dei Big Data, suddividerlo in tanti piccoli problemi
24
3 Hadoop
che possono essere processati in parallelo, per giungere alla soluzione complessiva
desiderata.
Nella Figura 3.2 sono evidenti i motivi per cui Hadoop ha assunto negli anni
una grande rilevanza nell’analisi dei Big Data; eccoli spiegati:
Figura 3.2. Pricipali caratteristiche di Hadoop
• velocità di archiviazione e di elaborazione: è il punto di partenza e il motivo per
il quale nasce Hadoop, ossia quello di favorire la memorizzazione dei dati e la
loro analisi in tempi veloci;
• potenza di calcolo: il modello di calcolo distribuito di Hadoop elabora grandi
quantità di dati; più nodi di calcolo vengono usati e maggiore è la potenza di
elaborazione fornita;
• tolleranza ai guasti: una delle caratteristiche di Hadoop è quella di essere “selfhealing”, ossia è capace di rilevare variazioni, inclusi fallimenti, e apportare le
giuste modifiche per funzionare senza interruzioni;
• flessibilità: è possibile memorizzare tutti i dati che si desidera (dati strutturati
e non strutturati, come testi, immagini e video) e decidere come utilizzarli in un
secondo momento;
• basso costo: il framework open-source è gratuito e utilizza hardware di largo
consumo per memorizzare grandi quantità di dati;
3.2 Architettura
•
25
scalabilità: per accrescere la quantità di dati con cui si lavora si possono semplicemente aggiungere altri nodi, in modo tale da incrementare il livello di
distribuzione e la complessità dell’analisi che si è in grado di raggiungere.
3.2 Architettura
In questa sezione verranno trattati gli elementi che costituiscono il cuore di Hadoop
e ne definiscono la caratteristica struttura distribuita.
3.2.1
Hadoop Distribuited File System
L’“Hadoop Distributed File System”(nel seguito HDFS) è un file system distribuito,
scritto in Java e creato appositamente per il framework Hadoop; HDFS accetta
dati in qualsiasi formato, strutturati e non strutturati, e garantisce che essi siano
ridondanti nel cluster proteggendoli dall’eventuale e possibile guasto di un nodo.
HDFS viene ideato per gestire enormi quantità di dati, provenienti da un numero
elevato di file differenti, attraverso la realizzazione di cluster che possono contenere
migliaia di nodi.
Un cluster è costituito da diversi tipi di nodi, ciascuno con il proprio compito
da svolgere all’interno del sistema; in particolar modo, HDFS opera suddividendo
i file in blocchi la cui gestione e localizzazione sui nodi del cluster è garantita dal
NameNode, invece i DataNode gestiscono fisicamente lo storage di ciascun nodo.
In Figura 3.3 vengono evidenziate tutte le potenzialità di HDFS.
Figura 3.3. Potenzialità di HDFS
NameNode
Il compito fondamentale del NameNode è quello di gestire la suddivisione dei dati in
blocchi, capire dove sono localizzati questi ultimi e accedervi quando nasce l’esigenza
26
3 Hadoop
di farlo, NameNode conosce in quali blocchi è suddiviso un file e in quale nodo questi
ultimi sono memorizzati.
Esso rappresenta l’applicazione che gira sul server principale e gestisce il cosiddetto “Namespace”, ossia l’elenco dei nomi dei file e dei blocchi. NameNome gestisce
gli accessi ai file: quelli in scrittura e quelli in lettura, nonchè la creazione o l’eliminazione degli stessi, ed effettua la replica di blocchi di dati sui cluster per garantire
l’affidabilità del sistema.
NameNode verifica, anche, che i singoli nodi siano in esecuzione senza problemi e, in caso contrario, decide come riallocare i blocchi. I DataNode chiedono
costantemente a NameNode se c’è qualche operazione da svolgere per essi.
DataNode
All’interno dei DataNode vengono memorizzati i dati effettivi; i DataNode, infatti,
sono responsabili esattamente di questa funzione; non sono molto “smart” ma sono
resistenti. I DataNode comunicano con il NameNode, il quale gestisce l’accesso ai
blocchi; infatti, quest’ultimo usa un “Rack ID” per tenere traccia dei DataNode nei
cluster.
Tutti i DataNode inviano periodicamente al NameNode un “Heartbeat Message”
per assicurare che DataNode e NameNode siano correttamente comunicanti e siano
in funzione. Se il NameNode non riceve questi messaggi per un periodo di tempo più
o meno lungo da un DataNode, si considera quest’ultimo morto o fuori servizio ed
avvia la procedura di replicazione (in un altro DataNode ancora attivo) dei blocchi
di dati in esso contenuto.
In un ambiente come Hadoop, in cui i dati vengono suddivisi in blocchi, memorizzati e replicati in diversi DataNode, è necessario garantire l’integrità dei dati
stessi, attraverso i registri delle transazioni, e la “checksum validation”. I registri
tengono traccia di ogni operazione svolta sui file; checksum validation viene utilizzata per garantire il contenuto di essi in HDFS; quando un client richiede un
file, si può verificare il contenuto esaminando la sua checksum; se essa corrisponde
l’operazione sul file può continuare, altrimenti viene segnalato un errore.
SecondaryNameNode
Quando vengono effettuate delle modifiche sul Namespace, il NameNode memorizza
l’ultima immagine di questo in un file chiamato fsimage. Esso, inoltre, memorizza
in un altro file il log dei cambiamenti avvenuti su di esso a partire dall’ultima volta
in cui il file fsimage è stato aggiornato.
Il SecondaryNameNode aiuta il NameNode ad essere più efficiente, infatti si
occupa di scaricare periodicamente il file fsimage e i log dei cambiamenti dal
NameNode, di unirli in un unico snapshot e di restituire quest’ultimo al NameNode.
BackupNode
Backup Node fornisce la stessa funzionalità del SecondaryNameNode; ma è sincronizzato con il NameNode, non ha bisogno di recuperare i cambiamenti periodicamente perché riceve uno stream di modifiche del file system dal NameNode.
3.2 Architettura
3.2.2
27
Hadoop MapReduce
Hadoop MapReduce è un’implementazione del framework MapReduce, ideato da
Google per analizzare in parallelo, su grandi cluster, grandi quantità di dati, in un
modo veloce ed efficiente.
MapReduce è basato sul concetto di “Divide et Impera”; sulla base di tale concetto, un’operazione di calcolo complessa viene suddivisa in tanti sottoproblemi per
i quali si trovano le soluzioni (map), da unire e ridurre in un’unico risultato (reduce).
La prima versione di MapReduce, a livello architetturale, presenta due componenti:
•
•
JobTracker: è la componente che si occupa della gestione delle risorse (CPU
e memoria) e del ciclo di vita del job MapReduce. JobTracker distribuisce il
lavoro utilizzando una politica concettualmente semplice: vengono privilegiati
i nodi più vicini che contengono i dati da elaborare; nel caso in cui un nodo
non possa ospitare il task, JobTracker si fa, poi, carico della schedulazione del
job nonché della ripetizione dell’esecuzione dei singoli task di MapReduce che si
trovano in uno stato di errore.
TaskTracker: sono le componenti che girano sui singoli nodi e che eseguono
effettivamente i task sotto la direzione del JobTracker.
Il framework lavora attraverso i “Compute Node” cioè dei nodi di calcolo che si
trovano assieme ai DataNode di HDFS. La Figura 3.4 illustra il funzionamento di
MapReduce. Il processo inizia con una richiesta del client per eseguire un programma
MapReduce. Successivamente i dati di input vengono trasformati in un formato
valido che esso può supportare; questo compito viene svolto dall’InputFormat, una
classe contenuta dentro il pacchetto org.apache.hadoop.mapreduce, che possiede
due responsabilità:
•
•
definire il modo attraverso cui suddividere l’input file in split (funzione svolta
appositamente dalla classe InputSplit);
definire il modo attraverso cui creare una RecordReader, ossia una classe che
genera coppie di chiavi/valori da uno split.
Una volta ricavate le coppie chiave/valore, queste vengono fornite in ingresso al
task map().
Map
Per ogni coppia di input, una istanza distinta di map() è chiamata per processare i dati, ad essa corrisponde una coppia intermedia chiave/valore. Map() e
reduce() lavorano insieme; dunque, queste coppie vengono messe insieme e collezionate nell’OutputCollector. Può accadere che gli output intermedi si trovino
in un nodo diverso da quello in cui i reducer dovranno essere in esecuzione per quel
determinato output; dunque, sarà necessario effettuare un’operazione di rimescolamento (shuffle process); fatto questo tutte le coppie verranno passate alla funzione
reduce().
28
3 Hadoop
Figura 3.4. Principio di funzionamento di MapReduce
Reduce
Per ogni chiave, la funzione reduce() elabora i valori ad essa associati e crea come
output una o più coppie chiave/valore; le coppie sono ordinate per chiave e i valori
con la stessa chiave sono raggruppati.
Per ogni coppia di uscite, reduce() è chiamata a svolgere il suo compito, esso
non può iniziare finché tutto il mapping non sia completo.
L’uscita di reduce() è, anche, una coppia chiava/valore, Hadoop fornisce un
OutputFormat, simile all’InputFormat della funzione map(), l’OutputFormat prende la coppia chiave/valore e organizza l’uscita per la scrittura nell’HDFS, operazione
che viene eseguita dal RecordWriter.
3.3 Ecosistema Hadoop
Il sistema Hadoop ha avuto cosı̀ successo negli anni perchè gli sviluppatori hanno
saputo creare attorno ad esso un vero e proprio ecosistema che comprendesse tutte
le funzionalità necessarie per implementare soluzioni adatte per i Big Data.
L’ecosistema di Hadoop è sempre in continua crescita e aggiornamento; è la più
completa raccolta di strumenti e tecnologie per portare a termine le grandi sfide
sulle grandi quantità di dati (Figura 3.5).
No building is stable without a foundation. While important, stability is not the
only important criterion in a building. Each part of the building must support
its overall purpose.
3.3 Ecosistema Hadoop
29
Come suggerisce questa citazione, estratta dal libro “Big Data for Dummies”,
ogni componente di Hadoop deve sostenere lo scopo generale dell’ecosistema complessivo. In questa sezione tratteremo alcune delle componenti di Hadoop a partire
da quella principale, ovvero HBase.
3.3.1
HBase
HBase è un database non relazionale colonnare basato su HDFS; venne ideato e
progettato per memorizzare delle tabelle contenenti miliardi di colonne e di righe.
Fornisce i mezzi attraverso cui accedere in real time, in lettura e in scrittura ai Big
Data, memorizzati in tabelle di grandi dimensioni.
HBase è un database scalabile, che supporta l’archiviazione di dati strutturati;
tutti i dati vengono memorizzati in tabelle con righe e colonne; l’intersezione di una
riga con una colonna è detta cella.
Ogni tabella deve avere un elemento definito come una chiave primaria. Che
deve essere utilizzata durante tutti i tentativi di accesso alle tabelle HBase. Una
colonna HBase rappresenta un attributo di un oggetto; per esempio, se la tabella
sta memorizzando i registri diagnostici dai server relativi al proprio ambiente, in cui
ogni riga potrebbe essere un record di log, una colonna tipica sarebbe il timestamp
di quando il record di log è stato scritto; HBase memorizza i dati nelle celle in ordine
decrescente, cosı̀ in lettura verranno sempre trovati per primi i valori più recenti.
Infatti, HBase permette che molti attributi siano raggruppati in cosiddette famiglie di colonne, in modo che gli elementi di una famiglia siano tutti memorizzati
insieme. Questa è la differenza rispetto ad un database relazionale, dove tutte le
colonne di una data riga sono memorizzati insieme.
Con HBase è necessario predefinire lo schema della tabella e specificare le famiglie delle colonne; tuttavia, nuove colonne possono essere aggiunte alle famiglie
in qualsiasi momento, rendendo lo schema flessibile e, quindi, in grado di adattarsi
alle mutevoli esigenze applicative.
3.3.2
Altri componenti
Di seguito daremo uno sguardo a tutti gli altri componenti più importanti e
conosciuti dell’ecosistema di Hadoop:
•
Y ARN: acronimo di “Yet-Another-Resource-Negotiator”, YARN è un framework
che consente di creare applicazioni o infrastrutture di calcolo distribuito di
qualsiasi tipo.
YARN si prende carico della gestione delle risorse quali la memoria e la CPU,
e monitora l’esecuzione delle applicazioni. La seconda versione di MapReduce è
stata riscritta come applicazione YARN, con alcune sostanziali differenze.
Le due funzioni svolte dal JobTracker sono state suddivise in altrettante componenti differenti: ResourceManager si occupa dell’assegnazione delle risorse alle
applicazioni; ApplicationMaster gestisce la singola applicazione, facendola partire, monitorandola e determinandone il riavvio in caso di errore. Inoltre, per
ciascun nodo troviamo un NodeManager che ha il compito di gestire i processi.
30
•
•
•
•
3 Hadoop
Riassumendo, un’applicazione MapReduce è un job MapReduce eseguito da un
ApplicationManager e il framework MapReduce è, quindi, solo uno dei possibili
framework di calcolo sviluppabili attraverso YARN.
H ive: è un sistema di data warehouse open-source per l’interrogazione e l’analisi
di grandi quantità di dati memorizzati in file Hadoop.
Hive ha tre funzioni principali: effettuare il riepilogo dei dati, consentire query ed
effettuare analisi; esso supporta le query espresse in un linguaggio chiamato HiveQL, che traduce automaticamente query SQL-like in job MapReduce eseguiti
su Hadoop.
A differenza di molti data warehouse, Hive non è progettato per risposte rapide
alle interrogazioni, le query possono richiedere diversi minuti o addirittura ore,
a seconda sulla complessità. Di conseguenza, esso viene utilizzato per effettuare
analisi profonde che non richiedono risposte in real-time.
Hive organizza i dati in tre modi: tabelle, partizioni e segmenti, le prime sono le
classiche tabelle simili a quelle degli RDBMS e possono supportare più partizioni;
questi sono “mappate” per le sottodirectory nel file system sottostante; a loro
volta, i dati possono essere suddivisi in segmenti, che vengono memorizzati come
file nella directory di partizione nel file system sottostante.
P ig e Pig Latin: è un ambiente di esecuzione interattivo o basato su script di
supporto realizzato tramite il linguaggio Pig Latin, viene progettato per rendere l’approccio con Hadoop più semplice e intuitivo per tutti coloro che non
sono prettamente sviluppatori. È un ambiente di sviluppo che permette di caricare e memorizzare i dati, filtrarli, raggrupparli, effettuare le join desiderate,
combinarli.
S qoop: è un’applicazione a riga di comando che permette di trasferire dati da
basi di dati relazionali a Hadoop; è possibile importare singole tabelle o interi
database in HDFS. Sqoope è in grado di generare le classi Java, in modo da poter
interagire con i dati, ed esportare i dati direttamente da HDFS in un DBMS.
Z ookepeer: è uno strumento per la gestione del cluster ossia della parallelizzazione e della distribuzione dei dati. Esso fornisce un’infrastruttura centralizzata e
una serie di servizi che consentono la sincronizzazione di oggetti nel cluster. Tali
oggetti comuni sono, per esempio, le configurazioni, che devono essere presenti
su tutti i nodi e che devono rimanere sincronizzate; Zookepeer, infatti, coordina
l’avvio e l’arresto dei nodi nel cluster.
Zookepeer garantisce che gli aggiornamenti vadano interamente a buon fine oppure non siano affatto applicati; inoltre, assicura che gli aggiornamenti inviati
da un client vengano applicati nell’ordine di invio.
Può eleggere un “nodo leader” tra i nodi, che si prende carico di tutte le richieste
del client; se il leader fallisce viene eletto prontamente un suo sostituto.
3.3 Ecosistema Hadoop
Figura 3.5. L’ecosistema di Hadoop
31
4
Progettazione di un software multimediale
per l’apprendimento di Hadoop
Questo capitolo illustra tutti i passi attraverso cui abbiamo progettato il software
multimediale per l’apprendimento di Hadoop.
4.1 Descrizione della metodologia di progettazione
Affinchè il software didattico rispetti le esigenze degli studenti che si affacciano allo
studio di Hadoop è stato necessario strutturare un progetto che tenesse conto delle
tematiche da affrontare e da riportare in esso, il software sarà un susseguirsi di
schermate illustrative sul funzionamento e sulle caratteristiche del tool.
È stato ritenuto che la metodologia più opportuna da seguire fosse quella di
prendere come riferimento un modello formato da un insieme di viste, in particolar
modo tre viste differenti:
•
•
•
Vista logica;
Vista fisica;
Vista utente.
Attraverso la vista logica, le tematiche vengono organizzate in una struttura ad
albero, tramite la quale si definiscono delle dipendenze tipiche di questa struttura
gerarchica: i figli sono dipendenti dai loro padri; i fratelli, invece, sono tra di loro
indipendenti.
A partire dalla vista logica si crea la vista fisica, grazie alla quale si rende
più semplice e diretta la comprensione degli argomenti e il loro susseguirsi nella
rappresentazione. Per appiattire l’albero e renderlo lineare è stato scelto l’algoritmo
di ricerca DFS (depth-first-search), molto noto nella teoria dei grafi; come suggerisce
il nome, l’algoritmo propone una ricerca in profondità, ossia, a partire dal padre,
vengono visitati i figli in maniera ricorsiva, fin quando non si arriva ai nodi con
profondità massima (ultimi figli).
L’ultimo passo consiste nello sviluppare la vista utente, attraverso cui gli argomenti vengono rappresentati in una forma grafica intuitiva che spieghi al meglio
ogni tematica; utilizzeremo, per questo scopo, dei mockup di livello 1.
34
4 Progettazione di un software multimediale per l’apprendimento di Hadoop
4.2 Progettazione della vista logica
Come si evince dalla Figura 4.1, gli argomenti sono stati organizzati in una struttura ad albero, a partire dalla introduzione ad Hadoop, per poi passare alla sua
architettura, al suo funzionamento e alle interfacce Web, con tutti i loro rispettivi
figli.
Figura 4.1. Visualizzazione dell’albero connesso alla vista logica
4.4 Progettazione della vista utente
35
4.3 Progettazione della vista fisica
Applicando l’algoritmo DFS all’albero di Figura 4.1, abbiamo ottenuto la lista degli
argomenti da trattare, a partire dalla introduzione ad Hadoop, il primo, fino a
giungere al finale, ossia le interfacce Web (Figura 4.2).
Figura 4.2. Visualizzazione della lista degli argomenti derivante dalla vista fisica
4.4 Progettazione della vista utente
Una volta definita la vista fisica, siamo in grado di progettare i mockup che, nel loro
insieme, formeranno la vista utente. Tali mockup vengono illustrati nelle prossime
sottosezioni.
36
4.4.1
4 Progettazione di un software multimediale per l’apprendimento di Hadoop
Hadoop
In Figura 4.3 viene mostrato il mockup che riassume tutte le caratteristiche e le
potenzialità di Hadoop.
Figura 4.3. Mockup relativo alle principali caratteristiche di Hadoop
4.4.2
Architettura
In Figura 4.4 viene mostrato il mockup che illustra gli elementi che formano il cuore
di Hadoop, ovvero HDFS e Hadoop MapReduce.
4.4.3
HDFS
In Figura 4.5 viene mostrato il mockup che rappresenta il principio di funzionamento
del file system di Hadoop, Hadoop Distributed File System.
4.4.4
NameNode
In Figura 4.6 viene mostrato il mockup che illustra i compiti svolti dal NameNode.
4.4.5
DataNode
In Figura 4.7 viene mostrato il mockup che descrive i compiti svolti dal DataNode.
4.4 Progettazione della vista utente
37
Figura 4.4. Mockup relativo all’architettura di Hadoop
4.4.6
Hadoop MapReduce
In Figura 4.8 viene mostrato il mockup che illustra il principio di funzionamento
dell’algoritmo MapReduce.
4.4.7
Map
In Figura 4.9 viene mostrato il mockup che, tramite un esempio, illustra la funzione
map().
4.4.8
Reduce
In Figura 4.10 viene mostrato il mockup che, tramite un esempio, spiega la funzione
reduce().
4.4.9
Running Hadoop
In Figura 4.11 viene mostrato il mockup che elenca i passi attraverso cui far eseguire
Hadoop.
4.4.10 Prerequisiti
In Figura 4.12 viene mostrato il mockup che illustra i prerequisiti che deve possedere
una macchina per eseguire l’installazione di Hadoop.
38
4 Progettazione di un software multimediale per l’apprendimento di Hadoop
Figura 4.5. Mockup relativo al funzionamento del file system HDFS
4.4.11 Java
In Figura 4.13 viene mostrato il mockup che descrive i passi attraverso cui effettuare
il download e l’installazione di Java sulla propria macchina.
4.4.12 Hduser
In Figura 4.14 viene mostrato il mockup che elenca i comandi da eseguire per
aggiungere un user predisposto ad Hadoop.
4.4.13 SSH
In Figura 4.15 viene mostrato il mockup che elenca i comandi da eseguire per
configurare l’accesso SSH.
4.4.14 Installazione
In Figura 4.16 viene mostrato il mockup che illustra i due step fondamentali
dell’installazione di Hadoop: download e configurazione.
4.4.15 Download
In Figura 4.17 viene mostrato il mockup che rappresenta i comandi da eseguire per
scaricare Hadoop.
4.4 Progettazione della vista utente
39
Figura 4.6. Mockup relativo ai compiti svolti dal NameNode
4.4.16 Configurazione
In Figura 4.18 viene mostrato il mockup che elenca i file da modificare per effettuare
la configurazione di Hadoop.
4.4.17 Formattazione HDFS
In Figura 4.19 viene mostrato il mockup che illustra il comando da eseguire per
formattare il file system di Hadoop.
4.4.18 Start single-node cluster
In Figura 4.20 viene mostrato il mockup che descrive il comando da eseguire per
avviare tutti i servizi di Hadoop.
4.4.19 Stop single-node cluster
In Figura 4.21 viene mostrato il mockup che descrive il comando da eseguire per
arrestare tutti i servizi di Hadoop.
4.4.20 Esempio di implementazione di un job MapReduce
In Figura 4.22 viene mostrato il mockup che illustra tutti i passi per eseguire un
esempio dell’implementazione di un job MapReduce.
40
4 Progettazione di un software multimediale per l’apprendimento di Hadoop
Figura 4.7. Mockup relativo ai compiti svolti dal DataNode
4.4.21 Web Interface
In Figura 4.23 viene mostrato il mockup che descrive i link da cui accedere alle Web
Interface, nonchè una interfaccia in particolare (JobTracker).
4.4 Progettazione della vista utente
Figura 4.8. Mockup relativo al principio di funzionamento di Hadoop MapReduce
Figura 4.9. Mockup che illustra la funzione map()
41
42
4 Progettazione di un software multimediale per l’apprendimento di Hadoop
Figura 4.10. Mockup che illustra la funzione reduce()
Figura 4.11. Mockup relativo all’esecuzione di Hadoop
4.4 Progettazione della vista utente
Figura 4.12. Mockup relativo ai prerequisiti per installare Hadoop
Figura 4.13. Mockup relativo al download e all’installazione di Java
43
44
4 Progettazione di un software multimediale per l’apprendimento di Hadoop
Figura 4.14. Mockup relativo all’aggiunta di un user
Figura 4.15. Mockup relativo alla configurazione dell’accesso SSH
4.4 Progettazione della vista utente
Figura 4.16. Mockup relativo all’installazione di Hadoop
Figura 4.17. Mockup relativo al download di Hadoop
45
46
4 Progettazione di un software multimediale per l’apprendimento di Hadoop
Figura 4.18. Mockup relativo alla configurazione di Hadoop
Figura 4.19. Mockup relativo alla formattazione del file system di Hadoop
4.4 Progettazione della vista utente
Figura 4.20. Mockup relativo all’avvio dei servizi di Hadoop
Figura 4.21. Mockup relativo all’arresto dei servizi di Hadoop
47
48
4 Progettazione di un software multimediale per l’apprendimento di Hadoop
Figura 4.22. Mockup relativo all’esempio dell’implementazione di un job MapReduce
Figura 4.23. Mockup relativo alle Web Interface di Hadoop
5
Implementazione di un software
multimediale per l’apprendimento di
Hadoop
In questo capitolo verrà illustrato, a partire dalla progettazione che abbiamo trattato nel capitolo precedente, come è stato realizzato il software multimediale per
l’apprendimento di Hadoop. Nella seconda parte del capitolo si mostreranno alcune
schermate di tale software.
5.1 Scelte tecnologiche
Hadoop è stato installato sul sistema operativo Ubuntu 16.04.1 LTS; per tale motivo è stato necessario creare una macchina virtule con questo sistema operativo (ci
siamo serviti di VMWare Workstation Pro); abbiamo scelto questa strada anche per
favorire l’implementazione del video tramite il software Camtasia Studio, installato
su Windows 10.
Per le necessità richieste, alla macchina virtuale creata sono stati riservati 4 GB
di RAM e 20 GB di spazio su disco.
La versione di Hadoop installata sulla macchina corrisponde alla 2.7.3, rilasciata il 25 Agosto 2016 e scaricata direttamente dal sito ufficiale di Apache; la versione
di JDK installata è la “1.8.0 101”.
Ovviamente, per i motivi sopra elencati, la configurazione di Hadoop sulla
macchina è quella Single-Node.
5.2 Implementazione del software multimediale
La progettazione del software è stata altamente necessaria e di aiuto per creare il
prodotto finale; sono state necessarie tutte e tre le viste, perché ci hanno permesso di
organizzare e riconoscere gli elementi più importanti da trattare e su cui soffermarci.
Considerato quanto detto nel secondo capitolo sul software Camtasia Studio,
quest’ultimo per l’implementazione è stato altamente utile. Essendo a conoscenza
del funzionamento del suddetto software e degli obiettivi da raggiungere, è stato
necessario suddividere l’implementazione in quattro fasi differenti:
•
inserimento delle immagini;
50
5 Implementazione di un software multimediale per l’apprendimento di Hadoop
• registrazione della schermata;
• editing del video;
• salvataggio del filmato finale.
5.2.1
Inserimento delle immagini
Si è ritenuto utile inserire nel video delle immagini che rappresentassero la presentazione di ciascun argomento trattato e che potessero sintetizzare il contenuto
delle registrazioni successive; per la maggior parte delle volte sono state utilizzate
le visualizzazioni ottenute a partire dalla vista utente.
Tali visualizzazioni sono risultate ideali perchè, oltre a riassumere l’argomento,
potevano essere il giusto input per intuire quale sarebbe stata la porzione di video
immediatamente successiva. Tuttavia, a volte, è stato necessario creare ulteriori
immagini (tramite lo strumento di “Adobe Photoshop”) per rendere più chiaro e
diretto il susseguirsi delle registrazioni; ciò è avvenuto ad esempio, nella sezione
riservata alla configurazione dell’ambiente Hadoop dove, abbiamo deciso di creare
delle immagini per preannunciare i file sui quali lavorare.
L’ordine degli argomenti trattati deriva dalle viste logica e fisica; a ciascun argomento è stato associato lo screencast che lo descrive e ne mostra le possibili
applicazioni.
5.2.2
Registrazione della schermata
La parte più consistente dell’implementazione del software consiste nella realizzazione delle registrazione della schermata.
Seppure l’argomento trattato abbia una parte teorica consistente, ovvero quella iniziale in cui viene spiegato come funziona Hadoop, a partire dalla tematica “Running Hadoop” sono state effettuate le registrazioni utili per illustrare il
funzionamento di ogni particolare sezione del tool di riferimento.
È stato ritenuto utile suddividere le registrazioni effettuate per l’apprendimento
di Hadoop nel modo seguente:
•
•
•
•
•
prerequisiti;
download e installazione di Hadoop;
configurazione dell’ambiente Hadoop;
esempio di implementazione.
Web Interface.
Prerequisiti
La prima registrazione effettuata consiste nel preparare la propria macchina all’installazione di Hadoop; dunque, il primo passo è stato quello di scaricare la JDK 8;
successivamente abbiamo creato un utente riservato ad Hadoop (Hduser) e, infine,
abbiamo configurato l’accesso SSH.
Questi sono stati passaggi estremamente importanti; la scelta di creare un user
dedicato ad Hadoop è stata fondamentale, in quanto tutto ciò che è stato installato e
modificato nella nostra macchina, durante l’installazione, riguarda lo spazio dedicato
all’Hduser.
5.2 Implementazione del software multimediale
51
Download e installazione di Hadoop
La successiva registrazione comprende il download della versione prescelta di Hadoop dal seguente sito: http://www.apache.org/dyn/closer.cgi/hadoop/core,
e l’estrazione del contenuto del download in una cartella specifica: /usr/local.
Configurazione
Questa è la parte del filmato alla quale prestare più attenzione, in quanto dalla
configurazione dei file sotto elencati, dipenderà il funzionamento di Hadoop.
Per prima cosa occorre cercare il file denominato .bashrc, che si trova nella
home di hduser; esso è un file nascosto e, pertanto, dunque digitare ctrl+h dalla
propria tastiera per visualizzarlo.
Tutti i file che verranno modificati devono essere aperti da terminale dall’utente
amministratore; una volta aperto il suddetto file, è necessario aggiungere le righe
contenute nella Figura 5.1.
Figura 5.1. Configurazione (parte I)
Successivamente, è necessario, trovare il file denominato hadoop-env.sh; nella
nostra installazione il percorso è: /usr/local/hadoop/etc/hadoop. È importante,
inoltre, prestare attenzione alla riga export JAVA HOME, dove è necessario inserire il
percorso in cui è stato installato Java (nel nostro caso /usr/lib/jvm/java-8-oracle).
Dopo aver creato una cartella nella quale memorizzare i dati di Hadoop e averne
definito i permessi, abbiamo aggiornato tre ulteriori file, tutti contenuti nella cartella
/usr/local/hadoop/etc/hadoop:
52
5 Implementazione di un software multimediale per l’apprendimento di Hadoop
• core-site.xml;
• mapred-site.xml.template;
• hdfs-site.xml;
A questo punto è stato necessario aggiornare i dati sopra elencati inserendo tra
il tag
<configuration>.....</configuration>
il corrispettivo testo contenuto nella Figura 5.2.
Figura 5.2. Configurazione (parte II)
Successivamente è stato formattato il file system di Hadoop, HDFS, e avviato
Hadoop. È da notare che, digitando il comando jps, verranno elencati i processi di
Hadoop in esecuzione (TaskTracer, JobTracker, DataNode, SecondaryNameNode,
Jps, NameNode).
Esempio di implementazione
La successiva registrazione comprende l’esecuzione di un esempio di implementazione. Tale esempio è contenuto nell’archivio denominato
hadoop-mapreduce-examples-2.7.3.jar
in particolar modo abbiamo eseguito il WordCount Job.
Dati in input dei file testuali, Hadoop è in grado di ritornare la lista delle parole
contenute in essi, con il numero delle loro occorrenze.
5.2 Implementazione del software multimediale
53
I file di input scelti senza particolari linee guida; essi possono essere qualsiasi; i
risultati ottenuti sono stati letti direttamente dal file system.
Web Interface
L’ultima registrazione effettuata consiste nel visitare le Web Interface di Hadoop,
come quella relativa a “ResourceManager” e a “MapReduce JobHistory Server”.
5.2.3
Editing del video
Una volta create tutte le registrazioni che sono servite per illustrare al meglio il
funzionamento di Hadoop, è stato necessario inserire queste ultime all’interno del
progetto di Camtasia Studio e rendere il video risultante il più esplicativo e chiaro
possibile; il software Camtasia Studio è stato di notevole aiuto in questa attività.
Nelle seguenti sezioni verrano spiegati i passaggi grazie ai quali, a partire dalle
registrazioni della schermata e dalle visualizzazioni, abbiamo realizzato il software
didattico multimediale.
Durata degli elementi
È stato necessario determinare quale fosse la durata di ciascun singolo elemento
all’interno del video, quali immagini, registrazioni, eventuali callout. Ogni immagine
è diversa dalle altre ed è stato necessario definire un tempo opportuno per essa;
inoltre, per quanto riguarda le registrazioni della schermata, molto spesso, abbiamo
dovuto diminuirne la velocità, per rendere ogni azione quanto più chiara possibile.
Creazione e inserimento dei callout
I callout creati corrispondono a didascalie utili a spiegare alcune azioni compiute
durante le registrazioni, oppure sono forme create ad hoc per porre particolare
attenzione su un punto dello schermo, in un particolare intervallo temporale.
Utilizzo dello zoom
In particolari momenti, soprattutto durante le registrazioni (ma non solo), è stato
utile focalizzare l’attenzione su una parte dello schermo, escludendo il resto: ecco la
funzione principale dello zoom.
Nel video lo zoom è stato usato molto spesso, perchè è nata varie volte l’esigenza di concentrarsi su un particolare dettaglio dell’azione compiuta, oppure di
restringere il campo di visione.
Inserimento dell’audio
Camtasia Studio riserva molti livelli nei quali è possibile inserire video, immagini,
callout e anche l’audio; per quanto riguarda l’audio del filmato, è stata scelta una
musica di sottofondo che potesse favorire la concentrazione dello spettatore senza
distrarlo, motivo per il quale è stato deciso di abbassare il volume e regolarlo al
meglio.
Abbiamo deciso di aggiungere, tra una canzone e l’altra, l’effetto di Fade out/in
(direttamente dalla sezione “Audio” cliccando sull’audio di interesse).
54
5 Implementazione di un software multimediale per l’apprendimento di Hadoop
Scelta delle transizioni
Il passaggio tra un elemento e l’altro è stato reso il più efficace possibile inserendo
le transizioni; in particolar modo, per garantire una certa uniformità del progetto,
abbiamo scelto un’unica transizione da applicare. Tale transizione produce una dissolvenza nel passaggio da un elemento all’altro; la scelta è ricaduta su di essa perchè
ci è sembrata essere la più adatta per gli obiettivi del nostro filmato.
5.2.4
Salvataggio del filmato finale
Per garantire una buona risoluzione al filmato, esso è stato salvato nel formato “MP4
only (up to 1080)”; il software Camtasia Studio mette a disposizione una procedura
preconfigurata per il salvataggio dei file che rende tale operazione semplice e veloce.
5.3 Uno sguardo al software
Ultimata l’implementazione del software, possiamo dare uno sguardo al risultato ottenuto; nel seguito vengono mostrate alcune schermate del video, ciascuna
rappresentativa di un particolare elemento contenuto nel filmato.
In Figura 5.3 viene mostrata una delle visualizzazioni ricavate dalla vista utente. In Figura 5.4, invece, viene presentata un’immagine creata per soffermare
l’attenzione su un file di configurazione di Hadoop.
Nella Figura 5.5 viene mostrato un esempio efficace di utilizzo dello zoom durante
l’installazione di Java. L’utilizzo dei callout per mettere in evidenza un determinato
particolare viene mostrato nella Figura 5.6.
Infine, in Figura 5.7, è presente un frame riguardante l’esecuzione dell’esempio
di implementazione.
Figura 5.3. Esempio di una visualizzazione della vista utente nel filmato
5.3 Uno sguardo al software
Figura 5.4. Esempio di un’immagine creata ai fini del filmato
Figura 5.5. Esempio di utilizzo della funzionalità di “Zoom” nel filmato
Figura 5.6. Esempio di utilizzo della funzionalità di “Callout” nel filmato
55
56
5 Implementazione di un software multimediale per l’apprendimento di Hadoop
Figura 5.7. Esempio di un frame di una registrazione della schermata nel filmato
6
Qlik Sense
Questo capitolo presenta la piattaforma Qlik Sense, analizzandone i punti di forza,
le sue innumerevoli funzionalità e la sua importanza nell’analisi dei Big Data.
6.1 Introduzione a Qlik Sense
Qlik Sense è una potente e innovativa piattaforma di analisi dei dati, creata per
utenti singoli, gruppi o aziende che cercano uno strumento intuitivo per creare visualizzazioni avanzate, scoprire legami e associazioni e condurre analisi approfondite
a partire dai dati a disposizione; essa accompagna chi lo utilizza durante tutto il
processo decisionale che avviene attraverso i dati. È un prodotto nato in supporto alle esigenze della BI (Business Intelligence); però oltre a fornire risposte alle
domande poste come obiettivo all’inizio dell’analisi, esso fornisce i mezzi attraverso cui rispondere ad eventuali domande che possono nascere dopo la creazione di
report o visualizzazioni; infatti, è possibile creare “query on demand” per scoprire
le informazioni aggiuntive desiderate, oppure, per cambiare rapidamente l’aspetto
delle visualizzazioni.
Qlik Sense dà la possibilità di salvare i dati provenienti da fonti diverse e di
raggrupparli in app, ciascuna delle quali conterrà tutti i fogli creati dall’utente per
sfruttare al meglio le informazioni ricavate dai dati. Ogni foglio rispecchierà uno o
più aspetti dei dati e sarà formato da grafici (che possono essere di diversi tipi) o
da immagini, da testo, da caselle di filtro per le selezioni. Inoltre, a partire dalle
visualizzazioni, è possibile creare racconti, ossia una collezione di fogli o snapshot
che riassumono il significato dell’analisi e accompagnano coloro che l’hanno condotta
(o chi deve prendere delle decisioni in merito) verso la strada giusta.
I risultati ottenuti possono essere pubblicati e condivisi con gli altri utenti che
utilizzano Qlik Sense Cloud; inoltre, registrandosi alla piattaforma, sarà possibile
prendere parte della Qlik Community e diffondere le proprie soluzioni e idee, alimentando la crescita della stessa insieme alla cultura della collaborazione e dell’aiuto
reciproco.
Nella Figura 6.1 è possibile prendere visione dell’interfaccia utente all’avvio di
Qlik Sense. Come si evince dalla figura, dall’hub si accede all’app desiderata. Dopo
aver cliccato sull’app, si apre una nuova scheda che corrisponde alla panoramica
58
6 Qlik Sense
dell’app; da tale scheda è possibile effettuare tutte le operazioni messe a disposizione
dal tool, come il caricamento dei dati (tramite la gestione degli stessi o l’editor di
caricamento), il sistema di visualizzazione dei dati nel quale vengono mostrate tutte
le associazioni tra le tabelle presenti, i fogli e i racconti dell’app.
Figura 6.1. Interfaccia utente di QlikSense
6.2 Linea di prodotti Qlik Sense
QlikSense ha sviluppato tre prodotti, tutti basati su Qlik Analytics Platform, che
differiscono per i servizi offerti all’utente e per i diversi contesti in cui possono essere
utilizzati (Figura 6.2). Essi sono:
Figura 6.2. Linea di prodotti QlikSense
• Qlik Sense Desktop: è la versione base; è possibile scaricarla gratuitamente e
l’installazione è semplice e veloce. Si avvia come qualsiasi altro programma presente nel nostro computer. Essa utilizza la porta 4848 per impostazione predefinita, quindi digitando l’indirizzo http://localhost:4848/hub su un qualsiasi
6.3 Creazione di una nuova app
•
•
59
browser web supportato è possibile accedere all’hub di Qlik Sense. Qlik sense
Desktop consente di creare e gestire diverse app con le funzionalità classiche,
ossia aggiungere i fogli, creare visualizzazioni e racconti.
Qlik Sense Cloud: a questa versione è possibile accedere tramite la registrazione
alla piattaforma. Chi si iscrive riceve molti privilegi, primo fra tutti quello di
possedere un proprio profilo e di poter partecipare attivamente alla crescita del
tool tramite la Qlik Community. L’utente, dunque, ha l’opportunità di caricare le app create nel proprio Cloud, oppure di pubblicarle nel Cloud condiviso
dal quale gli sarà possibile invitare i propri follower alla collaborazione, per un
massimo di 5 utenti, se si dispone della sottoscrizione gratuita a Cloud Basic.
Sarà possibile accedere all’applicazione da qualsiasi dispositivo smartphone o
tablet, per rendere l’esperienza con i propri dati il più soddisfacente ed efficiente
possibile.
Qlik Sense Enterprise: nasce per rispondere a tutte le esigenze di un’azienda
che investe sulla BI e sui Big Data, oltre a tutti i servizi messi a disposizione dalle altre due versioni, essa aggiunge l’opportunità di condividere con tutti
i membri del proprio team (senza limiti di numero) i progressi effettuati in
real time. Essa permette, altresı̀, l’accesso alle libreria oggetti condivisa (campi,
misure, dimensioni) e assicura un livello di sicurezza e affidabilità sui dati superiore. La comunicazione e lo sviluppo delle idee avviene in modo più veloce
mediante la funzione avanzata di “Storytelling”, grazie alla quale i collaboratori
possono rispondere facilmente alle intuizioni e alle domande che sorgono nella
visualizzazione dei dati, per favorire e velocizzare il processo decisionale.
6.3 Creazione di una nuova app
Un’app è il cuore di Qlik Sense attraverso cui condurre tutte le nostre analisi; essa è
una raccolta di dati riutilizzabili (misure, dimensioni e visualizzazioni), fogli e racconti. La creazione di un’app ha lo scopo di racchiudere studi e scoperte riguardo
una particolare tematica al fine di prendere decisioni o scoprire nuovi trend, utilizzando le visualizzazioni di dati ed eseguendo selezioni. Ogni app ha un proprio nome
che riassume tutto il suo contenuto, una descrizione e un’immagine di anteprima,
tutti e tre modificabili in qualsiasi momento. La Figura 6.3 delinea la struttura di
un’app con le nozioni fondamentali da conoscere.
In questa sezione illustreremo la creazione e la gestione di un’app a partire dai
dati caricati, per poi passare ai fogli e alle visualizzazioni, concludendo con i racconti
e la presentazione di questi ultimi, scopo finale della nostra app.
6.3.1
Hub di Qlik Sense
L’hub è la prima schermata che l’utente vede non appena viene avviato Qlik Sense
(Figura 6.4); esso è il componente in cui sono visualizzate tutte le app sulle quali
l’utente può lavorare. Cliccando sull’app scelta si aprirà una nuova finestra che
corrisponde alla panoramica dell’app; dall’hub è possibile creare una nuova app in
pochissimi passi e, inoltre, è possibile accedere a Qlik Sense Cloud.
60
6 Qlik Sense
Figura 6.3. Blocchi di un’app
Figura 6.4. Hub di Qlik Sense
6.3.2
I dati
Una sezione fondamentale di ogni app è quella riservata ai dati. Qlik Sense mette a
disposizione due modi attraverso cui caricare tali dati, ovvero, la gestione dei dati
e l’editor di caricamento.
Gestione dei dati
Attraverso la gestione dei dati è molto semplice caricare tutti i dati nei formati
desiderati; è sufficiente selezionare la sorgente dati (che può essere una connessione definita personalmente o predefinita oppure una cartella contenuta nel nostro
computer) e scegliere il file. Una volta aperto, il file assumerà la classica struttura
6.3 Creazione di una nuova app
61
tabellare nella quale sono definiti i campi, con tutti i dati contenuti in essi; prima
di caricare la tabella è possibile modificare il nome dei campi oppure spuntare i
campi utili ed eliminare quelli che non servono. Quando il file è pronto, può essere
caricato.
Per preparare il file in maniera corretta, può essere necessario modificare, nelle
impostazioni, le tre voci formato di file, nome di campo e delimitatore, e adattarle
alla natura del file, affinchè i dati siano leggibili e non presentino errori dovuti a
una loro interpretazione sbagliata da parte del tool (Figura 6.5).
Figura 6.5. Esempio del caricamento di un file con lo strumento di gestione di dati
Possono esistere dei campi in comune in diverse tabelle per i quali è necessario
effettuare delle associazioni; l’opzione di preparazione dei dati è molto utile quando è
necessario creare delle associazioni particolari tra diverse tabelle. Una volta caricati
i dati, cliccando in “associazioni” è possibile visualizzare tutte quelle suggerite.
È possibile modificare una tabella o eliminarla in qualsiasi momento, ad ogni
operazione svolta nella gestione dati viene generato il codice dello script di caricamento degli stessi, tale codice può essere visualizzato nella sezione Auto-generated
section dell’editor di caricamento dei dati.
Editor di caricamento
Qlik Sense utilizza uno script di caricamento dei dati che viene gestito nell’editor
di caricamento dei dati. Nello script sono specificati i campi e le tabelle da caricare; è, inoltre, possibile modificare la struttura dei dati utilizzando espressioni e
istruzioni, assegnando nuovi nomi ai campi, aggregando valori, unendo tabelle. È
possibile caricare dati provenienti da un database, da file in formato Microsoft Excel o da file tabellari (tabelle HTML, file CSV, file XML), tramite la creazione di
una connessione. Non appena si clicca su Inserisci Script (Figura 6.6), nello script
vengono inserite le istruzioni effettuate in automatico che possono essere modifica-
62
6 Qlik Sense
te a seconda delle proprie esigenze (Figura 6.7); per rendere effettive le modifiche
occorre dapprima salvare e poi caricare i dati.
Figura 6.6. Esempio del caricamento di un file tramite l’editor di caricamento
Figura 6.7. Script inserito
Sistema di visualizzazione dei dati
Accedendo a questa sezione è possibile visualizzare in maniera veloce tutti i dati
presenti nella nostra app e vedere, in un colpo d’occhio, tutte le associazioni presenti tra le diverse tabelle. Ogni tabella viene rappresentata da una casella in cui
6.3 Creazione di una nuova app
63
sono inseriti tutti i campi selezionati; le linee rappresentano, invece, le associazioni
(Figura 6.8). È possibile comprimere o espandere una tabella per visualizzarne solo
il nome o la lista dei campi; cliccando sull’anteprima e selezionando un campo, è
possibile aggiungerlo come dimensione o misura.
Figura 6.8. Sistema di visualizzazione dei dati
6.3.3
Fogli
Quando si crea un’app si hanno in mente gli obiettivi chiave da portare avanti o i
risultati ai quali giungere; ciascun foglio rappresenta uno di questi obiettivi.
Un foglio è caratterizzato da un titolo, una descrizione e un’immagine di anteprima; esso può essere formato da grafici, immagini o testo (per caricare un’immagine
contenuta nel foglio è necessario accedere alla libreria multimediale e aggiungere il
file nella sezione in app). Ogni elemento presente nel foglio (visualizzazione) può
essere editato in qualsiasi momento; la struttura del foglio può essere decisa modificando posizione o dimensione degli elementi stessi. Il foglio può essere salvato come
snapshot, esportato come immagine o PDF, per essere poi eventualmente riutilizzato. Nella Figura 6.9 viene presentato un esempio di foglio che contiene diverse
visualizzazioni.
6.3.4
Campi
I file caricati e presenti nella gestione dati di ogni app sono strutturati in forma
tabellare; ogni voce della tabella rappresenta un campo, ossia un elemento significativo che, con il proprio valore, caratterizza le tuple delle tabelle, su cui si lavora. È
possibile visualizzare tutti i campi presenti nell’app, filtrati per tabelle quando viene
aperto un foglio vuoto alla destra dello schermo (Figura 6.10) oppure dal sistema
di visualizzazione dei dati, cliccando sul tasto “espandi”.
64
6 Qlik Sense
Figura 6.9. Esempio di diverse visualizzazioni
Figura 6.10. Campi di un’app
I campi assumono rilevanza nel nostro studio quando vengono scelti come misure
o dimensioni, ossia quando diventano fonte di informazioni importanti al fine della
nostra analisi.
6.3.5
Dimensioni
Nelle visualizzazioni, le dimensioni sono il modo in cui vengono raggruppati i dati,
per esempio le aree di una determinata regione. È possibile creare una dimensione
principale che viene utilizzata spesso nelle diverse visualizzazioni: si seleziona il
nome, la descrizione e un eventuale tag per poi aggiungerla alla lista delle dimensioni
presenti. Quando viene selezionata una visualizzazione è possibile stabilire eventuali
6.3 Creazione di una nuova app
65
limitazioni (valore esatto, relativo o intero), si può scegliere se mostrare o meno i
valori nulli, se aggiungere nuove dimensioni o se eliminarle (Figura 6.11).
Figura 6.11. Creazione di una dimensione
6.3.6
Misure
Le misure rappresentano il risultato che vogliamo visualizzare; quest’ultimo, in una
visualizzazione, è raggruppato per la dimensione prescelta. La misura può essere un
campo semplice o può essere un’espressione combinata delle funzioni SUM, COUNT,
AVG, MIN e MAX, ossia la somma, il conteggio, la media e il minimo o il massimo.
Come per la dimensione, è possibile creare in maniera molto semplice una misura
a partire da un campo qualsiasi; basta sceglierlo e determinarne la funzione da
applicare (Figura 6.12).
6.3.7
Visualizzazioni
Le visualizzazioni vengono utilizzate per presentare in modo efficace e diretto i dati
contenuti nell’app. Qlik Sense dà l’opportunità di personalizzare le visualizzazioni
in ogni dettaglio, offrendo una vasta gamma di grafici (Figura 6.13) attraverso cui
rappresentare i diversi risultati ottenuti (ovviamente, la scelta del grafico dipende
dallo scopo della visualizzazione). I grafici consentiti da Qlik Sense sono i seguenti:
•
•
•
•
Grafico a barre.
Grafico combinato: riunisce le barre e le linee nello stesso grafico.
Casella di filtro: consente di controllare i dati mostrati nelle visualizzazioni su
un foglio permettendo di filtrare contemporaneamente i dati di più dimensioni.
Tachimetro: consente di visualizzare il valore di una singola misura senza
dimensioni.
66
6 Qlik Sense
Figura 6.12. Creazione di una misura
•
•
•
•
•
•
•
•
•
KPI: viene utilizzato per presentare le cifre fondamentali relative alle prestazioni.
Grafico lineare.
Mappa: viene utilizzata per combinare dati geospaziali e valori di misura
Grafico a torta.
Tabella pivot: mostra dimensioni e misure come righe e colonne di una tabella;
i dati possono essere raggruppati in base a una combinazione di dimensioni;
possono essere visualizzate anche somme parziali.
Grafico a dispersione.
Tabella.
Testo e immagine.
Mappa ad albero.
Caratteristica fondamentale delle visualizzazioni è che è possibile effettuare delle
selezioni per ottenere delle informazioni più precise e filtrarle rispetto alle altre
oppure per ottenere delle risposte a richieste che potrebbero nascere spontanee alla
vista dei grafici e per le quali una visione di insieme non basta (Figura 6.14).
6.3.8
Snapshot
Dato un grafico, potrebbe nascere l’esigenza di salvare un suo stato derivato da una
selezione particolare. Qlik Sense mette a disposizione lo strumento “Snapshot” per
effettuare delle catture di visualizzazioni. In questo modo, per ogni grafico, sarà
possibile mettere in evidenza tutte le varie sfaccettature.
Una volta effettuato lo snapshot, questo viene salvato nella corrispondente libreria per essere utilizzato eventualmente nei racconti o per essere semplicemente
memorizzato (Figura 6.15). Gli snapshot vengono disposti in ordine temporale, dal
più recente al meno recente, e raggruppati nelle categorie Oggi, Questa Settimana,
Meno Recente. Ogni snapshot può essere caratterizzato da un’annotazione che serve
per descriverlo e per ricordarci il suo scopo; ovviamente, esso può essere modificato
o eliminato in qualsiasi momento.
6.3 Creazione di una nuova app
67
Figura 6.13. Esempi di diverse visualizzazioni
Figura 6.14. Esempio di una selezione
6.3.9
Racconto
Qlik Sense riserva una sezione particolare ai racconti; questi sono il risultato dell’analisi condotta sui dati perchè riassumono e descrivono i suoi tratti caratteristici.
Ogni diapositiva può rappresentare un concetto, un obiettivo o un traguardo raggiunto. Il racconto è uno strumento molto efficace di comunicazione ed è di supporto
durante il processo decisionale che deve essere portato a termine quando vengono
presentati i risultati ottenuti. È possibile aggiungere al racconto direttamente i fogli
creati, editare snapshot aggiungendo forme (di cui si può scegliere dimensione e
colore), allegare immagini o testo, tutto questo per evidenziare le scoperte sui dati
su cui si desidera indirizzare l’attenzione del pubblico (Figura 6.16).
68
6 Qlik Sense
Figura 6.15. Snapshot e libreria relativa agli snapshot
La diapositiva formata dal foglio assume un grande valore perchè direttamente
dal racconto (senza accedere all’app) è possibile effettuare selezioni o eseguire nuove
indagini sul momento. Essendo, poi, il racconto connesso alla relativa app, è possibile
tornare ai dati attivi in qualsiasi momento per rispondere ad eventuali richieste o
scoprire nuovi legami che prima non erano visibili e che la presentazione del racconto
ha fatto nascere.
Tutti i racconti creati sono visibili cliccando “Racconti” dalla panoramica app;
ciascun racconto avrà il proprio nome, la descrizione e l’immagine di anteprima;
il racconto può essere riprodotto direttamente da Qlik Sense, altrimenti è possibile esportarlo in formato PowerPoint oppure PDF, determinando orientamento,
proporzioni e risoluzione del file da salvare sul proprio computer.
6.3.10 Presentazione
Il momento più importante è quello in cui viene mostrato al pubblico il frutto dei
nostro lavoro effettuato sui dati. Anche in questo caso Qlik Sense ci supporta e mette
a disposizione lo strumento adatto, ovvero “Presentazione”. Ogni nostro racconto,
nato come una entusiasmante collezione dei risultati ottenuti, può essere riprodotto
come una presentazione qualsiasi; infatti, sono disponibili controlli che consentono
di spostarsi avanti e indietro nelle diapositive. Ciò che è importante quando viene
presentato un racconto è raggiungere lo scopo primario di Qlik Sense, ovvero quello
di rendere chiari ed esplicativi i risultati ottenuti per qualsiasi spettatore ed essere
di aiuto, nel migliore dei modi, durante il processo decisionale.
6.4 Condivisione e collaborazione
69
Figura 6.16. Esempio di un racconto
6.4 Condivisione e collaborazione
Qlik Sense è stato sviluppato per la collaborazione. Gli strumenti di Qlik
Sense contribuiscono a creare conoscenze comuni e a supportare il processo
decisionale.
Come ci suggerisce questa citazione presa dal sito ufficiale di Qlik Sense, uno
degli scopi per cui nasce questo tool è rendere l’analisi dei dati accessibile a qualsiasi
persona che abbia l’interesse, la passione o l’esigenza di avvicinarsi a questa attività.
La Qlik Community è un posto accogliente della rete in cui esprimere le proprie
idee, le proprie scoperte o portare avanti problemi e soluzioni condividendoli con
gli altri. Esistono diverse sezioni, quella relativa agli utenti, dove è presente la lista
delle persone attive sulla community, oppure quella relativa ai contenuti, suddivisa
a sua volta in post di blog, documenti, discussioni, sondaggi, video e idee (Figura
6.17).
Grazie a Qlik Sense sarà possibile pubblicare i propri risultati (fogli, racconti,
app), oppure esportarli per averli pronti in qualsiasi formato.
6.4.1
Pubblicazione
Ogni utente iscritto alla piattaforma avrà l’opportunità di pubblicare i propri contenuti tramite “Qlik Management Console”; quando si pubblica un’app, i fogli e i racconti di tale app risulteranno disponibili agli altri utenti che dispongono dell’accesso
al flusso a cui appartiene l’app pubblicata.
Nessuno ha il diritto di modificare i fogli e i racconti di base pubblicati con
l’app; tuttavia, questi potranno essere utilizzati per analizzare i dati. Se si dispone
dei diritti di accesso corretti è possibile aggiungere fogli e racconti privati a un’app
pubblicata; un’app può possedere sia fogli che racconti, privati e pubblici; in qualsiasi momento l’autore può decidere quali contenuti lasciare pubblici e quali rendere
privati.
70
6 Qlik Sense
Figura 6.17. Condivisione
6.4.2
Esportazione
Per condividere fogli e racconti con persone esterne al sistema di Qlik Sense esiste
la possibilità di esportare e stampare i fogli e le visualizzazioni. Un foglio può essere
esportato in formato PDF; una visualizzazione può essere esportata in formato
immagine o PDF; un racconto, invece, può essere esportato in formato PowerPoint
o PDF.
7
Progettazione di un software multimediale
per l’apprendimento di Qlik Sense
Questo capitolo illustra tutti i passi attraverso cui abbiamo progettato il software
multimediale per l’apprendimento di Qlik Sense.
7.1 Premessa
In questo capitolo illustreremo la progettazione del software didattico multimediale per l’apprendimento di Qlik Sense. La metodologia di progettazione di questo
software è del tutto analoga a quella illustrata nel capitolo 4 dedicata alla progettazione del software a supporto dell’apprendimento di Hadoop. Per tale ragione, in
questo capitolo, non ci soffermeremo in dettaglio nella sua descrizione, rimandando
il lettore interessato alla sezione 4.1.
7.2 Progettazione della vista logica
Come si evince dalla Figura 7.1, nell’albero connesso alla vista logica si inizia con la
presentazione della BI; questo argomento risulta essere padre di Qlik Sense, per quest’ultimo è stato sviluppato un sottoalbero che contiene tutti gli argomenti necessari
per definirne il funzionamento.
7.3 Progettazione della vista fisica
La lista derivante dalla vista fisica è cosı̀ strutturata: si parte dalla BI passando per
la presentazione di Qlik Sense, per la creazione di una nuova app, giungendo, infine,
alla possibilità di condividere i propri risultati tramite Qlik Sense Cloud (Figura
7.2).
7.4 Progettazione della vista utente
I mockup derivanti dalla vista utente, vengono illustrati nelle prossime sottosezioni.
72
7 Progettazione di un software multimediale per l’apprendimento di Qlik Sense
Figura 7.1. Visualizzazione dell’albero connesso alla vista logica
7.4.1
BI
In Figura 7.3 sono riassunte, tramite un’immagine caratteristica, tutte le possibili
applicazioni della BI.
7.4 Progettazione della vista utente
73
Figura 7.2. Visualizzazione dell’albero connesso alla vista logica
7.4.2
Principali tool BI
In Figura 7.4 sono visualizzati, grazie al “Gartner 2016 Business Intelligence Magic
Quadrants”, i principali tool di BI; come si può notare, Qlik è nel “quadrant” dei
LEADERS.
74
7 Progettazione di un software multimediale per l’apprendimento di Qlik Sense
Figura 7.3. Mockup che illustra le principali applicazioni della BI
7.4.3
Qlik Sense
In Figura 7.5 sono rappresentate le funzionalità di Qlik Sense, suddivise per
categorie: fogli, racconti, cloud.
7.4.4
Nuova App
In Figura 7.6 viene rappresentato il mockup relativo alla creazione di una nuova app;
da tale mockup si evince che le sezioni a cui si può accedere nel creare una nuova
app sono fogli, segnalibri e racconti. Come si può notare, è possibile aggiungere
ciascuno di questi elementi con un solo click.
7.4.5
Caricamento Dati
In Figura 7.7 vengono spiegati i due possibili modi attraverso cui caricare i dati di
un’app.
7.4.6
Gestione Dati
In Figura 7.8 viene mostrato il mockup relativo alla sezione “Gestione Dati” (in
alto) e i diversi step da seguire per il caricamento (in basso).
7.4 Progettazione della vista utente
75
Figura 7.4. Mockup relativo ai principali tool di BI
7.4.7
Editor di caricamento
In Figura 7.9 viene illustrato il mockup relativo alla sezione “Editor di caricamento”;
al centro viene mostrato lo spazio riservato all’inserimento dello script, alla destra
viene visualizzata la lista delle sezioni, a sinistra viene illustrato l’insieme delle
connessioni create.
7.4.8
Sistema di visualizzazione dei dati
In Figura 7.10 viene presentato il mockup relativo alla sezione “Sistema di visualizzazione dei dati” contenente le tabelle e le corrispettive associazioni.
7.4.9
Fogli
In Figura 7.11 viene illustrato un mockup rappresentante un foglio; al centro saranno
presenti le diverse visualizzazioni, a destra tutti i campi, le misure e le dimensioni
mentre a sinistra le possibili opzioni di modifica del foglio.
7.4.10 Campi
In Figura 7.12 viene presentato il mockup che descrive la natura dei “Campi” di
una tabella.
76
7 Progettazione di un software multimediale per l’apprendimento di Qlik Sense
Figura 7.5. Mockup per rappresentare le potenzialità di Qlik Sense
Figura 7.6. Mockup volto ad illustrare come realizzare una nuova app
7.4.11 Misure
In Figura 7.13 viene illustrato il mockup che descrive cos’è una “Misura” e come
può essere aggiunta.
7.4 Progettazione della vista utente
77
Figura 7.7. Mockup relativo alle due opzioni di caricamento dati
7.4.12 Dimensioni
In Figura 7.14, viene illustrato il mockup che descrive cos’è una “Dimensione”.
7.4.13 Drill Down
In Figura 7.15, tramite un esempio, viene spiegata la funzionalità di “Drill Down”
su una dimensione.
7.4.14 Roll Up
In Figura 7.16, tramite un esempio, viene spiegata la funzionalità di “Roll Up” su
una dimensione.
7.4.15 Visualizzazioni
In Figura 7.17 sono presenti, con le rispettive descrizioni, tutte le possibili visualizzazioni che Qlik Sense mette a disposizione.
7.4.16 Snapshot
In Figura 7.18 viene mostrato il mockup tramite cui si descrivono gli step per creare,
salvare e usare uno snapshot.
78
7 Progettazione di un software multimediale per l’apprendimento di Qlik Sense
Figura 7.8. Mockup relativo alla sezione “Gestione Dati”
7.4.17 Racconto
In Figura 7.19 viene illustrato il mockup che rappresenta la schermata visualizzata
quando si apre un racconto; al centro viene visualizzata la diapositiva selezionata, a
destra l’insieme delle diapositive, a sinistra le opzioni di modifica sulle diapositive.
7.4.18 Presentazione
In Figura 7.20 viene mostrato il mockup che illustra le operazioni che è possibile
effettuare quando viene presentato un racconto.
7.4.19 Cloud
In Figura 7.21 viene illustrato il mockup che presenta le funzionalità offerte da Qlik
Sense Cloud.
7.4.20 Registrazione
In Figura 7.22 viene presentato il mockup rappresentante la schermata che permette
di effettuare la registrazione a Qlik Sense Cloud.
7.4.21 Condivisione
In Figura 7.23 viene mostrato il mockup che descrive le funzionalità essenziali di
Qlik Sense in merito alla condivisione.
7.4 Progettazione della vista utente
79
Figura 7.9. Mockup relativo alla sezione “Editor di caricamento”
7.4.22 Collaborazione
In Figura 7.24 viene presentato il mockup che illustra la Qlik Community, con tutti
i vantaggi che ne può trarre chi fa parte di essa.
80
7 Progettazione di un software multimediale per l’apprendimento di Qlik Sense
Figura 7.10. Mockup relativo alla sezione “Sistema di visualizzazione dei dati”
Figura 7.11. Mockup rappresentativo di un foglio
7.4 Progettazione della vista utente
Figura 7.12. Mockup volto ad illustrare i campi
Figura 7.13. Mockup per illustrare cos’è una misura e come si può aggiungere
81
82
7 Progettazione di un software multimediale per l’apprendimento di Qlik Sense
Figura 7.14. Mockup per illustrare il concetto di dimensione in Qlik Sense
Figura 7.15. Mockup per illustrare la funzionalità di “Drill Down” su una dimensione
7.4 Progettazione della vista utente
Figura 7.16. Mockup per illustrare la funzionalità di “Roll Up” su una dimensione
Figura 7.17. Mockup per illustrare la lista delle visualizzazioni
83
84
7 Progettazione di un software multimediale per l’apprendimento di Qlik Sense
Figura 7.18. Mockup relativo alle varie attività che è possibile effettuare sugli snapshot
Figura 7.19. Mockup rappresentativo di un racconto
7.4 Progettazione della vista utente
Figura 7.20. Mockup relativo alla funzionalità di “Presentazione”
Figura 7.21. Mockup per illustrare la funzionalità di Qlik Sense Cloud
85
86
7 Progettazione di un software multimediale per l’apprendimento di Qlik Sense
Figura 7.22. Mockup rappresentativo della registrazione a Qlik Sense Cloud
Figura 7.23. Mockup per illustrare la condivisione in Qlik Sense
7.4 Progettazione della vista utente
87
Figura 7.24. Mockup per illustrare la collaborazione in Qlik Sense e il concetto di Qlik
Community
8
Implementazione di un software
multimediale per l’apprendimento di Qlik
Sense
In questo capitolo verrà illustrato, a partire dalla progettazione che abbiamo trattato
nel capitolo precedente, come è stato realizzato il software multimediale per l’apprendimento di Qlik Sense. Nella seconda parte del capitolo si mostreranno alcune
schermate di tale software.
8.1 Implementazione del software multimediale
Per la realizzazione del sofware multimediale per l’apprendimento di Qlik Sense,
analogamente a quanto visto nel caso di Hadoop, è stato necessario suddividere
l’implementazione in cinque fasi differenti:
•
•
•
•
•
descrizione del case study;
inserimento delle immagini;
registrazione della schermata;
editing del video;
salvataggio del filmato finale.
Confrontando queste fasi con quelle relative ad Hadoop, si può osservare che
è stata aggiunta un’ulteriore fase, ovvero quella riguardante il case study. Infatti,
prima di procedere nell’apprendimento del tool sopra citato, abbiamo posto attenzione ad una tematica sulla quale concentrarci e con la quale mettere alla prova le
potenzialità di Qlik Sense.
A tale riguardo è necessario evidenziare che, solo dopo aver studiato i dati, ovvero
come essi sono strutturati oppure il significato dei loro campi, è stato possibile
effettuare le analisi desiderate. Tali analisi sono state portate a termine per trarre
informazioni e visualizzazioni utili e interessanti, tutto questo sarà trattato nella
sezione relativa al case study.
Per quanto riguarda le immagini, anche in questo caso abbiamo inserito le visualizzazioni derivate dalla vista utente e abbiamo creato nuove immagini per rendere
il filmato più fluido e comprensibile.
Abbiamo dedicato una sezione di questo capitolo per descrivere le diverse
registrazioni delle schermate da noi effettuate.
90
8 Implementazione di un software multimediale per l’apprendimento di Qlik Sense
Durante la fase di editing e salvataggio del filmato sono state applicate tutte le
funzionalità del software Camtasia Studio già citate in precedenza.
8.1.1
Descrizione del case study
Per la creazione del software multimediale su Qlik Sense abbiamo scelto un casestudy che consiste nell’analizzare i dati di EXPO 2015 (scaricati dal sito ufficiale di
EXPO cliccando su “Open Data EXPO 2015”), in particolar modo abbiamo lavorato
su quattro file (i cui formati dei file sono stati scelti per esigenze di formattazione
di alcuni campi presenti nelle tabelle):
• Cruscotto Lotti: include i valori dei vari indicatori ed indici relativi all’esecuzione
dei lavori;
• Cruscotto Aree: include i valori dei vari indicatori ed indici relativi all’esecuzione
dei lavori aggregati per area;
• Fornitori: anagrafica completa dei fornitori di EXPO 2015;
• Gare Lavori Aggiudicazioni: include i valori dei vari indicatori ed indici relativi
alle gare e alle aggiudicazioni degli appalti.
Per ogni file sono state create delle visualizzazioni che ci hanno consentito di
affettuare un’analisi sui dati; nel filmato abbiamo concentrato l’attenzione sui file
Cruscotto Lotti e Cruscotto Aree per calcolare i diversi importi per aree e la differenza tra i giorni lavorativi e quelli contrattuali organizzati per aree; riguardo
i Fornitori invece ci siamo concentrati ad effettuarne una stima che abbracciasse
tutto il mondo.
8.1.2
Registrazione della schermata
È stato ritenuto utile suddividere le registrazioni effettuate per l’apprendimento di
Qlik Sense nel modo seguente:
•
•
•
•
•
creazione dell’app;
creazione dei fogli;
costruzione di selezioni e snapshot;
costruzione di un racconto e la sua presentazione;
funzionamento di Qlik Sense Cloud.
Creazione dell’app
La prima registrazione effettuata consiste nel creare una nuova app, denominata
“EXPO 2015”, la quale contiene tutte le analisi effettuate sui dati. Questi ultimi
sono stati caricati secondo le due modalità permesse da Qlik Sense: gestione dati
e editor di caricamento. Inoltre, abbiamo evidenzato le modalità con cui vengono
create le possibili associazioni tra le tabelle.
8.2 Uno sguardo al software realizzato
91
Creazione dei fogli
Le successive registrazioni comprendono i passaggi grazie ai quali, a partire da un
foglio vuoto, è possibile creare le visualizzazioni che si ritengono più opportune e
significative; i fogli creati, e su cui abbiamo lavorato, sono i seguenti:
•
•
•
Cruscotto Lavori;
Fornitori;
Giorni di lavoro.
Durante tali registrazioni come è stato preliminarmente necessario, ai fini di un
migliore approccio con le future visualizzazioni, creare tutte le dimensioni e le misure
utilizzate più spesso. Abbiamo, anche, creato una dimensione di “Drill-Down” che
consiste in una dimensione composta dai campi “Paese”, “Provincia” e “Località”,
e abbiamo chiamato tale dimensione “Territorio”.
Abbiamo creato delle misure semplici e, successivamente, delle espressioni derivanti dai campi di interesse per ogni visualizzazione.
Effettuare selezioni e snapshot
Durante questa parte della registrazione abbiamo effettuato le selezioni che più potevano servirci sulle visualizzazioni e abbiamo salvato i corrispondenti Snapshot. Per
esempio, abbiamo effettuato una selezione sull’area di Expo Center-Padiglione Zero
nelle visualizzazioni “Importo d’asta, aggiudicato e differenza”, “Confronto giorni
di lavoro e contrattuali”, “Numero giorni di lavoro” e “Numero giorni contrattuali’.
Creare un racconto e la sua presentazione
Tale registrazione comprende la creazione di un racconto e la sua presentazione;
infatti, lo scopo della nostra analisi è stato quello di ricavare la presentazione di
un racconto che potesse, in modo esaustivo, includere e sintetizzare i risultati salienti dello studio effettuato sui dati; abbiamo creato un racconto contenente fogli,
immagini e snapshot, denominato “Analisi EXPO 2015”.
Qlik Sense Cloud
Tale registrazione, che corrisponde alla parte finale del video, consiste nel mostrare come è possibile accedere a Qlik Sense Cloud e come condividere un’app sulla
piattaforma.
8.2 Uno sguardo al software realizzato
Di seguito vengono presentate alcune schermate del software didattico realizzato.
In particolar modo in Figura, 8.1, viene mostrata una delle visualizzazioni ricavate dalla vista utente. La Figura 8.2 rappresenta, invece, un esempio di utilizzo della
funzionalità “Zoom” in un’immagine; la Figura 8.3 è un frame di una registrazione
durante la creazione di una misura.
92
8 Implementazione di un software multimediale per l’apprendimento di Qlik Sense
Figura 8.1. Esempio di una visualizzazione della vista utente nel filmato
Figura 8.2. Esempio di utilizzo della funzionalità “Zoom”
Nella Figura 8.4 è possibile notare un esempio di utilizzo di un callout. Infine, la Figura 8.5 rappresenta il risultato dell’analisi effettuata sui dati, ovvero la
presentazione del racconto “Analisi Dati EXPO 2015”.
8.2 Uno sguardo al software realizzato
93
Figura 8.3. Esempio di un frame della registrazione relativa alla creazione di una misura
Figura 8.4. Esempio di utilizzo della funzionalità “Callout”
Figura 8.5. Prima slide del racconto “Analisi sui Dati EXPO 2015”
9
Conclusioni e uno sguardo al futuro
Durante la stesura della presente tesi è stata affrontata la tematica dei Big Data, in
particolar modo ci siamo concentrati sull’approfondimento di due tool per la loro
analisi, ovvero Hadoop e Qlik Sense; tutto questo è stato fatto avendo in mente le
esigenze di apprendimento dello studente.
Grazie a tutto il processo di realizzazione descritto nella tesi, è stato possibile
produrre due software didattici multimediali per l’apprendimento dei due tool sopra
citati, per fornire allo studente interessato o appassionato ai Big Data, ulteriori
strumenti per specializzarsi ma anche divertirsi con l’analisi dei dati.
L’utilizzo di questa nuova metodologia di apprendimento sta avendo sempre di
più successo, soprattutto nei vari settori ICT. I motivi sono molteplici.
In questo caso, lo spettatore è il protagonista, ossia i contenuti vengono perfettamente adattati a ciò di cui ha bisogno durante il processo di apprendimento.
Questo è il motivo per il quale la fase di implementazione (che corrisponde al
momento in cui è stato realizzato il software didattico) è preceduta da una fase impegnativa di progettazione, durante la quale è stato necessario definire e organizzare,
le tematiche più importanti da trattare e approfondire.
Tali tematiche derivano da uno studio dei due tool indicati, propedeutico alla
creazione di un software didattico multimediale che possa avere lo scopo di illustrare
il funzionamento dei tool.
L’implementazione, invece, deriva dalla fase precedente di progettazione ed è
composta da tutti i processi attraverso cui siamo stati in grado di trasferire in un
filmato ciò che abbiamo studiato e imparato.
La presenza di tutte le fasi sopra citate, è ciò che rende il prodotto finito, diverso
da qualsiasi altro materiale didattico che può essere trovato in rete.
L’obiettivo della presente tesi, dunque, è stato quello di fornire agli studenti
ulteriori strumenti attraverso cui avvicinarsi all’affascinante mondo dei Big Data e
diventare essi stessi, con il proprio contributo, protagonisti di questo settore.
Infatti, come in qualsiasi settore lavorativo, è l’uomo, con la propria forza e
la propria intelligenza, a determinare le sorti del progresso; questo è un concetto
che risulta sempre più evidente nell’ambito dei Big Data; anche se non lo reputiamo
possibile, sono proprio le nostre decisioni ad influenzare strategie o trend di mercato
delle più importanti aziende.
96
9 Conclusioni e uno sguardo al futuro
Per questo motivo, attualmente, il numero dei tool per l’analisi dei Big Data è
sempre in continua crescita ed emerge, dunque, l’esigenza di conoscerli ed essere in
grado di utilizzarli per fini didattici oppure lavorativi.
Pertanto, in futuro, si prospetta che ci siano altri studenti che come me, appassionati di Big Data, produrranno software didattici multimediali per l’apprendimento
di ulteriori tool che via via emergeranno sul mercato.
Personalmente, concludere il mio percorso di studi creando del materiale didattico che possa essere di aiuto e sostegno agli studenti che condividono una delle mie
passioni è stato un risultato di cui sarò sempre fiera e che porterò sempre con me.
Riferimenti bibliografici
1. Big data: qual è il loro impatto sulla società? http://www.volontariperlosviluppo.
it/index.php?option=com_content&view=article&id=1779%3Abig-data-qual-eil-loro-impatto-sulla-societa&catid=161&Itemid=200055, 2011.
2. Hadoop-Namenode, DataNode, Job Tracker and TaskTracker. http://bigdata.
devcodenote.com/2012/11/hadoop-namenode-datanode-job-tracker.html, 2012.
3. Big Data-The 5 Vs Everyone Must Know.
http://www.slideshare.net/
BernardMarr/140228-big-data-volume-velocity-variety-varacity-value, 2014.
4. Cosa sono i Big Data e a cosa servono? http://thebizloft.com/big-data-cosasono-a-cosa-servono/, 2014.
5. Qlik Sense verso una BI di seconda generazione. http://www.techweekeurope.
it/data-storage/business-intelligence/qlik-sense-verso-bi-secondagenerazione-72383, 2014.
6. Cosa sono i Big Data: esempi concreti della vita quotidiana. http://www.cloudtalk.
it/big-data-esempi-concreti/, 2015.
7. Guida Hadoop. http://www.html.it/guide/guida-ad-hadoop/, 2015.
8. Hadoop: what is and why does it matter? http://www.sas.com/en-us/insights/bigdata/hadoop.html, 2015.
9. Big Data: cosa sono e perchè sono importanti. http://www.sas.com/it_it/insights/
big-data/what-is-big-data.html, 2016.
10. Camtasia Studio. https://www.techsmith.com/camtasia.html, 2016.
11. Guida di Qlik Sense. https://help.qlik.com/it-IT/sense/1.1/Content/Home.htm,
2016.
12. Presentazione di Qlik Sense. http://global.qlik.com/it/explore/products/sense,
2016.
13. Programmi per tutorial video.
http://www.aranzulla.it/programmi-pertutorial-video-33765.html, 2016.
14. SAS Solutions for Hadoop. http://www.sas.com/en_us/software/sas-hadoop.html,
2016.
15. The Bill & Melinda Gates Foundation Announces $80 Million Commitment To
Close Gender Data Gaps and Accelerate Progress for Women and Girls. http:
//www.gatesfoundation.org/Media-Center/Press-Releases/2016/05/GatesFoundation-Announces-80-Mill-Doll-Comm-Closing-Gender-Data-Gaps-AccProgress-for-Women-Girls, 2016.
16. B. Baesens. Analytics in a Big Data World: The Essential Guide to Data Science and
its Applications. Wiley, 2014.
17. T. H. Davenport. Big data @l lavoro. Sfatare i miti, scoprire le opportunità. Franco
Angeli Edizioni, 2015.
98
Riferimenti bibliografici
18. T. Erl, W. Khattak, and P. Buhler. Big Data Fundamentals: Concepts, Drivers &
Techniques. Prentice Hall, 2015.
19. C. Ilacqua, H. Cronstram, and J. Richardson. Learning Qlik Sense: The Official Guide.
Packt Publishing, 2015.
20. M. Kaufman, F. Halper, and A. Nugent. Big Data For Dummies. For Dummies, 2013.
21. B. Marr. Big Data in Practice. Wiley, 2016.
22. N. Marz. Big Data: Principles and best practices of scalable realtime data systems.
Manning Publications, 2015.
23. V. Mayer-Schanberger. Big Data: A Revolution That Will Transform How We Live,
Work, and Think. Eamon Dolan/Mariner Books; Reprint edition, 2014.
24. L. Nielsen. Hadoop: The Engine That Drives Big Data. New Street Communications,
LLC, 2013.
25. M. O’Donovan. Qlik Sense for Beginners. TechStuffy Books, 2014.
26. V. Reynolds. Big Data For Beginners. CreateSpace Independent Publishing Platform,
2016.
27. A. Rezzani. Big data. Architettura, tecnologie e metodi per l’utilizzo di grandi basi di
dati. Apogeo Education, 2013.
28. E. Sammer. Hadoop Operations. O’Reilly Media, 2012.
29. J. Smith. Data Analytics: What Every Business Must Know About Big Data And Data
Science. Pinnacle Publishers, 2016.
30. G. Turkington and G. Modena. Big Data con Hadoop. Apogeo, 2015.
Scarica