Università degli Studi Mediterranea di Reggio Calabria. Analisi del fenomeno dei Big Data e comparazione di DBMS NoSQL a loro supporto.

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Università degli Studi Mediterranea di Reggio Calabria. Analisi del fenomeno dei Big Data e comparazione di DBMS NoSQL a loro supporto."

Transcript

1 Università degli Studi Mediterranea di Reggio Calabria Dipartimento di Ingegneria dell Informazione, delle Infrastrutture e dell Energia Sostenibile Corso di Laurea in Ingegneria delle Telecomunicazioni Tesi di Laurea Analisi del fenomeno dei Big Data e comparazione di DBMS NoSQL a loro supporto 1 Relatore Prof. Domenico Ursino Candidato Francesco Romeo Anno Accademico

2

3 1 Alla mia famiglia, ai miei amici e a tutte le splendide persone che mi sono state vicine durante questo cammino.

4

5 INTRODUZIONE La rivoluzione digitale, la diffusione degli open data e l'accelerazione senza precedenti dello sviluppo tecnologico hanno causato una vera e propria esplosione dei dati. Questo fenomeno risulta in continua crescita e tale crescita sembra destinata a mantenersi anche per il futuro. I dati vengono generati attraverso qualsiasi mezzo: dai sensori per la raccolta di informazioni sul clima ai post sui social network, passando per video e immagini digitali, dati GPS raccolti attraverso smartphone e tablet, trascrizione delle transazioni di acquisto, e tanti altri mezzi. Gli strumenti di analisi aiutano i ricercatori a trasformare i dati in conoscenza. La capacità di analizzare un'elevata mole di informazioni, spesso non strutturate, rappresenta, per le aziende operanti in alcuni settori, una chiara fonte di vantaggio competitivo e di differenziazione. I Big Data, combinati con sofisticate analisi di business, hanno il potenziale per dare alle imprese intuizioni, senza precedenti, sul comportamento dei clienti e sulle condizioni di mercato, permettendo di prendere decisioni più velocemente e più efficacemente rispetto alla concorrenza. 1 Per far fronte a tali esigenze le aziende fanno uso di nuove soluzioni ICT, sia a livello infrastrutturale che applicativo, in tutte le fasi del processo, dall'acquisizione, passando per la fase di analisi, fino ad arrivare alla visualizzazione dei risultati ottenuti. Uno dei problemi che sta dietro ai Big Data è che, nella maggior parte dei casi, questi dati non sono strutturati, quindi non sono facilmente riconducibili a modelli di dati o a metodi classici di archiviazione. Cambiare in corsa una determinata tabella, magari introducendo nuovi attributi, è problematico e, spesso, sconsigliato proprio per evitare problemi di corruzione al DBMS. Questa limitazione rende i DBMS relazionali molto poco adatti alle trasformazioni dei Big Data. La nascita e il recente sviluppo dei DBMS NoSQL si sono rivelati di importanza fondamentale per garantire la crescita di tutta una serie di applicazioni ricche di contenuti e spesso distribuite agli utenti tramite Internet. Francesco Romeo 1

6 Di soluzioni per affrontare la problematica dei Big Data ne esistono di diversi tipi, ma quella che va per la maggiore è sicuramente basata su Hadoop. Questa tecnologia, open source, ha rivoluzionato la percezione delle aziende su cosa può essere fatto con i propri dati. La crescita esplosiva dei dati, associata al crollo dei costi dei server e alla crescita delle infrastrutture cloud, ha fatto diventare Hadoop il punto di riferimento per le medie e grandi aziende. Esistono varie tipologie di DBMS NoSQL, ciascuna delle quali presenta caratteristiche differenti. La scelta su quale DBMS usare va fatta accuratamente dal progettista software in base alle caratteristiche del sistema da gestire. All interno della tesi si è scelto di dare maggiore importanza a tre dei DBMS più utilizzati: Cassandra, MongoDB e HBase. In questa tesi presenteremo una panoramica sui Big Data e, più in particolare, su quanto precedentemente specificato. La tesi è strutturata come di seguito specificato: Nel primo capitolo sarà descritto il fenomeno dei Big Data. Verrà presentato il tema della Social Business Intelligence e i vantaggi che ne derivano. Inoltre, verranno presentati i più diffusi contesti di utilizzo. Il secondo capitolo si concentrerà sul processo di analisi dei Big Data, partendo dal processo di estrazione della conoscenza dai database (KDD) e dando maggiore rilievo alla fase di Data Mining. Verrà presentata la figura del data scientist e sarà affrontato il tema della Privacy By Design. Nel terzo capitolo sarà introdotto il concetto di NoSQL e verrà fatto un confronto con i DBMS relazionali. Inoltre, verranno elencate le varie tipologie di DBMS NoSQL. Nel quarto capitolo si parlerà dell utilità del framework Hadoop per l analisi distribuita di grandi insiemi di dati. Verranno, inoltre, presentati i sottoprogetti fondamentali, MapReduce e HDFS, e l innovativo YARN. Nel quinto capitolo verranno trattati tre dei più utilizzati DBMS NoSQL: Cassandra, MongoDB e HBase. Inoltre, verranno presentate, e poi confrontate le caratteristiche, di ognuno di essi. Infine, nell ultimo capitolo, verranno tratte le conclusioni e verranno esaminati alcuni possibili sviluppi futuri. 2 Francesco Romeo

7 1. INTRODUZIONE AI BIG DATA In questo capitolo verrà descritto il concetto di Big Data. Partendo dal significato del termine verranno delineate le caratteristiche generali di questo fenomeno. Successivamente, verrà affrontato il tema della Social Business Intelligence con i vantaggi che ne derivano. Il capitolo si concluderà con una presentazione dei più diffusi contesti di utilizzo, appunto, dei Big Data. 1 Cosa si intende per Big Data 2 La Social Business Intelligence 3 Contesti di utilizzo dei Big Data 1 Francesco Romeo 3

8 1.1 COSA SI INTENDE PER BIG DATA What is Big Data? A meme and a marketing term, for sure, but also shorthand for advancing trends in technology that open the door to a new approach to understanding the world and making decisions. Il termine Big Data, sicuramente abusato nelle moderne strategie di mercato, indica grandi aggregazioni di dati che non possono essere processati o analizzati con i tradizionali processi e strumenti di analisi. I Big Data aprono le porte verso nuovi modi di percepire il mondo e di prendere decisioni. I Big Data sono ovunque, e ogni giorno sempre più applicazioni vengono create per trarne valore e arricchire la vita personale e professionale degli utenti. I nostri desideri, opinioni, sentimenti lasciano traccia nei social media a cui partecipiamo, nelle domande che facciamo ai motori di ricerca, nei tweet che inviamo e riceviamo, così come i nostri stili di vita lasciano traccia nei record dei nostri acquisti. I nostri movimenti lasciano traccia nelle traiettorie disegnate dai nostri smartphone e dai sistemi di navigazione delle nostre auto. Anche le nostre relazioni sociali lasciano traccia nella rete dei nostri contatti telefonici, delle e nei link di amicizia del nostro social network preferito. Da un lato, alcuni fattori, quali la crescita dei dati scientifici, hanno fortemente contribuito all'accelerazione della produzione di questi dati. Dall'altro, questa crescita esponenziale è il risultato di alcuni mutamenti sociali ed economici estremamente positivi avvenuti nella nostra società. Si consideri, ad esempio, la rapida diffusione dei dispositivi mobili, ricchi di contenuti multimediali e compatibili con i sistemi GPS, e dei social network, che hanno consentito a miliardi di persone in tutto il mondo di tenersi in contatto in modo digitale. 4 Francesco Romeo

9 I Big Data sono il nuovo strumento che rende misurabile la società. Ci indirizzano verso una nuova scienza dei dati in grado di misurare e, in prospettiva, prevedere crisi economiche, epidemie e pandemie, diffusione di opinioni, distribuzione delle risorse economiche o energetiche, bisogni di mobilità. Molti analisti, per poter definire il concetto di Big Data, utilizzano le tre caratteristiche descritte di seguito: Velocità; Varietà; Volume; Un equivoco molto diffuso è la convinzione che il concetto di Big Data riguardi esclusivamente le dimensioni dei dati. Per quanto le dimensioni rappresentino sicuramente un elemento della questione, esistono anche altri aspetti o altre proprietà dei Big Data che non sono necessariamente associati a esse. Si prendano in considerazione, ad esempio, la velocità di generazione dei Big Data da un lato e, dall'altro, il numero e la varietà di origini da cui i dati vengono generati contemporaneamente. Per stabilire quando effettivamente i vari tipi di dati rientrano nella categoria dei Big Data è necessario analizzare gli elementi sopra citati. È fuor di dubbio che una presentazione di PowerPoint da 40 MB, un'immagine medica da 1 TB o un filmato da 1 PB hanno tutti dimensioni elevate, ma dobbiamo capire se si tratti di Big Data. Si potrebbe sostenere che non si possono definire Big Data solo in virtù delle dimensioni, poiché il concetto di dimensioni elevate, così come inteso oggigiorno, potrebbe cambiare in futuro. Si potrebbe, invece, asserire che si tratta oggi di Big Data perché ognuno di essi sfrutta al massimo la comune tecnologia disponibile per il loro utilizzo. Si può considerare Big Data una presentazione di Power- Point da 40 MB se non è possibile condividerla via con colleghi o aziende. Analogamente, si può considerare Big Data un'immagine medica da 1 TB se non è possibile visualizzarla in tempo reale su uno schermo remoto in modo semplice e accurato e consentire al medico di utilizzarla durante le visite dei pazienti. Un filmato da 1 PB rientra fra i Big Data se non è possibile eseguire il rendering dell'editing entro l'orario di attività aziendale. È chiaro, quindi, che qualunque attributo, comprese le dimensioni, riguarda i Big Data nel momento in cui mette alla prova i limiti delle funzionalità dei sistemi o incide sulle esigenze Francesco Romeo 5

10 aziendali. In merito agli altri attributi che possono rientrare nella definizione precedentemente esposta, quali la velocità di generazione dei dati o il numero e la varietà di origini da cui provengono, in questo caso è possibile applicare la classificazione di Big Data a quei dati che, di per sé, non sono affatto GRANDI. Un altro aspetto interessante dei Big Data è la loro diversità dal punto di vista della struttura. Alcuni hanno un formato ben definito, ad esempio nel caso delle transazioni di un database, in cui ogni voce può essere divisa in campi, ciascuno dei quali contenente un tipo di dati ben chiaro e definito. Altri possono essere, semplicemente, una raccolta di interventi su blog con testo, tabelle, immagini, audio e video, tutti memorizzati all'interno dello stesso storage di dati. Possiamo affermare che i Big Data sono intorno a noi e che noi stessi siamo tra i principali generatori. L'aggiornamento dei Big Data avviene, inoltre, in modo estremamente iterativo e incrementale con una frequenza elevata. I dati vengono costantemente modificati e divengono più accurati e precisi con il passare del tempo e con l'aumentare dei dati relativi ai dati creati, calcolati o desunti. L'esecuzione di analisi con la maggiore granularità possibile, che producano allo stesso tempo una quantità di dati sufficiente affinché il risultato sia significativo e accurato, richiede iniziative più precise e, in compenso, porta maggiori profitti o guadagni per l'azienda e i clienti. Tenendo conto della qualità dei dati e della loro rappresentatività, dobbiamo essere consapevoli delle grandi opportunità, così come dei nuovi rischi. Occorrono tecnologie a sostegno della privacy, occorre un new deal sui temi della privacy, della trasparenza e della fiducia necessario per creare e accedere alla conoscenza dei Big Data come un bene pubblico per tutti. Certo, i problemi relativi alla qualità, alla privacy e alla proprietà dei Big Data risultato essere decisivi. 6 Francesco Romeo

11 1.2 LA SOCIAL BUSINESS INTELLIGENCE La Business Intelligence (nel seguito, BI) può essere definita come l insieme delle metodologie, dei modelli, delle tecnologie e delle applicazioni rivolte alla raccolta sistematica del patrimonio di informazioni generate e acquisite da un azienda, alla loro aggregazione, analisi, presentazione e al loro utilizzo. Le tecniche di BI nascono, come dice il nome, nel settore economico-finanziario, con applicazioni oggi prevalentemente di marketing, e hanno nomi evocativi come: benchmarking, data mining, business performance management, etc. Big Data Analytics è un concetto nuovo, che in realtà è l unione di due concetti dei quali si parla ormai da molti anni e che, quindi, nuovi non sono. Da un lato Big Data, con tutte le problematiche connesse, come abbiamo visto. Dall altro lato la Business Analytics. Di modello dimensionale dei dati e applicazioni OLAP (On-Line Analytical Processing) si parla da più di 20 anni; la Business Intelligence e il Performance Management sono tra le aree IT che, negli ultimi anni, hanno avuto più attenzione ed investimenti; il Data Mining e le analisi predittive sono stata l ultima frontiera che ha portato verso la Business Analytics. Oggi è difficile trovare un azienda che non abbia affrontato almeno uno dei temi appena citati. Ciò che è inedito, invece, è il concetto di Big Data Analytics. Unione che non è il semplice accostamento dei due concetti sopra descritti. Big Data Analytics non significa semplicemente, o non solo, potere fare analisi su grossi volumi di dati. Anche gli altri due fattori che caratterizzano i Big Data, ovvero la varietà dei dati e la necessità di trasformare i dati in informazioni il più velocemente possibile, sono intervenuti a determinare la definizione di questa nuova categoria di applicazioni. Vediamo quale può essere la chiave di successo per sfruttare i grandi dati e per estrarre da essi informazione e conoscenza. Secondo il McKinsey Global Institute, è possibile identificare cinque fattori largamente applicabili per poter sfruttare i Big Data come fonte di valore. Questi saranno esaminati in dettaglio nel prossimo paragrafo. Francesco Romeo 7

12 1.2.1 BIG DATA COME FONTE DI VALORE I cinque fattori capaci di dare valore ai Big Data sono i seguenti: La creazione della trasparenza: si può ottenere la trasparenza semplicemente rendendo accessibili e disponibili i dati e le informazioni a tutti gli stakeholder in modo tempestivo e in modo da creare un valore straordinario; nel settore pubblico è in atto da tempo una tendenza (Open Data), in particolare nel mondo anglosassone, di apertura del patrimonio informativo a tutte le organizzazioni private e/o ai cittadini. Per quanto le prime iniziative abbiano messo in luce elementi di criticità, si tratta di una tendenza che prosegue e che, anche in Italia, ha messo in moto alcune interessanti iniziative sia a livello regionale che nazionale. Miglioramento delle prestazioni: tutte le organizzazioni, sia pubbliche che private, con una maggiore analisi ed elaborazione dei dati e delle informazioni disponibili possono migliorare le loro prestazioni ed i loro processi. Particolarmente significativi a questo riguardo sono le esperienze di analisi dei dati di vendita ed, in generale, di relazione con la clientela. Una più attenta elaborazione dei dati relativi alle vendite può incrementare in modo significativo la capacità di segmentare l offerta e di personalizzarla sulle specifiche esigenze del cliente. Analizzare i dati sul venduto può dare origine ad una più precisa previsione dell andamento futuro delle vendite con evidenti vantaggi nella gestione logistica. Nel settore pubblico, il processo di digitalizzazione in atto nell area della salute, può consentire oltre ad una analisi accurata della efficienza ed efficacia delle strutture sanitarie una disponibilità di informazioni cliniche che contribuisce ad aumentare la qualità e la personalizzazione dei trattamenti sanitari. Sempre nel settore pubblico, un analisi delle tendenze e dei dati relativi al mercato del lavoro può aiutare in modo decisivo la definizione di politiche attive di supporto ai non-occupati e l impostazione di adeguati processi formativi. Segmentazione dei clienti e personalizzazione delle azioni: i Big Data consentono alle orga- 8 Francesco Romeo

13 nizzazioni di creare segmentazioni altamente specifiche e di adattare i prodotti e i servizi alle esigenze dei consumatori. Questo approccio è ben noto in marketing e nella gestione del rischio. Supporto alle decisioni: i processi decisionali, in tutte le organizzazioni, possono diventare sempre più data-driven e fact-based. Le decisioni prese con il supporto di strumenti analitici possono diventare la regola e non l eccezione. Fino ad ora queste tecniche erano diffuse solo nelle grandi organizzazioni, anche per il costo elevato dei sistemi e degli strumenti informatici per l elaborazione e l analisi dei dati. Le attuali evoluzioni tecnologiche, come il diffondersi del cloud-computing e degli strumenti di analisi open-source, rendono molto meno costoso e più flessibile l adozione di queste tecniche da parte anche delle organizzazioni medio-piccole. Innovare i prodotti, i servizi e i modelli di business. La possibilità, tramite l analisi dei dati, di rispondere in tempo reale alle domande: Cosa è successo?, Perché è successo?, Che cosa sta succedendo? e Che cosa succederà? consentono alle organizzazioni di innovare i prodotti, i processi e i modelli di business per cogliere le sfide di un ambiente in continuo cambiamento. Per cogliere al meglio le opportunità elencate è, però, necessario rispondere efficacemente ad alcune sfide che possono essere cosi sintetizzate: Sfide tecniche: il tema della qualità, dell accessibilità e della fruibilità dei dati rimane un aspetto critico che molte organizzazioni non hanno ancora adeguatamente affrontato. Come citato in una ricerca, IBM stima che oltre il 50% dei manager, non consideri affidabile il dataset sul quale si basano i processi decisionali. Mancanza di talenti: la crescita esponenziale dei big data ha messo in evidenza la necessità, sempre maggiore, di persone con competenza adeguate per elaborare, analizzare e visualizzare grandi dataset ed estrarre da essi le informazioni essenziali per il supporto delle decisioni. Si valuta che nel 2018, solo in USA, vi sarà una carenza di personale con competenze di analisi stimabile in mila unità e saranno mancanti oltre 1,5 milioni di manager con competenze adeguate all utilizzo dei big data. Emergeranno, inoltre, nuove figure professionali come quella del data scientist, dotate di Francesco Romeo 9

14 competenze multidisciplinari (statistica, informatica, economia, organizzazione), necessarie per creare valore ai big data. Sfide legali: il tema della sicurezza, della tutela della privacy e della protezione della proprietà dei dati e delle informazioni, in molti settori (come ad esempio quello della sanità), costituisce un elemento forte di criticità e, talora, un freno all innovazione. Sfide culturali: la cultura delle decisioni data-driven e fact-based non è ancora sufficientemente diffusa nelle organizzazioni, sia pubbliche che private (soprattutto in Italia). È indispensabile, dunque, dedicare adeguata attenzione alle politiche formative ed alla gestione del cambiamento. Questa grande complessità e quantità dei dati può essere gestita solo attraverso soluzioni tecnologiche nuove. È stata sviluppata e adattata un'ampia varietà di tecniche e tecnologie per aggregare, manipolare, analizzare e visualizzare i Big Data. L'insieme di tecniche e tecnologie attingono da settori diversi, quali la statistica, l informatica, la matematica applicata e l'economia: questo significa che un'azienda, la quale intende trarre valore dai Big Data, dovrebbe adottare un approccio flessibile e multidisciplinare. Le tecniche e le tecnologie per aggregare, manipolare, analizzare e visualizzare i Big Data sono in continuo sviluppo per ottenere, sempre, un miglioramento delle prestazioni. 10 Francesco Romeo

15 1.2.2 VARIETA DELLE INFORMAZIONI Probabilmente esistono due distinte categorie di Big Data. La prima è relativa alle tipologie tradizionali di dati. La seconda è relativa ai dati generati dalla rete. Se prestiamo attenzione a quest ultima categoria, proviamo ad elencare alcune importanti fonti di dati per la Big Data Analytics: Dati strutturati in tabelle (relazionali). Sono i dati sui quali si basa la tradizionale Business Intelligence e la sua recente evoluzione, la Business Analytics. I volumi sempre crescenti di dati memorizzabili e le architetture sempre più performanti rendono ancora oggi le tabelle relazionali la principale fonte di dati per la Big Data Analytics. Tutti i sistemi gestionali esistenti producono dati strutturati o strutturabili in tabelle relazionali. Queste restano il modello di dati preferenziale per le principali piattaforme di Data Analytics. Dati semistrutturati (XML e standard simili). E il tipo di dati che sta sfidando l egemonia dei dati strutturati. Applicazioni transazionali e non, forniscono nativamente output di dati in formato XML o in formati tipici di specifici settori (SWIFT, ACORD, etc. ). Si tratta, perlopiù, di dati Business-to-Business organizzabili gerarchicamente. Dati di eventi e macchinari (messaggi, batch o real time, sensori, RFID e periferiche). Sono i tipici dati definibili Big Data che, sino a pochi anni fa, venivano memorizzati solo con profondità temporali molto brevi (massimo un mese) per problemi di storage. Dati non strutturati (linguaggio umano, audio, video). Sono enormi quantità di metadati, perlopiù memorizzati sul web, dai quali è possibile estrarre informazioni strutturate attraverso tecniche avanzate di analisi semantica. Dati non strutturati da social media (social network, blog, tweet). Sono l ultima frontiera delle fonti di dati non strutturate. Crawling, parsing ed entity extraction sono tra le tecniche per l estrazione di dati strutturati e analizzabili. I volumi aumentano esponenzialmente nel tempo. Il loro utilizzo può aprire nuovi paradigmi di analisi prima impensabili. Francesco Romeo 11

