Lo sviluppo di un progetto in ambito Big Data si articola sul principio delle tre V:

  • Volume
  • Variabilità
  • Velocità

il quale sta portando le aziende ad aumentare la consapevolezza che le classiche soluzioni tecnologiche non sono più sufficienti quando si tratta di dover gestire volumi di dati molto grandi.

Infatti, lo sviluppo di un progetto in ambito Big Data richiede abilità nella gestione di molti fattori, tra i quali:

  • Sorgenti dati eterogenee
  • Accesso ai dati profilati
  • Trasferimento dei dati secondo le necessità proprie del contesto di utilizzo
  • Aggregazione dati
  • Fornitura di tool per le attività di analisi
  • Possibilità di creare report sui dati
  • Integrazione della conoscenza sui processi operativi
  • Svolgimento delle attività di Data Analytics con il minimo TCO possibile

Ma quali sono le architetture e le soluzioni abilitanti l’elaborazione di grandi moli di dati?

La soluzione che si sta profilando vincente in tutti i progetti di Big Data che stiamo seguendo è la realizzazione di un Data Lake.

Il Data Lake è lo strato di storage di una piattaforma di Big Data per la raccolta logica dei dati in un unico luogo, in grado di offrire le informazioni ai diversi servizi presenti in azienda sia in forma grezza che come risultato di funzioni di aggregazione ed elaborazione dei dati cross-silos (rappresentanti lo streaming di informazioni provenienti da sorgenti eterogenee).

La progettazione di un Data Lake risulta indispensabile nella definizione di architetture di data analysis in contesti di:

  • Health care
  • Raccolta e unificazione dati di comportamento degli utenti online e offline
  • Raccolta e unificazione dati provenienti da oggetti, nell’ambito di progetti di Internet of Things
  • Analisi e raccolta dei dati sul traffico di rete e sulla viabilità
  • In molti altri ambiti in cui le sorgenti di dati potrebbero essere tra loro eterogenee e le informazioni devono essere salvate ed elaborate per essere indirizzate in strumenti di analisi diversi.

Il mondo dei Big Data è ancora in fase di esplorazione e la scelta dello stack tecnologico da utilizzare dipende spesso dal caso specifico.

Ciò che però rimane invariato e che può essere definito un elemento insostituibile in un’architettura Big Data è Hadoop, framework per il calcolo distribuito, ideale per l’elaborazione di grandi moli di dati.
Proprio l’impiego della tecnologia Hadoop porta spesso a progettare un Data Lake sfruttando i servizi di memorizzazione messi a disposizione dal framework, quali HDFS e HBase. Il primo, essendo un file system distribuito, permette di definire la codifica di memorizzazione dei dati JSON, CSV, Avro ecc. mentre il secondo (HBase) è un database con una propria codifica dati ottimizzata per le operazioni di scrittura ad alte performance ma limitato nelle operazioni di lettura, in quanto risulta efficiente solo se si impiega la chiave primaria.

Questo approccio garantisce ottime performance di scrittura ed elaborazione ma, essendo una delle proprietà principali di un Data Lake, la sua flessibilità e capacità di fornire dati a sistemi esterni risulta assai limitata con tempi di risposta poco efficienti su campi non dotati di indici e su grandi dimensioni di dati.

Per questo motivo, sulla base della nostra esperienza, possiamo affermare che risulta efficiente ed equilibrata la scelta di un’architettura, come quella mostrata in figura, in cui si aggiunge nello strato di persistence il Data Lake MongoDB:

DataLake_desing.001

Sui progetti da noi seguiti la scelta di MongoDB si è rivelata efficiente completando la piattaforma Hadoop con un elemento di storage che raggruppa flessibilità ed alte prestazioni nella gestione delle informazioni. Tutto questo è reso possibile dal connettore Hadoop che rende MongoDB una sorgente o una destinazione dati per la piattaforma Hadoop. Tramite questo connettore, infatti, risulta semplice eseguire job di MapReduce con Pig oppure query SQL usando Hive. Ulteriori vantaggi nell’usare MongoDB in una piattaforma di Big Data sono:

  • L’utilizzo di Indici secondari molto efficienti che impattano positivamente sui tempi di risposta ai sistemi di data visualization, utilizzando campi diversi dagli indici primari.
  • Ottima capacità di integrazione e fornitura dei dati a sistemi aziendali di terze parti
  • Disponibilità in database di un aggregation framework per favorire le operazioni di group-by e l’elaborazione di contesti di time series
  • Connettori per sistemi di Business Intelligence
  • Scalabilità orizzontale ideale con il crescere del volume di dati
  • Possibilità di creare architetture distribuite geograficamente mediante l’uso di tagging

Conclusioni:

Ripetiamo spesso che i dati sono il petrolio del futuro ed è per questo che risulta importante realizzare un “contenitore” dati che sia in grado di soddisfare al meglio tutte le esigenze di lettura e scrittura, fornendo le informazioni in modo efficiente alle diverse fonti che ne richiedono accesso.

Abbiamo pensato di condividere la nostra esperienza consigliando la realizzazione di un Data Lake basato sulla forte integrazione tra Hadoop e MongoDB, i quali permettono di realizzare una piattaforma dati flessibile per tempi di risposta ottimali sia per i data scientist che per gli analisti e sia per gli utenti aziendali che per i clienti stessi, il tutto ad un basso TCO.

Leave a Comment