Menu

Approcci ai Big Data e agli Analytics: valutazioni, scelta

Non è più tempo di considerare i Big Data e gli Analytics come una nuova possibile frontiera tecnologica da valutare: ormai sono divenuti un passaggio fondamentale per la gran parte delle aziende – e delle attività – per cui bisogna affrettarsi nell'avviarvi i propri progetti per non rimanere travolti dalla concorrenza e da un'ondata di nuove imprese che entrano nei nostri mercati.

I fattori che stanno rendendo sempre più praticabile l'adozione dei Big Data sono numerosi. Tra questi:

  • il continuo calo dei costi dell'Hardware e del Software, accompagnati dalla possibilità di utilizzare configurazioni in Cloud Computing che azzerano anche gli investimenti iniziali e rendono immediato l'avvio di nuovi progetti;
  • i consistenti ritorni d'investimento conseguiti da chi per primo vi ha realizzato iniziative, arrivando persino a modificare i propri modelli di business;
  • una maggior disponibilità di competenze – che comunque continuano a rappresentare l'elemento più critico di tutto il discorso – capaci di sviluppare modelli di analisi e di individuare fonti di dati alternative alle tradizionali.

In particolare, grazie alle innovative tecniche di elaborazione parallela e alla possibilità di operare costantemente in memoria, scaturita dalle sue consistenti riduzioni di costo, ha abbattuto le barriere di accesso a queste tecnologie, favorendo la nascita di servizi specializzati che si affiancano al potenziamento dei Data Center di tipo proprietario.

I tre approcci più diffusi all'elaborazione dei Big Data seguono normalmente uno di questi percorsi:

  1. Adozione di Hadoop;
  2. Utilizzo di Database NoSQL;
  3. Installazione di componenti Hardware e Software ad alte prestazioni, grazie alle loro architetture alternative.

Vediamo in sintesi i pro e i contro di ciascuna di queste strade.

Hadoop: fotografia, vantaggi e limiti

Hadoop è un Framework Open Source per processare, memorizzare e analizzare grandi quantità di dati non strutturati. Nato in casa Yahoo! E in seguito divenuto un progetto della Apache Software Foundation, Hadoop è un'evoluzione della funzione MapReduce sviluppata da Google nei primi anni 2000 per effettuare l'indicizzazione del Web, quindi per elaborare petabyte di dati distribuiti su svariati nodi paralleli.

Un'importante caratteristica di Hadoop sta nella possibilità di creare cluster anche molto potenti, costituiti da elevati numeri di comuni Server. Il che evita di dover acquistare Hardware particolare e molto costoso. Questo viene ottenuto spezzettando i Big Data in tanti sottoinsiemi elaborabili ed analizzabili in parallelo da diversi Server.

Il primo vantaggio di Hadoop consiste quindi proprio nella possibilità di gestire grandi quantità di datinon strutturati usando macchine a basso costo, ma senza alcun limite di scalabilità dal momento che per aumentare le capacità del sistema basta aggiungere Server al Cluster. Questo vuol anche dire poter procedere in modo iterativo nelle analisi dei dati, senza creare grandi problemi al sistema.

Il secondo vantaggio sta nel fatto che neppure il software ha un costo – a parte quello di studiare per saperlo utilizzare – visto che si tratta di componenti Open Source, liberamente scaricabili dalla Apache Software Foundation. Ma questo, che da un lato è indubbiamente un vantaggio, dall'altro costituisce un pericolo, se non proprio uno svantaggio. Pericolo tipico dei progetti Open Source che non hanno ancora raggiunto la piena maturità. La quantità di componenti da considerare è infatti considerevole, alcuni dei quali sono in fase di sviluppo. Uno sviluppo portato avanti in modo prevalentemente volontario da una miriade di sviluppatori distribuiti in ogni parte del mondo che si fasano tra loro attraverso il Web di Apache. Il che vuol dire che non ci sono garanzie nei tempi di Delivery, né per quanto attiene l'assistenza tecnica e il supporto. Tutte attività per le quali occorrono specialisti dei quali c'è sempre più fame, per cui coloro i quali operano su base volontaria hanno sempre meno tempo da dedicare al progetto “senza scopo di lucro”. Nel momento in cui si decide di intraprendere questa strada è pertanto prioritario accertarsi di poter disporre di adeguati supporti formando delle proprie persone o individuando delle unità esterne in grado di intervenire, quando serve, in modo assolutamente affidabile.

La tecnologia Hadoop si sta tuttavia evolvendo in modo abbastanza rapido, tenendo però presente che questo sistema è attualmente vocato ad eseguire elaborazioni in Batch, quindi non in grado di operare in tempo reale.

Ad integrare la versione di base di Hadoop si stanno schierando vari produttori, alcuni nati proprio a tale scopo come Cloudera e Hortonworks, altri più consolidati come IBM e Microsoft, offrendo versioni commerciali di Hadoop che rappresentano un giusto compromesso tra il totalmente gratis dell'Open Source ed i pacchetti commerciali totalmente proprietari.

NoSQL, che vuol dire “anche SQL”!

Partendo dalla negazione dell'uso di SQL, e quindi delle classiche tabelle relazionali, partendo dalla ricerca di strade alternative all'SQL, oggi per NoSQL si intende Not Only SQL contrassegnando una nuova architettura di Database concepiti per gestire grandi quantità di dati in formati eterogenei.