16 Dati relativi alla navigazione Web (Clickstream): Web Logs, Tag Javascript, Packet sniffing per ottenere Web Analytics. Si tratta di enormi quantità di dati che portano informazioni sui consumi e sulle propensioni di milioni di utenti. Anche per questi dati, i volumi aumentano esponenzialmente nel tempo. Dati GIS (Geospatial, GPS). I dati geospaziali sono generati da applicazioni sempre più diffuse. La loro memorizzazione è ormai uno standard e i volumi sono in crescente aumento. I dati geospaziali, analizzati statisticamente e visualizzati cartograficamente, integrano i dati strutturati fornendo, ad esempio, informazioni di business, informazione sulla sicurezza o informazioni sociali. Dati scientifici (astronomici, genetica, fisica). Come i dati relativi agli eventi, sono per definizione dei Big Data. Per il loro trattamento e la loro analisi si sono sperimentate tutte le più innovative tecniche computazionali nella storia recente dell Informatica. Per essi sono stati progettati, nel tempo, tutti i più potenti calcolatori elettronici. I loro volumi sono enormi e in costante aumento. Dopo questa elencazione, comunque non esaustiva, sarà risultato chiaro quale sia la potenziale varietà di dati da trattare in un applicazione sviluppata per trasformare i dati in informazioni di business. 12 Francesco Romeo

17 1.2.3 LA VELOCITA NEI FENOMENI AZIENDALI Introduciamo l ultimo fattore che ha determinato la nascita delle Big Data Analytics, ovvero la Velocità che, per molti fenomeni aziendali, è diventata una caratteristica sempre più determinante. Essa è fondamentale per: Svolgere i processi e le attività aziendali (ad esempio, un processo commerciale, la creazione di un nuovo concept di prodotto, la comunicazione di marketing con media digitali). Trattare in modo integrato grandi volumi di dati eterogenei (ad esempio, i dati di vendita, i reclami a un customer care e i commenti sui blog o nei social network, dati di geolocalizzazione) e ottenere un informazione rilevante (ad esempio, di insight nel comportamento di acquisto di un segmento di clientela e delle sue percezioni di qualità verso il prodotto). Rilevare, archiviare, elaborare, distribuire e presentare i dati generati utilizzando i sistemi ICT. Gestire le relazioni digitali tra le persone, le imprese e le istituzioni in modo da permettere la ubiquità dei dati e degli individui. La velocità oggi a disposizione delle aziende si concretizza nella capacità potenziale di ridurre il tempo necessario non solo per l esecuzione di un attività, ma anche per la sua finalizzazione, per il cambiamento repentino e in corsa dei suoi obiettivi o delle sue relazioni con altri processi; questa è la vera e rivoluzionaria novità per la gestione d azienda. Muoversi in un contesto dove si hanno tutti i dati a disposizione consente di affrontare un problema con un margine di errore ridotto e accettabile. La complessità crescente della gestione aziendale di cui si parla spesso, è, di fatto, generata da due fattori prevalenti: la crescente velocità dei cambiamenti necessari, e la crescente incertezza degli scenari e dei risultati generabili dalle scelte possibili. I seguenti punti possono aiutare a riassumere i Francesco Romeo 13

18 principali cambiamenti già in atto e basati sull ICT, che prospettano alcuni nuovi orizzonti del management aziendale: Trasformare il modo in cui le persone pensano, analizzano i fatti, pianificano e agiscono: sono necessari nuovi atteggiamenti nei confronti dell ICT, passando da molti fenomeni di moda e di consumerization (ad esempio, riguardo i dispositivi mobili o il social Web) ad un reale impiego nella gestione aziendale. Velocizzare i processi di Innovation Management, sia di prodotto/servizio (dall idea generation al concept, al testing e allo sviluppo), sia di processo (interno esterno, operativo o manageriale), generati dall ICT. Far funzionare in modo sincrono elevati volumi di transazioni e operazioni aziendali con veloci ed evolute attività di analisi dei dati strutturati e non strutturati generati da questi processi operativi online e offline. Velocizzare le decisioni aziendali con un numero maggiore di informazioni rilevanti e con sistemi di comunicazione e collaborazione ad alta velocità, in tempo reale, tra persone, tra team di lavoro, e tra imprese. Aumentare i cicli/ritmi di misurazione, monitoraggio e analisi dei fatti aziendali per innescare veloci attività di trial and error, veloci cicli di Analyze, Plan, Act and Control, piuttosto che profondi e lenti processi di decisione analitica. Essere coscienti che il sogno della real time enterprise deve avvenire attraverso azioni innovative, fattibili, veloci, economicamente convenienti (nel marketing, nel business development, nella finanza, etc.), altrimenti resta un potenziale inespresso e fine a se stesso. Questa grande complessità e questa grande quantità dei dati possono essere gestite solo attraverso soluzioni tecnolo- 14 Francesco Romeo

19 giche nuove. È stata sviluppata e adattata un'ampia varietà di tecniche e tecnologie per aggregare, manipolare, analizzare e visualizzare i Big Data. L'insieme di tecniche e tecnologie attingono da settori diversi, quali la statistica, l informatica, la matematica applicata e l'economia: questo significa che un'azienda, la quale intende trarre valore dai Big Data, dovrebbe adottare un approccio flessibile e multidisciplinare. Francesco Romeo 15

20 1.3 CONTESTI DI UTILIZZO DEI BIG DATA I Big Data si configurano come un'importante risorsa per l'innovazione, la competizione e la produttività tra le aziende e vengono considerati come dati che potrebbero generare un grande valore al pari addirittura del petrolio, come già affermava nel 2006 il ricercatore di mercato Clive Humby. Allo stato attuale i dati digitali sono ovunque, in ogni settore, in ogni economia e in ogni organizzazione; l'abilità di generare, comunicare, condividere e accedere ai dati è stata rivoluzionata ulteriormente dall'aumento del numero di persone che fanno uso di dispositivi mobili e dai sensori che sono connessi con le reti digitali. Si pensi che più di 30 milioni di nodi sensori collegati in rete sono presenti nel settore dei trasporti, dell'automotive, dei servizi e nel retail e che questi stanno crescendo sempre di più a un tasso superiore al 30% annuo. La qualità dei dati trasversali alle reti continuerà ad aumentare vertiginosamente: infatti, si pensa che entro il 2020 saranno connessi alla rete e a Internet 50 miliardi di dispositivi. Dunque anche la rete gioca un ruolo chiave ai fini dello sviluppo del potenziale dei Big Data. Innanzitutto, essa può raccogliere dati a velocità elevata; i dati raccolti consentono alla rete di determinare il contesto, ad esempio abbinando ai dati le informazioni sull'identità o sulla presenza. Inoltre, la rete consente alle imprese di intervenire immediatamente sulle informazioni ricavate dai dati. Secondo un sondaggio di Gartner, il 64% delle organizzazioni globali sta investendo, o ha intenzione di investire, in tecnologie per i Big Data contro il 54% che già lo faceva o pensava di farlo nel È anche vero che solo l'8% delle imprese ha implementato tali tecnologie. I settori che guidano gli investimenti in Big Data sono quelli dei media e delle comunicazioni, le banche e i servizi, ma nel giro dei prossimi due anni si aggiungeranno molte altre aziende, come quelle nel settore dei trasporti, nella sanità e nel benessere. Ci sono notevoli esempi di aziende in tutto il mondo che sono bene conosciute per il vasto ed efficace utilizzo dei dati. Di seguito menzioniamo brevemente le best practices delle aziende mondiali che hanno sfruttato il valore dei Big Data: Il programma di fidelizzazione di Tesco genera un ammontare di dati sui clienti, da cui 16 Francesco Romeo

21 l'azienda estrae informazioni, per costruire campagne promozionali sino ad arrivare alle strategie di segmentazione della clientela. Harrah's ha aumentato il ricavo dell'8-10% analizzando i dati sulla segmentazione dei clienti. Amazon utilizza i dati sui consumatori per gestire il suo motore di raccomandazioni che conosciamo con l'espressione you may also like... ; questo è basato su un tipo di tecnica di modellazione predittiva chiamata collaborative filter. Inoltre, Amazon ha dichiarato che il 30% dei propri ricavi era riconducibile al suo motore analitico per i consigli ai consumatori. Fedex, la società di trasporto espresso più grande al mondo, ha ottenuto in tempo reale i dati su spedizioni e consumatori provenienti da più di centri di distribuzione e supply chain. WalMart, il gigante americano della grande distribuzione, ha implementato la tecnologia RFID (Radio Frequency Identication) per scambiare informazioni in tempo reale tra i fornitori e il Data Warehouse Retail Link. In questo modo ha ottenuto la riduzione del 16% della frequenza di esaurimento delle scorte. Quest' ultima azienda merita delle considerazioni in quanto ha agevolato la strada alle altre aziende garantendone la competitività nel settore del retail. Walmart ha facilitato l'espansione di un sistema di scambio elettronico di dati per collegare la propria catena di fornitura elettronica. Inoltre, ha sviluppato un Retail Link, ovvero uno strumento che offre ai suoi fornitori una visione della domanda nei suoi negozi in modo da prevedere quando questi ultimi debbano essere riforniti senza attendere l'ordine da Walmart. L'uso diffuso dei dati dei clienti sempre più granulari può consentire ai retailer di migliorare l'efficacia del loro marketing e del loro merchandising. Le applicazioni possono essere suddivise in due grandi settori: applicazioni analitiche e applicazioni relative a determinati settori. Questi verranno esaminati in dettaglio nelle prossime sottosezioni. Francesco Romeo 17

22 1.3.1 APPLICAZIONI ANALITICHE Le applicazioni analitiche si possono suddividere come di seguito specificato: Applicazioni basate su attribuzioni. Queste devono recuperare e analizzare le serie di attività, prendendo in considerazione fattori quali la frequenza, la sequenza, l attualità, le soglie e la perdita di efficacia nel tempo trascorso; l obiettivo finale è quello di accreditare un valore a ciascuna attività. Ecco alcuni esempi basati su attribuzioni: applicazioni per l efficacia del marketing multicanale, grazie alle quali gli esperti del settore tentano di attribuire credito per una vendita su canali di marketing; applicazioni di attribuzione relative ai partner, grazie alle quali le società commerciali tentano di quantificare il contributo dei vari partner; applicazioni di attribuzione relative al trattamento medico, grazie alle quali le organizzazioni di assistenza sanitarie tentano di valutare l incidenza di varie cure e medicinali sull esito della terapia. Applicazioni basate su suggerimenti. Le applicazioni basate su suggerimenti individuano e generano serie di utenti e prodotti simili in base a comportamenti, dati demografici o altri attributi percepibili. A partire dalle tendenze rilevate, le applicazioni riescono a fornire suggerimenti su prodotti (come nel caso Amazon e Netfix) o persone (come accade con Linkedln e Facebook). Ecco alcuni esempi di applicazioni basate su suggerimenti: applicazioni per l individuazione di pubblicità mirate ai clienti, che suggeriscono segmenti di audience di riferimento simili in base a comportamenti e prodotti acquistati in passato; applicazioni che consigliano prodotti complementari sulla base degli acquistati effettuati da utenti simili in un determinato periodo di tempo. Applicazioni basate su predizioni e previsione. Le applicazioni basate su predizioni e previsione acquisiscono un ampia gamma di variabili a supporto dei processi decisionali in svariati scenari di mercato. Esse utilizzano al meglio le tecniche statistiche e di data mining per estrarre dalla moltitudine di variabili solo quelle più efficaci per prevedere le prestazioni in particolari situazioni. Le applicazioni predittive avanzate integrano valutazioni su rischi e dati sensibili affinché i responsabili delle decisioni possano determinare le variabili più importanti nel processo decisionale. Ad esempio, se si ritiene che una certa 18 Francesco Romeo

23 variabile sia cruciale per una decisione, è possibile investire maggiori risorse per assicurarsi che essa venga valutata in modo preciso e completo. Ecco alcuni esempi di applicazioni basate su predizione e/o previsione : applicazioni per il calcolo del tasso di abbandono dei clienti che prevedono la possibilità di contrasti con questi ultimi in base a fattori come attività di utilizzo, richieste di supporto e influenza sociale degli amici; applicazioni per la manutenzione dei prodotti, che prevedono guasti delle apparecchiature in base a informazioni sull utilizzo dei prodotti (in particolare, informazioni attualmente fornite dai dispositivi dati integrati), registrazione degli interventi di manutenzione e informazioni generali sulle prestazioni; applicazioni relative alle prestazioni dei dipendenti, che prevedono le prestazioni di un potenziale collaboratore in base a fattori quali formazione, posizione socio-economica, ruoli professionali precedenti, stato civile e determinate risposte psico-comportamentali; applicazioni relative alle prestazioni degli studi clinici, che modellano i risultati di vari medicinali in base alla sperimentazione clinica, consentendo ad un azienda di comprendere l efficacia di determinate terapie ed evitare conseguenze catastrofiche in caso di utilizzo di particolari farmaci; ciò assume un importanza ancora maggiore quando si tenta di attribuire i risultati per più trattamenti e medicinali; applicazioni per la gestione del rendimento, del ribasso dei prezzi e del merchandising e per l ottimizzazione dei prezzi, in grado di creare modelli utilizzati dai responsabili delle decisioni per comprendere come e quando aumentare o ridurre i prezzi tenendo conto delle condizioni attuali della domanda e dell offerta; questi tipi di applicazioni sono particolarmente comuni nel caso dei prodotti di base (quali merci deperibili, biglietti aerei, camere di alberghi, capi di abbigliamento e biglietto per eventi sportivi), il cui valore si azzera in un determinato momento. Applicazioni basate su approfondimenti. Le applicazioni basate su approfondimenti Francesco Romeo 19

24 fanno leva su tecniche statistiche e di data mining per identificare situazioni o comportamenti insoliti. La crescente importanza di queste applicazioni è legata al volume in continuo aumento dei dati dettagliati provenienti da fonti quali clic nelle pagine web e sensori RFID. Ecco alcuni esempi di applicazioni basate su approfondimenti: applicazioni relative alla riduzione e alla distribuzione dei prodotti, che monitorano costantemente sensori e dati RFID per individuare differenze tra la posizione del prodotto ipotetica e quella reale; applicazioni contro le frodi, che monitorano costantemente le transazioni finanziarie per individuare comportamenti insoliti che possono essere indice di attività fraudolente; applicazioni antiriciclaggio, che monitorano costantemente il flusso di contante per individuare comportamenti insoliti associati a potenziali attività di riciclaggio, ad esempio un numero eccessivo di transazioni di scarso valore realizzate in contanti. Applicazioni basate su benchmark. Le applicazioni basate su benchmark utilizzano al meglio l analitica che confronta le prestazioni di un entità rispetto a uno standard di settore, un periodo o un evento precedente. Ecco alcuni esempi di applicazioni basate su benchmark: applicazioni relative alle quote di mercato, che forniscono dati su quote di mercato e portafoglio; ad esempio, le aziende che creano siti web possono fornire dati e analisi sugli investimenti pubblicitari per consentire a inserzionisti e agenzie di confrontare le spese sostenute nel campo del marketing con quelle della concorrenza; applicazioni basate su benchmark competitivo, che mettono a confronto le prestazioni di un azienda con un aggregato di concorrenti o con la media del settore; applicazioni basate su benchmark, che confrontano le prestazioni di una campagna di marketing in corso con quelle di una campagna o di un evento di marketing precedente e/o simile. 20 Francesco Romeo

25 1.3.2 OPEN BIG DATA Chi riceve un'idea da me, ricava conoscenza senza diminuire la mia; come chi accende la sua candela con la mia ha luce senza lasciarmi al buio Cit. Thomas Jefferson in una lettera a Isaac Mac Pherson nel In realtà, i dati non sono solo big ma possono essere anche open. Gli Open Big Data, cioè la liberazione dei dati delle amministrazioni, rispettano il principio, secondo il quale i dati prodotti dalle istituzioni pubbliche appartengono alla collettività e, pertanto, devono essere resi disponibili, fruibili e riutilizzabili. Alcuni esempi di dati pubblici la cui fruibilità migliorerebbe sensibilmente la vita della comunità sono citati nel rapporto Open Data, Open Society. Da esso deriviamo alcuni ambiti di applicazione: La Geografia: la geografia dei luoghi porta in mente suggestioni di vastità, ricchezza e diversità. Le istituzioni locali avrebbero l'opportunità di pianificare in modo più efficiente le proprie politiche di sviluppo territoriale e urbanistico se, oltre a disporre dei dati che i singoli organi e enti già possiedono, li condividessero fornendo un quadro più esaustivo del territorio, incrociandoli con mappe e visualizzazioni che rilevino aree protette o di interesse artisticoculturale, risorse idriche o forestali, etc. Inoltre, il singolo cittadino potrebbe trarre beneficio dal sapere, per esempio, che la casa che vorrebbe comprare sorge in un'area a rischio idrogeologico. I Trasporti: la conoscenza della disponibilità dei dati sul traffico (la viabilità, il numero stimato di vetture, i lavori in corso, la mobilità etc.) potrebbe recare un miglioramento al traffico urbano e alla progettazione dei trasporti pubblici. Si potrebbe pensare di far dialogare in real time i sistemi di rilevazione installati ai semafori, il sistema GPS sulle vetture piuttosto che su un cellulare, con i database dei vigili urbani, della polizia stradale rendendo i semafori intelligenti, consentendo di facilitare la viabilità al cittadino e favorendo l'azione tempestiva delle forze dell'ordine e del pronto intervento. Allo stesso tempo si potrebbe incentivare il trasporto pubblico fornendo informazioni accurate e costantemente aggiornate, oppure si potrebbero analizzare meglio le fasce orarie in cui è maggiore la domanda del servizio del trasporto pubblico; altre ipotesi e scenari potrebbero emergere dalla condivisione dei dati e dalla comunicazione intelligente tra le istituzioni. Francesco Romeo 21

26 La Demografia: i dati sulla composizione demografica di una precisa area (la scolarizzazione, la popolazione, l'età, il sesso, il tasso di natalità e di mortalità, etc.) si configurano come una risorsa di una certa importanza e rappresentano il centro propulsore di qualsiasi iniziativa di carattere sociale, ma anche politico. Per esempio, basti pensare quali vantaggi potremmo avere se incrociassimo solo pochi dei tanti indicatori demografici di cui siamo in possesso. Una qualsiasi impresa potrebbe stabilire con maggiore precisione l'opportunità di avviare o meno una determinata attività; un'area con un alto tasso di natalità, la cui popolazione è giovane e in salute, è un luogo maggiormente indicato per la costruzione di una struttura polisportiva con piscine attrezzate anche per il parto in acqua o parchi giochi, piuttosto che di un servizio di riabilitazione per anziani. La Sanità: la salute di un Paese è influenzata anche dallo stato della sanità pubblica e privata. La fruibilità di dati in questo settore permetterebbe di individuare gli sprechi e di ottimizzare le spese e le politiche di gestione del sistema sanitario. La Sicurezza: la vita delle persone spesso dipende anche dalla sicurezza dell'area urbana in cui vivono. Si tratta di un ambito particolarmente sensibile. L'Energia: è importante conoscere i dati ufficiali sul consumo e sulla produzione energetica (così come quelli sull'inquinamento atmosferico, sul diffondersi di malattie, etc.) perché ciò recherebbe un notevole vantaggio per i cittadini e permetterebbe di ridurre gli sprechi. Quasi per ciascuno degli ambiti di applicazione precedentemente analizzati esiste nel mondo un'iniziativa di Open Data. Si tratta di un patrimonio pubblico, un bacino di dati e applicazioni che si accresce ogni giorno grazie alla volontà delle istituzioni e dei governi, ma anche per merito del contributo dei singoli cittadini. Nell'ambito istituzionale la prima iniziativa in materia di Open Data nasce negli Stati Uniti e si chiama data.gov. Questo progetto ha l'obiettivo di accrescere l'accesso pubblico alle banche dati aperte e ad alto valore aggiunto prodotte dal ramo esecutivo del governo federale degli Stati Uniti. Inoltre, data.gov mira a portare il governo a livello di trasparenza senza precedenti nella convinzione che la chiarezza e l'apertura derivanti da una simile iniziativa rafforzino la democrazia e favoriscano l'efficienza del governo. data.gov è un progetto che vuole crescere e basa le sue prospettive di crescita sulla partecipazione e collaborazione del pubblico, sui suoi feedback o sui suggerimenti relativamente ai settori per i quali vorrebbe che il governo pubblicasse e rendesse accessibili i suoi dati. 22 Francesco Romeo

