Capitolo 2 Big Data - Unime

Transcription

Capitolo 2Big Data2.1 Cosa sono i Big DataNel precedente capitolo si è detto che l’istituto di ricerca Gartner prevede per il 2020quasi 30 miliardi di devices IoT connessi alla Rete. Questo grande numero di nuovidispositivi connessi a Internet raccoglieranno e genereranno una enorme quantità di datiche verrà inserita in Rete. Con la diffusione delle tecnologie IoT, si registrerà quindi unacrescita esponenziale della disponibilità di dati, sia strutturati (database, transazionionline, log files) che non strutturati (immagini, informazioni legate ai social network,dati GPS, dati dei sensori), così massivi e in rapido cambiamento da non poter essereprocessati usando le tradizionali tecniche di analisi, come ad esempio i databasestrutturati. Il mondo dell’Internet of Things avrà quindi a che fare con i Big Data daesso generati.I Big Data sono dei set di dati così grandi e complessi da necessitare strumenti adeguatie diversi dai tradizionali per la loro cattura, lo storage, la ricerca, la condivisione, iltrasferimento, l'analisi e la visualizzazione.22

CAPITOLO 2BIG DATACome l’IoT, anche quello di Big Data è un concetto ancora recente e in cui ancora nonsi è giunti a definizioni standard. Come suggerisce il termine stesso, la primacaratterizzazione dei Big Data è legata alla grandezza dei dati, il cui punto diriferimento è già sull’ordine dei terabyte (1024 gigabyte), dei petabyte (1024 terabyte) eanche di più fino agli zettabyte (miliardi di terabyte). E’ facile capire come processarequesti dati significa disporre di soluzioni di calcolo parallelo e massivo su anchemigliaia di server dedicati.Ma Big Data non significa soltanto dati voluminosi, ma significa soprattutto daticomplessi. Infatti insieme al volume, l’etichetta include anche altre due caratteristiche:varietà e velocità, a completare le caratteristiche principali dei Big Data che si possonoriassumere nelle tre “V”.Figura 2.1: Caratteristiche dei Big Data: le tre “V”23

CAPITOLO 2BIG DATAQuindi non solo volume, inteso come proprietà di acquisire, memorizzare ed accedere agrandi quantità di dati, ma anche varietà, riferita all’eterogeneità dei dati, provenientida fonti diverse (strutturate e non), e velocità, cioè gestione di dati che cambianorapidamente e che necessitano di tecniche che rendano la loro analisi più velocepossibile (real-time). Tra gli addetti ai lavori si sta considerando la definizione di unaquarta “V”, ossia la veridicità, che misura il potenziale informativo del dato e la suaintegrità, nonché la sua qualità al fine di essere analizzato, nonché di una quinta, ilvalore economico legato ad un uso smart da parte della aziende dei Big Data a lorodisposizione.Le caratteristiche dei Big Data fanno capire come si renda necessaria una analisi chepossa rendere possibile l’estrazione di informazioni da un grande ed unico insieme didati eterogenei ed in continuo cambiamento. Ad esempio analizzando il fiumeinarrestabile di dati che transitano su Internet per avere informazioni sui trend dellasocietà o per sondare i mercati.In campo economico e non solo sta crescendo la consapevolezza di come una gestionesmart dei Big Data possa anche e soprattutto aiutare a scoprire nuovi modi dimigliorare i processi decisionali e le prestazioni.Qual è la maggiore challenge dei Big Data?Convertire la grande, eterogenea e rapidamente variabile mole di dati in informazioniusabili, attraverso patterns e modelli di analisi generati da tali patterns: questa è la sfidadei Big Data.Diverse realtà stanno già cercando delle soluzioni per realizzare questo. Gli sviluppatorie i fornitori di software certificati in Business Intelligence che stanno lavorando sui BigData sono in aumento, trasformando la gestione di questi dati in un settore in grandeespansione con attori sia nel privato che nella comunità open source. Contributi incampo privato già esistono attraverso aziende come SAP, Oracle, HP e IBM, ma è dal24

