by Colin White

Dicembre 2011

Big Data, come e perché

Il termine Big Data è sicuramente popolare, ma la sua definizione non è stata ancora sufficientemente articolata. Da una parte viene definito come il modo per trattare volumi di informazioni in costante aumento che non possono essere gestiti utilizzando applicazioni analitiche e sistemi data warehouse tradizionali (un esempio è costituito dai dati correlati alle informazioni di Facebook e Twitter). Perché questo rinnovato interesse? Per il semplice fatto che la cattura e l’analisi di questi dati può portare vantaggi enormi in termini di processi decisionali. Il problema di fondo è la complessità che si cela dietro queste operazioni, complessità che supera i limiti attuali delle piattaforme e sistemi dedicati alla gestione e all’analisi dei dati.

Il significato di Big Data
È innanzitutto importante sapere che esistono forme e dimensioni diverse, così come esiste una molteplicità di utilizzo: ricerca in tempo reale di tentativi di frode, analisi competitiva su Web, ottimizzazione di call center, analisi dei social media, gestione intelligente del traffico… Non bisogna poi dimenticare che per soddisfare questo tipo di esigenze si devono trattare significativi volumi di dati, strutturati e multi-strutturati, soggetti a una continua espansione.
Molte di queste soluzioni non potevano essere sviluppate in passato in quanto troppo costose da implementare o per l’inadeguatezza delle tecnologie.
L’evoluzione tecnologica ha reso possibile ciò che una volta era impossibile:

  • Nuovi sistemi di gestione dei dati che gestiscono un’ampia gamma di dati rilasciati da sensori, Web e social media.
  • Miglioramento delle capacità analitiche (talora chiamate Advanced o Big Analytics) di tipo predittivo e di analisi dei testi.
  • Hardware più veloce e performante grazie a processori multi-core e spazi di indirizzamento memoria più grandi così come dischi allo stato solido e storage multilivello per la gestione di dati caldi e freddi.

Lavorare su Big Data significa, in sintesi, utilizzare le tecnologie sopra descritte per creare vantaggi all’organizzazione.

Gestire e analizzare Big Data
Negli ultimi vent’anni la maggior parte delle applicazioni analitiche sono state create utilizzando dati strutturati estratti da sistemi operazionali che venivano poi consolidati su data warehouse. La particolarità di Big Data è invece contraddistinta da due fattori: aumento esponenziale del numero di sorgenti dati, varietà di contenuti, numero e volumi da utilizzare. Un’alta percentuale di questi dati viene descritta come multi-strutturata per distinguerla dai dati operazionali strutturati comunemente usati per popolare un data warehouse.
Nei processi Big Data si evidenziano due tecnologie: i database relazionali ottimizzati per compiti analitici (spesso chiamati Analytic Rdbms o Adbms) e sistemi non relazionali (talvolta definiti come noSQL systems) per elaborazione di dati multi-strutturati.

Analytic Rdbms (Adbms)
Un Rdbms analitico è una soluzione integrata per gestire dati e generare analisi con un migliore rapporto price/performance, gestione e amministrazione rispetto a quanto offerto da Rdbms generalisti. L’ottimizzazione delle prestazioni è garantita dall’utilizzo massivo di elaborazione parallela, superiore qualità della struttura dei dati, tecniche di compressione e capacità di sviluppare processi analitici su Dbms. Questi sistemi possono essere classificati in due macro gruppi: hardware e software appliance pacchettizzate e piattaforme software only.
Le appliance si suddividono a loro volta in due sotto gruppi: appliance di tipo verticale (purpose built appliance) e piattaforme hardware/software ottimizzate. In entrambi i casi l’obiettivo è fornire una soluzione integrata che possa essere installata e gestita in un singolo sistema. A seconda del vendor, la linea di demarcazione tra i due sotto gruppi non è sempre chiara e questo è il motivo per cui in questo articolo esse vengono comunemente definite con il termine generico di appliance.
La purpose built appliance è un sistema integrato creato con l’obiettivo di fornire il migliore price/performance per carichi analitici. Questo tipo di appliance permette una completa configurazione ottimizzata dei processi analitici, dall’applicazione al sistema di storage. Permette inoltre al fornitore di offrire tool personalizzati per installare, gestire e amministrare il sistema software e hardware integrato.
Molti di questi prodotti furono inizialmente sviluppati da piccoli vendor e indirizzavano progetti molto specifici e indipendenti dal data warehouse aziendale. Con la progressiva loro maturazione l’utilizzo si è poi esteso a carichi di lavoro eterogenei e, in alcuni casi, per supportare enterprise data warehouse di piccole dimensioni. Il successo di queste appliance ha fatto sì che più e più fornitori di Rdbms tradizionali li integrassero nella propria offerta.