27 1.3.3 BIG DATA NELLA STATISTICA UFFICIALE I vantaggi apportati dai Big Data agli istituiti di statistica ufficiale sono: produzione di nuove variabili, ad esempio (le online sales) non misurate finora; fornitura dati in tempo reale; possibilità di costruire informazioni che aiutano a capire i fenomeni (social data mining), a correggere e validare le informazioni e ad aumentare l'efficienza campionaria; aggiunta di nuova conoscenza attraverso alcuni pattern/cluster (modelli che permettono di raccontare storie e migliorare l'efficienza di certi percorsi); produzione di variabili ausiliarie per stimare meglio e predire certi fenomeni (nowcasting). Alcuni esempi possono essere l'indice di disoccupazione inferito dai profili di attività ottenuti per data mining dei record di telefonia mobile, oppure il calcolo o il monitoraggio di nuovi indicatori di benessere/performance sociale a partire da fonti di Big Data non standard (come social network, telefonia e navigazione satellitare, social media) e dagli acquisti della grande distribuzione (tramite carte di fedeltà). I Big Data, tuttavia, sono suscettibili di problemi di qualità a vari livelli, soprattutto in termini di correttezza, aggiornamento e completezza, affidabilità o reputazione della sorgente. Essi, inoltre, possono presentare problemi legati ai metadati. Un fattore importante in questo contesto è rappresentato dalla convalida dell'affidabilità dei dati. Per esempio, si parla di fail profile, un profilo falso raccontato dai social network: questo è un elemento su cui fare attenzione per quanto riguarda la qualità del dato di provenienza e il risultato che si ottiene a valle. I Big Data possono configurarsi come un'opportunità per risolvere i problemi legati alla qualità del dato ovvero: possono risolvere problemi di dati mancanti attingendo all'elevato numero di fonti; possono risolvere problemi di inconsistenza sfruttando la ridondanza delle fonti. Francesco Romeo 23

28

29 2. IL PROCESSO DI ANALISI DEI BIG DATA In questo capitolo verrà descritto il processo di analisi dei Big Data. Si mostrerà una panoramica generale del processo di estrazione di conoscenza dai database (KDD) dando maggiore rilievo alla fase di Data Mining. In seguito verrà presentata la nuova figura professionale del data scientist; il capitolo si concluderà affrontando il tema della Privacy by Design. 1 Il Processo KDD 2 3 La nuova figura del Data Mining Data Scientist 1 4 Privacy by Design nei Big Data Francesco Romeo 25

30 2.1 IL PROCESSO KDD Tutte le grandi organizzazioni, durante lo svolgimento delle proprie attività, accumulano una gran quantità di dati. Questi grazie al progredire delle tecniche di cattura e immagazzinamento di informazioni, contengono delle risorse, delle informazioni sfruttabili, evidenti o nascoste, con differenti gradi di utilità. Inizialmente l'analisi dei dati era un processo manuale e l analista doveva avere familiarità sia con i dati sia con i metodi della statistica: egli stesso agiva come un sofisticato processore di query, mentre l elaboratore elettronico era solo un sostegno per il calcolo. Di fronte alla crescita dimensionale degli archivi di dati ed alla sempre più crescente necessità di elaborarne i contenuti, questo tipo di analisi è risultata lenta, costosa e altamente soggettiva. Di conseguenza, si è costituita ed è cresciuta costantemente una comunità di ricercatori e professionisti interessati al problema dell analisi automatica di grandi quantità di dati, nota come "Knowledge Discovery in Databases (KDD). Gli archivi digitali sono presenti dovunque: banche, industrie, supermercati, attività commerciali etc., e molti processi generano flussi di record che vengono memorizzati in enormi database, talvolta detti Data Warehouse (magazzini di dati). Più propriamente, un Data Warehouse è un database costruito per agevolare l accesso alle informazioni; tipicamente è alimentato da uno o più database di transazioni e i dati devono essere ripuliti e strutturati per facilitare le query, i sommari e le analisi. Da ciò segue che il problema dell'estrazione di conoscenza da database enormi andrà risolto tramite un processo di elaborazione più complesso, formato da molti passi, che possono andare dalla semplice manipolazione dei dati a sofisticate tecniche di inferenza statistica, di ricerca e di Artificial Intelligence. La tecnologia più recente per affrontare tali 26 Francesco Romeo

31 problematiche è il Data Mining. Il Data Mining sfrutta raffinate analisi statistiche e tecniche di modellazione per scoprire pattern e relazioni nascoste nei database, che i metodi ordinari spesso non individuano. I dati comprendono un insieme di fatti, e il pattern è un espressione, in qualche linguaggio, che descrive un sottoinsieme di dati (o un modello applicabile a questo sottoinsieme), le associazioni tra essi, le sequenze ripetute o le regolarità nascoste. In definitiva, un pattern indica una struttura o, in generale, una rappresentazione sintetica dei dati. Con il termine Knowlegde Discovery in Databases, si indica l intero processo di scoperta di conoscenza dai dati dei database. Il processo KDD prevede come input i dati grezzi e fornisce come output le informazioni utili ottenute. Le fasi del KDD sono le seguenti: Selezione: i dati grezzi vengono segmentati e selezionati secondo alcuni criteri al fine di pervenire ad un sottoinsieme di dati che rappresentano il nostro target data o dati obiettivo. Risulta abbastanza chiaro come un database possa contenere diverse informazioni che, per il problema in esame, possono risultare inutili; per fare un esempio, se l obiettivo è lo studio delle associazioni tra i prodotti di una catena di supermercati, non ha senso conservare i dati relativi alla professione dei clienti; è, invece, assolutamente errato non considerare tale variabile, che potrebbe invece fornire utili informazioni relative al comportamento di determinate fasce di clienti, nel caso in cui si voglia effettuare un analisi discriminante. Francesco Romeo 27

32 Preelaborazione: spesso, pur avendo a disposizione il target data, non è conveniente nè, d altra parte, necessario analizzarne l intero contenuto; può essere più adeguato dapprima campionare le tabelle e, in seguito, esplorare tale campione effettuando, in tal modo, un analisi su base campionaria. Fanno, inoltre, parte di questo stadio del KDD la fase di pulizia dei dati (data cleaning), che prevede l eliminazione dei possibili errori, e la decisione dei meccanismi di comportamento in caso di dati mancanti. Trasformazioni: effettuata la fase precedente, i dati, per essere utilizzabili, devono essere trasformati. Si possono convertire tipi di dati in altri o definire nuovi dati ottenuti attraverso l uso di operazioni matematiche e logiche sulle variabili. Inoltre, soprattutto quando i dati provengono da fonti diverse, è necessario effettuare una loro riconfigurazione al fine di garantirne la consistenza. Data Mining: ai dati trasformati vengono applicate una serie di tecniche in modo da poterne ricavare informazione non banale o scontata, bensì interessante e utile. I tipi di dati che si hanno a disposizione e gli obiettivi che si vogliono raggiungere possono fornire un indicazione circa il tipo di metodo/algoritmo da scegliere per la ricerca di informazioni dai dati. Un fatto è certo: l intero processo di KDD è un processo interattivo tra l utente, il software utilizzato e gli obiettivi, che devono essere costantemente inquadrati, ed iterativo nel senso che la fase di Data Mining può prevedere un ulteriore trasformazione dei dati originali o un ulteriore pulizia dei dati, ritornando, di fatto, alle fasi precedenti. Interpretazioni e Valutazioni: il Data Mining crea dei pattern, ovvero dei modelli, che possono costituire un valido supporto alle decisioni. Non basta, però, interpretare i risultati attraverso dei grafici che visualizzano l output del Data Mining, ma occorre valutare questi modelli per capire in che misura questi possono essere utili. E, dunque, possibile, alla luce di risultati non perfettamente soddisfacenti, rivedere una o più fasi dell intero processo KDD. 28 Francesco Romeo

33 2.2 DATA MINING La maggior parte delle aziende utilizza strumenti OLAP (On Line Analytic Processing) per eseguire interrogazioni specifiche sui database aziendali. Il Data Mining consente, agli utenti che sfruttano gli strumenti OLAP, di andare oltre i report riassuntivi. Il Data Mining dice perché si sta verificando un certo fenomeno, mentre l'olap si limita a dire cosa sta accadendo (si limita a descrivere il fenomeno stesso). Il Data Mining è un processo atto a scoprire correlazioni, relazioni e tendenze nuove e significative, setacciando grandi quantità di dati immagazzinati nei repository, usando tecniche di riconoscimento delle relazioni e tecniche statistiche e matematiche. Occorre tenere presente la grande differenza esistente tra statistica e Data Mining: per le analisi statistiche la fase della trasformazione dei dati è critica poiché alcune metodologie statistiche richiedono che i dati siano linearmente collegati ad una variabile obiettivo, normalmente distribuiti e liberi dagli outlier. I metodi dell'intelligenza artificiale e del machine learning, invece, non richiedono rigorosamente che i dati siano normalmente distribuiti o lineari e alcuni metodi non richiedono neppure che gli outlier siano trattati preventivamente. Gli algoritmi del machine learning hanno la capacità di trattare automaticamente distribuzioni non lineari e non normali, anche se, in molti casi, gli algoritmi lavorano meglio se questi criteri sono verificati. Tuttavia, si può effettuare Data Warehousing anche senza l applicazione di tecniche di Data Mining. A questo proposito l uso di tali tecniche si sta diffondendo sempre di più, in quanto abbiamo: un miglior accesso ai dati, oltre che molti più dati a cui accedere; un grande incremento delle capacità di elaborazione; una migliore educazione statistica; grandi cambiamenti nei software, ora più facili e intuitivi da utilizzare. Francesco Romeo 29

34 Il Data Mining trova delle relazioni nei dati, ma non prende decisioni; esso fornisce ai decision-maker le informazioni necessarie a fronteggiare le difficoltà dei mercati competitivi. I fattori critici di successo in un progetto di Data Mining sono la conoscenza del business e l esperienza maturata nel tempo. Questi fattori si combinano alle migliori informazioni ottenute con il Data Mining creando un processo sinergico che porta a decisioni brillanti e veloci. Il miglior software di Data Mining gestisce autonomamente i dettagli tecnici in modo tale che gli utenti possano concentrarsi sulle decisioni. CRISP è l acronimo di Cross Industry Standard Process for Data Mining. E' un approccio standard alle analisi di Data Mining che fornisce una struttura per tale processo indipendente dalla tipologia di business nonché una guida ai potenziali problemi aziendali e alle loro soluzioni. Ciò avviene perché lo scopo del modello è quello di rendere l'implementazione di grandi progetti di Data Mining sempre più veloce, più efficiente, più sicura e meno costosa. Una delle peculiarità del modello CRISP-DM è quella di non aver l obbligo di seguire sistematicamente tutte le fasi e sottofasi che esso propone; infatti, gli analisti possono decidere di osservare un insieme di dati, che presentano tendenze relative o circostanze eccezionali, nell arco di settimane, mesi e anni, seguendo due politiche di analisi alternative, ovvero le tecniche di Data Mining oppure la completa comprensione dei dati. Il modello si snoda in sei fasi comprendenti sotto-fasi e aspetti elencati di seguito: Business Understanding: letteralmente tradotto Comprensione del Business, prevede la determinazione degli obiettivi di Business, attraverso Background, Obiettivi di business e Criteri di successo del business, per poi passare alla valutazione della situazione con inventario delle risorse, requisiti, assunzioni e vincoli, rischi e contingenze, terminologia, 30 Francesco Romeo

35 costi e benefici. Si prosegue con la determinazione degli obiettivi di Data Mining, con obiettivi di Data Mining e criteri di successo del Data Mining. Infine troviamo la produzione del piano di progetto con piano di progetto, valutazione iniziale di strumenti e tecniche. Data Understanding: letteralmente tradotto Comprensione dei Dati, prevede la raccolta dei dati iniziali, la loro descrizione, la loro esplorazione e la verifica della loro qualità, tutti opportunamente inseriti in report appositi. Data Preprocessing: letteralmente tradotto Preparazione dei Dati, prevede la descrizione della base di dati, la selezione dei dati con annessi i criteri per inclusione ed esclusione, la pulizia dei dati con report, la costruzione dei dati con attributi derivati e record generati, l integrazione dei dati e, infine, impostazione dati. Modeling: letteralmente tradotto Modellazione, prevede la scelta della tecnica di modellizzazione, la generazione del progetto di test e, infine, il progetto di test, la costruzione del modello, con l impostazione dei parametri, e la descrizione del modello stesso, la valutazione del modello, con una possibile reimpostazione dei parametri. Evaluation: letteralmente tradotto Valutazione ; in questa sotto fase si valutano i risultati di Data Mining in relazione ai criteri di successo del business e ai modelli approvati, si revisiona il processo e si determinano i passi successivi elencando le possibili azioni e decisioni. Deployment: letteralmente tradotto Utilizzo, prevede la Francesco Romeo 31

36 formazione del piano di utilizzo, del piano di monitoraggio e mantenimento, della produzione del report finale e la presentazione finale, nonché la recensione del progetto, con la presentazione della documentazione dell esperienza. 32 Francesco Romeo

37 2.3 LA NUOVA FIGURA DEL DATA SCIENTIST Quella del data scientist è stata definita dall'economista Hal Ronald Varian «la professione più sexy del futuro», laddove l'aggettivo sexy assume l'accezione di «interessante». La continua crescita dei dati in formato digitale, disponibili nelle moderne organizzazioni, ha fatto emergere il ruolo strategico di una nuova figura professionale che deve avere più competenze. La prima è sapere gestire, acquisire, organizzare ed elaborare dati. La seconda è di tipo statistico, ovvero il sapere come e quali dati estrarre. La terza è il sapere comunicare a tutti, con diverse forme di rappresentazione, cosa suggeriscono i dati. La caratteristica principale di questa figura deve essere la curiosità, cioè l attitudine, tipica di chi utilizza il metodo scientifico, di analizzare in profondità i fenomeni, non fermandosi alla apparenza, e di identificare un insieme di ipotesi da verificare ed esplorare con l analisi e lo studio dei dati. Da questo punto di vista si può paragonare il lavoro del data scientist a quello del fisico sperimentale che, spesso, deve progettare gli strumenti, condurre gli esperimenti, analizzare i dati ottenuti e presentare i risultati a tutta la comunità scientifica, oltre che ai responsabili delle ricerche. Il data scientist deve avere tre set di skill, ovvero una preparazione informatica molto solida, una buona comprensione degli aspetti tecnologici e, allo stesso tempo, una conoscenza degli aspetti aziendali. Inoltre, ma non di poco conto, il data scientist deve possedere la conoscenza delle problematiche e delle sfide del dominio settoriale (industria, finanza, telecomunicazioni, settore pubblico, etc.) di interesse. Ci sono decine tra atenei e centri studio che offrono formazione specifica. I poli mondiali sono USA e UK, dove nei primi anni del Duemila si erano già create metodologie e procedure. Alle nostre latitudini le aziende cominciano a concepire la necessità di una simile figura e cercano di formarla al proprio interno. Il data scientist lavora con i big data ed è in questa direzione che bisogna muoversi; le anagrafiche sono il primo patrimonio di un'azienda; questo concetto non è ancora del tutto consolidato in Italia, e questo, da solo, spiega già gran parte dell'handicap che abbiamo in materia di scienza dei dati. Francesco Romeo 33

38 2.4 PRIVACY BY DESIGN NEI BIG DATA La quantità dei dati digitali, come abbiamo visto, cresce a ritmi esponenziali. La gestione dei Big Data pone alcune riflessioni da fare per garantire il rispetto della riservatezza e la protezione dei dati personali. Archivi informatizzati contenenti dati personali sono posseduti dalle Pubbliche Amministrazioni, dalle aziende private, dai media, dai professionisti, dalle associazioni e dalle organizzazioni di vario tipo. La Dr. Ann Cavoukian (Information & Privacy Commissioner Ontario, Canada) presenta così il tema della Privacy by Design: La Privacy by Design è un concetto che ho sviluppato negli anni 90 per far fronte agli effetti sempre crescenti e sistematici delle Tecnologie dell Informazione e della Comunicazione e dei sistemi di dati delle reti su larga scala. La Privacy by Design anticipa la visione che il futuro della privacy non può essere assicurato unicamente dal processo di conformità con il sistema normativo; piuttosto, la garanzia della privacy deve costituire idealmente un modo di operare di default di un organizzazione. Inizialmente, l attuazione delle tecnologie per rafforzare la privacy (Privacy-Enhancing Technologies - PETs) era vista come la soluzione. Oggi, realizziamo che è richiesto un approccio più sostanziale che estende l uso delle PET alle PETS Plus con un approccio di valore aggiunto (di massima funzionalità), e non di valore zero. Questo è il Plus nelle PET Plus: valore aggiunto, non se/o di valore zero (una falsa dicotomia). La Privacy by Design, quindi, propone qualcosa veramente interessante ed innovativo: il processo di conformità relativo alla sicurezza della privacy non può essere assicurato unicamente tramite il sistema normativo; piuttosto, la garanzia della privacy 34 Francesco Romeo

39 deve costituire idealmente il modo di operare di default di un organizzazione. Privacy by Design si riferisce alla filosofia e all'approccio di considerare la privacy nelle specifiche di progettazione delle varie tecnologie. La Privacy by Design trova spazio nella trilogia di applicazioni: Tecnologia dell informazione; Pratiche commerciali responsabili; Progettazione strutturale e infrastrutture di rete. In particolare, con riferimento alla tecnologia dell informazione, si afferma, come già evidenziato, che la tecnologia non può costituire una minaccia per la privacy, ma un ausilio per la riduzione dei rischi. Per le pratiche commerciali responsabili, viene evidenziato come la privacy non va interpretata come un onere, ovvero un costo che appesantisce l'attività imprenditoriale, ma, al contrario, come un vantaggio per una migliore competitività. Infine, l elemento della progettazione delle strutture assume rilevanza poiché molto spesso siamo costretti a vedere esposti i dati personali in aree pubbliche mal progettate come, ad esempio, le sale d attesa degli ospedali o degli uffici, ove è possibile che vengano, illecitamente, divulgate le informazioni personali. Fermo il contesto rappresentato dai tre punti precedenti, la Privacy by Design si fonda su sette principi: Proattivo non reattivo (prevenire non correggere): l approccio alla Privacy by Design (PbD) è caratterizzato da interventi di tipo proattivo piuttosto che reattivo. Esso anticipa e previene gli eventi invasivi della privacy prima che essi accadano. La PbD non attende che i rischi della privacy si concretizzano né offre rimedi per risolvere le violazioni della privacy una volta occorse: essa ha lo scopo di prevenirli prima che questi si verifichino. In breve, la Privacy by Design viene prima del fatto e non dopo. Privacy come impostazione di default: possiamo tutti essere certi di una cosa - la regola di base! La Privacy by Design cerca di realizzare il massimo livello di privacy assicurando che i dati personali siano automaticamente protetti in un qualunque sistema IT o di pratica commerciale. Se un individuo non fa nulla, la sua privacy rimane ancora intatta. Francesco Romeo 35

40 Non è richiesta alcuna azione da parte dell individuo per proteggere la propria privacy: essa è incorporata nel sistema per default. Privacy incorporata nella progettazione: la PbD è incorporata nella progettazione e nell architettura dei sistemi IT e delle pratiche commerciali. Non è agganciata come un aggiunta, dopo il fatto. Il risultato è che la privacy diventa un componente essenziale per la realizzazione del nucleo funzionale. La privacy è integrata nel sistema, senza diminuirne la funzionalità. Massima funzionalità Valore positivo, non valore zero: la Privacy by Design mira a conciliare tutti gli interessi legittimi e gli obiettivi con modalità di valore positivo vantaggioso per tutti, non attraverso un approccio datato di valore zero, dove sono inutili i compromessi. La Privacy by Design evita la pretesa di false dicotomie, come la privacy contro la sicurezza, dimostrando che è possibile avere entrambi. Sicurezza fino alla fine Piena protezione del ciclo vitale: la Privacy by Design, essendo stata incorporata nel sistema prioritariamente rispetto all acquisizione del primo elemento di informazione, si estende in modo sicuro attraverso l intero ciclo vitale dei dati - solidi interventi di sicurezza sono essenziali per la privacy, dall inizio alla fine. Questo assicura che tutti i dati siano conservati con cura, e poi distrutti in modo sicuro alla fine del processo, in maniera opportuna. Pertanto, la Privacy by Design garantisce un intera e sicura gestione delle informazioni, fino alla fine. Visibilità e trasparenza Mantenere la trasparenza: la Privacy by Design cerca di assicurare che tutti i soggetti interessati, qualunque sia la prassi aziendale o tecnologia utilizzata, è, di fatto, operativa secondo promesse ed obiettivi stabiliti, soggetti a verifica indipendente. I suoi componenti e le sue operazioni restano visibili e trasparenti sia agli utenti sia ai fornitori. Si ricorda di fidarsi ma di verificare. Rispetto per la privacy dell utente Centralità dell utente: al di là di tutto, la Privacy by Design richiede ai progettisti e agli operatori di considerare prioritari gli interessi degli individui offrendo efficaci interventi di default della privacy e informazioni appropriate, nonché potenziando opzioni di facile utilizzo per l utente. Si raccomanda la centralità dell utente. Come si può notare, si tratta di una vera e propria rivoluzione della privacy che non concerne 36 Francesco Romeo

