Data Lake, il LAGO di dati
Il concetto di Data Lake è relativamente nuovo nel mondo IT, a differenza di altri temi legati ai dati quali Datawarehouse, Data Mining, OLAP, OLTP, NOSQL, Big Data di cui si parla da un paio di decenni.
Data Lake è un repòsitory, un contenitore, un bacino… un LAGO, come dice la traduzione letterale, in cui le organizzazioni possono riversare dati che hanno in comune alcune classiche caratteristiche distintive:
- Non sono strutturati, almeno per il momento. Lo saranno magari in seguito, ma quando arrivano possono essere semplici file grezzi, immagini, video, dati generati da sistemi social, come i tweet di Tweeter, o i post su un blog, le visite ad una pagina WEB, gli acquisti su un portale di E-Commerce e così via.
- Dimensioni. Gli esempi che ho appena fatto sono già indicativi, ma il sizing può essere anche ordini di grandezza superiori, si pensi ai dispositivi IoT che raccolgono informazioni sull'inquinamento, sul traffico, sulle condizioni metereologiche. Pensiamo alle informazioni prodotte nel settore manifatturiero dalle catene di montaggio, le rilevazioni sismiche o di trivellazioni del terreno alla ricerca di materie prima, agli open data della pubblica amministrazione, della sanità e così via.
- Velocità. Sempre riagganciandomi agli esempi appena fatti, consideriamo che i dati arrivano a grandissima velocità ed occorre un "lago" in grado di assorbire le informazioni senza colli di bottiglia, senza straripare, senza perdere un bit
- Criticità. Le informazioni trasportate dagli esempi sopra sono, come dicono gli americani, the source of truth, il verbo, non sono replicate e non sono ricostruibili. Ergo, non possono essere perse, come una fotografia scattata con il nostro smartphone: una volta cancellata, è persa.
Da queste considerazioni si evince immediatamente la necessità e l'opportunità, da parte di qualunque organizzazione -azienda privata, multinazionale, piccola impresa, pubblica amministrazione, ente sanitario…- di disporre di un servizio che consenta loro di indirizzare le esigenze descritte.
Ma se da una parte queste esigenze sono semplici da comprendere e da definire, la realizzazione di un sistema in grado di soddisfarle è tutt'altro che banale. Anche perché c'è un altro elemento, fondamentale, che va preso in considerazione, e che più che un'esigenza è un vincolo imprescindibile: il COSTO. Nessuno può permettersi budget infinito, e qui stiamo evidenziando delle esigenze che per loro natura sono costose: vogliamo spazio, velocità, affidabilità, disponibilità, sicurezza.
Aggiungiamo un altro punto critico: il TEMPO. Quanto occorre all'IT per mettere a disposizione un data lake con le caratteristiche descritte? Parliamo comunque di mesi. Che non si sposa bene con un mondo dove la tecnologia evolve così rapidamente, dove spesso vince chi per primo riesce a posizionare la soluzione innovativa (talvolta solo abbozzata), in altre parole dove il GO-TO-MARKET è l'lemento chiave. Fra l'altro nella maggior parte dei casi non siamo nemmeno in grado di indicare con precisione l'effettivo dimensionamento, perché dobbiamo sperare che poi il sistema venga da una parte sfruttato adeguatamente, dall'altra non diventi sovraccarico con il rischio di impattare consistenza dei dati e velocità di accesso.
Ebbene, la risposta a questi temi non può che essere una: il CLOUD, che può essere in grado di coprire tutte le esigenze di cui abbiamo parlato: pronto in pochi minuti, storage e velocità potenzialmente illimitati, certificazioni di sicurezza e protezione, ridondanza locale e geografica, SLA e molto altro. Tutto questo grazie alla fornitura di questi servizi in modalità PaaS -Platform as a Service-, che demandano al cloud provider la responsabilità di gestire l'infrastruttura e lasciano al cliente la possibilità di focalizzarsi esclusivamente sulle sorgenti da cui attingere, sulla business logic che deve implementare, sulla presentazione dei risultati. Certo, perché il data lake storage è fondamentale, ma c'è un altro capitolo imprescindibile e altrettanto importante: data lake analytics. Occorre cioè una piattaforma che permetta l'esecuzione di applicazioni distribuite realizzate con strumenti di sviluppo e di analisi che abilitino rispettivamente developers e data scientists a realizzare soluzioni ed elaborazioni che estraggono dal data lake gli insights, ovvero le informazioni contenute nei dati. Il passo successivo è la realizzazione di modelli che permettano di predire, sulla base dei dati raccolti, ciò che accadrà in futuro.
In questo panorama, Microsoft ha la propria soluzione Data Lake, posizionata sulla sua piattaforma Azure. Con forse non troppa fantasia, la soluzione si chiama Microsoft Azure Data Lake e indirizza tutte le esigenze sopra esposte sia per la parte di storage, che per quella di analytics e infine di presentation.
Spero che questa introduzione abbia stimolato l'interesse su questo tema molto attuale e a mio parere anche affascinante. Nelle prossime puntate entreremo nel merito del funzionamento delle tecnologie legate al servizio Microsoft Azure Data Lake.