CAPITOLO 2BIG DATAmondo open source che sta arrivando la spinta decisiva all’innovazione nel campo dellagestione dei Big Data attraverso software come Apache Hadoop, Cascading, ApacheHBase, MongoDB, Apache Storm e altri.Già oggi i Big Data sono una realtà, e l’ascesa dell’IoT non farà altro che produrne inquantità esponenzialmente maggiore. Secondo IBM [8], vengono creati ogni giorno 2,5quintilioni (1030) bytes di dati, che significa che negli ultimi due anni sono stati creati il90% dei dati presenti in Rete; eBay possiede tre sistemi di storage distribuito per unacapacità complessiva di 90PB [9]; i sistemi informatici della catena di negozi Walmartgestiscono ogni ora un milione di transazioni di acquisti online, che vengono registratisu database che contengono 2,5 petabytes di dati [10]; Facebook gestisce 50 miliardi difoto nei suoi database, e ovviamente questo numero cresce costantemente [11].Con la crescita del numero dei dispositivi e delle operazioni che generano flussi di datisempre più complessi, usare i Big Data in modo efficace sta rapidamente diventando unsignificativo vantaggio per molte aziende. Già da anni si discute sul grande valore chehanno i dati. Questi dati diventeranno sempre più voluminosi, eterogenei e rapidi e saràdecisivo cercare sempre migliori soluzioni per sfruttarli e raccogliere nuovi edemergenti tipi di dati per prendere decisioni e rispondere a domande che primadell’avvento dei Big Data erano considerati fuori portata.2.2 Aree di applicazioneLa gestione smart dei Big Data è un grande elemento di innovazione e diventerà semprepiù parte integrante dei modelli di analisi economica, migliorando la capacità del settoredi competere a livello globale. Ovviamente, fare il migliore uso possibile di questi datirichiederà la crescita di un settore dedicato che si occupi di analisi predittiva e dati raw.Di seguito alcuni esempi di applicazioni già esistenti del concetto di analisi dei Big Datae anche delle potenziali aree in cui lo sfruttamento di questi dati può avere moltoimportanza.25

CAPITOLO 2 BIG DATABig Data for ConsumersBig Data significa anche dati prodotti dai consumatori e la loro analisi intelligente nonpotrà che produrre benefici per questi ultimi. Ad esempio, l’elevato grado dipersonalizzazione perseguito da compagnie come Netflix e Amazon nel consigliarel’utente circa l’acquisto di prodotti si basa sull’analisi delle sue precedenti interazioni edè frutto di una analisi massiva su grandi moli di dati. Già da anni diversi serviceproviders come Comcast e Verizon monitorano in modo proattivo i computer dei loroclienti al fine di rilevare infezioni da virus e malware. Lo stesso completamentoautomatico di Google e il servizio di traduzione si basano su una grande raccolta di datie operano attraverso la loro analisi real-time. Big Data for CommunityDella raccolta e l’utilizzo dei dati beneficia non solo il consumatore, ma anche in sensolato la comunità. Esempi dell’uso dei Big Data in tal senso sono ad esempio i potenzialiservizi da offrire a clienti di un determinato prodotto o a residenti di una determinataarea geografica. Analizzando i feedback forniti dai consumatori sui prodotti siconferiscono vantaggi a tutta la comunità che li utilizza. Big Data for OrganizationsI Big Data forniscono indubbiamente una visibilità senza precedenti nel campocommerciale in cui è possibile sondare approfonditamente i processi decisionali deiclienti, consentendo alle aziende di analizzare, monitorare e anche creare modelli diacquisto utili a incentivare le vendite. I Big Data possono essere sfruttati per affrontarele situazioni in cui le informazioni sono frammentate in diversi sistemi non collegati traloro centralmente. Aggregando i dati tra i sistemi e gestendoli in modo distribuito, èpossibile sfruttare le potenzialità delle grandi quantità di informazioni. La gestione deiBig Data può anche apportare miglioramenti nei processi produttivi offrendo unamigliore visibilità sulle questioni operative, ad esempio raccogliendo i dati emessi dai26