41 soltanto le misure tecniche per assicurare adeguata sicurezza ai dati personali, ma una serie di concetti innovativi che prescindono dall assolutizzare la protezione dei dati personali per giungere alla considerazione che la sicurezza delle informazioni è insita nel concetto stesso di privacy. La 32 ma Conferenza Internazionale dei Garanti della Privacy (Gerusalemme, Ottobre 2010) ha definito il concetto di Privacy by Design proposta dalla Dr. Ann Cavoukian come una pietra miliare. L articolo 23 della proposta di regolamento del Parlamento Europeo e del Consiglio, concernente la tutela delle persone fisiche con riguardo al trattamento dei dati personali e alla libera circolazione di tali dati (Gennaio 2012), prende spunto da quanto sostenuto dalla Dr. Ann Cavoukian. Nello specifico : Al momento di determinare i mezzi del trattamento e all atto del trattamento stesso, il titolare mette in atto adeguate misure e procedure tecniche e organizzative tali da assicurare la conformità al presente regolamento nonché la tutela dei diritti dell interessato, e ancora: Il titolare del trattamento mette in atto meccanismi per garantire che siano trattati, di default, solo i dati personali necessari per ciascuna finalità specifica del trattamento e che, in particolare, la quantità di dati e la durata della loro conservazione non vadano oltre il minimo necessario per le finalità perseguite. In particolare, detti meccanismi garantiscono che, di default, non siano resi accessibili dati personali a un numero indefinito di persone. Francesco Romeo 37

42 Si chiede, quindi, che vengano rispettati due principi: principio della privacy by design, cioè protezione fin dalla progettazione, che si sostanzia nell attuare, fin dal principio, tutte le necessarie misure tecnicoorganizzative al fine di scongiurare i rischi cui sono esposti i dati personali; il collegato principio della privacy by default, cioè protezione a prescindere, che si realizza attraverso l essenzialità del trattamento sotto ogni punto di vista. 38 Francesco Romeo

43 3. NOSQL In questo capitolo si parlerà del movimento NoSQL e verranno mostrati i principi fondanti di questo tipo di tecnologia. Verrà fatto un confronto tra i database tradizionali (RDBMS), che utilizzano il modello relazionale, e i database che sfruttano il modello NoSQL. Si concluderà presentando le varie tipologie di DBMS NoSQL che sono state sviluppate. 1 Cosa si intende per NoSQL 2 RDBMS vs. NoSQL 3 I Principi Fondanti del NoSQL 1 4 Tipologie di DBMS NoSQL Francesco Romeo 39

44 3.1 COSA SI INTENDE PER NOSQL Negli anni novanta Internet ha permesso a molte aziende di ampliare il proprio bacino di utenza portando online un enorme quantità di contenuti e servizi; di conseguenza, la quantità dei dati presenti in rete è aumentata esponenzialmente. Per questo motivo i sistemi informatici, per poter elaborare le informazioni, hanno avuto bisogno di una maggiore potenza di calcolo, mentre per i dati, sempre più numerosi, è stata necessaria una migliore organizzazione. Negli ultimi anni sono aumentate le aziende operanti esclusivamente online fornendo contenuti sempre più numerosi e strutturati. Dunque, la disponibilità e affidabilità dei servizi, insieme alla capacità di gestire una grande mole di contenuti, fortemente correlati, sono diventati punti di estrema importanza. Infatti, capita sempre più spesso che le aziende rendono più stringenti gli SLA (Service Level Agreement) traducendo, a livello contrattuale, le aspettative dell utente finale, ovvero che il servizio sia sempre disponibile, facilmente accessibile (sia come tempi di risposta che come usabilità) e possibilmente attendibile. La tendenza è diventata quella di garantire maggiormente il servizio o il contenuto rispetto alla correttezza delle informazioni o alla consistenza dei dati, fatta eccezione nei casi di servizi sotto protocollo sicuro (ad esempio il settore bancario, l e-governance o alcune fasi di sicurezza dei dati nell ecommerce). I sostenitori di questo nuovo approccio sono stati Google e Amazon, con i loro sistemi proprietari (rispettivamente, BigTable e Dynamo) ma da subito, soprattutto nell ambito dei social network, si sono sviluppati sistemi di gestione equiparabili e diversi dai database 40 Francesco Romeo

45 relazionali (RDBMS). A questi nuovi sistemi è stato dato il nome di DBMS NoSQL (NoSQL). Con il termine NoSQL si raggruppano varie tecnologie di persistenza dei dati, anche molto diverse fra loro. L'acronimo stesso è piuttosto vago e soggetto a varie interpretazioni, di cui la più rilevante e accettata sembra essere Not Only SQL. Per stabilire un punto di partenza, considereremo l'interpretazione fornita da Pramod e Fowler in NoSQL Distilled: Un insieme poco definito di database principalmente open-source, principalmente sviluppati nel XXI secolo, principalmente che non fanno uso di SQL Per completare questa occorre aggiungere che: non utilizzano il modello relazionale; non hanno (solitamente) uno schema esplicito, ovvero specificato utilizzando un qualsiasi linguaggio formale; la maggior parte di essi e stata progettata da subito per funzionare bene" in cluster. Francesco Romeo 41

46 3.2 RDBMS VS. NOSQL Mentre la caratteristica principale dei sistemi relazionali è quella di mantenere una forte consistenza fra i dati, i database NoSQL garantiscono, in ogni circostanza, alti livelli di disponibilità dei dati ed una elevata velocità di recupero, a discapito della consistenza dell informazione. Per i database relazionali di parla di proprietà acide (ACID) mentre per i database NoSQL si passa a parlare di proprietà base (BASE). Le proprietà ACID indicano le caratteristiche che devono avere le transazioni. Nello specifico: Atomicity Atomicità: l esecuzione della transazione deve essere o totale o nulla; quindi, o si riescono ad eseguire tutte le operazioni della transazione o questa viene disfatta; un errore prima del commit deve causare l annullamento di tutte le operazioni eseguite dall inizio della transazione. Consistency - Coerenza: la transazione trasforma la base di dati da uno stato consistente (cioè che riflette lo stato reale del mondo che la base di dati deve modellare) ad un altro stato ancora consistente. La consistenza richiede che l esecuzione della transazione non violi i vincoli di integrità definiti sulla base di dati. Isolation - Isolamento: ogni transazione è indipendente dalle altre. Il suo fallimento non deve provocare danni ad altre transazioni. Durability - Persistenza: al commit della transazione, le modifiche apportate dalla stessa non dovranno essere perse in nessun modo. Le proprietà BASE sono state introdotte da Eric Browers, autore del Teorema di CAP. Questo teorema afferma che un sistema distribuito può fornire contemporaneamente solo due fra le seguenti garanzie: Consistency (Consistenza): tutti i nodi vedono gli stessi dati nello stesso momento; 42 Francesco Romeo

47 Availability (Disponibilità): il sistema risponde a tutte le richieste; Partition tolerance (Tolleranza al Partizionamento): il sistema continua ad operare anche se alcune delle sue parti rimangono isolate dalle altre in modo arbitrario (ovvero, se il grafo che rappresenta il sistema è disconnesso). In verità, poiché si sta trattando di sistemi distribuiti, è praticamente impossibile garantire una tolleranza completa al partizionamento, perché è sempre possibile che il collegamento fra due nodi venga meno. La scelta da compiere, dunque, si riduce a: rinunciare alla consistenza in favore della disponibilità; rinunciare alla disponibilità in favore della consistenza. Questa scelta non è binaria ( tutto o niente ), ma sono possibili varie sfumature. E possibile rinunciare ad un po' di consistenza per poter avere un sistema sempre disponibile, ovvero che sia in grado di dare sempre una risposta (anche se magari utilizzando dati non aggiornati), e viceversa. L acronimo BASE indica le caratteristiche che un sistema deve avere sottostando al teorema di CAP, ovvero, esso deve garantire la disponibilità delle informazioni (Basically Available ), tuttavia non deve garantire la consistenza ogni istante (Soft State), ma alla fine deve diventare consistente (Eventual consistency) se le attività di modifica ai dati cessano. Quindi, le inconsistenze sono transitorie. Quando la disponibilità dell informazione è prioritaria, è possibile lasciare che l'applicativo scriva su un nodo senza che si riceva l autorizzazione alla propagazione di queste scritture sugli altri nodi in cui ci si aspetta venga replicato. Questo fa si che si raggiungano alti livelli di disponibilità (non ci sono tempi di atte- Francesco Romeo 43

48 sa) a fronte di quella che definiamo eventual consistency, ovvero la capacità del sistema di saper sistemare le informazioni sui vari nodi, col passare del tempo, in maniera asincrona. Rick Cattell, nell articolo Scalable SQL and NoSQL Data Stores elenca le proprietà comuni alla maggioranza dei sistemi di tipo NoSQL: possibilità di replicare e distribuire partizioni di dati su più server; possibilità di scaling orizzontale per operazioni semplici ; un interfaccia o protocollo di chiamata semplificato, a differenza delle implementazioni SQL basate su binding ; un modello di concorrenza più debole rispetto a quello garantito dai DBMS che supportano tutte le proprietà ACID; un uso efficiente della memoria e di indici distribuiti; una capacità di aggiungere dinamicamente nuovi attributi. L aspetto più evidente, quando si confrontano DBMS relazionali e NoSQL, è che i primi appartengono ad uno standard de facto: i risultati di richieste effettuate tramite opportune query possono essere visualizzati in ambienti standard. Per i DBMS NoSQL, invece, non si ha una vera e propria standardizzazione; pertanto, ogni implementazione ha una interfaccia utente propria e, quindi, da conoscere ed imparare. La scalabilità orizzontale è una caratteristica di particolare importanza quando si parla di Big Data. Con questo termine si intende la possibilità di distribuire i dati e le operazioni su macchine fisiche differenti, senza memoria o dischi rigidi in comune, al fine di parallelizzare le operazioni e ottenere un minore quantitativo di dati da elaborare per singolo server. Nonostante sia possibile aumentare le prestazioni anche tramite scaling verticale (aumentando il numero di core e processori di una singola macchina), l approccio distribuito permette di ridurre i costi, 44 Francesco Romeo

49 utilizzando macchine assemblate, e di superare i limiti hardware dati dal quantitativo massimo di core e memoria installabili su un singolo mainframe. La scalabilità ha assunto un ruolo particolarmente importante con l avvento dei social network dove le operazioni più comuni sono semplici ma molto frequenti e bisogna tener conto di milioni di utenti che operano contemporaneamente. Una distribuzione dei dati agile e automatica è una caratteristica di grande importanza per un DBMS non relazionale. Francesco Romeo 45

50 3.3 I PRINCIPI FONDANTI DEL NOSQL Uno dei motivi che ha spinto verso l utilizzo dei DBMS NoSQL è che, in alcuni progetti, l'integrità dei dati non è prioritaria, nè tantomeno obbligatoria. In questo contesto accade che: Computer e sistemi di memorizzazione predisposti a garantire performance e sicurezza delle informazioni di altissimo livello possono essere sostituiti con sistemi dotati di caratteristiche di più facile accesso, sia in termini di reperibilità del materiale che di costo. L'accesso ai dati diventa molto più rapido: non dovendo sempre garantire una consistenza degli stessi, le letture e le scritture delle informazioni possono essere eseguite senza attendere particolari eventi. Quasi tutti i DBMS NoSQL sono stati progettati sin dal principio per funzionare da subito in modalità distribuita, ovvero su più server. E possibile fare un elenco dei modelli di distribuzione: Single Server: questa modalità è la più semplice, nonché la meno problematica. Con un solo server di database; infatti, gli unici problemi da risolvere sono relativi alla gestione dei conflitti in lettura e scrittura fra i vari client. Ambiente Multi-Nodo: viene creato un ambiente multi-nodo distribuito a cui viene dato comunemente il nome di anello (o ring o cluster); quest ultimo lo si può ampliare o ridurre aggiungendo o eliminando dei nodi. Replica delle informazioni : la replicazione dei dati è uno stratagemma utilizzato con diversi scopi. Il primo è che, distribuendo gli stessi dati su più server, aumenta la loro disponibilità e l'affidabilità dell'insieme. Se un nodo cade, infatti, ci sono gli altri che possono sostituirlo mentre viene riparato e rimesso online. Il secondo scopo è quello di migliorare le performance in lettura. Avere molti nodi con gli stessi dati permette una parallelizzazione praticamente lineare delle letture, che possono essere distribuite in modo del tutto trasparente ai client. Inoltre, sfruttando il principio di località dei dati, è possibile erogare i dati dal nodo più vicino al client che li ha richiesti, migliorando tempi di risposta e velocità di tra- 46 Francesco Romeo

51 sferimento, alleggerendo, al contempo, il traffico globale" dell'infrastruttura. Sharding dei dati : questa modalità è la più complessa; essa prevede, infatti, il partizionamento dei dati in base a vari criteri sui vari nodi, mantenendo gli stessi vantaggi della replicazione (affidabilità, prestazioni in lettura) e aggiungendone di nuovi. Il principale vantaggio dello Sharding è che, per come è utilizzato nei database aggregate-oriented, ha un effetto positivo anche sulle scritture, oltre che sulle letture. I dati inviati dai client, infatti, vengono scritti sul primo nodo disponibile, con tempi di risposta simili alla modalità single server. I DBMS NoSQL usano dei sistemi per la gestione della concorrenza che permettono una elevata efficienza a livello di prestazioni e tempi di risposta, ma non garantiscono un'altrettanto livello di sicurezza dal punto di vista della correttezza assoluta dei dati. Questo perché essi sono stati creati per lavorare in ambienti dove vengono effettuate molte letture e scritture contemporaneamente. Il Multi-Version Concurrency Control permette di mantenere un controllo della concorrenza basato su continui versioning dei dati. Quando è necessario modificare un documento precedentemente letto, il sistema confronta la versione al tempo della lettura con quella appena prima che la modifica sia stata apportata: se le due versioni sono diverse significa che nel frattempo un altro processo ha modificato il documento. Il concetto legato al multiversioning è il seguente: ogniqualvolta un documento viene modificato, viene generata una copia (una nuova versione) dello stesso. Un vantaggio che si può evidenziare è che queste non Francesco Romeo 47

52 sono altro che nuove versioni e non modifiche, tutto a vantaggio della velocità; tuttavia, produrre continuamente nuove versioni significa occupare spazio ed è, quindi, inevitabile che non potranno essere mantenute tutte le versioni create. Quando si parla di consistenza si intende il recupero delle informazioni tale che queste siano corrette. Si parla di stretta consistenza nel caso in cui tutte le letture successive ad una scrittura debbano garantire che i dati siano tali a come la scrittura li ha impostati; quindi, o le letture che seguono la scrittura avvengono nello stesso nodo o deve essere utilizzato un protocollo distribuito ad hoc che permetta il verificarsi di questa condizione. Questo tipo di consistenza, ricordando il teorema di CAP, non può essere garantita insieme a disponibilità e fault-tolerance dei dati; infatti, è necessario che si rinunci al partizionamento dei dati o alla disponibilità costante dell informazione. Si parla di eventual consistency, invece, nel caso in cui le letture possano ritornare dei valori non aggiornati all ultima scrittura effettuata; anche in questo caso, però, il sistema prima o poi farà in modo che questo valore venga correttamente propagato. Appartengono a questa categoria più tipi di consistenza: Read Your Own Write (RYOW) Consistency: un client che effettua una scrittura può vedere le letture successive già coerenti, indipendentemente dal server su cui la scrittura e le letture successive siano effettuate. Questo non vale per gli altri client che eseguono letture successive alla scrittura del client in oggetto. Session Consistency: simile alla RYOW con la differenza che le letture successive ad una data scrittura risultano corrette solo all interno di un certo ambito, ad esempio limitata- 48 Francesco Romeo

53 mente ad un nodo. Casual Consistency: se un client legge una Versione 1, e scrive conseguentemente una nuova versione, tutti i client che leggono la nuova versione proposta, in precedenza leggevano anche la Versione 1. Monotonic Read Consistency: se un dato client legge un valore per una certa informazione allora, da questa lettura in poi, accedendo con ogni altro client su questa informazione, non sarà possibile leggere valori antecedenti. Nei DBMS NoSQL le tipologie di versioning che vengono implementate sono legate al fatto che le informazioni vengono distribuite su più nodi. Le varie operazioni di lettura e scrittura possono avvenire su nodi diversi e non può, quindi, essere garantita una consistenza stretta. Tra i vari sistemi di versioning adottati, quelli che esamineremo più nel dettaglio sono: Vector Clocks; Optimistic Locking. Il Vector Clocks permette di avere un ordinamento di versioni tra le varie operazioni effettuate sui nodi. Si pensi di avere N nodi, ciascuno con un suo clock interno, che può benissimo essere un contatore che viene incrementato quando serve. Per ogni operazione effettuata su un nodo, sia essa di lettura o di scrittura, viene incrementato il valore del clock per il nodo stesso. Ogni nodo memorizza al suo interno un vettore (da cui Vector Clocks) che rappresenta lo stato dei vari contatori sui singoli nodi. Ad ogni operazione eseguita su un nodo, questo vettore, modificato il valore del nodo in cui l'operazione è avvenuta, verrà propagato sui nodi restanti. Dunque, si generano sequenze che possono garantire di per sè la coerenza su tutti i nodi. Se ciò non è possibile sarà un applicativo a dover sbrogliare la situazione e decidere quale nodo definire coerente rispetto ad altri. Nell Optimistic Locking un unico clock viene salvato per ogni blocco di dati. Questo tipo di versioning è stato approfondito dai fautori del progetto Project-Valdemort con la conclusione che in scenari distribuiti dove le macchine vengono aggiunte continuamente ed altre disattivate o rotte improvvisamente, il sistema risulta poco funzionale. I sistemi di partizionamento permettono di distribuire le informazioni sul cluster che costituisce il DBMS NoSQL. Ci sono più tipi di partizionamento; di seguito ne elenchiamo alcuni: Francesco Romeo 49

54 Consistent Hashing; Memory Cached ; Clustering ; Separating Reads from Writes; Sharding. Di questi, quelli normalmente più usati sono il Consistent Hashing e lo Sharding. Il Consistent Hashing viene usato per la distribuzione automatica dei dati tra i nodi; esso garantisce che i dati siano ugualmente distribuiti attraverso il cluster e che l aggiunta o la rimozione di un nodo in esso possa avvenire automaticamente, limitando il numero di spostamenti dei dati. La stessa funzione di hashing usata per i dati viene adottata anche per le macchine del cluster; questo permette di calcolare direttamente dal nodo contattato dall applicazione quale nodo contattare per scrivere o leggere dei dati, senza dover passare da un cluster di server dedicati atti a recuperare l'informazione desiderata. Il Consistent Hashing garantisce, anche, un sistema di replica basato su una scelta di progetto dove si fissa un valore K, ovvero un valore numerico che determina quante repliche devono essere mantenute per i dati. 50 Francesco Romeo

55 Lo Sharding è un sistema di distribuzione delle informazioni effettuato sui nodi appartenenti al cluster; questa distribuzione viene dettata da un processo iniziale in cui avviene la definizione della chiave di sharding. Supponiamo di avere 10 nodi su cui distribuire i dati; possiamo pensare ad una chiave di Sharding tale che il modulo della divisione per 10 della chiave primaria (numerica) di ogni dato permetta di decidere dove posizionare il dato stesso. Questo sistema di distribuzione dei dati necessita di macchine dedicate a questo compito, oltre a quelle mantenenti le informazioni. Francesco Romeo 51

56 3.4 TIPOLOGIE DI DBMS NOSQL Ogni modello di DBMS NoSQL è stato ispirato da quelli sviluppati ed implementati da Amazon e Google: Amazon con Dynamo, Google con BigTable. Le necessità dei due colossi sono state dettate dal bisogno di mantenere disponibili e scalabili le informazioni in alcuni ambiti che possono andare, ad esempio, dalla pagina dei libri più venduti a quello della lista dei desideri dei singoli utenti. Si tende a raggruppare i DBMS NoSQL in quattro categorie fondamentali: Key-Value Distribuiti; Document Oriented; Column Oriented; Graph Oriented. Tuttavia, alcuni DBMS NoSQL possono avere caratteristiche che appartengono a più di una di queste categorie. La caratteristica principale dei modelli Key-Value Distribuiti è, sicuramente, la semplicità delle strutture dati, che sono appiattite" in coppie chiave-valore. In sostanza, l'utilizzatore vede la base di dati come una grossa hash table contenente oggetti di vario tipo (principalmente valori primitivi, come numeri o stringhe), accessibili tramite chiave primaria. Questa soluzione rende possibili altissime performance (tipicamente in lettura), facilitando, al tempo stesso, il lavoro di distribuzione del carico su più macchine (partizionamento o Sharding) per realizzare una scalabilità quasi lineare. L'indirizzamento di tipo hash, infatti, consente di ottenere un costo di accesso molto basso, tipicamente compreso fra O(1) (analisi ammortizzata nel caso di un fattore di riempimento non troppo ele- 52 Francesco Romeo

