Big Data: applicazioni e tecnologie utilizzate

giovedì 24 settembre 2015 di Massimo Mazza

DST_image_970x300_hero-cloud

Difficilmente vengono trattati argomenti in maniera così approfondita come accade invece per i Big Data.

Dato che oggi è prassi comune raccogliere una vasta gamma di dati e informazioni provenienti da fonti diverse, lo scopo principale di questo articolo è quello di fornire istruzioni utili a generare nuove strategie e migliori opportunità di business, oltre l’analisi.

La raccolta dei dati e l’analisi delle informazioni esistenti sono in realtà cosa vecchia

I dati vengono infatti raccolti e analizzati sin dalla nascita dei processi computerizzati.

Ciò che è realmente nuovo è la possibilità di utilizzare applicazioni moderne di Business Intelligence (BI) per mostrare l’analisi dei dati in tempo reale.

Un esempio è la raccoltà di dati dai mercati finanziari computerizzati. Quello che fa Bloomberg attravverso la perfetta integrazione di diverse forme di BI, informazioni e programmi di transazioni offerte agli operatori è un chiaro esempio di Big Data nella forma più pura.

Ma Big Data vuol dire anche possibilità di raccogliere informazioni non strutturate – dati che non sono pronti per essere analizzati – da integrare in programmi di Business Intelligence e da analizzare che possono quindi portare a risultati concreti.

Esistono diverse applicazioni che consentono di raccogliere e analizzare i Big Data e che possono avere un impatto concreto sugli utenti e sui fornitori di prodotti o servizi. I fornitori di servizi finanziari identificano il rischio attraverso un‘analisi del portfolio, oppure effettuano una stima delle opportunità di un nuovo prodotto finanziario in base alla situazione attuale e a quella attesa.

Raccolta Big Data

Coloro che lavorano nel settore dei media e della pubblicità possono utilizzare i dati in entrata per misurare l’efficacia delle loro campagne online e offline e modificarle quando necessario. Infine, i produttori di auto possono controllare lo status dei veicoli venduti o di alcune delle componenti grazie a sensori o trasmettitori integrati nelle vetture.

In generale è possibile suddividere l’utilizzo di applicazioni dei Big Data in tre diverse categorie:

  1. Orientamento al cliente: sviluppo di nuove idee di prodotto/servizio, migliore comprensione del cliente, migliore customer experience

  2. Orientamento al business: sviluppo di nuovi modelli di business, migliore comprensione del mercato e della concorrenza

  3. Orientamento alle aziende: riduzione dei costi delle risorse, aumento delle vendite, processo decisionale più veloce, migliore controllo dei processi operativi e migliori decisioni strategiche

Tutti e tre gli scenari hanno in comune un fattore: l’unica ragione per la quale tutto questo è possibile è il fatto che gli scenari si poggiano su due tecnologie di base sviluppate circa 10 anni fa, ovvero Hadoop e NoSQL.

Hadoop e NoSQL: cosa sono

Hadoop è una tecnologia Open Source per lo storage e l’analisi di numerosi file distribuiti attraverso l’utilizzo di componenti hardware combinati in cluster. NoSQL è un database che non si basa più su un concetto di relazione in cui diverse tabelle sono collegate tra loro tramite relazioni come in SQL, ma utilizzano altri approcci.

Esistono non meno di 9 diversi tipi di database NoSQL, ciascuno dei quali funziona in base ad un approccio diverso da quello utilizzato da SQL.

Ad esempio, non esistono database NoSQL basati su un modello oggetto (Zope DB), su un modello di documento (Lotus Notes, Cluster Point) o sugli store Key-Value (Aero Spike). Non importa su quali approcci si basano i database NoSQL: ciò che li accomuna è che questi hanno tutti dei meccanismi (algoritmi) più semplici per processare grossi volumi di dati che altrimenti non potrebbero essere raccolti tramite un approccio relazionale.

Che cos’è Hadoop?

Hadoop può essere descritto come una "suite" coerente e strutturata di strumenti software responsabili della gestione del problema dei Big Data. Creata dal mondo Open Source, Hadoop esiste già in diverse versioni chiamate distribuzioni: le principali sono Cloudera, Hortonworks e MapR.

L’obiettivo di questo articolo non è quello di fare un confronto tra queste versioni perchè questo vorrebbe dire addentrarsi in problemi e casistiche troppo complesse che poco hanno a che fare con il contesto di questo post. Ciò che invece vogliamo che vi ricordiate è che esistono diversi tool che possono essere utilizzati per rispondere ai problemi e alle esigenze derivanti dalla gestione dei Big Data.

Il tool più famoso è una soluzione al medesimo problema dello storage massimo di dati non strutturati: il file system. HDFS (Hadoop Distributed File System) è un sistema distribuito per la gestione di file che trae origine da GoogleFS.

È per sua stessa natura espandibile e supera le limitazioni del file management in uno spazio definito dalla dimensione del media: qui infatti un singolo file può essere “clusterizzato” ovvero distribuito in computer in cluster che a loro volta contentogono cluster di hard drive.

I due tool principali di ricerca dati di Hadoop sono Hive e Pig: mentre il primo, simile a SQL è stato originariamente sviluppato da Facebook, il secondo è stato introdotto da Yahoo!

Per completare la panoramica su Hadoop, pensate a un problema ricorrente su qualsiasi sistema informativo: il backup dei dati! Una sfida non semplice per questo tipo di esigenze e risorse.

