| HT blog
Gestione di grandi basi di dati: da Hadoop a Redis, quanto contano nel web di oggi
di Stefano BellasioDue giorni fa leggevo un articolo di GigaOM che spiegava come installazioni molto complesse di una volta, tipicamente quelle di Google per la gestione di grandi basi di dati, oggi divengano molto popolari in compagnie medio grandi, che si scontrano con la necessità di gestire data set molto grandi, in continua evoluzione, su cui fare analisi dei dati e previsioni temporali.
Hadoop è di per se un ambiente abbastanza complesso, tale da richiedere che una compagnia come Cloudera iniziasse a standardizzarne l'utilizzo e l'approccio, in modo tale da rendere semplice l'utilizzo di queste tecnologie, per lo più basate sulla distribuzione dei dati su più macchine e sull'analisi tramite il noto algortimo di casa Google, Map/Reduce. GigaOM dice che il passo fatto da Cloudera può essere simile a quello fatto da un ambiente LAMP per la fornitura di contenuti e siti web online, abilita le aziende e i professionisti all'utilizzo, semplice, di una serie di componenti che in realtà richiedono mesi di lavoro per essere integrati in grandi ambienti. Non è un'analisi del tutto errata, ma per comprenderla bisogna chiedersi quanto sia necessario avere questa tecnologia disponibile in una maniera così semplice. Basta pensare al numero di dati che vengono immessi in rete, se il nostro business è la rete, analizzarne dati e trends, diviene evidente che anche se ristretta ad un solo settore, la necessità di analizzare grandi quantità di dati si rende fondamentale.
Dalla raccolta all'analisi dei dati
Raccogliere e analizzare i dati che provengono dalla rete è una necessità radicata negli ultimi sviluppi del web: se avete una serie di tweets potete andare a compiere diverse analisi su di questi, utili o meno per il proprio business. Lo stesso si può fare con le statistiche di un sito web, immaginiamo di avere milioni di visitatori: sarà fondamentale per noi poter estrarre dei trends di crescita e dei comportamenti che vadano oltre il semplice numero di pagine visualizzate e le pagine di ingresso e uscita. Per farlo serve una buona organizzazione e la possibilità dapprima di fare storage di questi dati, e in seguito di poterli analizzare per poi visualizzarli nella maniera più consona per la loro comprensione. Conoscete Redis? Se la risposta è no vi consiglio di partire da questo post che mostra un utilizzo, rudimentale, di Redis e poi dal progesso su Google Code, io mi sono divertito a provarlo in locale, ma le applicazioni possibili sono tante e sono tutte accomunate dalla necessità di fare storage di grandi quantità di dati, con la possibilità (dalla nuova versione) di fare anche ordinamento sui dati.
Social Networks e community online, dove l'analisi conta
Quali sono i business che necessitano maggiormente di queste tecnologie? Tantissimi, e si potrebbe dire che qualsiasi azienda di un certo livello produce grandi quantità di dati che devono poi quasi sempre essere analizzati. Nel mondo del web, possiamo dire che uno dei più grandi cluster di Hadoop è nelle mani di Facebook, e per cosa viene usato? Dalla valutazione delle statistiche del sito, alle informazioni sullo SPAM, fino alla gestione della qualità delle applicazioni, dal 2007 Facebook utilizza Hadoop per analizzare migliaia di data sets ogni giorno ed estrarne informazioni preziose. Vi sono milioni di dati in ingresso nel sistema che non solo devono essere catalogati, ma devono poter essere messi in condizione di fornire risposte e trends agli ingegneri della compagnia, per migliorare il sistema o il business della compagnia.
Potremmo immaginare che l'analisi dei dati, nel caso di Facebook, sia orientata anche ad una conoscenza approfondita dei suoi utenti, ma come sappiamo abbiamo solamente dei rumors su questo utilizzo. Facebook è un esempio del perchè i social networks e le grandi comunità online possono necessitare di una soluzione semplice per analizzare grandi quantità di dati archiviate nel tempo. Ma come avvenuto per tecnologie come LAMP, anche in questo caso bisogna orientarsi a modelli pronti, semplici da utilizzare, che riescano a fornire da subito una serie di strumenti utili: le immagini VMware di Cloudera fanno questo, forniscono un ambiente pronto per l'utilizzo.
Ovviamente la potenza computazionale richiesta non è indifferente in questi casi e bisogna affidarsi a strumenti come Amazon Elastic Map Reduce per evitare la creazione di un cluster ad hoc.
Perchè studiare e investire su questi sistemi
Perchè specializzarsi in questo frangente? Conoscere Hadoop non è ovviamente sufficiente, e la propria preparazione globale influisce fortemente sulla possibilità di saper analizzare e studiare grandi basi di dati, sia dal punto di vista tecnico, sia dal punto di vista dei risultati. Ma a tale proposito voglio ripescare quanto letto in un altro articolo che spiega, velocemente, come le tecnologie usate in Google (per non dire altre grandi compagnie), una volta considerate del tutto proprietarie, siano oggi problemi che affrontano diverse aziende, in modi diversi, ma con alla base elementi comuni.
Bisogna quindi capire che sono tecnologie che in un prossimo futuro diverranno molto comuni, al pari di quello che è oggi la gestione di un sistema per la pubblicazione di contenuti online con più server. Il settore è giovane, come lo sono prodotti come Hadoop, per cui chi ha voglia di studiare e intraprendere una propria attività ha sicuramente molto materiale su cui lavorare!
Powered by Disqus