57 vato) e O(log(n)), dove n è uguale al numero di dati presenti nello storage. Il vantaggio di un sistema di questo tipo è l altissima concorrenza e, quindi, la disponibilità delle informazioni, a discapito della consistenza dei dati. Questi DBMS garantiscono replica e fault-tolerance nonché, in molti casi, anche persistenza dei dati su disco e non solo in RAM. La categoria dei Document Oriented raggruppa quei database che permettono di effettuare delle ricerche, oltre che sulle chiavi, anche sui valori legati ad esse: questo perché i valori sono rappresentati da strutture in formati pensati proprio a tal fine, ovvero XML o JSON. Abbiamo a che fare con un aggregato che può avere una struttura anche molto profonda, con più livelli gerarchici e raggruppamenti in collezioni di vario genere (liste, insiemi, mappe, etc.). Quasi tutte le implementazioni permettono, inoltre, di inserire dei riferimenti ad altri documenti rendendoli molto simili nel funzionamento ai cosiddetti database a oggetti. A differenza dei Key-Value Distribuiti, in questo caso, il fine ultimo non è quello di garantire un altissima concorrenza, ma quello di fornire un sistema di interrogazione sui dati con performance elevate permettendo la memorizzazione di grossi quantitativi di informazioni. Questi tipi di DBMS sono molto apprezzati per la grandissima flessibilità, che permette di ottenere modelli dei dati complessi senza penalizzare le performance. Per questo motivo sono molto utilizzati per la realizzazione di siti web, per l e-commerce, la gestione documentale, i web service e i giochi multiplayer massivi. I DBMS che appartengono alla categoria Column Oriented introducono il concetto di Column -Family. Una Column-Family è un informazione che deve essere presente nello schema (a sua volta, quindi, necessario) e che serve a raccogliere informazioni di un gruppo; un po' quello che viene fatto per la definizione delle colonne per un DBMS relazionale, ma relativo ad un gruppo di colonne, non ad una singola colonna. Ogni Column-Family raggruppa un insieme di colonne appartenenti ad una stessa tipologia di informazione; si pensi, ad esempio, ad una Column-Family anagrafica con colonne costituenti nome, cognome, età e sesso. La Column-Family deve essere presente nello schema, ma è,altresì, Francesco Romeo 53

58 vero che le colonne che la costituiscono non devono essere definite a priori, ovvero ogni record può avere informazioni diverse per la propria Column-Family anagrafica. Supponiamo, ad esempio, di avere una singola unità informativa (quella che in un RDBMS chiamiamo tupla o riga) e che per essa siano definite N Column-Family nello schema: se una o più informazioni non sono disponibili per l'unità informativa in questione, allora le Column-Family (contenitori di colonne), semplicemente non presenteranno al loro interno le colonne per le quali non si ha la valorizzazione. Quindi, se il valore per la chiave esiste, la colonna è presente ed è nella Column- Family corretta; se il valore non esiste, la colonna semplicemente non esisterà e la Column- Family ne sarà priva. Riassumendo, le caratteristiche principali sono: flessibilità delle colonne appartenenti ad una Column-Family; partizionamento orizzontale legato alla Column-Family; una data Column-Family non può essere spezzata, ma ogni record appartenente ad essa può trovarsi su un server diverso; uso di particolari file di log per permettere un più veloce sistema di storage; mancanza di un supporto transazionale. Questi DBMS hanno grande successo nel campo dei Big Data, potendo fornire un modello logico organizzato e flessibile. Inoltre, proprio per la loro maggiore adattabilità a modelli di dati ricchi, sono sempre più spesso utilizzati al posto dei DBMS relazionali in campi come: siti web ad alto traffico, web service, backend di applicazioni mobile. Infine, grazie alla facilita con cui si possono partizionare i dati, e alla conseguente possibilità di ottimizzare moltissimo le scritture, spesso i Column-Family store sono utilizzati per memorizzare log applicativi, statistiche per analytics e monitoring, audit di vario genere, etc. Le precedenti tipologie focalizzano l attenzione sulla scalabilità dei dati e sulla flessibilità delle informazioni; esse hanno, però, il problema di non poter contenere dati troppo connessi. Da questa nuova esigenza prende luce l idea dei NoSQL orientati ai grafi. Possiamo immaginare questa categoria come una Document Oriented con la clausola che i documenti sono anche adibiti a rappresentare le relazioni. Strutture di questo tipo permettono il passaggio da un nodo 54 Francesco Romeo

59 ad un altro (graph traversal) e sono, quindi, molto utilizzati nel campo del Social Network. I DBMS Graph Oriented permettono di estrarre, in tempi ragionevoli e in maniera molto elegante, dati di grandissimo valore per applicazioni quali: classificazione tramite algoritmi di vicinanza e clustering; analisi di flussi di vario genere: navigazione in siti web e in social network, ecologia, urbanistica, etc. prolazione degli utenti e suggerimenti per amicizie o acquisti. Per questo motivo sono sempre più indispensabili quando si rende necessaria un'analisi delle relazioni fra i dati, più che i dati stessi. Qui di seguito riassumiamo le caratteristiche principali che contraddistinguono le tipologie viste. Francesco Romeo 55

60

61 4. HADOOP In questo capitolo si parlerà del framework Hadoop per l analisi distribuita di grandi insiemi di dati. Verranno trattati i suoi sottoprogetti fondamentali: MapReduce e HDFS. L ultimo paragrafo del capitolo riguarderà l innovativo YARN. 1 Cosa è Hadoop 2 MapReduce 3 HDFS 1 4 YARN Francesco Romeo 57

62 4.1 COSA E HADOOP Uno dei principi chiave per operare con i Big Data è l immagazzinamento di tutti i dati originali, indipendentemente da quando questi saranno utilizzati. Di conseguenza, col tempo, gli archivi possono assumere dimensioni molto elevate. Anche se nulla impedisce di realizzare l archiviazione dei dati tramite un classico DBMS relazionale, spesso questa scelta porta a investire risorse economiche importanti sia in termini computazionali, sia di storage. Come è già stato mostrato nel capitolo precedente, questi e altri motivi hanno portato alcuni colossi dell innovazione, tra cui Google e Facebook, ad adottare strumenti diversi dagli RDBMS per gestire i loro dataset: una tra le più diffuse e utilizzate tecnologie open source create per questo scopo è Apache Hadoop. Hadoop nasce come progetto per l'analisi distribuita di grandi insiemi di dati attraverso un semplice modello di programmazione. Hadoop è un framework concepito per scrivere facil- 58 Francesco Romeo

63 mente applicazioni che elaborano grandi quantità di dati in parallelo, su cluster di diverse dimensioni in modo affidabile e tollerante ai guasti. L'architettura, realizzata in Java, permette di scalare da pochi server fino a migliaia di sistemi. Ciascun server contribuisce con le proprie risorse di calcolo e la propria capacità di memorizzare i dati; quindi, aggiungendo server, chiamati anche nodi, è possibile far crescere un sistema Hadoop in modo quasi lineare. Benché non vi siano restrizioni specifiche per i nodi, di norma, vengono utilizzati dei sistemi x86 standard; ciò permette di tenere sotto controllo i costi complessivi della soluzione e, allo stesso tempo, di beneficiare della crescita di tali architetture in termini computazionali. Hadoop è in grado di gestire tutti i tipi di dati provenienti da sistemi diversi: strutturati, non strutturati, file di log, immagini, file audio, documenti, comunicazioni , e tutto quello che si può pensare. Anche quando i diversi tipi di dati sono stati memorizzati in sistemi non correlati, è possibile scaricare il tutto in un cluster Hadoop prima ancora di sapere come si potrebbe trarre vantaggio in futuro. L'alta affidabilità, e dunque la protezione dei dati, viene realizzata non basandosi sulle caratteristiche hardware dei server, ma bensì a livello software. Sono le librerie di Hadoop che si occupano di identificare se e quali componenti presentano un malfunzionamento, intervenendo per ripristinare le operazioni, ad esempio creando una nuova copia dei dati contenuti in un server. E' evidente che quando si trattano enormi quantità di dati, le cui dimensioni sono dell ordine dei Petabyte, le soluzioni di backup tradizionali non sono utilizzabili ed è, quindi, proprio la distribuzione dei dati su nodi differenti la chiave per salvaguardare le informazioni, anche di fronte ad un guasto di uno dei nodi. In particolare, Hadoop adotta come standard la scrittura dello stesso dato in tre locazioni differenti. Fra i sottoprogetti di Hadoop, quelli di maggiore importanza, e che saranno trattati nei paragrafi successivi, sono: MapReduce, framework per la realizzazione di applicazioni con approccio MapReduce; HDFS, un file system distribuito secondo le linee guida dettate da GFS (Google File System). Francesco Romeo 59

64 4.2 MAPREDUCE Il paradigma MapReduce definisce una strategia per eseguire l'elaborazione dei dati su sistemi distribuiti e con elevato parallelismo. Lo spunto che ha dato vita a MapReduce è stato un lavoro di Google pubblicato nel Nel documento, che costituisce il fondamento tecnologico del modello si afferma che: MapReduce è un modello di programmazione cui è stata associata un implementazione per elaborare e generare insiemi di dati di grandi dimensioni. I programmi scritti che adottano questo stile funzionale vengono automaticamente gestiti in una logica parallela ed eseguiti su cluster di macchine a tecnologia commodity. Il sistema runtime si occupa nel dettaglio del partizionamento dei dati di input, pianificando l esecuzione del programma attraverso una serie di macchine, gestendone gli eventuali guasti e la comunicazione che ha luogo tra esse. Tutto questo permette a programmatori senza alcuna esperienza in sistemi paralleli e distribuiti di utilizzare con molta semplicità le risorse di un grande sistema distribuito. Il modello di MapReduce è abbastanza semplice. L idea è quella di suddividere la logica applicativa in due funzioni basilari, ovvero: la funzione Map; la funzione Reduce. La funzione Map legge un insieme di record da un file di input, svolge le operazioni di filtraggio e trasformazioni desiderate, dopodiché produce una serie di record di output nella forma chiave-valore. Mentre il programma Map produce questi record, la funzione Reduce utilizza, come ingresso, l output prodotto dalla fase di Map. L input viene elaborato in modo che elementi con la stessa chiave vengono fusi tra loro secondo una logica che dipende dall elaborazione stessa. Il risultato della fase di Reduce è una lista di valori, ciascuno dei quali rappresenta la fusione di elementi con la stessa chiave. Un modello di programmazione del genere deve essere supportato da un framework; ciò è indispensabile in quanto consente di gestire, in modo trasparente, le operazioni che non incidono sulla logica applicativa del sistema realizzato dall utilizzatore. In questo modo, l utente del 60 Francesco Romeo

65 framework è tenuto a sviluppare solamente le funzioni Map e Reduce, con gli unici vincoli di generare delle coppie intermedie nella fase di Map e di fonderle, secondo una certa logica, nella fase di Reduce. È molto importante sottolineare i vantaggi di questo paradigma: Sia la funzione Map che la funzione Reduce possono essere eseguite in parallelo, dividendo lo spazio dei valori in più porzioni esaminate individualmente da diversi nodi della rete. È possibile iniziare a eseguire la funzione Reduce sull'output parziale delle funzioni Map prima che queste ultime terminino completamente l'esecuzione. Le funzioni Map e Reduce non richiedono, di base, di gestire strutture dati con dimen- Francesco Romeo 61

66 sioni variabili, poiché emettono i dati man mano che vengono generati e iterano sui valori usando dei cursori generati esternamente; quindi possono agire su quantità arbitrarie di dati senza il rischio di esaurire la memoria di lavoro. Potrebbe sorgere l'esigenza di interrogare database o usare librerie particolari all'interno delle due funzioni; in tal caso è necessario disporre di soluzioni adeguate per non creare colli di bottiglia che vanificherebbero la parallelizzazione In caso di rottura o disconnessione di un nodo è possibile rieseguire il compito originariamente assegnato ad esso senza riavviare l'intera operazione. Questo richiede sistemi di monitoraggio e gestione dei compiti. Nella nomenclatura del MapReduce si utilizza il termine Job per indicare un intero ciclo di applicazioni di Map e Reduce fino alla fine dell'elaborazione e il termine Task per indicare una singola esecuzione di una delle due funzioni effettuata da un nodo. Il sottoprogetto MapReduce di Hadoop, anch esso scritto in linguaggio Java, è un implementazione del modello MapReduce. Gli input vengono prelevati localmente in ogni nodo, vengono elaborati dalla funzione Map e vengono prodotte le coppie chiave-valore intermedie. Una volta che tutte le fasi di Map sono state completate, interviene il processo Shuffle che invia ad ogni nodo, attraverso la rete, i dati da processare durante il Reduce. Tale operazione è necessaria per raggruppare elementi che hanno la stessa chiave, in modo che confluiscano allo stesso processo di Reduce. Nella fase successiva i processi di Reduce elaborano i dati ricevuti e forniscono degli output, che vengono scritti localmente nel nodo stesso. È da notare che la fase di Shuffle è l unica in cui avviene uno scambio di dati attraverso la rete. Durante gli altri stadi del processo, per minimizzare la banda necessaria, le informazioni vengono prelevate localmente. Considerando, ad esempio, la fase di Map in un determinato nodo, i dati elaborati sono quelli che si trovano fisicamente nei dischi del nodo stesso. Altro fatto da notare è che le operazioni esterne alla procedura Map e alla procedura Reduce e quelle di comunicazione fra queste due fasi sono realizzate dal framework in modo trasparente. 62 Francesco Romeo

67 Gli elementi fondamentali del task nel suo complesso sono, quindi: Input file: è dove le informazioni da elaborare vengono inizialmente depositate. Tipicamente sono archiviati nel file system distribuito HDFS. In linea di principio, soprattutto per le peculiarità di HDFS, si tratta di file di grandi dimensioni, di tipo arbitrario: linee di testo, file binari, record multi-linea, etc. InputFormat: questo elemento indica come i file in input debbano essere suddivisi e letti durante il processo di mapping. Più specificatamente, InputFormat è una classe che fornisce delle funzionalità necessarie alla suddivisione e alla lettura dei file in ingresso. Essa consente le seguenti attività: selezione degli oggetti o dei file da impiegare come input; definizione di InputSplit, classe che indica le modalità di suddivisione di ogni file in ingresso; realizzazione di un Factory per gli oggetti RecordReader, necessari alla lettura del contenuto dei file in input. Hadoop fornisce degli InputFormat di base. Sono disponibili, inoltre, delle classi astratte dalle quali è possibile ottenere gli InputFormat necessari alla propria applicazione; un esempio è la classe astratta FileInputFormat, impiegata in tutti i casi in cui l input sia costituito da file. InputSplits: è il modulo che descrive l unità di lavoro di un task di Map all interno dell intero processo MapReduce. L impiego di un determinato InputSplit indica al framework come il file in ingresso debba essere suddiviso. Tutte le classi che derivano da FileInputSplit suddividono, per default, i file in chunk di 64MB ciascuno. È possibile, comunque, implementare una classe che suddivida l ingresso secondo una logica adatta ai dati che vengono trattati. La suddivisione dell input in blocchi indipendenti permette, ai vari processi di Map, l elaborazione parallela di ciascuno degli Split del file. RecordReader: la classe RecordReader è la responsabile della lettura dei dati provenienti dal singolo Split e della successiva conversione in chiave-valore, adatta alla lettura da parte del Mapper. Il RecordReader è invocato ripetutamente sull input finché l intero InputSplit è stato totalmente consumato. Ogni invocazione del RecordReader corri- Francesco Romeo 63

68 sponde ad una chiamata del metodo map() del Mapper. Mapper: il Mapper è la classe in cui viene implementata la prima parte della logica applicativa dell intero programma MapReduce. Data una chiave ed un valore, il metodo map() emette una o più coppie chiave-valore come risultato dell elaborazione effettuata. Questi dati vengono inoltrati verso i Reducer. È importante notare che, per ogni InputSplit, viene istanziato un nuovo Mapper. Per l elaborazione di un intero file sono, quindi, in azione più istanze dello stesso Mapper. Tale caratteristica è particolarmente importante considerando che lo stesso file si trova, con molta probabilità, distribuito su diversi nodi. Questo comportamento permette di diminuire la banda necessaria per lo scambio di informazioni; infatti, ogni istanza di Mapper elabora dati presenti localmente, cioè sul nodo in cui essa è stata creata. 64 Francesco Romeo

69 Partition & Shuffle: man mano che i task di Map terminano la loro elaborazione, cominciano ad essere disponibili i dati intermedi. Questi vengono inviati ai vari nodi del sistema, in base alla chiave; tale operazione prende il nome di Shuffle ed è l unica fase dell intero processo in cui c è scambio di dati attraverso la rete. L insieme di tutte le chiavi viene partizionato e ad ogni nodo di Reducing vengono associati uno o più elementi della partizione (quindi, un certo set di chiavi). Conseguentemente, il framework farà in modo di inviare, ad ogni Reducer, tutte le coppie intermedie la cui chiave fa parte del set assegnato ad esso. Sort: considerando che ogni task di Reduce è responsabile del Reducing dei valori associati a determinate chiavi intermedie, la fase di sort si preoccupa di ordinare tali valori in base alla chiave, prima di presentarli al Reducer. Tutto ciò viene fatto automaticamente dal framework Hadoop. Reduce: è dove viene implementata l altra parte di logica applicativa del programma. Per ogni task di Reduce viene istanziato un Reducer; per ciascuna chiave assegnata al Reducer viene effettuata una singola chiamata al metodo reduce(). A tale metodo viene fornito un iteratore per navigare fra i valori associati alla stessa chiave. OutputFormat: i valori elaborati ed emessi dal Reducer vengono scritti su file di output; il formato di scrittura di tali file dipende dall istanza di OutputFormat impiegata nel Reducer. Come per InputFormat esistono, in Hadoop, delle classi predefinite; è, comunque, possibile crearne di proprie specializzando le classi astratte fornite dal framework. RecordWriter: OutputFormat fornisce un factory di oggetti RecordWriter. La corrispettiva classe viene impiegata per effettuare la scrittura vera e propria sui file di output. Combiner: si tratta di una fase opzionale. Questa operazione viene eseguita successivamente alle operazioni di Map e prima dell invio dei risultati intermedi verso i relativi Reducer. Se utilizzata, è utile per ridurre la banda impiegata, in quanto, prima di inviare i dati, effettua una sorta di mini Reduce sui risultati locali prodotti dal nodo; solo dopo aver terminato quest ultimo task effettua l invio. Come detto, il framework è scritto in linguaggio Java; esso, pertanto, accetta programmi MapReduce scritti nativamente in Java. Hadoop fornisce, però, la possibilità di utilizzare altri linguaggi di programmazione per scrivere il codice MapReduce. Francesco Romeo 65

70 4.3 HDFS. HDFS è un file system distribuito ideato per soddisfare requisiti quali affidabilità e scalabilità; esso è in grado di gestire un numero elevatissimo di file, anche di dimensioni ragguardevoli, attraverso la realizzazione di cluster che possono contenere migliaia di nodi. HDFS presenta i file organizzati in una struttura gerarchica di cartelle. Dal punto di vista dell architettura, un cluster è costituito dai seguenti tipi di nodi: NameNode: è l applicazione che gira sul server principale. Gestisce il file system ed, in particolare, il namespace, cioè l elenco dei nomi dei file e dei blocchi (i file, infatti, vengono divisi in blocchi da 64/128MB) e controlla l accesso ai file eseguendo le operazioni di apertura, chiusura e modifica dei corrispettivi nomi. Inoltre, determina come i blocchi dati siano distribuiti sui nodi del cluster e la strategia di replica che garantisce l affidabilità del sistema. Il NameNode monitora anche che i singoli nodi siano in esecuzione senza problemi e, in caso contrario, decide come riallocare i blocchi. Tale applicazione distribuisce le informazioni contenute nel namespace su due file: Il primo è fsimage, che costituisce l ultima immagine del namespace. Il secondo è un log dei cambiamenti avvenuti al namespace a partire dall ultima volta in cui il file fsimage è stato aggiornato. Quando il NameNode parte, effettua un merge di fsimage con il log dei cambiamenti così da produrre uno snapshot dell ultima situazione. DataNode: può rappresentare una o più applicazioni che girano su altri nodi del cluster, generalmente una per nodo, e gestiscono fisicamente lo storage di ciascun nodo. Tali applicazioni eseguono, logicamente, le operazioni di lettura e scrittura richieste dai client e gestiscono fisicamente la creazione, la cancellazione o la replica dei blocchi di dati. SecondaryNameNode: noto anche come CheckPointNode, si tratta di un servizio che aiuta il NameNode ad essere più efficiente. Infatti, si occupa di scaricare periodicamente il file fsimage e i log dei cambiamenti dal NameNode e di unirli in un unico snapshot che viene, poi, restituito al NameNode. 66 Francesco Romeo

71 BackupNode: è il nodo di failover e consente di avere un nodo simile al SecondaryName- Node sempre sincronizzato con il NameNode. Come è stato affermato in precedenza, i file sono organizzati in blocchi, chiamati chunk, da 64 o 128 MB, e sono ridondati su più nodi. Sia la dimensione dei blocchi, sia il numero di repliche possono essere configurate per ogni file. Le repliche, distribuite tra i vari DataNode, sono utilizzate sia per garantire l accesso a tutti i dati, anche in presenza di problemi a uno o più nodi, sia per rendere più efficiente il recupero degli stessi. Quindi, HDFS è strutturato a blocchi e ogni file è suddiviso in blocchi di dimensione fissata. Questi ultimi sono archiviati all interno delle macchine, dette DataNode, che fanno parte del cluster. I file possono, quindi, essere composti da un notevole quantitativo di blocchi che, non necessariamente, sono memorizzati all interno della stessa macchina. Tale metodologia comporta un carico maggiore in fase di accesso ai file, ma, d altra parte, permette la memorizzazione di oggetti di dimensioni considerevoli, cosa altrimenti di difficile realizzazione. In HDFS le richieste di lettura dati seguono una politica relativamente semplice: in particolare, avvengono scegliendo i nodi più vicini al client che effettua la lettura e, ovviamente, in presenza di dati ridondati risulta più semplice soddisfare tale requisito. Inoltre, occorre precisare che la creazione di un file non avviene direttamente attraverso il NameNode. Infatti, il Francesco Romeo 67