Di nuovo HDFS è in grado di organizzare i file attraverso una replica automatica e simultanea su diversi server. È il server dei metadati che conosce l’intera disposizione di ogni singolo file sull’architettura. Esso è il cuore alla base della disponibilità dei dati.

Google, Facebook, Yahoo! sono le aziende ad avere le maggiori necessità di gestione dei Big Data e che hanno iniziato a introdurre nuovi tool e a invenstire in Ricerca e Sviluppo.

Le sfide di Hadoop sono il miglioramento dello spazio di storage, della velocità e delle modalità di accesso ai dati. L’ultimo sfida è stata il miglioramento della capacità di disponibilità delle informazioni.

Gli sviluppatori attualmente si stanno focalizzando sullo sviluppo di un failover automatico su backup al fine di ottenere un‘alta disponibilità del server dei metadati dal momento che ora questo viene effettuato manualmente.

Perchè NoSQL?

NoSQL è un database basato su linguaggio query realizzato per i Big Data.

SQL è l’acronimo di Structured Query Language (linguaggio query strutturato) ed è da molto tempo noto agli addetti IT che hanno necessità di ricercare in maniera veloce in grandi database relazionali (RDBMS). Negli anni ’90 alcuni addetti alle vendite in aziende operanti nel settore della logistica non utilizzavano nè un mouse nè un display grafico, nessuna interfaccia utente per ricercare informazioni archiviate su server distanti e collegati tra loro tramite specifiche linee di connessione, ma inserendo dei semplici comandi SQL sulla tastiera erano in grado di comunicare ai propri clienti la disponibilità di specifici camion o treni in pochi secondi.

Oggi SQL è ampiamente diffuso e utilizzato: è infatti lo strumento per database più strutturato e veloce nella ricerca e organizzazione dei dati. Esso ha diversi nomi, questo a testimonianza del fatto che ne vengono sviluppate diverse versioni tra cui MySQL di Oracle, il maggior competitor di Microsoft SQL.

Il termine NoSQL è stato coniato a partire dal 2009 per indicare il fenomeno legato ai Big Data. Per alcuni questo acronimo significa “nessun SQL” per altri invece “Non solo SQL” ovvero che il linguaggio utilizzato non è solo quello SQL.

Il problema principale che ha portato alla creazione di NoSQL era rappresentato dal fatto che lo stesso database di un sito web poteva essere utilizzato in contemporanea da milioni di utenti in tutto il mondo: un esempio di questo fenomeno è Amazon.

L’obiettivo di NoSQL è quindi quello di ridurre la complessità del linguaggio query, semplificare l’architettura del database e individuare una modalità di storage del database su un numero massimo di computer in base alle esigenze.

Di conseguenza un database NoSQL è un database distribuito per ripartire dinamicamente il carico computazionale e i dati, non relazionali, preferendo l’utilizzo di una tabella di grandissime dimensioni piuttosto che molte tabelle in relazione tra loro.

Per Hadoop c’è un Hbase che è un device del database NoSQL. Esistono anche altri device tra cui Cassandra, Accumulo, Google BigTable e una dozzina d’altri che non lavorano necessariamente in ambiente Hadoop. NoSQL è stato progettato apposta per risolvere i problemi generati dalla presenza e gestione dei Big Data.

Big Data e Recupero dati

Al giorno d’oggi molte aziende utilizzano entrambe le tecnologie nelle loro architetture. Con NoSQL i dati vengono generati e aggiornati in modo da convertirli in maniera graduale in un processo di raggruppamento in cluster Hadoop dove vengono poi analizzati e valutati nelle applicazioni di Business Intelligence.

Esistono già delle soluzioni combinate che integrano entrambe le tecnologie e devono utilizzare un unico cluster in comune: questi sistemi, però, sono ancora molto più costosi rispetto a quelli basati su soluzioni separate.

Nel lungo periodo tuttavia grazie anche alla diminuzione dei prezzi le soluzioni combinate sostituiranno i sistemi separati.

La diffusione dei sistemi di Big Data ha delle conseguenze sulle modalità di recupero dati, in quanto gli specialisti di data recovery necessitano di conoscere a fondo non solo i nuovi file system HDFS (Hadoop Distributed File System – o altri simili come ad esempio quello utilizzato da IBM ovvero GPFS) ma anche il modo in cui i dati vengono ripartiti su diversi dispositivi di storage ridondanti attraverso l’utilizzo dei database NoSQL.

Questo aspetto è fondamentale perchè a causa degli ingenti volumi di dati molti utenti non effettuano più backup perchè questo non sarebbe più fattibile. Il lato negativo è che in caso di malfunzionamento di più drive i file potrebbero non essere più tracciabili dal sistema o nel peggiore dei casi potrebbero essere distrutti.

Bisogna quindi valutare se valga la pena effettuare il restore dei dati raccolti, considerato il livello di complessità e i costi connessi al processo, o se invece effettuare una raccolta di dati nuovi e aggiornati.

La decisione rispetto all’approccio da seguire non è univoca ma varia da caso a caso e da azienda ad azienda, in base anche al reale utilizzo di raccolta dei dati.

Servizi di recupero dati

Hai perso i tuoi dati? Contattaci subito per recuperarli.


Cosa pensano i clienti dei nostri servizi: