Che cos'è un Data Lake?
L'universo digitale raddoppia le proprie dimensioni ogni anno e, secondo le previsioni, raggiungerà i 44.000 miliardi di gigabyte entro il 2020. Il 90% circa di questi dati è non strutturato o semi-strutturato, e pone quindi una doppia sfida: trovare un modo per conservare tutti questi dati e mantenere la capacità di elaborarli velocemente. È qui che entrano in gioco i data lake.
Che cos'è un data lake?
Un data lake è un archivio centralizzato nel quale vengono conservati Big Data in formato grezzo granulare provenienti da numerose sorgenti. Può contenere dati strutturati, semi-strutturati e non strutturati; questo significa che i dati possono essere conservati in un formato più flessibile per uso futuro. Quando si memorizzano i dati, il data lake li associa a identificatori e tag di metadati per velocizzarne il successivo recupero.
Creato da James Dixon, CTO di Pentaho, il termine “data lake” si riferisce alla natura particolare dei dati conservati in un data lake, che si differenziano dai dati puliti ed elaborati contenuti nei tradizionali sistemi di data warehouse.
I data lake sono solitamente configurati su un cluster di hardware comune, economico e scalabile. Questo consente di "scaricare" i dati nel lago nel caso in cui fosse necessario recuperarli in un secondo tempo, senza preoccuparsi della capacità di storage. I cluster possono essere on-premise o in cloud.
I data lake vengono spesso confusi con i data warehouse, ma hanno caratteristiche specifiche che offrono grandi vantaggi alle organizzazioni, soprattutto con la progressiva migrazione dei Big Data e dei relativi processi da ambienti on-premise al cloud.
Vantaggi del data lake
Il data lake opera secondo un principio definito schema-on-read. Questo significa che non esiste uno schema predefinito nel quale i dati devono essere inquadrati prima dello stoccaggio. Solo quando vengono letti in fase di elaborazione i dati vengono scomposti e inseriti in uno schema secondo necessità. Questa funzionalità abbatte i tempi solitamente dedicati alla definizione di uno schema e consente di memorizzare i dati così come sono, in qualsiasi formato.
I data scientist possono accedere, preparare e analizzare dati più velocemente e con più precisione utilizzando i data lake. Questo grande bacino di dati (disponibili in svariati formati non tradizionali) offre agli esperti di analisi la possibilità di accedere ai dati per diversi utilizzi, dall'analisi del sentiment al rilevamento delle frodi.
Data lake e data warehouse
Data lake e data warehouse sono simili nelle loro funzioni e nei loro obiettivi basilari, pertanto tendono a essere confusi:
- Entrambi sono repository per la conservazione dei dati che consolidano i diversi archivi di dati di un'organizzazione.
- Entrambi hanno l'obiettivo di creare un unico archivio di dati per alimentare varie applicazioni.
Tuttavia, esistono alcune distinzioni fondamentali che rendono le due soluzioni idonee a scenari differenti.
- Schema-on-read e schema-on-write — Lo schema di un data warehouse viene definito e strutturato prima dello stoccaggio dei dati (cioè lo schema viene applicato in fase di scrittura dei dati). Un data lake, al contrario, non ha uno schema predefinito e consente di memorizzare i dati nel loro formato nativo. Pertanto, in un data warehouse gran parte del lavoro di preparazione dei dati avviene solitamente prima dell'elaborazione. In un data lake avviene invece dopo, quando i dati vengono effettivamente utilizzati.
- Accessibilità complessa e accessibilità semplice — Poiché i dati non sono organizzati in una forma semplificata prima dello stoccaggio, un data lake richiede spesso un esperto con una conoscenza approfondita dei vari tipi di dati e delle loro relazioni reciproche.
Un data warehouse, al contrario, è facilmente accessibile a utenti tecnici e non, grazie al suo schema ben definito e documentato. Anche un nuovo membro del team può cominciare velocemente a utilizzare un data warehouse.
- Flessibilità e rigidità — Un data warehouse richiede non solo tempo per la definizione dello schema, ma anche notevoli risorse per modificare tale schema quando i requisiti cambiano. I data lake possono invece adattarsi facilmente ai cambiamenti. Inoltre, con il crescente fabbisogno di capacità di storage, è più facile scalare i server su un cluster di data lake.
Data lake in cloud oppure on-premise?
I data lake vengono tradizionalmente implementati on-premise, con storage su HDFS ed elaborazione (YARN) su cluster Hadoop. Hadoop è scalabile, economico e offre buone prestazioni con il vantaggio intrinseco della presenza in loco dei dati (dati e computer risiedono nello stesso luogo).
La creazione di un'infrastruttura on-premise pone però alcune problematiche:
- Spazio — I server sono ingombranti e occupano spazio negli edifici, con conseguente incremento dei costi immobiliari.
- Setup — L'acquisto dell'hardware e la messa a punto dei data center non è semplice e può richiedere settimane o mesi.
- Scalabilità — Qualora fosse necessario aumentare la capacità di storage, servono tempo e lavoro per soddisfare il maggiore fabbisogno di spazio e ottenere l'approvazione dei relativi costi dalla dirigenza.
- Stima dei requisiti — Poiché la scalabilità non è più semplice in un ambiente on-premise, diventa importante stimare correttamente i requisiti hardware all'inizio del progetto. Poiché la crescita dei dati non avviene in modo sistematico, si tratta di un compito piuttosto arduo.
- Costi — I costi stimati si sono rivelati più alti nelle soluzioni on-premise rispetto alle alternative in cloud.
I data lake in cloud aiutano invece a superare queste problematiche. Un data lake in cloud è:
- Più facile e più veloce da avviare. Invece di un approccio in stile "big bang", il cloud consente di procedere per piccoli passi.
- Economico grazie al modello di pagamento in base all'utilizzo effettivo (pay-as-you-use).
- Più facile da espandere quando le esigenze aumentano, eliminando lo stress legato alla stima dei requisiti e ai processi di approvazione di spesa.
Ulteriori risparmi derivano dalla riduzione dello spazio occupato negli edifici.
Scopri come BeachBody ha migliorato la scalabilità dell'architettura di gestione dei dati e della forza lavoro con un data lake in cloud:
Sfide dei data lake in cloud
Naturalmente anche i data lake in cloud pongono alcune problematiche. Alcune organizzazioni preferiscono non conservare dati riservati o sensibili nel cloud per i rischi di sicurezza. Nonostante la maggior parte dei fornitori di data lake in cloud garantisca la sicurezza dei sistemi e abbia potenziato i livelli di protezione negli ultimi anni, permane un alone di incertezza sul furto di dati.
Un altro problema concreto è che alcune organizzazioni hanno già implementato sistemi di data warehouse per conservare i loro dati strutturati. Queste aziende possono scegliere di migrare tutti i dati in cloud oppure valutare una soluzione ibrida con un motore di calcolo comune per accedere ai dati strutturati nel data warehouse e ai dati non strutturati nel cloud.
La governance dei dati è un altro problema. Un data lake non dovrebbe diventare una palude di dati nella quale è difficile muoversi. La piattaforma di Talend garantisce che i data lake siano puliti e accessibili.
Architettura del data lake: Hadoop, AWS e Azure
È importante ricordare che il data lake è costituito da due componenti: archiviazione (storage) e calcolo (compute). Entrambe le risorse possono essere collocate on-premise o in cloud. Da questo derivano diverse combinazioni possibili quando si progetta l'architettura di un data lake.
Le organizzazioni possono scegliere di restare completamente on-premise, trasferire l'intera architettura sul cloud, considerare cloud multipli o valutare soluzioni ibride fra tutte queste opzioni.
Non esiste un'unica ricetta. In base alle esigenze dell'organizzazione, si possono adottare diverse soluzioni.
Data lake su Hadoop
Molti associano Hadoop ai data lake.
Un cluster Hadoop di server distribuiti risolve il problema dello stoccaggio di Big Data. Il cuore di Hadoop è il suo livello di archiviazione HDFS (Hadoop Distributed File System), che conserva e replica i dati su molteplici server. YARN (Yet Another Resource Negotiator) è il gestore di risorse che decide come pianificare le risorse su ciascun nodo. MapReduce è il modello di programmazione utilizzato da Hadoop per spacchettare i dati in piccoli sottoset ed elaborarli nel suo cluster di server.
Oltre a questi tre componenti principali, l'ecosistema Hadoop comprende numerosi strumenti supplementari come Hive, Pig, Flume, Sqoop e Kafka, che supportano le operazioni di acquisizione, preparazione ed estrazione dei dati. I data lake Hadoop possono essere installati on-premise e in cloud utilizzando piattaforme aziendali come Cloudera e HortonWorks. Altri data lake in cloud come Azure completano le funzionalità dell'architettura Hadoop.
Punti di forza:
- Maggiore familiarità fra i tecnici
- Costi inferiori grazie al modello open-source
- Disponibilità di numerosi strumenti ETL per l'integrazione con Hadoop
- Facilmente scalabile
- Calcolo più veloce grazie alla conservazione dei dati in loco
Data lake su AWS
AWS offre una suite completa di prodotti per le sue soluzioni data lake.
Amazon Simple Storage Service (Amazon S3) è il cuore della soluzione che fornisce la funzione di archiviazione. Kinesis Streams, Kinesis Firehose, Snowball e Direct Connect sono strumenti di acquisizione dei dati che consentono agli utenti di trasferire grandi quantità di dati in S3. C'è anche un servizio per la migrazione di database che aiuta a trasferire dati on-premise esistenti verso il cloud.
Oltre a S3, l'offerta comprende DynamoDB, un database No-SQL a bassa latenza, ed Elastic Search, un servizio che mette a disposizione un meccanismo semplificato per interrogare il data lake. I Cognito User Pools definiscono l'autenticazione e l'accesso degli utenti al data lake. Servizi come Security Token Service, Key Management Service, CloudWatch e CloudTrail garantiscono la sicurezza dei dati. Per elaborazione e analisi sono disponibili strumenti quali RedShift, QuickSight, EMR e Machine Learning.
La lunga lista di prodotti offerti da AWS ha una curva di apprendimento iniziale molto ripida. Ciononostante, le funzionalità complete di questa soluzione trovano ampio uso in applicazioni di business intelligence.
Punti di forza:
- Suite di prodotti completa e ricca di funzioni
- Flessibilità per la scelta di prodotti in base a requisiti specifici
- Costi contenuti
- Standard avanzati di sicurezza e conformità
- Separazione fra elaborazione e archiviazione per poter dimensionare i due elementi come necessario
- La collaborazione con aziende della rete APN (AWS Partner Network) come Talend garantisce un onboarding fluido su AWS
Data lake su Azure
Azure è un data lake proposto da Microsoft, con un livello di archiviazione e uno di analisi. Il livello di archiviazione è chiamato Azure Data Lake Store (ADLS), mentre il livello di analisi si articola in due componenti: Azure Data Lake Analytics e HDInsight.
ADLS si basa sullo standard HDFS e ha una capacità di storage illimitata. Può conservare migliaia di miliardi di file con una dimensione per singolo file superiore a un petabyte. ADLS consente di archiviare dati in qualsiasi formato, è sicuro e scalabile. Supporta qualsiasi applicazione che usa lo standard HDFS, facilitando la migrazione di dati esistenti e la connettività plug-and-play con altri motori di calcolo.
HDInsight è un servizio di analisi per data lake in cloud. Basato su Hadoop YARN, consente di accedere ai dati con strumenti quali Spark, Hive, Kafka e Storm. Supporta la sicurezza di livello enterprise grazie all'integrazione con Azure Active Directory.
Azure Data Lake Analytics è un altro servizio di analisi con un approccio differente. Invece di utilizzare strumenti come Hive, usa un linguaggio chiamato U-SQL, una combinazione di SQL e C#, per accedere ai dati. È ideale per l'elaborazione in batch di Big Data in quanto offre velocità superiori a costi inferiori (si paga solo per il lavoro svolto).
Punti di forza:
- Archiviazione e calcolo sono entrambi in cloud, semplificando la gestione
- Servizi analitici efficaci con funzionalità evolute
- Facilità di migrazione da un cluster Hadoop esistente
- Molti esperti di Big Data hanno familiarità con Hadoop e i suoi strumenti, pertanto è facile trovare manodopera qualificata
- L'integrazione con Active Directory evita oneri aggiuntivi per gestire la sicurezza
Primi passi con i data lake
Grazie alla loro capacità di gestire velocità e varietà, i data lake stanno suscitando grande interesse fra chi si occupa di business intelligence. Ora esiste la possibilità di combinare dati elaborati con dati soggettivi reperibili su Internet.
È possible fare una vera e propria "radiografia" o "risonanza magnetica" dei dati per individuare schemi causali di malattie. Nelle applicazioni IoT si possono elaborare quantità enormi di dati raccolti da sensori a velocità incredibili. Il commercio al dettaglio può offrire un'esperienza omnicanale sfruttando una miniera di dati e informazioni sui clienti.
I data lake non sono utili solo per applicazioni avanzate di analisi predittiva, ma anche per i normali report aziendali, soprattutto quando si devono gestire diversi formati di dati.
La domanda non è più tanto se il data lake serva o meno, ma piuttosto quale soluzione scegliere e come implementarla. Consulta la nostra Definitive Guide to Cloud Data Warehouses and Cloud Data Lakes per scoprire come ottimizzare l'investimento nel data lake.