72 client HDFS crea un file temporaneo in locale e, solo quando tale file supera la dimensione di un blocco, è preso in carico dal NameNode. Quest ultimo crea il file all interno della gerarchia del file system e identifica un DataNode e i blocchi su cui posizionare i dati. Successivamente Data- Node e blocchi sono comunicati al client HDFS che provvede a copiare i dati dalla cache locale alla sua destinazione finale. È possibile affermare che quando vengono trattati file di grandi dimensioni, HDFS è molto efficiente. Invece, quando devono essere trattati file di dimensioni inferiori al blocco, è molto inefficiente; questo perché i file utilizzano spazio all interno del namespace, che coincide con l elenco dei file mantenuti dal NameNode, che ha un limite dato dalla memoria del server che ospita il NameNode stesso. Se HDFS contenesse troppi file associati ad una dimensione molto 68 Francesco Romeo

73 inferiore al singolo blocco, genererebbe un riempimento del namespace. Questo problema viene risolto dagli archivi Hadoop che compattano molti piccoli file in file più grandi ai quali è possibile accedere dal sistema in parallelo e senza necessità di espanderli. E importante notare che i diversi servizi di DataNode e Worker MapReduce possono girare sullo stesso server fisico, rendendo molto veloce lo scambio di dati tra i due. Un server centrale chiamato JobTracker coordina le elaborazioni dei Worker e distribuisce i programmi MapReduce lanciati dagli utenti. I TaskTracker sono i servizi che eseguono l algoritmo MapReduce vero e proprio e scambiano dati con i DataNode. Prima di lanciare un Job MapReduce, l utente deve caricare in HDFS i file di input necessari. All avvio del Job, ad ogni Mapper viene assegnata una partizione dei dati di input presenti su HDFS che, molto spesso, risulta di competenza del DataNode presente sulla stessa macchina fisica del TaskTracker, perché Hadoop cerca di ottimizzare l esecuzione secondo criteri di località dei dati. Inizialmente, i TaskTracker chiamano la funzione map() specificata dal programmatore su ogni singola coppia chiave-valore presente nei file di input. I risultati delle map() vengono, poi, bufferizzati o memorizzati su file temporanei locali. Successivamente, nella fase Shuffle, le coppie chiave-valore vengono inviate ai Reducer per poter essere ordinate e raggruppate per chiave. Al termine dello Shuffle, tutti i valori corrispondenti a una certa chiave saranno stati inviati allo stesso Reducer. Viene, quindi, richiamata la funzione reduce(), fornita dal programmatore, per ogni chiave diversa, che procede ad emettere le coppie chiave valore finali. Tipicamente, i risultati finali vengono scritti separatamente su diversi file in HDFS e vengono utilizzati per un successivo Job MapReduce, oppure vengono restituiti all utente dopo essere stati concatenati. Mentre il numero di Mapper è pari al numero di partizioni di dimensione fissa in cui sono divisi i file di input, il numero di Reducer non è vincolato e può essere specificato dal programmatore o lasciato scegliere al sistema. Oltre alla map(), Hadoop supporta due ulteriori funzioni, setup() e cleanup(), che, se sovrascritte dal programmatore, vengono richiamate, rispettivamente, alla creazione del Mapper e al termine delle chiamate a map(). Francesco Romeo 69

74 4.4 YARN Hadoop 2.0 è una completa ristrutturazione della piattaforma Hadoop 1.0 ed è retrocompatibile con i Job di MapReduce scritti per Hadoop 1.0. L evoluzione rende Hadoop 2.0 più vicino ad una vera piattaforma distribuita in grado di gestire i Big Data e compatibile con qualsiasi tipo di applicazione di data management. Rispetto alla versione precedente, l architettura più complessa permette maggiori gradi di libertà e un maggior controllo delle risorse disponibili sul cluster. L ambiente di cluster management e gestione delle applicazioni, che in Hadoop 1.0 non aveva un nome, anche perché c era solo MapReduce, in Hadoop 2.0 si chiama YARN. In sostanza, i principali cambiamenti sono i seguenti: HDFS è sostituito con HDFS2, che introduce funzionalità evolute da file system distribuito come la possibilità di effettuare snapshot, di far collaborare tra loro più cluster HDFS e di mettere in alta affidabilità il NameNode. A differenza di Hadoop 1.0 dove si partiva dal concetto di Job MapReduce, in YARN si parla di applicazioni. Un applicazione YARN è qualsiasi tipo di applicazione che possa sfruttare un sistema distribuito o parallelo. MapReduce è una di queste possibili applicazioni, ma non l unica. Quindi, YARN implementa anche MapReduce, ma lascia allo sviluppatore la libertà di scrivere qualsiasi tipo di applicazione distribuita. 70 Francesco Romeo

75 L architettura fisica è sempre a due livelli, ovvero: Il Resource Manager, che rappresenta il master del sistema distribuito che contiene, a sua volta, uno Scheduler e un Application Manager. Quest'ultimo è il componente che negozia con i Node Manager le risorse per lanciare le applicazioni sui nodi del cluster. Il Node Manager, in esecuzione su ogni nodo di calcolo del cluster escluso il Resource Manager, che gestisce le risorse locali del nodo e crea dei container; questi sono, in pratica, delle sendbox dove vengono fatte girare le applicazioni. Con Hadoop 1.0 si parlava di Mapper e Reducer. In questo caso non c è un ruolo specifico: un nodo di calcolo è solo un nodo di calcolo. Dal momento che YARN è un puro e semplice ambiente di esecuzione per applicazioni distribuite, ogni applicazione deve essere auto contenuta, cioè deve essere in grado di lanciare le varie copie dei Job in parallelo, ricevere i risultati delle sottoelaborazioni, combinarli e restituirli al client. YARN non si occuperà di cosa faccia l applicazione, ma solo di assegnare ad essa le risorse sui nodi del cluster. Le applicazioni sul cluster YARN presentano il seguente funzionamento: l utente scrive la propria applicazione, che prende il nome di Application Master, e, tramite il client YARN, Francesco Romeo 71

76 richiede al Resource Manager la possibilità di installare l Application Master sul cluster. Il Resource Manager richiede a un nodo del cluster la creazione di un container per eseguire l Application Master. Il container è una sandbox con un determinato ammontare di risorse RAM e CPU che limitano l utilizzo, da parte dell applicazione, per evitare di bloccare il nodo. L Application Master viene, quindi, mandato in esecuzione sul container ottenuto con ID=O. Una volta in esecuzione, il Master si moltiplica, richiedendo, a sua volta, al Resource Manager, tramite le apposite API di YARN, altri container su altri nodi su cui lanciare le varie copie dell applicazione distribuita. Ogni replica dell applicazione viene lanciata, quindi, in un container e comunica con l Application Master secondo quanto definito nel codice. L Application Master, a sua volta, invia segnali di heartbeat al Resource Manager per indicare di essere ancora vivo e funzionante. Il Resource Manager si occupa di gestire le richieste di container da parte dei vari Application Master in esecuzione sul cluster. L allocazione è dinamica, tramite lo scheduler, cioè ogni Application Master si troverà ad avere a disposizione più o meno container a seconda di quanto il cluster ha a disposizione. Il client, a questo punto, comunica direttamente con il suo Application Master per avere i risultati dell esecuzione dell applicazione, di nuovo a seconda di come è scritto il codice, e YARN non interviene su tali comunicazioni. Un esempio di un applicazione YARN è proprio MapReduce. In questo caso l Application Master è il JobTracker mentre le varie repliche lanciate sui vari container sono i vari TaskTracker Mapper o Reducer. MapReduce è un Application Master già disponibile in YARN, in modo da mantenere un minimo di retrocompatibilità con Hadoop 1.0, anche se essa non è, però, sempre garantita. Per le aziende che pensano di adottare un cluster Hadoop al posto dei vecchi Data Warehouse sarebbe buona cosa partire già da Hadoop 2.0 non dando tanto peso alla retrocompatibilità e cercando di capire bene quali applicazioni di analisi o gestione dei dati possano beneficiare di una esecuzione distribuita. Come già detto, il valore di YARN è la flessibilità che sta nella sua capacità di eseguire qualsiasi tipo di applicazione distribuita, non solo MapReduce. Un altro punto di forza per Hadoop 2 e YARN è, sicuramente, la capacità di elaborare dati in tempo reale (stream processing), a differenza di MapReduce, limitato esclusivamente al batch processing. E proprio le mutate necessità dell utenza, le cui esigenze di stream processing sono aumentate sensibilmente negli ultimi tempi, avrebbero portato Google all abbandono di MapReduce in favore di Cloud Dataflow, in grado di combinare stream e batch processing. 72 Francesco Romeo

77 5. CASSANDRA, MONGODB, HBASE In questo capitolo verranno trattati tre dei più importanti DBMS NoSQL utilizzati dai progettisti software, rispettivamente Cassandra, MongoDB e HBase. Verranno presentate le caratteristiche peculiari di ognuno di essi e si procederà ad una valutazione comparativa degli stessi. 1 Cassandra 2 MongoDB 3 HBase 1 4 Confronto tra i DBMS NoSQL trattati Francesco Romeo 73

78 5.1 CASSANDRA Cassandra è un DBMS NoSQL, open source, nato inizialmente come progetto interno a Facebook per poi diventare, nel marzo 2009, parte del progetto Incubator di Apache. Da quel momento anche altre compagnie iniziarono ad usarlo, tra le quali Twitter, Netflix e Cisco. Cassandra appartiene alla famiglia dei DBMS Column Oriented fornendo, tramite il concetto di Column-Family, una versione estesa del metodo Key-Value store, costruito su una struttura Column Oriented; esso, inoltre, introduce una struttura aggiuntiva, ovvero le Super Column- Family. Tutto in Cassandra si potrebbe riassumere in una struttura ricorsiva, a quattro o cinque livelli, basati sul concetto di chiave-valore: Column-Family: è una struttura, forse la più complessa, che funge da contenitore delle colonne. La Chiave: è l'entità principale per mezzo della quale Cassandra può recuperare i dati contenuti in una Column-Family. La chiave deve essere univoca a livello di Column- Family, può essere generata applicativamente e può essere un numero, una stringa, una data nel formato timestamp o un generico UUID. Tuttavia, Cassandra supporta anche altri tipi di dati. Colonna: all interno di una Column-Family trovano posto una o più coppie chiave-valore. L unione di una chiave con il suo relativo set di colonne è chiamato Riga. Attraverso queste tre entità Cassandra gestisce i dati. Occorre considerare anche le seguenti, ulteriori, entità: 74 Francesco Romeo

79 KeySpace: è l'unita informativa di più alto livello per Cassandra, associabile ad un intero DBMS di un modello relazionale; deve essere creato prima di poter effettuare qualsiasi operazione. Esso conterrà quindi tutte le singole tabelle le quali erediteranno gli attributi definiti sul KeySpace che le contiene. Questi attributi sono essenzialmente tre: il Replication factor, la Replica placement strategy, (indicanti quante copie del dato si vuole tenere nella rete e il modo in cui si voglia distribuire queste copie), e le Column- Family, paragonabili alle tabelle di un DBMS relazionale ed appartenenti ad uno e un solo KeySpace. Super Column: è un aggregato di Column-Family. Non sono altro che colonne il cui campo value contiene un array di colonne. Questo DBMS rispetta le proprietà di Partitioning e Availability rispetto a quanto detto nel Capitolo 3 riguardo al CAP Theorem. I nodi, anche se non comunicanti tra loro, rendono sempre disponibile la possibilità di scrivere e leggere i propri dati, lasciando poi decidere all'utente quali politiche di merge adottare nel momento in cui la comunicazione tra nodi torni stabile. Cassandra utilizza la tecnica del Consistent Hashing in cui i nodi della rete formano un anello; ogni nodo è gerarchicamente uguale agli altri. Poiché Cassandra è stato ideato e pensato per contesti in cui è presente un elevato dinamismo della rete, questa tecnica permette di ridurre al minimo la quantità di dati da dover rimappare al variare della quantità di nodi presenti. L'architettura di Cassandra è Shared Nothing; quindi, non ci sono configurazioni master-slave Francesco Romeo 75

80 o simili, permettendo di avere un sistema no-single-point-of-failure, cioè in grado di essere disponibile anche dopo la caduta di un qualsiasi nodo della rete. Per individuare quali sono i nodi responsabili di una determinata chiave, il client può contattare un qualunque nodo che diventerà il coordinatore della richiesta. Il bilanciamento del carico è fortemente dipendente dal tipo di partizionamento che è stato configurato per il cluster. Tutte le informazioni topologiche sono memorizzate nel servizio di Snich che mappa gli IP ai Rack e ai data center definendo come i nodi sono raggruppati. Ogni nodo di uno stesso cluster deve utilizzare lo stesso Snich. Essendo Shared Nothing, Cassandra rende persistenti i dati solo in locale, senza utilizzare un servizio di file system distribuito. I nodi Cassandra hanno un modulo di scrittura, nelle operazioni di write, che salva i commit su un file di log e su una struttura in-memory, che viene salvata su disco in maniera asincrona una volta raggiunta una dimensione soglia. Le scritture su disco avvengono in un formato indicizzato per la lettura basata su chiave, aggiungendo anche indici sulle Column-Family e sulle colonne. All'aumentare dei file su disco, al fine di ottimizzare la gestione delle risorse su quest ultimo dispositivo, un processo in background esegue compressione e accorpamento. Le operazioni di read sono il risultato della visione unificata tra le informazioni in-memory e quelle su disco. Nella versione base di Cassandra le chiavi vengono distribuite in maniera uniforme, senza contare le reali risorse hardware delle macchine fisiche. Cassandra usa suddividere il data center in diversi anelli e sposta i nodi al fine di migliorare l'utilizzo delle risorse disponibili. Nella configurazione iniziale di Cassandra è possibile selezionare due strategie di partizionamento. La prima, casuale, è il RandomPartitoner (RP), che distribuisce le coppie chiave-valore con il vantaggio di avere un buon bilanciamento dei dati ma con lo svantaggio di dover contattare diversi nodi per ricostruire una riga. Diversamente, è possibile designare un ordinamento che preserva l'ordine, OrderPreservingPartitioner (OPP), distribuendo le coppie in modo tale che le stesse chiavi non siano distanti tra loro. Per quanto riguarda la disposizione dei nodi nel cluster, la creazione di un singolo anello è una soluzione comunemente utilizzata, soprattutto per la sua semplicità implementativa. È possibile, comunque, disporre, in caso si voglia riservare particolare attenzione alla distribuzione fisica dei dati, di più anelli cooperanti tra loro, soluzione in cui ovviamente tutti i nodi sono considerati ancora uguali. La possibilità di avere una rete multicluster viene utilizzata spesso per la replicazione dei dati, aumentando l affidabilità dell'intero sistema. 76 Francesco Romeo

81 Per verificare il corretto funzionamento della rete e controllarne l'integrità, Cassandra utilizza un protocollo di tipo GOSSIP, basato sulla distribuzione casuale e continua dell'informazione da un nodo all'altro, quest'ultimo scelto casualmente dal primo. Proprio per la semplicità strutturale della ring, l'elasticità dell'intero anello viene gestita in modo facile e completamente automatico. Quando un nodo si aggiunge al cluster, calcola un token casuale per trovare la sua posizione all'interno dell'anello e l'intervallo di chiavi di cui deve essere responsabile. Tali informazioni vengono memorizzate sia in locale che su un servizio di sincronizzazione distribuito. Una volta entrato nella rete, il nodo inizia a cercare indirizzi degli altri, sia dalle configurazioni locali che dal servizio distribuito, ed annuncia ad essi la propria presenza, lanciando il protocollo GOSSIP, che porterà l'intera rete sulla nuova membership. Dopodiché avviene la riassegnazione/migrazione dei dati da un nodo all'altro in base al nuovo assegnamento dei token. Nel caso in cui un nodo viene tolto dalla rete o non riesce ad essere raggiungibile, i nodi rimanenti si occuperanno di distribuire tra loro i dati del nodo rimosso, riassegnando, anche in questo caso, i token per un più equilibrato bilanciamento del DBMS. I nodi della rete Cassandra provano a identificare se un nodo è attivo o meno utilizzando un meccanismo di failure detector, in cui non si determina in maniera booleana il fallimento di un nodo, ma se ne determina un livello di sospetto. Tramite questo meccanismo si ottiene Francesco Romeo 77

82 un'ottima accuratezza e una buona velocità nel reagire ai possibili cambiamenti della rete. Tutti i moduli che permettono a una macchina di entrare in una rete Cassandra sono scritti in Java e operano su un software in cui lo scambio di messaggi utilizza il protocollo UDP per le operazioni di sistema, e il TCP per rispondere alle richieste del client. La replicazione, in un DBMS, consiste nel creare una copia del dato originale, permettendo di disporre dei dati anche nel momento in cui un nodo presenti degli errori. Cassandra crea tante copie del dato originale quante ne sono state definite tramite l'attributo Replication factor, del Keyspace nel quale si sta lavorando. Le copie sono recuperabili in qualunque momento dal DBMS, garantendo la disponibilità dei dati anche nel caso di malfunzionamento del nodo contenente i dati originali. Le copie ricoprono, inoltre, un ruolo di controllo di correttezza e consistenza che può avere impatti anche molto rilevanti riguardo alle prestazioni. Esse possono essere distribuite sui vari nodi in accordo a due principali strategie tra cui scegliere, ovvero la Simple Strategy o la Network Topology Strategy. La prima distribuisce i dati seguendo l'ordine dell'anello: se, ad esempio, si vuole creare una singola copia del dato originale, 78 Francesco Romeo

83 memorizzato nel nodo numero due, la copia andrà collocata nel prossimo nodo seguendo la rete, vale a dire nel nodo numero tre. Si segue, all'aumentare del Replication factor, la circolarità dell'anello fino a quando non si ha la memorizzazione di tutte le copie. Con la seconda strategia, invece, vengono distribuiti i dati in base alla conoscenza della rete, dando priorità alla distribuzione su vari anelli poiché ci si aspetta che nodi appartenenti allo stesso anello abbiano più probabilità di fallire rispetto ai nodi inseriti in anelli diversi, tenendo in considerazione la vicinanza fisica delle macchine. Cassandra sceglie un modello Eventual Consistency, facendo decidere al client che tipo di consistenza debba essere utilizzata. Occorre stabilire quanti nodi devono confermare l'avvenuta operazione, prima che questa possa essere considerata conclusa, permettendo, inoltre, di controllare periodicamente la consistenza tra tutte le copie del dato richiesto presenti nella rete. Si può attribuire il valore ONE nel caso in cui, per considerare la transazione riuscita, è necessaria la conferma da parte di un solo nodo, TWO, se occorre la conferma di due nodi, e così via; esistono, infine, altre possibilità, quali ANY per l'attesa di tutti i nodi della rete, o QUORUM, che prevede di effettuare una votazione tra i nodi dell anello. Francesco Romeo 79

84 5.2 MONGODB MongoDB è divenuto il più utilizzato DBMS NoSQL grazie alla sua estrema facilita di installazione e manutenzione. Questa semplicità non impedisce, però, di ottenere ottime prestazioni da questo DBMS. Grazie ad una campagna di vendita aggressiva e ad un supporto continuo, oltre alla fornitura di API in molti linguaggi di programmazione, continua la sua scalata verso le prime posizioni tra i DBMS più usati, anche più di alcuni DBMS relazionali. Scritto in C++ è orientato alla velocità e scalabilità, pur mantenendo un buon livello di consistenza. Può essere usato anche per memorizzare e distribuire file binari di grandi dimensioni, come immagini o video. Questo DBMS mira a colmare l'enorme distanza tra la velocità e la scalabilità tipica dei DBMS chiave-valore con le ricche funzionalità dei DBMS relazionali. MongoDB è un DBMS Document Oriented; pertanto l'unita fondamentale sono i documenti, in formato BSON (Binary JSON, che è una estensione del formato JSON con il supporto a tipi aggiuntivi), equivalenti alle singole tabelle di un DBMS relazionale, ma molto più espressivi. I documenti sono tutti identificati da una chiave speciale ed univoca (ID). Occorre aggiungere anche il concetto di Collection che rappresenta un insieme di documenti. La possibilità di innestare documenti o di avere delle referenze tra essi rende molto potente, flessibile e dinamico questo modello. Infatti, nei DBMS NoSQL classici il valore memorizzato viene trattato come un'informazione binaria e l'applicazione sovrastante gestisce la struttura dei dati. Per quanto riguarda il CAP Theorem, MongoDB utilizza le proprietà di Partitioning e Consistency. I dati non sono disponibili nel momento in cui il nodo principale, detto primario, non risulta disponibile Occorre, quindi, aspettare che essi vengano recuperati. La replicazione in MongoDB avviene creando un replica set. Questo è un gruppo di nodi in cui, tramite una votazione interna al set, uno di questi viene eletto come primario, mentre gli altri vengono catalogati come secondari. Questi ultimi ricevono i commit log e li utilizzano per aggiornare i propri dati, memorizzando solo copie esatte degli stessi dati contenuti nella macchina primaria. I commit log possono essere scritti solo dai nodi primari. Nel caso in cui la macchina primaria non dovesse essere più funzionante viene sostituita con una delle secondarie, scelta tramite una votazione effet- 80 Francesco Romeo

85 tuata dall'intero gruppo. Quindi, mentre la macchina primaria può eseguire sia operazioni di scrittura che di lettura, le secondarie possono servire solo per operazioni di lettura. Di conseguenza, MongoDB risulta essere particolarmente efficace in applicazioni che fanno uso intensivo di operazioni di read. Di default MongoDB permette, comunque, la sola lettura sul nodo primario, attribuendo ai nodi secondari una funzione finalizzata solo al recupero dati in caso di guasto. Un replica set è vincolato ad avere una sola macchina primaria e al massimo fino a sei macchine secondarie, a cui possono essere aggiunte fino a cinque macchine che entrano in funzione solamente durante la fase di votazione. Le macchine dedicate a questa funzione sono denominate arbiter e, al contrario delle macchine secondarie che possono diventare primarie, non cambiano mai il proprio stato. Si noti che, al contrario di Cassandra, questo sistema permette fino ad un massimo di sette replicazioni, limitazione dovuta al numero di macchine secondarie implementabili in un replica set. Tutti i nodi che compongono una implementazione di MongoDB comunicano attraverso un protocollo denominato Wire Protocol, che è sostanzialmente un protocollo TCP/IP semplificato. Un messaggio è costituito da un contenitore con un header al cui interno sono descritti il tipo di operazione da eseguire, la lunghezza del messaggio, il nome della collezione sulla quale eseguire la richiesta e un documento, generalmente in JSON, rappresentante l'informazione. Un altro messaggio scambiato è l heartbeat request, richiesta inviata ogni due secondi tra ogni macchina per verificare lo stato del cluster. Altra interessante funzione di tale richiesta è quella di verificare che il nodo primario possa raggiungere la maggioranza degli altri nodi. Nel caso in cui ciò non risulti, il nodo si autosqualifica come primario della rete, procedendo a far partire una votazione tra i membri del cluster per una nuova elezione. Francesco Romeo 81

PROJECT MANAGEMENT SERVIZI DI PROJECT MANAGEMENT DI ELEVATA PROFESSIONALITÀ

PROJECT MANAGEMENT SERVIZI DI PROJECT MANAGEMENT DI ELEVATA PROFESSIONALITÀ PROJECT MANAGEMENT SERVIZI DI PROJECT MANAGEMENT DI ELEVATA PROFESSIONALITÀ SERVIZI DI PROJECT MANAGEMENT CENTRATE I VOSTRI OBIETTIVI LA MISSIONE In qualità di clienti Rockwell Automation, potete contare

Dettagli

Cos è. Mission & Vision. Attitude in Web, area di IT Attitude, ha competenze specifiche nel settore informatico e nel web marketing.

Cos è. Mission & Vision. Attitude in Web, area di IT Attitude, ha competenze specifiche nel settore informatico e nel web marketing. Cos è Mission & Vision COMUNICAZIONE. SOLUZIONI INFORMATICHE. CONSULENZA AZIENDALE. WEB MARKETING. Attitude in Web, area di IT Attitude, ha competenze specifiche nel settore informatico e nel web marketing.

Dettagli

Supply Intelligence. Informazioni rapide e approfondite sui fornitori potenziali

Supply Intelligence. Informazioni rapide e approfondite sui fornitori potenziali Supply Intelligence Informazioni rapide e approfondite sui fornitori potenziali Ancora in alto mare? Le forniture, specialmente se effettuate a livello globale, possono rivelarsi un vero e proprio viaggio

Dettagli

REALIZZARE UN BUSINESS PLAN

REALIZZARE UN BUSINESS PLAN Idee e metodologie per la direzione d impresa Ottobre 2003 Inserto di Missione Impresa dedicato allo sviluppo pratico di progetti finalizzati ad aumentare la competitività delle imprese. REALIZZARE UN

Dettagli

25/11/14 ORGANIZZAZIONE AZIENDALE. Tecnologie dell informazione e controllo

25/11/14 ORGANIZZAZIONE AZIENDALE. Tecnologie dell informazione e controllo ORGANIZZAZIONE AZIENDALE 1 Tecnologie dell informazione e controllo 2 Evoluzione dell IT IT, processo decisionale e controllo Sistemi di supporto al processo decisionale IT e coordinamento esterno IT e

Dettagli

CAPITOLO CAPIT Tecnologie dell ecnologie dell info inf rmazione e controllo

CAPITOLO CAPIT Tecnologie dell ecnologie dell info inf rmazione e controllo CAPITOLO 8 Tecnologie dell informazione e controllo Agenda Evoluzione dell IT IT, processo decisionale e controllo Sistemi di supporto al processo decisionale Sistemi di controllo a feedback IT e coordinamento

Dettagli

REALIZZARE UN MODELLO DI IMPRESA

REALIZZARE UN MODELLO DI IMPRESA REALIZZARE UN MODELLO DI IMPRESA - organizzare e gestire l insieme delle attività, utilizzando una piattaforma per la gestione aziendale: integrata, completa, flessibile, coerente e con un grado di complessità

Dettagli

Scheda. Il CRM per la Gestione del Marketing. Accesso in tempo reale alle Informazioni di rilievo

Scheda. Il CRM per la Gestione del Marketing. Accesso in tempo reale alle Informazioni di rilievo Scheda Il CRM per la Gestione del Marketing Nelle aziende l attività di Marketing è considerata sempre più importante poiché il mercato diventa sempre più competitivo e le aziende necessitano di ottimizzare

Dettagli

Il catalogo MARKET. Mk6 Il sell out e il trade marketing: tecniche, logiche e strumenti

Il catalogo MARKET. Mk6 Il sell out e il trade marketing: tecniche, logiche e strumenti Si rivolge a: Forza vendita diretta Agenti Responsabili vendite Il catalogo MARKET Responsabili commerciali Imprenditori con responsabilità diretta sulle vendite 34 di imprese private e organizzazioni

Dettagli

STORE MANAGER.. LE COMPETENZE CARATTERISTICHE E I BISOGNI DI FORMAZIONE

STORE MANAGER.. LE COMPETENZE CARATTERISTICHE E I BISOGNI DI FORMAZIONE STORE MANAGER.. LE COMPETENZE CARATTERISTICHE E I BISOGNI DI FORMAZIONE 1 Indice 1. Premessa 2. Obiettivo 3. Le competenze del profilo ideale Competenze 3.1. Età ed esperienza 3.2. Le reali competenze

Dettagli

Retail L organizzazione innovativa del tuo punto vendita

Retail L organizzazione innovativa del tuo punto vendita fare Retail L organizzazione innovativa del tuo punto vendita fareretail è una soluzione di by www.fareretail.it fareretail fareretail è la soluzione definitiva per la Gestione dei Clienti e l Organizzazione

Dettagli

Lezione 1. Introduzione e Modellazione Concettuale

Lezione 1. Introduzione e Modellazione Concettuale Lezione 1 Introduzione e Modellazione Concettuale 1 Tipi di Database ed Applicazioni Database Numerici e Testuali Database Multimediali Geographic Information Systems (GIS) Data Warehouses Real-time and

Dettagli

SOCIAL MEDIA MARKETING 2.0 BUZZ MARKETING NEI SOCIAL MEDIA

SOCIAL MEDIA MARKETING 2.0 BUZZ MARKETING NEI SOCIAL MEDIA SOCIAL MEDIA MARKETING 2.0 BUZZ MARKETING NEI SOCIAL MEDIA info@nonickname.it 02 INDICE 1. CRESCONO I CONSUMATORI MULTICANALE 2. NUOVE STRATEGIE AZIENDALI 3. SOCIAL MEDIA MARKETING PER LE AZIENDE 4. L

Dettagli

UNIVERSITA DEGLI STUDI DI BRESCIA Facoltà di Ingegneria

UNIVERSITA DEGLI STUDI DI BRESCIA Facoltà di Ingegneria ESAME DI STATO DI ABILITAZIONE ALL'ESERCIZIO DELLA PROFESSIONE DI INGEGNERE PRIMA PROVA SCRITTA DEL 22 giugno 2011 SETTORE DELL INFORMAZIONE Tema n. 1 Il candidato sviluppi un analisi critica e discuta

Dettagli

La tecnologia cloud computing a supporto della gestione delle risorse umane

La tecnologia cloud computing a supporto della gestione delle risorse umane La tecnologia cloud computing a supporto della gestione delle risorse umane L importanza delle risorse umane per il successo delle strategie aziendali Il mondo delle imprese in questi ultimi anni sta rivolgendo

Dettagli

Il servizio di registrazione contabile. che consente di azzerare i tempi di registrazione delle fatture e dei relativi movimenti contabili

Il servizio di registrazione contabile. che consente di azzerare i tempi di registrazione delle fatture e dei relativi movimenti contabili Il servizio di registrazione contabile che consente di azzerare i tempi di registrazione delle fatture e dei relativi movimenti contabili Chi siamo Imprese giovani e dinamiche ITCluster nasce a Torino

Dettagli

Export Development Export Development

Export Development Export Development SERVICE PROFILE 2014 Chi siamo L attuale scenario economico nazionale impone alle imprese la necessità di valutare le opportunità di mercato offerte dai mercati internazionali. Sebbene una strategia commerciale

Dettagli

leaders in engineering excellence

leaders in engineering excellence leaders in engineering excellence engineering excellence Il mondo di oggi, in rapida trasformazione, impone alle imprese di dotarsi di impianti e macchinari più affidabili e sicuri, e di più lunga durata.

Dettagli

L ORGANIZZAZIONE AZIENDALE

L ORGANIZZAZIONE AZIENDALE L ORGANIZZAZIONE AZIENDALE CONCETTO: L ORGANIZZAZIONE SI PONE COME OBIETTIVO LO STUDIO DELLE COMPOSIZIONI PIU CONVENIENTI DELLE FORZE PERSONALI, MATERIALI E IMMATERIALI OPERANTI NEL SISTEMA AZIENDALE.

Dettagli

Attività federale di marketing

Attività federale di marketing Attività federale di marketing Gestione e certificazione delle sponsorizzazioni Il Feedback Web Nel piano di sviluppo della propria attività di marketing, la FIS ha adottato il sistema Feedback Web realizzato

Dettagli

Perfare MASSIMIZZARE IL VALORE DELL ATTUALE GAMMA DI PRODOTTI

Perfare MASSIMIZZARE IL VALORE DELL ATTUALE GAMMA DI PRODOTTI Perfare Perfare Percorsi aziendali di formazione e assistenza operativa MASSIMIZZARE IL VALORE DELL ATTUALE GAMMA DI PRODOTTI Costruire un piano di azioni concrete per ottenere il massimo valore dall attuale

Dettagli

LA RESPONSABILITÀ SOCIALE DELLE IMPRESE CORPORATE SOCIAL RESPONSABILITY

LA RESPONSABILITÀ SOCIALE DELLE IMPRESE CORPORATE SOCIAL RESPONSABILITY Attenzione: la Guida che state stampando è aggiornata al 10/10/2007. I file allegati con estensione.doc,.xls,.pdf,.rtf, etc. non verranno stampati automaticamente; per averne copia cartacea è necessario

Dettagli

L IT a supporto della condivisione della conoscenza

L IT a supporto della condivisione della conoscenza Evento Assintel Integrare i processi: come migliorare il ritorno dell investimento IT Milano, 28 ottobre 2008 L IT a supporto della condivisione della conoscenza Dott. Roberto Butinar AGENDA Introduzione

Dettagli

SysAround S.r.l. L'efficacia delle vendite è l elemento centrale per favorire la crescita complessiva dell azienda.

SysAround S.r.l. L'efficacia delle vendite è l elemento centrale per favorire la crescita complessiva dell azienda. Scheda Il CRM per la Gestione delle Vendite Le organizzazioni di vendita sono costantemente alla ricerca delle modalità migliori per aumentare i ricavi aziendali e ridurre i costi operativi. Oggi il personale

Dettagli

La piattaforma di lettura targhe intelligente ed innovativa in grado di offrire servizi completi e personalizzati

La piattaforma di lettura targhe intelligente ed innovativa in grado di offrire servizi completi e personalizzati La piattaforma di lettura targhe intelligente ed innovativa in grado di offrire servizi completi e personalizzati Affidabilità nel servizio precisione negli strumenti Chanda LPR Chanda LPR è una piattaforma

Dettagli

FOCUS. www.wikabu.com

FOCUS. www.wikabu.com FOCUS WIKABU: l innovativa app mobile che consente agli utenti di scoprire dove acquistare i prodotti visti in pubblicità (cartacea, cartellonistica e digitale). Il servizio mira a soddisfare sia il bisogno

Dettagli

PRESENTARE UN IDEA PROGETTUALE

PRESENTARE UN IDEA PROGETTUALE PRESENTARE UN IDEA PROGETTUALE LINEE GUIDA PER UNA EFFICACE PRESENTAZIONE DI UN BUSINESS PLAN INTRODUZIONE ALLA GUIDA Questa breve guida vuole indicare in maniera chiara ed efficiente gli elementi salienti

Dettagli

CRM: IL FUTURO DEL MARKETING ATTRAVERSO LA CONOSCENZA DEL CLIENTE

CRM: IL FUTURO DEL MARKETING ATTRAVERSO LA CONOSCENZA DEL CLIENTE UNIVERSITÁ DEGLI STUDI DI UDINE FACOLTÁ DI ECONOMIA Corso di Laurea in Economia Aziendale Esame di Laurea CRM: IL FUTURO DEL MARKETING ATTRAVERSO LA CONOSCENZA DEL CLIENTE Tutore: Prof. Maria Chiarvesio

Dettagli

SOLUZIONE Web.Orders online

SOLUZIONE Web.Orders online SOLUZIONE Web.Orders online Gennaio 2005 1 INDICE SOLUZIONE Web.Orders online Introduzione Pag. 3 Obiettivi generali Pag. 4 Modulo di gestione sistema Pag. 5 Modulo di navigazione prodotti Pag. 7 Modulo

Dettagli

IL MANAGER COACH: MODA O REQUISITO DI EFFICACIA. Nelle organizzazioni la gestione e lo sviluppo dei collaboratori hanno una importanza fondamentale.

IL MANAGER COACH: MODA O REQUISITO DI EFFICACIA. Nelle organizzazioni la gestione e lo sviluppo dei collaboratori hanno una importanza fondamentale. IL MANAGER COACH: MODA O REQUISITO DI EFFICACIA Nelle organizzazioni la gestione e lo sviluppo dei collaboratori hanno una importanza fondamentale. Gestione e sviluppo richiedono oggi comportamenti diversi

Dettagli

Percorso Formativo. indirizzo. M a r k e t i n g. E - C o m m e r c e

Percorso Formativo. indirizzo. M a r k e t i n g. E - C o m m e r c e Percorso Formativo Tecnici della Gestione Aziendale indirizzo M a r k e t i n g and E - C o m m e r c e DESCRIZIONE DELL INDIRIZZO L'Istituto forma Tecnici della Gestione Aziendale, dotati di conoscenze

Dettagli

EasyMACHINERY ERPGestionaleCRM. partner

EasyMACHINERY ERPGestionaleCRM. partner ERPGestionaleCRM partner La soluzione software per le aziende di produzione di macchine Abbiamo trovato un software e un partner che conoscono e integrano le particolarità del nostro settore. Questo ci

Dettagli

OSINT, acronimo di Open Source INTelligence, uno dei modi per acquisire dati utili per l intelligence:

OSINT, acronimo di Open Source INTelligence, uno dei modi per acquisire dati utili per l intelligence: OSINT, acronimo di Open Source INTelligence, uno dei modi per acquisire dati utili per l intelligence: riguarda il monitoraggio e l analisi di contenuti reperibili da fonti pubbliche, non riservate. L

Dettagli

BCC Business Community Confindustria SVILUPPARE IL BUSINESS RISPARMIARE NEGLI ACQUISTI

BCC Business Community Confindustria SVILUPPARE IL BUSINESS RISPARMIARE NEGLI ACQUISTI BCC Business Community Confindustria SVILUPPARE IL BUSINESS RISPARMIARE NEGLI ACQUISTI RELAZIONE DEL PRESIDENTE ALBERTO SCANU (12 giugno 2008) Ancora una volta Confindustria ci da l'opportunità di presentare

Dettagli

SOLUZIONI INFORMATICHE PER LO STUDIO LEGALE

SOLUZIONI INFORMATICHE PER LO STUDIO LEGALE SOLUZIONI INFORMATICHE PER LO STUDIO LEGALE Nekte Srl Viale Gran Sasso, 10-20131 Milano Tel. 02 29521765 - Fax 02 29532131 info@nekte.it www.nekte.it L IMPORTANZA DI CONOSCERE I PROFESSIONISTI Nekte ha

Dettagli

SERGIO ALABISO TEMPORARY MANAGER

SERGIO ALABISO TEMPORARY MANAGER TEMPORARY MANAGER Il Business Plan Temporary Manager La difficoltà non sta nel credere nelle nuove idee, ma nel fuggire dalle vecchie. John Maynard Keynes Che cosa e e a cosa serve E un documento volto

Dettagli

Valutare gli esiti di una consultazione online

Valutare gli esiti di una consultazione online Progetto PerformancePA Ambito A - Linea 1 - Una rete per la riforma della PA Valutare gli esiti di una consultazione online Autore: Antonella Fancello, Laura Manconi Creatore: Formez PA, Progetto Performance

Dettagli

SPECIALISTI IN MARKETING OPERATIVO.

SPECIALISTI IN MARKETING OPERATIVO. SPECIALISTI IN MARKETING OPERATIVO. AZIENDA UNA SOLIDA REALTÀ, AL PASSO CON I TEMPI. Ci sono cose che in OM Group sappiamo fare meglio di chiunque altro. Siamo specialisti in tema di analisi, promozione,

Dettagli

IL CASO DELL AZIENDA. Perché SAP. www.softwarebusiness.it

IL CASO DELL AZIENDA. Perché SAP. www.softwarebusiness.it LA SOLUZIONE SAP FOR PROFESSIONAL SERVICES IL CASO DELL AZIENDA Perché SAP Grazie a SAP siamo riusciti a pianificare meglio e ad ottenere tempestive informazioni su tempi e costi delle nostre commesse.

Dettagli

MService La soluzione per ottimizzare le prestazioni dell impianto

MService La soluzione per ottimizzare le prestazioni dell impianto MService La soluzione per ottimizzare le prestazioni dell impianto Il segreto del successo di un azienda sta nel tenere sotto controllo lo stato di salute delle apparecchiature degli impianti. Dati industriali

Dettagli

La shared mobility, nuova frontiera della mobilità urbana: le prospettive per l area metropolitana di Roma

La shared mobility, nuova frontiera della mobilità urbana: le prospettive per l area metropolitana di Roma La shared mobility, nuova frontiera della mobilità urbana: le prospettive per l area metropolitana di Roma OBIETTIVI Da qualche anno a questa parte, le soluzioni di trasporto condivise stanno conoscendo

Dettagli

IL CASO DELL AZIENDA. www.softwarebusiness.it

IL CASO DELL AZIENDA. www.softwarebusiness.it LA SOLUZIONE SAP NELLE PICCOLE E MEDIE IMPRESE IL CASO DELL AZIENDA Perché SAP Contare su un sistema che ci consente di valutare le performance di ogni elemento del nostro listino è una leva strategica

Dettagli

Software per Helpdesk

Software per Helpdesk Software per Helpdesk Padova - maggio 2010 Antonio Dalvit - www.antoniodalvit.com Cosa è un helpdesk? Un help desk è un servizio che fornisce informazioni e assistenza ad utenti che hanno problemi nella

Dettagli

BUSINESS INTELLIGENCE

BUSINESS INTELLIGENCE www.vmsistemi.it Soluzione di Crescita calcolata Uno strumento indispensabile per l analisi del business aziendale Controllo e previsionalità L interpretazione corretta dei dati al servizio della competitività

Dettagli

Management Game 2011

Management Game 2011 Management Game 2011 La Mobilé Inc 1 Introduzione 1.1 La Mobilé Inc in breve Mobilé Inc è un azienda produttrice di telefonini che ha sede negli Stati Uniti che si è concentrata sulla produzione di telefonini

Dettagli

COME AVERE SUCCESSO SUL WEB?

COME AVERE SUCCESSO SUL WEB? Registro 3 COME AVERE SUCCESSO SUL WEB? Guida pratica per muovere con successo i primi passi nel web MISURAZIONE ED OBIETTIVI INDEX 3 7 13 Strumenti di controllo e analisi Perché faccio un sito web? Definisci

Dettagli

Internet e social media per far crescere la tua impresa

Internet e social media per far crescere la tua impresa @ # Internet e social media per far crescere la tua impresa Migliorare il proprio business attraverso il web e i social media: è questo l obiettivo delle undici proposte formative che prenderanno il via

Dettagli

Social Media Marketing

