Questo post è apparso originariamente su O’Reilly Radar (“What is big data?”). Viene ripubblicato con l’autorizzazione.
Di Edd Dumbill
I grandi dati sono dati che superano la capacità di elaborazione dei sistemi di database convenzionali. I dati sono troppo grandi, si muovono troppo velocemente, o non si adattano ai vincoli delle vostre architetture di database. Per ottenere valore da questi dati, è necessario scegliere un modo alternativo per elaborarli.
La parola d’ordine IT del 2012, i big data sono diventati praticabili in quanto sono emersi approcci convenienti per domare il volume, la velocità e la variabilità dei dati massicci. All’interno di questi dati si trovano modelli e informazioni preziose, precedentemente nascoste a causa della quantità di lavoro necessaria per estrarle. Per le aziende leader, come Walmart o Google, questo potere è stato a portata di mano per qualche tempo, ma a costi fantastici. Oggi l’hardware di base, le architetture cloud e il software open source portano l’elaborazione dei grandi dati alla portata delle persone con meno risorse. L’elaborazione dei big data è eminentemente fattibile anche per le piccole startup da garage, che possono affittare a buon mercato il tempo del server nel cloud.
Il valore dei big data per un’organizzazione rientra in due categorie: uso analitico e abilitazione di nuovi prodotti. I big data analytics possono rivelare intuizioni nascoste in precedenza da dati troppo costosi da elaborare, come l’influenza dei pari tra i clienti, rivelata analizzando le transazioni degli acquirenti, i dati sociali e geografici. Essere in grado di elaborare ogni dato in un tempo ragionevole rimuove il fastidioso bisogno di campionamento e promuove un approccio investigativo ai dati, in contrasto con la natura piuttosto statica dell’esecuzione di rapporti predeterminati.
Le startup web di successo dell’ultimo decennio sono i primi esempi di big data usati come abilitatori di nuovi prodotti e servizi. Per esempio, combinando un gran numero di segnali dalle azioni di un utente e da quelle dei suoi amici, Facebook è stato in grado di creare un’esperienza utente altamente personalizzata e di creare un nuovo tipo di business pubblicitario. Non è una coincidenza che la parte del leone delle idee e degli strumenti alla base dei big data sia emersa da Google, Yahoo, Amazon e Facebook.
L’emergere dei big data nell’impresa porta con sé una controparte necessaria: l’agilità. Sfruttare con successo il valore dei big data richiede sperimentazione ed esplorazione. Che si tratti di creare nuovi prodotti o di cercare modi per ottenere un vantaggio competitivo, il lavoro richiede curiosità e uno sguardo imprenditoriale.
Come sono i big data?
Come termine generico, “big data” può essere piuttosto nebuloso, così come il termine “cloud” copre diverse tecnologie. I dati in ingresso ai sistemi di big data potrebbero essere chiacchiere da social network, log di server web, sensori di flusso di traffico, immagini satellitari, flussi audio trasmessi, transazioni bancarie, MP3 di musica rock, il contenuto delle pagine web, scansioni di documenti governativi, tracce GPS, telemetria dalle automobili, dati del mercato finanziario, e la lista continua. Sono tutti la stessa cosa?
Per chiarire le cose, le tre V di volume, velocità e varietà sono comunemente usate per caratterizzare diversi aspetti dei big data. Sono una lente utile attraverso cui vedere e capire la natura dei dati e le piattaforme software disponibili per sfruttarli. Molto probabilmente vi scontrerete con ognuna delle V in un modo o nell’altro.
Volume
Il beneficio ottenuto dalla capacità di elaborare grandi quantità di informazioni è l’attrazione principale della big data analytics. Avere più dati batte avere modelli migliori: semplici pezzi di matematica possono essere irragionevolmente efficaci date grandi quantità di dati. Se si potesse eseguire quella previsione tenendo conto di 300 fattori invece di 6, si potrebbe prevedere meglio la domanda?
Questo volume presenta la sfida più immediata alle strutture IT convenzionali. Richiede un’archiviazione scalabile e un approccio distribuito all’interrogazione. Molte aziende hanno già grandi quantità di dati archiviati, magari sotto forma di log, ma non la capacità di elaborarli.
Assumendo che i volumi di dati siano più grandi di quelli che le infrastrutture di database relazionali convenzionali possono gestire, le opzioni di elaborazione si riducono ampiamente a una scelta tra architetture di elaborazione massicciamente parallele – data warehouse o database come Greenplum – e soluzioni basate su Apache Hadoop. Questa scelta è spesso informata dal grado in cui una delle altre “V” – la varietà – entra in gioco. Tipicamente, gli approcci di data warehousing comportano schemi predeterminati, adatti a un set di dati regolari e in lenta evoluzione. Apache Hadoop, d’altra parte, non pone alcuna condizione sulla struttura dei dati che può elaborare.
Al suo centro, Hadoop è una piattaforma per la distribuzione dei problemi di calcolo su un certo numero di server. Sviluppato e rilasciato come open source da Yahoo, implementa l’approccio MapReduce sperimentato da Google nella compilazione dei suoi indici di ricerca. MapReduce di Hadoop comporta la distribuzione di un set di dati tra più server e l’esecuzione di operazioni sui dati: la fase di “mappa”. I risultati parziali vengono poi ricombinati: la fase “reduce”.
Per memorizzare i dati, Hadoop utilizza il proprio filesystem distribuito, HDFS, che rende i dati disponibili a più nodi di calcolo. Un tipico modello di utilizzo di Hadoop coinvolge tre fasi:
- caricamento dei dati in HDFS,
- operazioni MapReduce, e
- recupero dei risultati da HDFS.
Questo processo è per sua natura un’operazione batch, adatto per compiti analitici o di calcolo non interattivo. Per questo motivo, Hadoop non è di per sé una soluzione di database o data warehouse, ma può agire come un’aggiunta analitica ad uno di essi.
Uno dei più noti utenti Hadoop è Facebook, il cui modello segue questo schema. Un database MySQL memorizza i dati principali. Questo viene poi riflesso in Hadoop, dove avvengono i calcoli, come la creazione di raccomandazioni per voi in base agli interessi dei vostri amici. Facebook poi trasferisce i risultati di nuovo in MySQL, per l’uso nelle pagine servite agli utenti.
Salva il 20% sulla registrazione con il codice RADAR20
Velocity
L’importanza della velocità dei dati – il tasso crescente al quale i dati fluiscono in un’organizzazione – ha seguito un modello simile a quello del volume. I problemi prima limitati a segmenti dell’industria si presentano ora in un contesto molto più ampio. Le aziende specializzate come i commercianti finanziari hanno da tempo trasformato a loro vantaggio i sistemi che gestiscono i dati in rapido movimento. Ora è il nostro turno.
Perché è così? L’era di Internet e della telefonia mobile significa che il modo in cui forniamo e consumiamo prodotti e servizi è sempre più strumentato, generando un flusso di dati verso il fornitore. I rivenditori online sono in grado di compilare grandi storie di ogni clic e interazione dei clienti: non solo le vendite finali. Coloro che sono in grado di utilizzare rapidamente queste informazioni, raccomandando ulteriori acquisti, per esempio, ottengono un vantaggio competitivo. L’era degli smartphone aumenta ancora il tasso di afflusso di dati, poiché i consumatori portano con sé una fonte di immagini e dati audio geolocalizzati in streaming.
Il problema non è solo la velocità dei dati in arrivo: è possibile trasmettere dati in movimento veloce in un archivio di massa per una successiva elaborazione in batch
, per esempio. L’importanza sta nella velocità del ciclo di feedback, che porta i dati dall’input alla decisione. Una pubblicità dell’IBM sottolinea che non attraversereste la strada se tutto ciò che aveste fosse un’istantanea di cinque minuti della posizione del traffico. Ci sono momenti in cui semplicemente non sarete in grado di aspettare l’esecuzione di un report o il completamento di un lavoro Hadoop.
La terminologia del settore per questi dati in rapido movimento tende ad essere “dati in streaming” o “elaborazione di eventi complessi”. Quest’ultimo termine era più affermato nelle categorie di prodotti prima che l’elaborazione dei dati in streaming acquisisse una rilevanza più diffusa, e sembra probabile che diminuisca in favore dello streaming.
Ci sono due ragioni principali per considerare l’elaborazione in streaming. La prima è quando i dati di input sono troppo veloci per essere memorizzati nella loro interezza: per mantenere i requisiti di archiviazione pratici, un certo livello di analisi deve avvenire mentre i dati arrivano. All’estremo della scala, il Large Hadron Collider al CERN genera così tanti dati che gli scienziati devono scartarne la stragrande maggioranza – sperando di non aver buttato via nulla di utile. La seconda ragione per considerare lo streaming è quando l’applicazione richiede una risposta immediata ai dati. Grazie all’aumento delle applicazioni mobili e dei giochi online questa è una situazione sempre più comune.
Le categorie di prodotti per la gestione dei dati in streaming si dividono in prodotti proprietari consolidati come InfoSphere Streams di IBM, e i framework open source meno raffinati e ancora emergenti che hanno origine nell’industria web: Storm di Twitter e Yahoo S4.
Come menzionato sopra, non si tratta solo di dati in ingresso. Anche la velocità delle uscite di un sistema può essere importante. Più stretto è il ciclo di feedback, maggiore è il vantaggio competitivo. I risultati potrebbero andare direttamente in un prodotto, come le raccomandazioni di Facebook, o in dashboard utilizzati per guidare il processo decisionale.
È questo bisogno di velocità, in particolare sul web, che ha spinto lo sviluppo dei key-value store e dei database a colonne, ottimizzati per il recupero veloce delle informazioni precalcolate. Questi database fanno parte di una categoria ombrello conosciuta come NoSQL, usata quando i modelli relazionali non sono adatti.
Varietà
Raramente i dati si presentano in una forma perfettamente ordinata e pronta per l’elaborazione. Un tema comune nei sistemi di big data è che i dati sorgente sono diversi e non rientrano in strutture relazionali ordinate. Potrebbe essere testo dai social network, dati di immagini, un feed grezzo direttamente da una fonte di sensori. Nessuna di queste cose è pronta per essere integrata in un’applicazione.
Anche sul web, dove la comunicazione da computer a computer dovrebbe portare alcune garanzie, la realtà dei dati è disordinata. Browser diversi inviano dati diversi, gli utenti nascondono informazioni, possono usare versioni diverse del software o fornitori diversi per comunicare con voi. E si può scommettere che se parte del processo coinvolge un essere umano, ci saranno errori e incongruenze.
Un uso comune dell’elaborazione dei big data è quello di prendere dati non strutturati ed estrarre un significato ordinato, per il consumo da parte degli esseri umani o come input strutturato per un’applicazione. Uno di questi esempi è la risoluzione delle entità, il processo di determinare esattamente a cosa si riferisce un nome. Questa città è Londra, Inghilterra, o Londra, Texas? Nel momento in cui la vostra logica di business ci arriva, non volete tirare a indovinare.
Il processo di passaggio dai dati sorgente ai dati dell’applicazione elaborati comporta la perdita di informazioni. Quando si riordina, si finisce per buttare via qualcosa. Questo sottolinea un principio dei big data: quando puoi, tieni tutto. Potrebbero esserci segnali utili nei bit che buttate via. Se si perdono i dati di partenza, non si può tornare indietro.
Nonostante la popolarità e la natura ben compresa dei database relazionali, non è detto che debbano essere sempre la destinazione dei dati, anche quando vengono riordinati. Alcuni tipi di dati si adattano meglio a certe classi di database. Per esempio, i documenti codificati come XML sono più versatili se memorizzati in un negozio XML dedicato come MarkLogic. Le relazioni dei social network sono grafi per natura, e i database di grafi come Neo4J rendono le operazioni su di essi più semplici ed efficienti.
Anche quando non c’è una radicale discrepanza nel tipo di dati, uno svantaggio del database relazionale è la natura statica dei suoi schemi. In un ambiente agile ed esplorativo, i risultati dei calcoli si evolveranno con il rilevamento e l’estrazione di più segnali. I database NoSQL semi-strutturati soddisfano questo bisogno di flessibilità: forniscono abbastanza struttura per organizzare i dati, ma non richiedono lo schema esatto dei dati prima di memorizzarli.
In pratica
Abbiamo esplorato la natura dei big data, e sondato il panorama dei big data da un alto livello. Come al solito, quando si tratta di implementazione ci sono delle dimensioni da considerare oltre alla selezione degli strumenti.
Cloud o in-house?
La maggior parte delle soluzioni di big data sono ora fornite in tre forme: solo software, come appliance o cloud-based. La decisione su quale strada prendere dipenderà, tra le altre cose, da questioni di localizzazione dei dati, privacy e regolamentazione, risorse umane e requisiti del progetto. Molte organizzazioni optano per una soluzione ibrida: utilizzando risorse cloud on-demand per integrare le implementazioni in-house.
I grandi dati sono grandi
È un fatto fondamentale che i dati troppo grandi da elaborare in modo convenzionale sono anche troppo grandi da trasportare ovunque. L’IT sta subendo un’inversione di priorità: è il programma che deve muoversi, non i dati. Se vuoi analizzare i dati del censimento degli Stati Uniti, è molto più facile eseguire il tuo codice sulla piattaforma di servizi web di Amazon, che ospita tali dati localmente, e non ti costerà tempo o denaro per trasferirli.
Anche se i dati non sono troppo grandi da spostare, la localizzazione può ancora essere un problema, specialmente con dati in rapido aggiornamento. I sistemi di trading finanziario si affollano nei data center per ottenere la connessione più veloce ai dati di origine, perché quella differenza di millisecondi nel tempo di elaborazione equivale a un vantaggio competitivo.
I grandi dati sono disordinati
Non si tratta solo di infrastrutture. I professionisti dei big data riferiscono costantemente che l’80% dello sforzo necessario per trattare i dati consiste nel ripulirli, come osserva Pete Warden nel suo Big Data Glossary: “
A causa dell’alto costo dell’acquisizione e della pulizia dei dati, vale la pena considerare ciò di cui avete effettivamente bisogno per procurarvi i dati. I mercati di dati sono un mezzo per ottenere dati comuni, e spesso si è in grado di contribuire ai miglioramenti indietro. La qualità può ovviamente essere variabile, ma sarà sempre più un punto di riferimento su cui i marketplace di dati competono.
Cultura
Il fenomeno dei big data è strettamente legato all’emergere della data science, una disciplina che unisce matematica, programmazione e istinto scientifico. Trarre vantaggio dai big data significa investire in team con queste competenze e circondarli con la volontà organizzativa di comprendere e utilizzare i dati per trarne vantaggio.
Nel suo rapporto “Building Data Science Teams”, D.J. Patil caratterizza
gli scienziati dei dati come aventi le seguenti qualità:
- Competenza tecnica: i migliori scienziati dei dati hanno tipicamente una profonda esperienza in qualche disciplina scientifica.
- Curiosità: un desiderio di andare sotto la superficie e scoprire e distillare un problema in una serie molto chiara di ipotesi che possono essere testate.
- Storytelling: la capacità di usare i dati per raccontare una storia e di essere in grado di comunicarla efficacemente.
- Intelligenza: la capacità di guardare a un problema in modi diversi e creativi.
La natura di vasta portata dei progetti di big data analytics può avere aspetti scomodi: i dati devono essere liberati dai silos per essere estratti, e l’organizzazione deve imparare a comunicare e interpetare i risultati dell’analisi.
Queste abilità di storytelling e intelligenza sono i fattori di passaggio che alla fine dettano se i benefici delle fatiche analitiche vengono assorbiti da un’organizzazione. L’arte e la pratica di visualizzare i dati sta diventando sempre più importante nel colmare il divario uomo-computer per mediare le intuizioni analitiche in modo significativo.
Sapete dove volete andare
Infine, ricordate che i big data non sono una panacea. Potete trovare modelli e indizi nei vostri dati, ma poi? Christer Johnson, leader IBM per l’analitica avanzata in Nord America, dà questo consiglio alle aziende che iniziano con i big data: per prima cosa, decidete quale problema volete risolvere.
Se scegliete un vero problema aziendale, come ad esempio come cambiare la vostra strategia pubblicitaria per aumentare la spesa per cliente, questo guiderà la vostra implementazione. Mentre il lavoro sui big data beneficia di uno spirito intraprendente, beneficia anche fortemente di un obiettivo concreto.
Relative:
- Cos’è la scienza dei dati?
- Costruire team di data science
- Big Data Now
- “Data at the Scale of the Universe,” presentazione di Kyle Cranmer a Strata NY 2011 (video)
- Costruire startup di dati: Veloce, grande e concentrato