CAPITOLO 2BIG DATAcomputer, dai sensori, dai GPS o dai misuratori. Con più dati a disposizione, le aziendepossono ottimizzare i metodi di distribuzione, allocare efficientemente il credito ed ingenerale beneficiare il cliente. Big Data for ManifacturingUsare i Big Data nella produzione industriale significa apportare decisivi miglioramentinella pianificazione dei processi e nella qualità dei prodotti. L’analisi dei datiprovenienti dalle diverse fasi del processo produttivo fornisce una inedita infrastrutturaper la gestione industriale, permettendo di avere conoscenza maggiore che in passatocirca ad esempio le prestazione dei componenti, eventuali guasti e le velocità di lavoro.Nuovi approcci come la produzione predittiva per sfruttare i tempi di inattività eaumentare la conoscenza le fasi poco trasparenti del processo industriale si stannoaffermando. Attraverso i dati eterogenei generati da diversi tipi di sensori e relativi amisure di pressione, tensione, corrente, acustica e vibrazioni si costruiscono dei patternse dei modelli al fine di ottenere degli stumenti predittivi e delle strategie preventive perla programmazione e la gestione dei processi. Big Data for SocietyDa non sottovalutare è anche l’utilità sociale dell’uso dei Big Data, come ad esempionel caso di Data Mining per finalità di sicurezza nazionale o di analisi su larga scala deidati di geo-localizzazione per la pianificazione urbana, gestione di situazioni diemergenza, ottimizzazione dei consumi energetici. Big Data for SecurityAltro importante campo di applicazione dell’uso dei Big Data è quello della sicurezzainformatica. Attraverso l’accesso real-time ai dati, è possibile migliorare le piattaformedi sicurezza, attraverso l’analisi di una più ampia varietà di tipi di dati da elaborare checontribuisce a migliorarne l’intelligenza. Allo stesso modo, l’uso di questi dati per il27

CAPITOLO 2BIG DATArilevamento delle frodi nel settore delle carte di credito aiuta a fare in modo che letransazioni finanziare siano sicure.2.3 Big Data AnalyticsCome anticipato ad inizio capitolo, i Big Data non si prestano ad un tipo di analisi ditipo tradizionale, come ad esempio quella effettuata attraverso i database relazionali.Richiedono piuttosto l’analisi attraverso software massicciamente parallelo inesecuzione in modo distribuito. Nasce quindi l’esigenza, al fine di convertire questogrande insieme di dati in informazioni utili, di definire strumenti e tecniche nuove edadatte alla natura dei Big Data.Vanno sotto il nome di Big Data Analytics i processi di raccolta, organizzazione edanalisi di grandi set di dati eterogenei e in rapido cambiamento al fine di scoprirepatterns, correlazioni e altre informazioni utili.Questo tipo di analisi quindi non solo aiuta a estrarre l’informazione contenutanell’insieme dei dati, ma si occupa anche di catalogare e gestire i dati che si configuranosempre più come il fattore più importante, in campo aziendale, per le scelte strategiche.Il risultato che gli analisti di Big Data quindi ricercano è principalmente la conoscenzache viene dai dati stessi.L’analisi dei Big Data si configura come una operazione tutt’altro che semplice, doveentra in gioco oltre alla bontà agli strumenti informatici utilizzati, anche la necessità dicostruire delle soluzioni smart per riuscire ad estrarre dall’insieme eterogeneo evolatile nel minor tempo possibile e col minor dispendio di risorse il maggior numero diinformazioni utili.Le operazioni di Big Data Analytics sono in genere eseguite utilizzando strumentisoftware specializzati e applicazioni per l’analisi predittiva, data mining (estrazione diconoscenza a partire da grandi quantità di dati), text mining (data mining basato su dati28

CAPITOLO 2BIG DATAtestuali), forecasting (studio attraverso algoritmi di previsione) e ottimizzazione dei dati.Queste tecniche, tutte delle funzioni distinte con obiettivi diversi, sono fortementeintegrate nell’analisi dei Big Data.Si iniziò a parlare di Big Data Analytics già dal 2004, quando Google pubblicò un paper[12] in cui descriveva una nuova architettura chiamata MapReduce.Questo framework fu pensato per fornire un modello di elaborazione parallela eimplementazione distribuita per processare grandi quantità di dati. AttraversoMapReduce, le query vengono divise e distribuite su nodi paralleli e processate in mododistribuito (la fase Map). I risultati dell’elaborazione vengono poi raccolti e consegnati(fase Reduce). Il framework ebbe molto successo, così che l’algoritmo MapReducefornì l’ispirazione per la creazione di nuove soluzioni. Ad esempio, unaimplementazione del framework fu adottata da un progetto open source di Apache,Hadoop [13], che ancora oggi è lo strumento più diffuso per la Big Data Analytics.Attualmente la strada maggiormente intrapresa per implementare soluzioni di Big DataAnalytics è l’uso di architetture a livelli multipli, cioè di architetture parallele edistribuite in cui i dati vengono disposti su più unità di elaborazione. Il calcolo paralleloprocessa i dati molto più velocemente, consentendo una maggiore rapidità diottenimento dei risultati. In questo tipo di architettura i dati sono gestiti in DBMSdistribuiti, che lavorano parallelamente implementando l’uso di frameworkMapReduce come Hadoop. L’utente finale, attraverso un front-end application server,tiene traccia del processo di analisi grazie agli strumenti forniti dal framework.Alcuni esempi di questo tipo di architetture saranno trattate di seguito e fornirannospunti per le scelte attuate nella progettazione e nell’implemetazione delle soluzionismart obiettivo di questo lavoro di tesi.29

