Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
I dati arrivano negli account Data Lake in diversi formati. Questi formati includono formati leggibili, ad esempio JSON, . File CSV o XML e formati binari compressi, ad esempio .tar o .gz. L'arrivo dei dati include anche molte dimensioni, da alcuni file modificati a un'esportazione di un'intera tabella SQL. I dati possono anche essere costituiti da un numero elevato di file di piccole dimensioni, ad esempio eventi in tempo reale di una soluzione IoT.
Anche se Azure Data Lake Storage Gen2 supporta l'archiviazione per tutti i tipi di dati senza restrizioni, è consigliabile considerare attentamente i formati di dati per garantire l'efficienza della pipeline di elaborazione e ottimizzare i costi.
Molte organizzazioni ora standardizzano il formato di inserimento e separano il calcolo dall'archiviazione. Per questo motivo, il formato Delta Lake è diventato lo standard preferito per l'inserimento dei dati nel livello di arricchimento. Dal livello di arricchimento, il team dell'applicazione dati può fornire i dati in un formato che rispecchi il loro caso d'uso.
Annotazioni
Usare Delta Lake per supportare i casi d'uso batch e di streaming per l'inserimento iniziale dei dati fino al livello di arricchimento.
Questo articolo offre una panoramica di Delta Lake, delle relative prestazioni e del modo in cui consente di ottenere il supporto per la conformità e come standardizzare i dati man mano che passano dall'origine al livello di arricchimento.
Delta Lake
Delta Lake è un livello di archiviazione open source che porta transazioni ACID (atomicità, coerenza, isolamento e durabilità) a carichi di lavoro di Big Data e Apache Spark. Azure Databricks è compatibile con Linux Foundation Delta Lake.
Funzionalità principali di Delta Lake
Caratteristica / Funzionalità | Descrizione |
---|---|
Transazioni ACID | I data lake vengono in genere popolati tramite più processi e pipeline, alcuni dei quali scrivono i dati contemporaneamente alle letture. Gli ingegneri dei dati erano soliti seguire un processo manuale e soggetto a errori per assicurare l'integrità dei dati prima dell'introduzione di Delta Lake e delle transazioni. Delta Lake offre transazioni ACID familiari ai data lake. Fornisce il livello di isolamento più sicuro, serializzabilità. Per altre informazioni, vedere Immersioni in Delta Lake: decomprimere il log delle transazioni. |
Gestione dei metadati scalabili | In Big Data, anche i metadati possono essere "Big Data". Delta Lake considera i metadati uguali ad altri dati. Usa la potenza di elaborazione distribuita di Spark per gestire tutti i metadati. Per questo motivo, Delta Lake può gestire facilmente tabelle su scala di petabyte con miliardi di partizioni e file. |
Spostamento cronologico (controllo delle versioni dei dati) | La possibilità di "annullare" una modifica o tornare a una versione precedente è una funzionalità chiave delle transazioni. Delta Lake fornisce snapshot dei dati che consentono di ripristinare versioni precedenti dei dati per controlli, rollback o per riprodurre esperimenti. Per altre informazioni, vedere Introduzione a Spostamento cronologico di Delta Lake per data lake di grandi dimensioni. |
Apri formato | Apache Parquet, il formato di base per Delta Lake, consente di applicare schemi di compressione e codifica efficienti. |
Origine di streaming e batch e sink unificati | Una tabella in Delta Lake è contemporaneamente una tabella batch e una sorgente e destinazione di streaming. Il flusso di inserimento dei dati, il riempimento cronologico batch e le query interattive funzionano tutte automaticamente. |
Applicazione dello schema | L'applicazione dello schema consente di assicurarsi di disporre di tipi di dati corretti e di colonne necessarie, che impedisce l'incoerenza dei dati da dati non corretti. Per altre informazioni, vedere Analisi approfondita di Delta Lake: applicazione dello schema ed evoluzione |
Evoluzione dello schema | Delta Lake consente di apportare modifiche applicate automaticamente a uno schema di tabella, senza dover scrivere DDL di migrazione. Per altre informazioni, vedere Analisi approfondita di Delta Lake: applicazione dello schema ed evoluzione |
Cronologia controllo | Il log delle transazioni Delta Lake registra informazioni dettagliate su ogni modifica apportata ai dati. Questi record forniscono un audit trail completo di tutte le modifiche. |
Aggiornamenti ed eliminazioni | Delta Lake supporta le API Scala, Java, Python e SQL per varie funzionalità. Il supporto delle operazioni di unione, aggiornamento ed eliminazione consente di soddisfare i requisiti di conformità. Per altre informazioni, vedere Annuncio della versione di Delta Lake 0.6.1, Annuncio della versione delta Lake 0.7 e Simple, Reliable Upserts and Deletes on Delta Lake Tables using Python APIs (che include frammenti di codice per i comandi DML di merge, aggiornamento ed eliminazione). |
100% compatibile con l'API Apache Spark | Gli sviluppatori possono usare Delta Lake con modifiche minime alle pipeline di dati esistenti, perché sono completamente compatibili con le implementazioni di Spark esistenti. |
Per altre informazioni, vedere il progetto Delta Lake.
Per la documentazione completa, visitare la pagina della documentazione di Delta Lake
Prestazioni
L'uso di molti file di piccole dimensioni comporta spesso prestazioni non ottimali e costi più elevati derivanti da un aumento delle operazioni di lettura/elenco. Azure Data Lake Storage Gen2 è ottimizzato per file di dimensioni maggiori che consentono l'esecuzione dei processi di analisi più veloci e con costi inferiori.
Delta Lake include molte funzionalità che consentono di ottimizzare le prestazioni con la gestione dei file.
Gli esempi includono:
- Il log delle transazioni riduce al minimo le operazioni LIST costose.
- L'ordinamento Z (clustering multidimensionale) consente il pushdown del predicato ottimizzato per i filtri di query.
- Le ottimizzazioni della memorizzazione nella cache e delle query native riducono la quantità di analisi dell'archiviazione necessaria. Per altre informazioni, vedere Ottimizzare le prestazioni con la memorizzazione nella cache.
- OPTIMIZE coalizza i file di piccole dimensioni in quelli più grandi.
Queste ottimizzazioni fanno parte del processo di caricamento dei dati per mantenere aggiornati i dati e le prestazioni.
Partizionamento del data lake
Il partizionamento dei dati comporta l'organizzazione dei dati nell'archivio dati in modo da poter gestire dati su larga scala e controllare l'accesso ai dati. Il partizionamento può migliorare la scalabilità, ridurre la contesa e ottimizzare le prestazioni,
Quando si partiziona il data lake, assicurarsi di configurare:
- Non compromette la sicurezza
- Ha un isolamento chiaro e si allinea al modello di autorizzazione dei dati
- Si adatta bene al processo di ingestione dati
- Ha un percorso ben definito per l'accesso ottimale ai dati
- Supporta attività di gestione e manutenzione
Procedure generali
Le procedure generali per la progettazione del partizionamento dei dati sono:
- Concentrarsi sulle implicazioni di sicurezza in anticipo e progettare le partizioni di dati insieme all'autorizzazione.
- È possibile consentire la ridondanza dei dati in cambio della sicurezza. Definire una convenzione di denominazione e rispettarla.
- È possibile annidare più cartelle, ma mantenerle sempre coerenti.
- Includere un elemento time nelle strutture di cartelle e nei nomi di file.
- Non iniziare la struttura di cartelle con divisioni basate sulla data. È preferibile mantenere le date a livello di cartella inferiore.
- Non combinare formati di file misti o prodotti dati diversi in una singola struttura di cartelle.
Suggerimento
Le strutture di cartelle devono avere strategie di partizionamento in grado di ottimizzare i modelli di accesso e le dimensioni appropriate dei file. Nelle zone curate pianificare la struttura in base al recupero ottimale, prestare attenzione a scegliere una chiave di partizione con cardinalità elevata, che porta a un partizionamento eccessivo, che a sua volta porta a dimensioni di file non ottimali.
Per altre informazioni sulle zone data lake, vedere Zone e contenitori di Data Lake
Supporto per la conformità
Delta Lake aggiunge un livello di transazioni per gestire in modo strutturato i dati nel tuo data lake. Questa aggiunta può semplificare e velocizzare notevolmente la possibilità di individuare e rimuovere informazioni personali (noti anche come "dati personali") su richiesta dell'utente. Il livello transazionale supporta operazioni come DELETE, UPDATE e MERGE. Per altre informazioni, vedere Procedure consigliate: conformità gdpr con Delta Lake.
Riassunto
Applicare le standardizzazioni dei dati elencate in questo articolo alla piattaforma. Iniziare con il formato Delta Lake, quindi iniziare ad aggiungere processi per l'ottimizzazione e la conformità. È possibile decidere di creare un servizio che esegue alcune route di ottimizzazione in base a una pianificazione o creare un servizio di conformità che rimuove le informazioni personali.