Condividi tramite


Standardizzazione dei dati

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 Archiviazione 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ò gestire i dati in un formato che rifletta il caso d'uso.

Nota

Usare Delta Lake per supportare i casi d'uso batch e di streaming per l'inserimento iniziale dei dati 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. Sia Azure Synapse Analytics che Azure Databricks sono compatibili con Linux Foundation Delta Lake.

Funzionalità principali di Delta Lake

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. I data engineer usati per eseguire un processo manuale soggetto a errori per garantire l'integrità dei dati prima dell'uso di Delta Lake e delle transazioni. Delta Lake porta 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 scalabile dei metadati 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 con scalabilità petabyte con miliardi di partizioni e file.
Tempo di spostamento (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 riprodurre esperimenti. Per altre informazioni, vedere Introduzione a Delta Lake Time Travel per data lake su larga scala.
Apri formato Apache Parquet, il formato di base per Delta Lake, consente di applicare schemi di compressione e codifica efficienti.
Origine e sink di streaming e batch unificati Una tabella in Delta Lake è contemporaneamente una tabella batch e un'origine di streaming e un sink. Il flusso di inserimento dei dati, il riempimento cronologico batch e le query interattive funzionano tutte automaticamente.
Imposizione 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 Immersione in 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 Immersione in 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 Archiviazione Gen2 è ottimizzato per file di dimensioni maggiori che consentono l'esecuzione dei processi di analisi più velocemente e con costi inferiori.

Delta Lake include molte funzionalità che consentono di ottimizzare le prestazioni con la gestione dei file.

Alcuni esempi:

  • 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 di 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 dei 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
  • Adatta bene il processo di inserimento 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 avviare la struttura di cartelle con partizioni di data. È preferibile mantenere le date nel 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 dei dati curati pianificare la struttura in base al recupero ottimale, prestare attenzione a scegliere una chiave di partizione con cardinalità elevata, che comporta un partizionamento eccessivo, che a sua volta implica dimensioni dei 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 transazionale per fornire una gestione strutturata dei dati sul 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.

Riepilogo

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.

Passaggi successivi