CAPITOLO 2BIG DATA2.3.1 Three-Level ArchitectureIl concept alla base dell’idea di analizzare i Big Data attraverso più livelli di gestione edi elaborazione è quello di assegnare carichi di lavoro e tasks a sistemi che lavorano edemettono risultati a latenze diverse.Costruire un sistema di elaborazione a più livelli, in questo caso specificatamente a tre,è un concetto mutuato dallo storage a 3 livelli, in cui questi diversi livelli indicanoproprio la possibile latenza di accesso alle informazioni immagazzinate nei database.Dallo storage si è pensato quindi di applicare il concetto di latenze diverse a quello dielaborazione dei dati.I tre livelli di questa architettura sono i seguenti: ONLINE PROCESSING,NEARLINE PROCESSING, OFFLINE PROCESSING. ONLINE PROCESSINGQuesto livello si occupa della ricezione real-time dei dati, della loro elaborazione edell’emissione, sempre real-time, dei risultati. La caratteristica fondamentale di questolivello è quello della velocità di elaborazione ed emissione, per cui generalmente nongestisce dati troppo grandi e lavora con algoritmi snelli e semplici. NEARLINE PROCESSINGIl Nearline è un livello Database-oriented; generalmente infatti esso si occupa dellostorage dei dati, che possono venir usati per sia per le computazioni online che perquelle online. Può anche contenere un proprio stadio di computazione, in cui glialgoritmi sono più complessi del livello Online e per questo serve risultati con velocitàminore.30

CAPITOLO 2 BIG DATAOFFLINE PROCESSINGIn questo livello è prevista l’elaborazione batch dei dati, attraverso jobs pesanti e conlatenza più estesa che negli altri livelli. Gli algoritmi usati Offline possono essere moltocomplessi, con pontenzialmente nessuna limitazione alla grandezza dei dati daprocessare. A questo livello è riservato il compito di creare nuovi patterns e modelli digestione dei dati e di servire da strato di backup computazionale in assenza del livelloOnline.Perché una elaborazione dei dati a 3 livelli?La sola elaborazione batch/offline dei dati fa correre il rischio di avere dati stantii edinoltre le applicazioni che le useranno non avranno gli input più recenti da elaborare.L’ architettura a 3 livelli per la Big Data Analytics è già comune tra diverse realtà, checon sfumature diverse e adattandola alle proprie esigenze e necessità, la usano per lagestione delle grandi moli di dati. Di seguito alcuni interessanti casi d’usodell’architettura.- NETFLIXNetflix è una società statunitense che offre, tra gli altri, un servizio di streaming onlineon demand di media e prodotti cinematografici. Usando l’architettura a 3 livelli [14],Netflix elabora i dati in modi diversi, a seconda della velocità con cui i risultati devonoessere serviti ai clienti o alla valutazione interna. Con la propria architettura software dianalisi dei Big Data, questa azienda si pone l’obiettivo di essere sensibileall’interazione degli utenti arricchendola con nuovi strumenti dati proprio da questo tipodi analisi, come un sistema di raccomandazione e di advertising personalizzato.Tutta l’architettura, i software e lo storage di Netflix sono ospitati sulla piattaforma diCloud Computing Amazon Web Services (AWS).31

CAPITOLO 2BIG DATAFigura 2.2: Architettura a 3 livelli di NetflixNella figura 2.2, lo schema del sistema globale dell’architettura a 3 livelli usata daNetflix, in cui gli strati di elaborazione Online, Nearline e Offline concorrono amigliorare l’esperienza dell’utente gestendo e analizzando i Big Data.32