Contrariamente ad Hadoop che nasce per gestire grandissime quantità di dati in modalità Batch per condurvi analisi storiche e di altro genere, i Database NoSQL puntano a trattare quantità di dati relativamente più ridotte, ma in modo interattivo e anche – possibilmente – in tempo reale. Le istruzioni per le interrogazioni possono anche esser inserite in altre applicazioni, aggiungendovi le nuove funzionalità che ne possono derivare.

In alcuni casi, i sistemi NoSQL e Hadoop vengono utilizzati anche in abbinamento tra loro. Ad esempio, Apache Hbase (https://hbase.apache.org/) è Database distribuito Open Source concepito per gestire trabelle costituite da miliardi di righe e milioni di colonne usando Hardware generico nato come evoluzione di Bigtable di Google. Per la migliorare le prestazioni del sistema, per le gestione dei dati di Hbase viene spesso utilizzato HDFS, il File System di Hadoop.

Al di là di Hbase, altri Database NoSQL molto diffusi sono Apache Cassandra, MarkLogic Enterprise NoSQL, InMemory Aerospike, MongoDB, Apache Accumulo, Riak, Apache CouchDB, Amazon DynamoDB.

Attualmente ci sono due punti sui quali porre attenzione nei riguardi dei Database NoSQL. Il primo è che in molti casi non implementanto le caratteristiche ACID (Atomicity, Consistency, Isolation, Durability) indispensabili per svolgere attività transazionali su larga scala. Cosa che viene normalmente demandata ai TP Monitor, che tuttavia per questo genere di Database sono attualmente in fase di sviluppo. Il secondo è che sono ancora abbastanza immaturi, per cui occorre lavorare con un occhio al presente ed uno al futuro prossimo, monitorando le Comunità che ruotano a ciascun progetto Open Source ed eventualmente alle distribuzioni che ne stanno derivando.

Database ad alte prestazioni e architetture classiche

La terza alternativa da considerare nella gestione di Big Data è rappresentata dal mantenere inalterata l'architettura dei sistemi attuali – siano essi Data Warehouse o Database relazionali/transazionali – dotando l'infrastruttura di accorgimenti in grado di esaltarne le prestazioni. Un esempio è adottare macchine capaci di condurre elaborazioni con alti livelli di parallelismo (MPP – Massive Parallel Processing), mentre un altro sta nell'organizzare la registrazione di dati per colonne, anziché per righe, così come avviene per i Vertical (o Columnar) Database. Questo consente infatti di eseguire le interrogazioni analizzando unicamente le colonne interessate, senza dover scorrere tutti i record uno per uno, alla ricerca della colonna utile.

In entrambi questi casi, l'impatto sulle applicazioni esistenti, così come sulle competenze degli sviluppatori, è minimo, mentre i miglioramenti in fatto di prestazioni sono consistenti: si possono elaborare Terabyte di dati in tempo quasi-reale, eseguendo complesse Query SQL persino in modo interattivo. Se a questo aggiungiamo le funzioni di compressione dei dati, che consentono di trasformare in algoritmi grandi stringhe di dati omogenei così da ridurre non tanto gli spazi di registrazione, quanto i tempi di accesso ai dati stessi, le riduzioni dei tempi di risposta possono essere davvero considerevoli. Molto dipende tuttavia anche dai rapporti di compressione che sono in grado di raggiungere i vari sistemi in competizione tra loro.

In questa stessa categoria rientrano anche i sistemi capaci di elaborare direttamente in memoria grandi quantità di dati, come nei casi di SAP HANA e Aerospike, cosa facilitata dal crollo dei costi della memoria e da nuove tecnologie quali le memorie Flash e il Dynamic RAM.

Approcci combinati a Big Data e Analytics

L'uso di un approccio o dell'altro non sono mutuamente esclusivi, ma possono essere considerati come una sorta di primo passo al quale ne seguiranno altri. Ad esempio, si può partire potenziando l'Hardware, e nel frattempo sviluppare nuovi modelli e interrogazioni basate su Hadoop. Oppure, si può partire da un progetto pilota con un Database NoSQL per poi estenderne l'adozione ad altri dominii, procedendo in parallelo alla revisione dell'infrastruttura. Molto dipende dalle situazioni, dalle disponibilità e soprattutto dalle priorità dell'azienda. Per l'analisi di dati non strutturati in modalità Batch, Hadoop costituisce la scelta migliore, mentre i Database NoSQL sono da preferirsi per le analisi di grandi quantità di dati strutturati in modo eterogeneo. In alcuni casi, potrà risultare conveniente avviare l'analisi con Hadoop per poi approfondirne alcune parti con un DBMS NoSQL....

A condizionare la scelta, dal momento che l'integrazione dei dati costituisce un punto essenziale da rispettare, può concorrere anche la disponibilità di connettori tra i propri sistemi di partenza e le soluzioni ipotizzate in fase di valutazione. Area nella quale si gioca anche la competizione di alcuni Vendor quali Pivotal Initiative, Hadapt, Cloudera e Hortonworks con la sua Stinger Initiative.

In ogni caso, occorre ricordarsi che si tratta di avviare un percorso evolutivo, nel quale anche le stesse tecnologie stanno evolvendo, per cui bisogna procedere per gradi, ma è indispensabile cominciare subito per non trovarsi in ritardo o sorpresi da propri concorrenti più intraprendenti.

Ultima modifica ilGiovedì, 25 Maggio 2017 10:20

Aggiungi commento


Codice di sicurezza
Aggiorna

Torna in alto