Software only platform è invece un insieme di componenti software integrato per gestire carichi analitici. Così come per le appliance, molti di questi prodotti sono stati inizialmente creati da piccoli vendor su target specifici. Spesso utilizzano prodotti open source e sono predisposti per essere installati su hardware commodity a basso costo. La portabilità hardware comporta però il prezzo di non potere sfruttare al meglio la singola piattaforma hardware. Alcune di queste piattaforme software sono anche disponibili in virtual images, utili per eseguire una valutazione o essere utilizzati in ambienti di sviluppo e in ambienti Cloud.
Lo sviluppo di prodotti Adbms da parte di piccole aziende innovative ha fatto sì che i vendor tradizionali si impegnassero nel migliorare la capacità di elaborazione analitica. Ciò ha portato a miglioramenti e nuove funzionalità nei prodotti Rdbms esistenti così come a una politica di acquisizioni. EMC, per esempio, ha acquisito Greenplum, HP Vertica, IBM Netezza, Microsoft Datallegro, Teradata Aster Data.

Sistemi non relazionali
Non esiste un singolo modello di database in grado di soddisfare tutte le esigenze. Ecco perché molti clienti hanno sviluppato proprie soluzioni non relazionali. Web company come Google e Yahoo sono esempi di organizzazioni che hanno costruito soluzioni personalizzate e alcune di queste sono state offerte in public domain in modo da potere essere disponibili in modalità open software. Sono sistemi utili per elaborazione dati prevalentemente di tipo multi-strutturato e sono popolari soprattutto tra gli sviluppatori che preferiscono utilizzare linguaggi di programmazione procedurali piuttosto che linguaggi dichiarativi come SQL. Uno dei sistemi più noti è Hadoop dell’Apache Software Foundation, un framework per applicazioni che girano su cluster commodity. Il framework include un file system distribuito in grado di gestire e distribuire elevati volumi di dati attraverso i nodi hardware del cluster garantendo il più alto throughput possibile. Utilizza il modello di programmazione MapReduce che consente di frammentare i processi applicativi su più nodi del cluster e fare quindi leva sull’elaborazione parallela. Prevede inoltre linguaggi come Pig e Hive per sviluppare programmi MapReduce. Hive include Hiveql, un subset di SQL.
Hadoop MapReduce è pensato per elaborazione batch di grandi volumi di dati multi-strutturati. Non è adatto per elaborazione a bassa latenza, piccoli file o aggiornamento random di dati. Per queste ultime esigenze Hadoop fa riferimento a database come Hbase e Cassandra. Sono oramai parecchie le società che sfruttano Hadoop, nelle varie forme in cui viene commercializzato, per gestire progetti Big Data.

Quale Dbms utilizzare?
È innanzitutto importante comprendere che Dbms relazionali generalisti, Analytic Rdbms e sistemi dati non relazionali, non sono mutuamente esclusivi: ciascun approccio presenta propri vantaggi ed è molto probabile che le aziende ne utilizzino più di uno.
La scelta dipende in definitiva da tre fattori: dimensione dello storage e frequenza di aggiornamento, varietà dei dati (strutturati, multi-strutturati); complessità del processo analitico (complessità della query, caricamento dati concorrente, necessità di dati in real time, elaborazione batch o interattiva…). Per mettere a punto un’infrastruttura analitica integrata questi differenti approcci devono coesistere ed essere interoperabili. Ecco il motivo per cui i vendor rendono disponibili connettori che permettono un flusso di dati tra i differenti sistemi.

Conclusioni
Molte persone ritengono che Big Data sia un termine eccessivamente enfatizzato. Vero o non vero credo però che abbia avuto il merito di mettere in luce un aspetto di gestione dei dati che non era in precedenza risolvibile. Le tecnologie da adottare dipendono, come evidenziato in precedenza, dal volume e dalla gamma di dati da trattare, dalla complessità elaborativa e dalle capacità di risposta che si vogliono conseguire. Non ultimo dalla capacità del vendor nel gestire e amministrare questi ambienti. Tutti fattori, quindi, che devono essere attentamente valutati nel momento in cui si deve affrontare una scelta.
Un’ultima avvertenza: Big Data non significa soltanto implementazione di nuove tecnologie. Perché si possa agire con successo è necessario coinvolgere persone che comprendono il beneficio reale di processi decisionali che possono essere innescati da analisi di questo tipo. Significa essere consapevoli che un percorso di questo tipo è rivolto a raggiungere una condizione di maggiore efficienza e produttività.