CAPITOLO 2BIG DATAUna delle questioni chiave di questo tipo di architettura è quella di combinare e gestire idiversi tipi di computazione in modo smart e continuativo.Il livello Online dell’architettura Netflix risponde rapidamente agli eventi e utilizza idati più recenti. Uno use case delle funzionalità Online è ad esempio quello di generaree suggerire al cliente una galleria di film in base alle ultime selezioni effettuate.All’altra estremità dell’architettura, il livello Offline consente scelte algoritmiche piùcomplesse e quasi nessuna limitazione sulla quantità di dati da utilizzare. Un esempiodell’uso di questo livello è quello di stilare periodicamente delle statistiche aggregatesulla base di tutti i film visti e compilare metriche di popolarità di base da usare neisuggerimenti da dare all’utente.Il livello Nearline può essere visto come un compromesso tra i due livelli precedenti. Inquesto caso, i risultati della computazione non hanno la necessità di essere emessi inmodo real-time, ma possono essere memorizzati in sistemi di storage per poter ancheessere usati in future elaborazioni online o offline. Questo permette un calcolo piùcomplesso ed algoritmi maggiormente elaborati: un esempio è quello di riuscire adaggiornare le proposte all’utente sulla base delle ultime scelte degli altri clienti.Un importante concetto presente in questa architettura è quello di Machine Learning.Algoritmi di apprendimento automatico e personalizzazione basata sui dati ricevuti sonopresenti in tutti i livelli della computazione, anche se la maggior parte del lavoro in talsenso viene svolta Offline. La loro esecuzione è programmata per essere svoltaperiodicamente e non ha bisogno di essere sincrona con la presentazione dei risultati.L’attività che rientra in questa categoria sono il Model Training. Durante i jobs diModel Training, vengono raccolti dati pertinenti e attraverso un algoritmo di MachineLearning si producono una serie di parametri che costituiranno il modello. Quest’ultimodi solito è codificato e memorizzato in un file per un uso successivo. Sebbene lamaggior parte dei modelli siano generati Offline in modalità batch, anche a livello33

CAPITOLO 2BIG DATAOnline e Nearline vengono eseguiti degli algoritmi di Machine Learning,principalmente di tipo incrementale. La computazione batch si serve dei modelligenerati Offline e dei dati corrispondenti che li hanno generati per elaborare i risultati.I dati da processare hanno bisogno di essere raffinati, per cui generalmente si usanodelle query. Dal momento che queste query devono essere eseguite su una enormequantità di dati, può essere utile eseguirle in modo distribuito attraverso degli strumenticome Apache Hive (infrastruttura di data warehouse per effettuare query e analisi didati) e Apache Pig (piattaforma ad alto livello per la creazione di software MapReduce)accoppiati ad Apache Hadoop (framework che supporta applicazioni distribuite conelevato accesso di dati).Una volta eseguite le query, è necessario un meccanismo di pubblicazione dei risultati,che notifichi l’ottenimento degli stessi, si occupi del loro storage, gestisca gli erroripermettendo il monitoraggio. Netflix sotto questo punto di vista usa una soluzionesoftware interna, Hermes.Figura 2.3: Tipi di input gestiti dall’architettura Netflix34

CAPITOLO 2BIG DATAI tipi di input che l’architettura Netflix gestisce rientrano in tre categorie: modelli, datie segnali. I modelli sono, come già visto, file di parametri creati generalmente Offline; idati sono le informazione precedentemente elaborati e conservati a livello Nearline nellepiattaforme di storage (ad esempio metadati sui film o sulla popolarità degli stessi). Isegnali si riferiscono alle nuove informazioni, provenienti dal livello Online e che sonorelative all’interazione dell’utente (che film ha visto di recente, da che dispositivo, a cheora è stato visto, ecc.).Il sistema di storage di Netflix è contenuto nel livello Nearline, e consiste in varierepository: MySQL, Apache Cassandra, EVCache.MySQL consente la memorizzazione di dati strutturati relazionali: tuttavia i Big Datapossono essere anche non strutturati, e per la loro gestione è necessario lavorare consoluzioni distribuite e database scalabili. Cassandra in questo senso viene in aiuto,trattandosi di uno dei più diffusi DBMS non relazionali ottimizzato per gestire grandiquantità di dati in modo distribuito. Nel caso di operazioni di scrittura intense e costantiNetflix usa una soluzione interna di data store, EVCache.L’obiettivo di Netflix è quello di utilizzare i dati dell’interazione utente in informazioniutili per migliorare l’esperienza del cliente stesso. Per fare ciò è necessario catturarequanti più eventi possibile da tale interazione attraverso le interfacce utente (smart tv,tablets, console di gioco): dati di navigazione, di visualizzazione, o anche i sempliciclick effettuati. Come descritto, attraverso algoritmi di Machine Learning l’obiettivo èquello di lavorare i dati provenienti dall’utente per offrirgli soluzioni personalizzate.Queste soluzioni possono provenire da liste precedente calcolate sull’esperienza di altriutenti (esempio di Offline Processing) o generati real-time attraverso gli algoritmiOnline.35

CAPITOLO 2-BIG DATALINKEDINLinkedIn è un social network business-oriented impiegato principalmente per losviluppo di contatti professionali.E’ un servizio molto diffuso che ha raggiunto numeri ragguardevoli: 200 milioni diutenti in tutto il mondo, 2 nuovi utenti al secondo, 100 milioni di visitatori al mese.L’enorme afflusso di dati che continuamente transitano e vengono inseriti sui propriserver ha posto LinkedIn davanti alla challenge della gestione dei Big Data generati dalservizio.Anche questa azienda adotta, per la gestione e l’analisi dei Big Data, una architettura a 3livelli, o meglio secondo il concept di LinkedIn a 3 fasi: sistemi Online, Nearline eOffline, ciascuno progettato per carichi di lavoro specifici [15]. L’obiettivo nellacostruzione dell’architettura è stato quello di creare piattaforme e soluzioni perbilanciare i costi con la complessità dei dati e semplificare il continuum dei datiattraverso le tre fasi di elaborazione. Tutto questo per fornire all’utente servizidifferenziati a diversi gradi di latenza nel modo più efficiente possibile.La gestione dei profili utente richiede grandi dataset ma deve contemporaneamenteconsentire alte velocità di accesso e di aggiornamento dei dati; servizi come “PeopleYou May Know” (Persone che potresti conoscere), in cui LinkedIn suggerisce all’utentei contatti, si basa su algoritmi che lavorano su grandi quantità di dati e richiedono molterisorse di computazione per fornire accessi veloci; LinkedIn Today, servizio di newssharing, è sviluppato su dataset distribuiti e l’aggiornamento delle notizie deve esserecostante.Esigenze diverse per servizi diversi: questo ciò che ha portato LinkedIn ha sviluppare lapropria architettura di Big Data Analytics su più livelli.36

CAPITOLO 2BIG DATAFigura 2.4: Infrastruttura per gestione Big Data di LinkedInIn figura 2.4 è rappresentata l’astrazione high-level delle tre fasi con cui LinkedIngestisce l’architettura. Come Netflix e come previsto da questo tipo di concept, ladifferenziazione è mappata sulle diverse latenze e le diverse tempistiche richieste perl’ottenimento dati. Gli obiettivi da raggiungere sono complessi e poche tecnologie a séstanti non possono affrontarle, così questa architettura si configura come unacombinazione di frameworks e tecnologie per soddisfare i requisiti richiesti.Nello stack Online vengono gestite le interazione real-time dell’utente, attraversodatabase relazionali come Oracle e un data store distribuito e document-orientedcostruito internamente all’azienda chiamato Espresso. Fa largo uso di indici ed è dotatodi strumenti per modificare le funzionalità e i target di raccolta dei dati. Rientrano inquesto livello la gestione dei profili utente e dei profili azienda, nonché altrefunzionalità come i messaggi.37

CAPITOLO 2BIG DATAIl livello Nearline si occupa di servizi come la ricerca, le news, i suggerimentiall’utente, i Social Graph che vengono aggiornati quasi costantemente. Il framework dipunta utilizzato in questo stack è Voldemort, sistema di storage distribuito ed altamentescalabile anche questo autoprodotto da LinkedIn.Elaborazione batch e ingenti carichi di lavoro analitici sono competenza dello stackOffline, costituito principalmente da warehouse Hadoop e Teradata. Attraversoalgoritmi di Machine Learning vengono gestiti i dati e organizzati per ranking epertinenza.Non è considerato un livello ma è molto importante nell’architettura di LinkedIn laPipeline, ovvero il sistema di interconnessione e comunicazione tra gli stack.Messaggistica, monitoring, affidabilità, coerenza e bassa latenza sono le caratteristichedella Pipeline, costruita attraverso un software creato internamente all’azienda, Databus,in grado di modificare i flussi di acquisizione dati, e Apache Kafka, sistema dimessaggistica open source a bassa latenza ed alta produttività.A diversi livelli lavorano altri componenti software sviluppati da Linkedin, come adesempio Helix, framework per gestione dei cluster che si occupa delle risorse distribuitee su un cluster di nodi e della loro gestione automatica.Azkaban è un altro software creato in azienda ed usato per la schedulazione, ilmonitoraggio e la configurazione dei workflow, che permette l’associazione di processiindipendenti in un unico workflow che viene programmato ed eseguito periodicamente.38