Social Media Marketing La comunicazione gioca un ruolo fondamentale nella promozione di nuovi prodotti e servizi, e l attenzione si sposta sempre piu verso nuove tecnologie e modi di comunicare, immediati e condivisi Social

Dettagli

Evidenziare le modalità con le quali l azienda agrituristica produce valore per i clienti attraverso la gestione dei propri processi.

Evidenziare le modalità con le quali l azienda agrituristica produce valore per i clienti attraverso la gestione dei propri processi. 5. Processi Evidenziare le modalità con le quali l azienda agrituristica produce valore per i clienti attraverso la gestione dei propri processi. Il criterio vuole approfondire come l azienda agrituristica

Dettagli

Ciclo di vita dimensionale

Ciclo di vita dimensionale aprile 2012 1 Il ciclo di vita dimensionale Business Dimensional Lifecycle, chiamato anche Kimball Lifecycle descrive il framework complessivo che lega le diverse attività dello sviluppo di un sistema

Dettagli

creazione e gestione di siti L'agenzia di comunicazione Artistiko internet propria attività al centro dell'attenzione

creazione e gestione di siti L'agenzia di comunicazione Artistiko internet propria attività al centro dell'attenzione 01...presentazione Artistiko... 02...relazione sito Ordine Avvocati Pesaro 03...esempio di lavoro svolto 04...presentazione convenzione 05...considerazioni finali............ L'agenzia di comunicazione

Dettagli

Progetto Atipico. Partners

Progetto Atipico. Partners Progetto Atipico Partners Imprese Arancia-ICT Arancia-ICT è una giovane società che nasce nel 2007 grazie ad un gruppo di professionisti che ha voluto capitalizzare le competenze multidisciplinari acquisite

Dettagli

Business Intelligence Revorg. Roadmap. Revorg Business Intelligence. trasforma i dati operativi quotidiani in informazioni strategiche.

Business Intelligence Revorg. Roadmap. Revorg Business Intelligence. trasforma i dati operativi quotidiani in informazioni strategiche. soluzioni di business intelligence Revorg Business Intelligence Utilizza al meglio i dati aziendali per le tue decisioni di business Business Intelligence Revorg Roadmap Definizione degli obiettivi di

Dettagli

JOB - Amministrazione del personale. La soluzione Sistemi per il professionista delle paghe.

JOB - Amministrazione del personale. La soluzione Sistemi per il professionista delle paghe. JOB - Amministrazione del personale La soluzione Sistemi per il professionista delle paghe. 1 La soluzione Sistemi per il professionista delle paghe JOB è il risultato delle competenze maturate da Sistemi

Dettagli

nuove dimensioni della performance aziendale: la Balanced Scorecard

nuove dimensioni della performance aziendale: la Balanced Scorecard nuove dimensioni della performance aziendale: la Balanced Scorecard Prospettiva conoscenza e competenze Prospettiva dei processi Prospettiva dei clienti Prospettiva economico finanziaria le relazioni causa-effetto

Dettagli

IL CICLO DI VITA DEL PROGETTO. Elementi essenziali di progetto. Fasi e tappe Gli Approcci

IL CICLO DI VITA DEL PROGETTO. Elementi essenziali di progetto. Fasi e tappe Gli Approcci UNIVERSITA MILANO BICOCCA Corso di laurea di primo livello in servizio sociale anno accademico 2009-2010 Progettare il sociale Prof. Dario A. Colombo IL CICLO DI VITA DEL PROGETTO Elementi essenziali di

Dettagli

MANUALE DELLA QUALITÀ Pag. 1 di 6

MANUALE DELLA QUALITÀ Pag. 1 di 6 MANUALE DELLA QUALITÀ Pag. 1 di 6 INDICE GESTIONE DELLE RISORSE Messa a disposizione delle risorse Competenza, consapevolezza, addestramento Infrastrutture Ambiente di lavoro MANUALE DELLA QUALITÀ Pag.

Dettagli

LO SVILUPPO DELLE COMPETENZE PER UNA FORZA VENDITA VINCENTE

LO SVILUPPO DELLE COMPETENZE PER UNA FORZA VENDITA VINCENTE LO SVILUPPO DELLE COMPETENZE PER UNA FORZA VENDITA VINCENTE Non c è mai una seconda occasione per dare una prima impressione 1. Lo scenario Oggi mantenere le proprie posizioni o aumentare le quote di mercato

Dettagli

www.happybusinessapplication.net

www.happybusinessapplication.net www.astudio.it Cosa è HBA Project HBA Project è una Web Business Application gratuita che può essere installata sul proprio dominio come una «personal cloud», alla quale avrà accesso solo l utente che

Dettagli

Le nuove strategie di fidelizzazione in Erboristeria: L uso di Facebook

Le nuove strategie di fidelizzazione in Erboristeria: L uso di Facebook Le nuove strategie di fidelizzazione in Erboristeria: L uso di Facebook Parma 28 Settembre 2013 Pharma Consulting Group Gli obiettivi dell incontro 1: Cosa è Facebook e perché importante, 2: Facebook come

Dettagli

Le effettive esigenze della Direzione del Personale nella gestione delle risorse umane in azienda. Andamento dal 2005 ad oggi

Le effettive esigenze della Direzione del Personale nella gestione delle risorse umane in azienda. Andamento dal 2005 ad oggi Le effettive esigenze della Direzione del Personale nella gestione delle risorse umane in azienda. Andamento dal 2005 ad oggi Indagine ottenuta grazie alla somministrazione di questionario ad oltre 260

Dettagli

DIFFERENZIARE LE CAMPAGNE DI MARKETING La scelta del canale adeguato

DIFFERENZIARE LE CAMPAGNE DI MARKETING La scelta del canale adeguato Via Durini, 23-20122 Milano (MI) Tel.+39.02.77.88.931 Fax +39.02.76.31.33.84 Piazza Marconi,15-00144 Roma Tel.+39.06.32.80.37.33 Fax +39.06.32.80.36.00 www.valuelab.it valuelab@valuelab.it DIFFERENZIARE

Dettagli

Supporto alle decisioni e strategie commerciali/mercati/prodotti/forza vendita;

Supporto alle decisioni e strategie commerciali/mercati/prodotti/forza vendita; .netbin. è un potentissimo strumento SVILUPPATO DA GIEMME INFORMATICA di analisi dei dati con esposizione dei dati in forma numerica e grafica con un interfaccia visuale di facile utilizzo, organizzata

Dettagli

L utilizzo del cloud nel web marketing. for

L utilizzo del cloud nel web marketing. for L utilizzo del cloud nel web marketing 2 Cos è il Cloud Computing? Web Internet Cloud Il cloud computing è una nuova concezione di infrastruttura, ovvero il complesso ambiente di server dove risiedono

Dettagli

condivivere DA SOLO PUOI CRESCERE NEL MERCATO. INSIEME, PUOI CAMBIARLO.

condivivere DA SOLO PUOI CRESCERE NEL MERCATO. INSIEME, PUOI CAMBIARLO. condivivere DA SOLO PUOI CRESCERE NEL MERCATO. INSIEME, PUOI CAMBIARLO. condivivere OGNI VOLTA CHE SI CREA UNO SCENARIO DIVERSO NASCE L ESIGENZA DI UNA REAZIONE DIFFERENTE. Le evoluzioni degli ultimi anni

Dettagli

Le caratteristiche must have del software gestionale ideale

Le caratteristiche must have del software gestionale ideale Le caratteristiche must have del software gestionale ideale ww.microsa Quali sono i principali elementi da tenere in considerazione per la scelta del Quali software sono i ottimale? principali elementi

Dettagli

PowerSchedo. Un sistema di supporto alla decisione nel settore dell'oil&gas. For further information: www.mbigroup.it

PowerSchedo. Un sistema di supporto alla decisione nel settore dell'oil&gas. For further information: www.mbigroup.it PowerSchedo Un sistema di supporto alla decisione nel settore dell'oil&gas For further information: Introduzione PowerSchedO è uno strumento software di supporto alle decisioni per problemi nel settore

Dettagli

La valutazione dell efficienza aziendale ECONOMIA E GESTIONE DELLE IMPRESE

La valutazione dell efficienza aziendale ECONOMIA E GESTIONE DELLE IMPRESE La valutazione dell efficienza aziendale EFFICIENZA E LA CAPACITA DI RENDIMENTO O L ATTITUDINE A SVOLGERE UNA DETERMINATA FUNZIONE. E MISURATA DAL RAPPORTO TRA I RISULTATI CONSEGUITI E LE RISORSE IMPIEGATE

Dettagli

POLYEDRO. La migliore piattaforma tecnologica di sempre per EMBYON, l evoluzione dell ERP Metodo

POLYEDRO. La migliore piattaforma tecnologica di sempre per EMBYON, l evoluzione dell ERP Metodo POLYEDRO La migliore piattaforma tecnologica di sempre per EMBYON, l evoluzione dell ERP Metodo 1 Indice Chi siamo La tecnologia POLYEDRO EMBYON 4 8 12 Siamo nati in Italia, siamo leader in Italia. TeamSystem

Dettagli

Innovare per competere

Innovare per competere Innovare per competere il ruolo del CRM come elemento di crescita nelle vendite workshop a cura di: Giulia Zaia Veneto Ricerche Customer Relationship Management CRM ovvero gestione delle relazioni con

Dettagli

Il CRM per la Gestione del Servizio Clienti

Il CRM per la Gestione del Servizio Clienti Scheda Il CRM per la Gestione del Servizio Clienti Le Soluzioni CRM aiutano le aziende a gestire i processi di Servizio e Supporto ai Clienti. Le aziende di Servizio stanno cercando nuove modalità che

Dettagli

I SISTEMI DI PERFORMANCE MANAGEMENT

I SISTEMI DI PERFORMANCE MANAGEMENT http://www.sinedi.com ARTICOLO 8 GENNAIO 2007 I SISTEMI DI PERFORMANCE MANAGEMENT In uno scenario caratterizzato da una crescente competitività internazionale si avverte sempre di più la necessità di una

Dettagli

Indagine su: L approccio delle aziende e delle associazioni nei confronti dell accessibilità dei siti web

Indagine su: L approccio delle aziende e delle associazioni nei confronti dell accessibilità dei siti web Indagine su: L approccio delle aziende e delle associazioni nei confronti dell accessibilità dei siti web Gennaio 2005 Indice Introduzione Obiettivo e metodologia dell indagine Composizione e rappresentatività

Dettagli

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone

BASI DI DATI per la gestione dell informazione. Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone BASI DI DATI per la gestione dell informazione Angelo Chianese Vincenzo Moscato Antonio Picariello Lucio Sansone Libro di Testo 22 Chianese, Moscato, Picariello e Sansone BASI DI DATI per la Gestione dell

Dettagli

WorkFLow (Gestione del flusso pratiche)

WorkFLow (Gestione del flusso pratiche) WorkFLow (Gestione del flusso pratiche) Il workflow è l'automazione di una parte o dell'intero processo aziendale dove documenti, informazioni e compiti vengono passati da un partecipante ad un altro al

Dettagli

Organizzazione e pianificazione delle attività di marketing

Organizzazione e pianificazione delle attività di marketing Organizzazione e pianificazione delle attività di marketing Il continuum delle strutture tra efficienza ed efficacia Struttura funzionale Struttura divisionale Struttura a matrice Struttura orizzontale

Dettagli

AMMINISTRARE I PROCESSI

AMMINISTRARE I PROCESSI LE SOLUZIONI AXIOMA PER LE AZIENDE DI SERVIZI AMMINISTRARE I PROCESSI (ERP) Axioma Value Application Servizi Axioma, che dal 1979 offre prodotti software e servizi per le azienda italiane, presenta Axioma

Dettagli

L ergonomia dei sistemi informativi

L ergonomia dei sistemi informativi Strumenti non convenzionali per l evoluzione d Impresa: L ergonomia dei sistemi informativi di Pier Alberto Guidotti 1 L ergonomia dei sistemi informativi CHI SONO Pier Alberto Guidotti Fondatore e direttore

Dettagli

03. Il Modello Gestionale per Processi

03. Il Modello Gestionale per Processi 03. Il Modello Gestionale per Processi Gli aspetti strutturali (vale a dire l organigramma e la descrizione delle funzioni, ruoli e responsabilità) da soli non bastano per gestire la performance; l organigramma

Dettagli

LTA Starts you up! è un servizio svolto in collaborazione con LTA e

LTA Starts you up! è un servizio svolto in collaborazione con LTA e LTA STARTS YOU UP! FATTIBILITA DI BUSINESS E RICERCA PARTNER FINANZIARI E INDUSTRIALI In un momento in cui entrare nel mondo imprenditoriale con idee nuove e accattivanti diventa sempre più difficile e

Dettagli

LESS IS MORE MODELLO PER LA COMPILAZIONE DEL BUSINESS PLAN PROGETTO D IMPRESA LESS IS MORE

LESS IS MORE MODELLO PER LA COMPILAZIONE DEL BUSINESS PLAN PROGETTO D IMPRESA LESS IS MORE LESS IS MORE MODELLO PER LA COMPILAZIONE DEL BUSINESS PLAN PROGETTO D IMPRESA LESS IS MORE INDICE DEL BUSINESS PLAN 1. SINTESI DEL PROGETTO IMPRENDITORIALE 2. LA COMPAGINE IMPRENDITORIALE 3. LA BUSINESS

Dettagli

Creare una Rete Locale Lezione n. 1

Creare una Rete Locale Lezione n. 1 Le Reti Locali Introduzione Le Reti Locali indicate anche come LAN (Local Area Network), sono il punto d appoggio su cui si fonda la collaborazione nel lavoro in qualunque realtà, sia essa un azienda,

Dettagli

Il cloud per la tua azienda.

Il cloud per la tua azienda. Il cloud per la tua azienda. Questo è Microsoft Cloud Ogni azienda è unica. Dalla sanità alla vendita al dettaglio, alla produzione o alla finanza, non esistono due aziende che operano nello stesso modo.

Dettagli

L attenzione verso i collaboratori e la loro formazione, perché l azienda non cresce se i collaboratori restano indietro.

L attenzione verso i collaboratori e la loro formazione, perché l azienda non cresce se i collaboratori restano indietro. 1 Chi siamo Mericom è una delle più consolidate realtà nell ambito delle vendite, del marketing e della comunicazione. Siamo sul mercato con successo da 15 anni e abbiamo realizzato grandi progetti anche

Dettagli

E il momento di iniziare: le fondamenta del fundraising

E il momento di iniziare: le fondamenta del fundraising ENGAGEDin propone corsi di formazione per le organizzazioni che vogliono avviare o sviluppare la propria attività di raccolta fondi attraverso la crescita delle proprie competenze, la discussione di casi

Dettagli

MODULO 5 Appunti ACCESS - Basi di dati

MODULO 5 Appunti ACCESS - Basi di dati MODULO 5 Appunti ACCESS - Basi di dati Lezione 1 www.mondopcnet.com Modulo 5 basi di dati Richiede che il candidato dimostri di possedere la conoscenza relativa ad alcuni concetti fondamentali sui database.

Dettagli

Sito web per la presentazione e l accesso ai servizi di Ruven integrato con la piattaforma B2B del pacchetto software ERP Stratega.NET.

Sito web per la presentazione e l accesso ai servizi di Ruven integrato con la piattaforma B2B del pacchetto software ERP Stratega.NET. Nome soluzione Ruven S.r.l. Settore: Cosmetica Descrizione Sito web per la presentazione e l accesso ai servizi di Ruven integrato con la piattaforma B2B del pacchetto software ERP Stratega.NET. MediaFile

Dettagli

Area Marketing. Approfondimento

Area Marketing. Approfondimento Area Marketing Approfondimento CUSTOMER SATISFACTION COME RILEVARE IL LIVELLO DI SODDISFAZIONE DEI CLIENTI (CUSTOMER SATISFACTION) Rilevare la soddisfazione dei clienti non è difficile se si dispone di

Dettagli

DALLA PARTE DEGLI ALTRI OPERATORI ECONOMICI. La nostra risposta alle esigenze della tua attività.

DALLA PARTE DEGLI ALTRI OPERATORI ECONOMICI. La nostra risposta alle esigenze della tua attività. DALLA PARTE DEGLI ALTRI OPERATORI ECONOMICI La nostra risposta alle esigenze della tua attività. LA BANCA COME TU LA VUOI DALLA PARTE DEGLI ALTRI OPERATORI ECONOMICI La nostra risposta alle esigenze della

Dettagli

CHI SIAMO. Viale Assunta 37 20063 Cernusco s/n Milano 02-92107970 info@cimscarl.it

CHI SIAMO. Viale Assunta 37 20063 Cernusco s/n Milano 02-92107970 info@cimscarl.it CHI SIAMO C.I.M. non è un comune consorzio ma una società consortile creata dopo approfonditi studi ed esperienze maturate da un gruppo di specialisti in grado di operare in molte aree geografiche del

Dettagli

PARTNER DI PROGETTO. Università degli Studi di Palermo Dipartimento di Ingegneria Industriale

PARTNER DI PROGETTO. Università degli Studi di Palermo Dipartimento di Ingegneria Industriale PARTNER DI PROGETTO Il raggruppamento dei soggetti attuatori è altamente qualificato. Da una parte, la presenza di quattro aziende del settore ICT garantirà, ognuna per le proprie aree di competenza, un

Dettagli

Capitale Intangibile. Le Le Competenze e l Esperienza al al Servizio del Fare. LA MULTICOMPETENZA del Gruppo dirigenti Fiat

Capitale Intangibile. Le Le Competenze e l Esperienza al al Servizio del Fare. LA MULTICOMPETENZA del Gruppo dirigenti Fiat Capitale Intangibile Le Le Competenze e l Esperienza al al Servizio del Fare LA MULTICOMPETENZA del Gruppo dirigenti Fiat 1 Introduzione L Impresa deve affrontare sfide sempre più complesse e spesso l

Dettagli

UN APP FLESSIBILE E INTUITIVA PER GESTIRE I TUOI AFFARI IN TUTTA COMODITÀ

UN APP FLESSIBILE E INTUITIVA PER GESTIRE I TUOI AFFARI IN TUTTA COMODITÀ UN APP FLESSIBILE E INTUITIVA PER GESTIRE I TUOI AFFARI IN TUTTA COMODITÀ APP Mobile MIGLIORA LA QUALITÀ DEL RAPPORTO CON I CLIENTI, SCEGLI LA TECNOLOGIA DEL MOBILE CRM INTEGRABILE AL TUO GESTIONALE AZIENDALE

Dettagli

DELIANet di Amedeo Foti. DELIANet. Frazione Bovaye 10 11010 Pontey (AO) Telefono: 3482841934 Fax: 0166 30106

DELIANet di Amedeo Foti. DELIANet. Frazione Bovaye 10 11010 Pontey (AO) Telefono: 3482841934 Fax: 0166 30106 DELIANet di Amedeo Foti Frazione Bovaye 10 11010 Pontey (AO) Telefono: 3482841934 Fax: 0166 30106 web: http://www.delianet..eu email: info@delianet.it DELIANet WebAgency WebSolutions WebMarketing L AZIENDA

Dettagli

MODELLO ORGANIZZATIVO REGIONALE PER LA GESTIONE DEL RISCHIO CLINICO.

MODELLO ORGANIZZATIVO REGIONALE PER LA GESTIONE DEL RISCHIO CLINICO. ALLEGATO A MODELLO ORGANIZZATIVO REGIONALE PER LA GESTIONE DEL RISCHIO CLINICO. il sistema organizzativo che governa le modalità di erogazione delle cure non è ancora rivolto al controllo in modo sistemico

Dettagli

Network Monitoring. Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale

Network Monitoring. Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale Network Monitoring & Introduzione all attività di Network Monitoring introduzione a Nagios come motore ideale Nicholas Pocher Poker SpA - Settimo Torinese, Novembre 2013 1 Indice Il Network Monitoring:

Dettagli

GENERALITÀ SULLA CUSTOMER SATISFACTION

GENERALITÀ SULLA CUSTOMER SATISFACTION GENERALITÀ SULLA CUSTOMER SATISFACTION Giuseppe Cicconi IL MODELLO DI GENERAZIONE DELLA CUSTOMER SATISFACTION Caratteristica dell'offerta Funzionalita' "Immagine - esperienze passate con l azienda Valore

Dettagli

Le sfide della nuova direttiva per la centrale di committenza

Le sfide della nuova direttiva per la centrale di committenza Le sfide della nuova direttiva per la centrale di VALUTAZIONE DELL EFFICIENZA E DELL EFFICACIA DELLA DIRETTIVA 2004/18 1 Frammentazione ed eterogeneità delle stazioni appaltanti (250.000); 2 Le piccole

Dettagli

delle aziende in Italia:

delle aziende in Italia: Livello di rischiosità delle aziende in Italia: Lombardia Dati aggiornati a Dicembre 2012 Marketing CRIBIS D&B Agenda Distribuzione delle aziende nella regione Analisi del livello di rischiosità Confronto

Dettagli

Data warehouse Introduzione

Data warehouse Introduzione Database and data mining group, Data warehouse Introduzione INTRODUZIONE - 1 Pag. 1 Database and data mining group, Supporto alle decisioni aziendali La maggior parte delle aziende dispone di enormi basi

Dettagli