Go to Top

Big data: applicazioni e tecnologie utilizzate – Parte 2

Come sottolineato nel precedente articolo sui Big Data la raccolta, lo storage e l’analisi di un consistente volume di dati di diverso interesse aziendale non è possibile se non attraverso l’utilizzo di nuove tecnologie sviluppate proprio per rispondere a questa esigenza: Hadoop e NoSQL.

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 voi 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è non utilizzare NoSQL?

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

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 distribuire 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, di cui abbiamo già parlato in un altro articolo sui Big Data, 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.

Panoramica sul tema

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.

Fonte immagine: Markus Vogelbacher  / pixelio.de

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *