Sentendo la parola “Big Data” può venire da pensare solamente a una grande quantità di dati, come se la ricchezza di questo nuovo petrolio del XXI secolo si limitasse soltanto al fatto che è possibile fare delle analisi statistiche più accurate vista la dimensione del campione che si può prendere in considerazione; se fosse solo questo sarebbe stata una grande perdita per l’umanità, perché i “Big Data” sono molto di più.

Nel 1854, ad esempio, un’analisi di incrocio di dati di tipo diverso provenienti da fonti diverse, tipico approccio di analisi di “Big Data”, permise di fermare il diffondersi del Colera a Londra: un medico anestesista infatti mise insieme i dati geolocalizzati delle persone ammalate con la rete di distribuzione dell’acqua e si accorse di una pompa attorno alla quale si concentravano le vittime della malattia; la scoperta ha contribuito a identificare la natura della trasmissione della patologia (l’acqua) ed è stata il primo esempio di analisi epidemiologica (vedi https://nova.ilsole24ore.com/progetti/la-strana-storia-del-dottor-john- snow/?refresh_ce=1). 

Questo tipo di risultato è impossibile da ottenere semplicemente con una grande quantità di dati, se questi sono dello stesso tipo: il potere dei “Big Data” è proprio quello di raccogliere al loro interno dati di più fonti, che tipicamente sono strutturati in modi diversi, e che rappresentano informazioni che arricchiscono la conoscenza su un determinato sistema. 

Anche per questo motivo, è sempre più richiesto dalle aziende che lavorano in questo campo lo sviluppo di sistemi di memorizzazione e gestione di queste grandi quantità di dati così diverse tra loro che siano estremamente efficienti e facilmente scalabili in base alle esigenze, i “Data Lake”; questa estensione del concetto di database tradizionale è il naturale contenitore per questo tipo di dati in quanto la sua architettura prescinde da qualunque formato, da qualunque dimensione e da qualunque sia la velocità di accesso richiesta dalle applicazioni che devono elaborare i dati. 

In Linkalab abbiamo sviluppato una notevole esperienza nella loro progettazione in diverse commesse dove il loro utilizzo è stato sempre un punto di forza vincente nel raggiungere gli obiettivi business delle aziende che ci hanno contattato. Non sono solo quindi la dimensione dei dati e il fatto che provengano da fonti diverse che rende così’ speciali i “Big Data” e le tecnologie che li gestiscono, ma conta anche la velocità.

Si parla sempre più spesso infatti di analisi di dati in tempo reale, ma com’è possibile ottenere da diversi TB di dati un risultato sintetico in pochi minuti, o addirittura secondi? Nei processi tradizionali che vengono eseguiti sui tradizionali PC e server, ogni processo ha un suo tempo di esecuzione più o meno lungo, e anche il solo caricamento dei dati spesso è fonte di perdita di tempo: com’è possibile che i “Big Data” siano più velocemente analizzabili dei dati tradizionali? 

Il segreto, oltre che dipendere dal tipo di sistema e algoritmo che si utilizza per analizzarli, risiede proprio nella tecnologia utilizzata per la loro memorizzazione: strumenti come i “Data Lake” infatti, che appiattiscono completamente la struttura ad albero tipica dei file system, permettono di distribuire in modo semplificato la memorizzazione dei file anche di grosse dimensioni e questo (se il problema è analizzabile con degli algoritmi del tipo MapReduce, che permettono di ottenere dei risultati parziali di un certo problema analizzando solo una parte dei dati da cui poi successivamente, con una operazione di raccolta, si ottiene il risultato globale) permette di distribuire anche il calcolo in modo naturale facendo in modo che ogni nodo carichi solamente una piccola parte dei dati totali per poter processare in parallelo file di grosse dimensioni come se fossero di pochi MB. 

Il tempo totale del processo è quindi soltanto quello necessario per analizzare in parallelo queste piccole parti in cui viene diviso il file originale più il tempo necessario a ricostruire il risultato globale. Alcuni nostri clienti, ad esempio, hanno risolto i loro problemi legati al tempo computazionale del processo che avevano necessità di eseguire semplicemente passando da una struttura di database tradizionale a un “Data Lake” e cambiando il modo in cui veniva eseguito il calcolo dal tradizionale approccio sequenziale all’approccio distribuito tipico del mondo dei “Data Lake”.

Per sintetizzare quanto abbiamo appena discusso, possiamo quindi adesso dire con maggiore chiarezza quali sono e che significato hanno le prime 3 V associate ai Big Data.

La prima ‘V’ è quella più ovvia, è la ‘V’ del Volume: giusto per dare le dimensioni attuali del fenomeno, si stima che nel 2020 siano stati prodotti circa 44 zettabyte di dati, pari a 270 byte, che su Facebook vengano effettuate 2,400,000 condivisioni di contenuti al minuto, che su Google vengano effettuate 4,000,000 di ricerche al minuto (vedi “Metropolis: dai social media all’intelligenza artificiale”, M. Carvelli, G. Sapelli, libreriauniversitaria.it, 2019) e che su Twitter vengano pubblicati 350,000 tweet al minuto (vedi https://www.dsayce.com/social-media/tweets-day/).

La seconda ‘V’ è quella della varietà: non solo le fonti possono essere le più disparate, vedi social (e già qui si può distinguere facilmente tra quelli più propriamente legati a contenuti testuali, come Twitter e Facebook, o visuali, come Instagram per le foto e YouTube per i video – foto e video sono anch’essi dati a tutti gli effetti sui quali gli algoritmi effettuano delle analisi dalle quali possono estrapolare informazioni di vario tipo, a partire dai brand presenti nelle immagini fino al tipo di abbigliamento utilizzato in un video), blog, home page, accumulatori di informazioni come wikipedia, motori di ricerca, portali di open data e/o del semantic web, ma i dati pubblicati sul web sono memorizzati in una vera e propria babele di formati: txt, csv, PDF, Word, Excel, parquet, jpg, png, mpeg, mp4, XLS, HTML, etc. 

I codici di analisi dei Big Data devono quindi essere capaci di poter leggere in modo corretto tutti questi formati per poter mettere insieme le informazioni dalle varie fonti che descrivono un particolare problema per fare in modo di arricchire i dati che lo descrivono e permettere di aumentare la conoscenza su di esso dando l’opportunità di generare una nuova conoscenza.  

La terza ‘V’ è quella della velocità: molte applicazioni richiedono una risposta reattiva di tipo real-time per poter essere utilizzabili; come potremmo utilizzare il navigatore nel nostro cellulare se il percorso richiesto ci venisse fornito mezz’ora dopo averlo richiesto? Come potremmo portare avanti una ricerca efficace contro la diffusione del Covid-19 se non fossimo in grado di elaborare in tempi accettabili tutti i dati utili disponibili presenti nelle piattaforme open data? Lo sforzo computazionale richiesto è molto elevato, ma in realtà il corretto utilizzo delle piattaforme di cloud computing è in grado di fare in modo che questi requisiti possano essere soddisfatti: come abbiamo visto, opportune strategie di memorizzazione dei dati su sistemi di storage distribuiti e facilmente scalabili, non legati a tradizionali architetture dei file system tradizionali, che permettano di frammentare i file in più parti in modo che le loro componenti siano analizzabili in modo indipendente da processi che sono in grado di essere eseguiti in parallelo, sono la chiave del successo dei Big Data: saper progettare correttamente l’architettura di un Data Lake e saper sviluppare in modo opportuno dei servizi su cloud che ottimizzino costi e risorse si è rivelato nel tempo uno strumento che ha permesso di superare i limiti imposti dai classici approcci computazionali.

In realtà esistono anche altre ‘V’ legate ai “Big Data”, in particolare si arriva a contarne fino a  8; se vi interessa sapere cosa rappresentano le altre 5 continuate a seguirci sul blog di Linkalab.