CAPITOLO 2BIG DATA2.3.2 Lambda ArchitectureL’architettura Lambda [16] per l’analisi dei Big Data è stata originariamente pensata daNathan Marz, noto nella community per il suo lavoro nel progetto Storm, che verràpresentato più avanti.Questo tipo di architettura propone un paradigma studiato per gestire la complessitàdell’analisi di grandi moli di dati pur essendo in grado di memorizzarli ed elaborarliefficacemente. Mira infatti a soddisfare le esigenze di un sistema robusto che sia faulttolerant e che sia in grado di gestire una vasta gamma di carichi di lavoro e di casid’uso, in cui accessi ai dati a bassa latenza e frequenti aggiornamenti sono necessari. Ilrisultato è quello di avere una architettura linearmente ed orizzontalmente scalabile edistribuita. I principi alla base dell’architettura Lambda sono tre: Human fault-tolerance: il sistema non deve essere soggetto a perdite o corruzione di dati dovuti a errori umani o a guasti hardware.Data immutability: i dati vengono immagazzinati nella loro totalità masoprattutto nella loro forma iniziale e grezza, e conservati indefinitamente. Perfare un’analogia con i sistemi di database relazionale, le operazioni consentitenello storage dei dati non prevedono una forma di update o di delete dei record inseriti, ma solo l’insert di nuovi o il select di quelli esistenti.Recomputation: a causa al sistema fault-tolerance e all’immutabilità dei dati,deve essere sempre possibile rielaborare i risultati di un precedente calcoloeseguendo delle query sui dati raw salvati nello storage.I tre principi sopra esposti si possono riassumere in un’unica equazione che secondo ilconcept di questa architettura deve essere alla base di ogni sistema di Big DataAnalytics: query function (all data). Le query di analisi devono sempre esserefunzione di tutti i dati inseriti e a disposizione del sistema.39

CAPITOLO 2BIG DATAFigura 2.4: Schema high-level dell’architettura LambdaL’architettura Lambda è divisa in tre livelli, come l’architettura precedentementeanalizzata. A differenza della precedente, il concept e gli scopi perseguiti dalla Lambdasono diversi e i dati vengono analizzati differentemente. Come descritto in figura 2.4,non è presente un livello Nearline, in quanto i livelli di latenza comtemplati sono solodue: Speed (analogo alla Online) e Batch (Offline). Il sistema di storage presente nellivello intermedio qui viene diviso tra i due livelli Speed e Batch, in cui sono presentidue diversi sistemi di database, per gestire rispettivamente solo i dati recenti nel livelloSpeed e tutti i dati, precedenti e nuovi, nello loro totalità ed immutabilità nel livelloBatch.40

CAPITOLO 2BIG DATAL’architettura Lambda inoltre si basa fortemente sul concetto di Precomputing, simileal concetto di Model Training della precedente ma differente in termini di workflow e ditrattamento dei risultati.Di seguito vengono analizzati i livelli dell’Architettura Lambda. Batch LayerIl livello Batch è responsabile di due compiti. Il primo di immagazzinare il masterdataset, immutabile e in costante crescita (generalmente viene usato lo storage HDFS diHadoop), il secondo di elaborare della views (precomputing) da questo datasetattraverso algoritmi MapReduce (Hadoop). L’elaborazione di queste views è unprocesso continuativo: all’arrivo di nuovi

CAPITOLO 2 BIG DATA Quindi non solo volume, inteso come proprietà di acquisire, memorizzare ed accedere a grandi quantità di dati, ma anche varietà, riferita all'eterogeneità dei dati, provenienti da fonti diverse (strutturate e non), e velocità, cioè gestione di dati che cambiano