Che cos'è un data lake?

Un data lake è un repository di archiviazione che contiene grandi volumi di dati nel formato nativo e non elaborato. I data lake ridimensionano i costi in modo conveniente per gestire terabyte e petabyte di dati, rendendoli adatti per la gestione di set di dati di grandi dimensioni e diversificati. I dati provengono in genere da molte origini diverse e possono includere dati strutturati come tabelle relazionali, dati semistrutturati come JSON, XML o file di log e dati non strutturati come immagini, audio o video.

Data Lake archivia tutti i tipi di dati nello stato originale, non trasformato e applica la trasformazione solo quando i dati sono necessari. Questo approccio è noto come schema-on-read. Al contrario, un data warehouse applica la struttura e applica le trasformazioni durante l'inserimento dei dati. Questo approccio è noto come schema-on-write.

Diagramma che mostra i casi d'uso di Data Lake.

I casi d'uso comuni di Data Lake includono:

  • Inserimento e spostamento dei dati: Raccogliere e consolidare i dati dai servizi cloud, dai dispositivi IoT (Internet delle cose), dai sistemi locali e dalle origini di streaming in un unico repository.

  • Elaborazione di Big Data: Gestire dati ad alta velocità su larga scala usando framework di elaborazione distribuiti.

  • Analisi e Machine Learning: Supportare l'analisi esplorativa, l'analisi avanzata e il training dei modelli di intelligenza artificiale e l'ottimizzazione su set di dati di grandi dimensioni e diversi.

  • Business Intelligence (BI) e creazione di report: Abilitare dashboard e report integrando subset curati di dati lake in warehouse o strumenti di business intelligence.

  • Archiviazione e conformità dei dati: Archiviare set di dati cronologici o non elaborati per la conservazione a lungo termine, la verificabilità e la conformità alle normative.

Vantaggi di un data lake

  • Conserva i dati non elaborati per un uso futuro: Data Lake archivia i dati nel formato non elaborato, che garantisce la disponibilità a lungo termine per un uso futuro. Questo approccio è particolarmente utile negli ambienti Big Data in cui le potenziali informazioni dettagliate dei dati potrebbero non essere note in anticipo. È anche possibile archiviare i dati in base alle esigenze senza perderne lo stato non elaborato.

  • Esplorazione auto-servizio: Analisti e data scientist possono eseguire query sui dati direttamente per sperimentare e scoprire modelli.

  • Supporto dei dati flessibili: A differenza dei warehouse che richiedono formati strutturati, data lake gestiscono dati strutturati, semistrutturati e non strutturati in modo nativo.

  • Scalabilità e prestazioni elevate: Nelle architetture distribuite, i data lake inseriscono ed elaborano i dati in parallelo su larga scala. Spesso superano le pipeline di estrazione, trasformazione e caricamento tradizionali in carichi di lavoro ad alto volume. Ottenere questi vantaggi in termini di prestazioni tramite:

    • Parallelismo: I motori di calcolo distribuiti come Apache Spark suddividono i dati ed eseguono trasformazioni su molti nodi contemporaneamente. I framework tradizionali di ETL spesso dipendono dall'elaborazione sequenziale o dall'elaborazione multithread limitata.

    • Scalabilità: I sistemi distribuiti vengono ridimensionati orizzontalmente aggiungendo in modo elastico nodi di calcolo e archiviazione in base alle esigenze. Le pipeline ETL tradizionali dipendono in genere dal ridimensionamento verticale di un singolo host, che soddisfa rapidamente i limiti delle risorse.

  • Nozioni di base per le architetture ibride: I data lake spesso coesistono con i warehouse in un approccio lakehouse che combina l'archiviazione non elaborata con le prestazioni delle query strutturate.

Una soluzione data lake moderna comprende due componenti principali:

  • Archiviazione: Offre durabilità, tolleranza ai guasti, scalabilità infinita e inserimento ad alta velocità di diversi tipi di dati.

  • Processing: Motori come Spark in Azure Databricks e Microsoft Fabric alimentano queste soluzioni. Questi motori supportano trasformazioni, analisi e Machine Learning su larga scala.

Le soluzioni mature incorporano la gestione dei metadati, la sicurezza e la governance per mantenere la qualità dei dati, l'individuabilità e la conformità.

Architettura tipica del data lake

Un'architettura tipica Azure data lake è costituita da più livelli che organizzano i dati mentre si spostano nelle fasi di inserimento, trasformazione e consumo.

I livelli comuni includono:

  • Strato grezzo (bronzo): Archivia i dati inseriti nel formato originale con una trasformazione minima.

  • Livello pulito (argento): Contiene dati convalidati e trasformati ottimizzati per i carichi di lavoro di analisi e Machine Learning.

  • Livello curato (oro): Archivia set di dati aggregati e pronti per l'azienda usati dai team per la creazione di report, i dashboard e le applicazioni di dati downstream.

Questa progettazione a più livelli, nota come architettura medallion, migliora la qualità dei dati, la governance e le prestazioni.

Quando usare un data lake

È consigliabile usare un data lake per l'analisi esplorativa, l'analisi scientifica dei dati avanzata e i carichi di lavoro di Machine Learning. I data lake mantengono i dati in formato non elaborato e supportano lo schema in lettura, in modo che i team possano sperimentare diversi tipi di dati e scoprire informazioni dettagliate che i data warehouse tradizionali potrebbero non acquisire.

Data lake come origine per i data warehouse

Un data lake può fungere da sorgente upstream per un data warehouse, in cui i dati non elaborati vengono inseriti dai sistemi di origine e caricati nel data lake. I warehouse moderni come il Fabric Data Warehouse usano motori SQL di elaborazione parallela elevata (MPP) predefiniti per trasformare i dati non elaborati in un formato strutturato tramite extract, caricamento, trasformazione (ELT). Questo approccio è diverso dalle pipeline ETL tradizionali, in cui il motore ETL estrae e trasforma i dati prima di caricarli nel warehouse. Entrambi gli approcci offrono flessibilità a seconda del caso d'uso. Bilanciano la qualità dei dati, le prestazioni e l'utilizzo delle risorse e assicurano che il warehouse sia ottimizzato per l'analisi.

Scenari di streaming di eventi e IoT

I data lake sono efficaci per i casi d'uso di streaming di eventi e IoT, in cui i dati ad alta velocità devono essere mantenuti su larga scala senza limiti iniziali dello schema. I data lake possono inserire e archiviare flussi di eventi relazionali e non relazionali, gestire volumi elevati di scritture di piccole dimensioni con bassa latenza e supportare una velocità effettiva parallela elevata. Queste funzionalità rendono i data lake adatti alle applicazioni come il monitoraggio in tempo reale, la manutenzione predittiva e il rilevamento anomalie.

Nella tabella seguente vengono confrontati data lake e data warehouse.

Feature Lago di dati Magazzino dati
Tipo di dati Non elaborato, non strutturato, semistrutturato e strutturato Dati strutturati e curati organizzati in schemi relazionali
Prestazioni delle query Le prestazioni delle query dipendono dai motori di elaborazione e la trasformazione può verificarsi in fase di query (schema in lettura) Ottimizzato per query analitiche ad alte prestazioni su dati strutturati (schema-on-write)
Latenza Latenza più elevata a causa dell'elaborazione in fase di query Bassa latenza con dati pre-elaborati e strutturati
Fase di trasformazione dei dati La trasformazione si verifica in fase di query, che influisce sul tempo di elaborazione complessivo La trasformazione si verifica durante il processo ETL o ELT
Scalabilità Scalabilità elevata e conveniente per grandi volumi di dati diversificati Scalabile ma più costoso, soprattutto su larga scala
Cost Costi di archiviazione inferiori a causa dell'archiviazione a basso costo per i dati non elaborati. I costi di calcolo vengono sostenuti quando i dati vengono elaborati o sottoposti a query. Costi più elevati a causa di ottimizzazioni di calcolo e prestazioni dedicate per i carichi di lavoro analitici
Idoneità del caso d'uso Ideale per Big Data, Machine Learning ed analisi esplorative. Nelle architetture medallion i team usano il livello oro per la creazione di report. Ideale per bi, creazione di report e analisi strutturata dei dati

Sfide dei data lake

  • Scalabilità e complessità: La gestione di petabyte di dati non elaborati, non strutturati e semistrutturati richiede un'infrastruttura solida, un'elaborazione distribuita e un'attenta gestione dei costi.

  • Colli di bottiglia di elaborazione: Con l'aumento del volume e della diversità dei dati, i carichi di lavoro di trasformazione e di interrogazione possono causare latenza, il che richiede un'attenta progettazione della pipeline e orchestrazione dei carichi di lavoro.

  • Rischi per l'integrità dei dati: Senza convalida e monitoraggio sicuri, errori o inserimenti incompleti possono compromettere l'affidabilità del contenuto del lago.

  • Qualità e governance dei dati: Origini e formati diversi complicano l'applicazione degli standard. La gestione, la catalogazione e i framework di governance dei metadati sono fondamentali.

  • Prestazioni su larga scala: Le prestazioni delle query e l'efficienza di archiviazione possono peggiorare man mano che il lake aumenta, che richiede strategie di ottimizzazione come il partizionamento, l'indicizzazione e la memorizzazione nella cache.

  • Sicurezza e controllo di accesso: Garantire le autorizzazioni e il controllo appropriati in set di dati diversi per evitare l'uso improprio dei dati sensibili richiede la pianificazione.

  • Individuazione: Senza una catalogazione adeguata, i laghi possono trasformarsi in paludi di dati dove sono presenti informazioni preziose, ma inaccessibili o male interpretate.

Scelte di tecnologia

Quando si crea una soluzione Data Lake completa in Azure, prendere in considerazione le tecnologie seguenti:

  • Azure Data Lake Storage combina Azure Blob Storage con funzionalità data lake per fornire l'accesso compatibile con Apache Hadoop, le funzionalità dello spazio dei nomi gerarchico e la sicurezza avanzata per l'analisi efficiente dei Big Data. Gestisce grandi quantità di dati strutturati, semistrutturati e non strutturati.

  • Azure Databricks è una piattaforma di analisi dei dati basata sul cloud e machine learning che combina il meglio di Spark con un'integrazione approfondita nell'ecosistema Azure. Offre un ambiente collaborativo in cui i data engineer, i data scientist e gli analisti possono inserire, elaborare, analizzare e modellare grandi volumi di dati.

  • Azure Data Factory è un'integrazione dei dati basata sul cloud e un servizio ETL. È possibile usarlo per spostare, trasformare e orchestrare i flussi di lavoro dei dati in origini diverse, sia nel cloud che in locale.

  • Fabric è una piattaforma di analisi dei dati end-to-end che unifica lo spostamento dei dati, l'analisi scientifica dei dati, l'analisi in tempo reale e bi in un'unica esperienza SaaS (Software as a Service).

    Ogni tenant Fabric viene automaticamente fornito con un unico data lake logico noto come OneLake. OneLake è basato su Data Lake Storage e offre un livello di archiviazione unificato in grado di gestire dati strutturati e non strutturati.

Collaboratori

Microsoft gestisce questo articolo. I seguenti collaboratori hanno scritto questo articolo.

Autore principale:

Altro collaboratore:

Per visualizzare i profili di LinkedIn non pubblici, accedere a LinkedIn.

Passaggi successivi