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.