Zone e contenitori data lake

È importante pianificare la struttura dei dati prima di inserirla in un data lake. Quando si dispone di un piano, è possibile usare sicurezza, partizionamento ed elaborazione in modo efficace.

Per una panoramica dei data lake, vedere Panoramica di Azure Data Lake Archiviazione per l'analisi su scala cloud.

Panoramica

I tre account data lake devono essere allineati ai livelli del data lake tipici.

Numero di lake Strati Numero contenitore Nome contenitore
1 Raw 1 Destinazione
1 Raw 2 Conformità
2 Dati arricchiti 1 Standardizzato
2 Curato 2 Prodotti dati
3 Sviluppo 1 Sandbox di Analisi
3 Sviluppo # Numero di archiviazione primario di Synapse

La tabella precedente mostra il numero standard di contenitori consigliato per ogni zona di destinazione dei dati. L'eccezione a questa raccomandazione è se sono necessari criteri di eliminazione temporanea diversi per i dati in un contenitore. Questi requisiti determinano la necessità di più contenitori.

Nota

Tre data lake sono illustrati in ogni zona di destinazione dei dati. Il data lake si trova in tre account Data Lake, più contenitori e cartelle, ma rappresenta un data lake logico per la zona di destinazione dei dati.

A seconda dei requisiti, è possibile consolidare i livelli non elaborati, arricchiti e curati in un unico account di archiviazione. Mantenere un altro account di archiviazione denominato "sviluppo" per i consumer di dati per portare altri prodotti dati utili.

Per altre informazioni sulla separazione degli account data lake, vedere Archiviazione account in un data lake logico.

Abilitare Archiviazione di Azure con la funzionalità spazio dei nomi gerarchico, che consente di gestire in modo efficiente i file. La funzionalità spazio dei nomi gerarchici organizza oggetti e file all'interno di un account in una gerarchia di directory e sottodirectory annidate. Questa gerarchia è organizzata allo stesso modo del file system nel computer.

Quando l'applicazione di inserimento o onboarding indipendente dai dati registra un nuovo sistema di record, crea cartelle necessarie nei contenitori nei livelli di dati non elaborati, arricchiti e standardizzati. Se un'applicazione dati allineata all'origine inserisce i dati, il team dell'applicazione dati necessita del team della zona di destinazione dei dati per creare le cartelle e i gruppi di sicurezza. Inserire un nome dell'entità servizio o un'identità gestita nel gruppo corretto e assegnare un livello di autorizzazione. Documentare questo processo per i team dell'applicazione dati e della zona di destinazione dei dati.

Per altre informazioni sui team, vedere Informazioni sui ruoli e sui team per l'analisi su scala cloud in Azure.

Ogni prodotto dati deve avere due cartelle nel contenitore di prodotti dati di cui è proprietario il team del prodotto dati.

In un livello arricchito di un contenitore standardizzato sono presenti due cartelle per ogni sistema di origine, suddivise per classificazione. Con questa struttura, il team può archiviare separatamente i dati con classificazioni di sicurezza e dati diverse e assegnare loro un accesso alla sicurezza diverso.

Il contenitore standardizzato richiede una cartella generale per i dati riservati o inferiori e una cartella sensibile per i dati personali. Controllare l'accesso a queste cartelle usando elenchi di controllo di accesso (ACL). È possibile creare un set di dati con tutti i dati personali rimossi e archiviarlo nella cartella generale. È possibile avere un altro set di dati che include tutti i dati personali nella cartella dei dati personali sensibili .

Una combinazione di elenchi di controllo di accesso e gruppi di Microsoft Entra limita l'accesso ai dati. Questi elenchi e gruppi controllano quali altri gruppi possono e non possono accedere. I proprietari dei dati e i team dell'applicazione dati possono approvare o rifiutare l'accesso agli asset di dati.

Per altre informazioni, vedere Gestione dell'accesso ai dati e Dati con restrizioni.

Avviso

Alcuni prodotti software non supportano il montaggio della radice di un contenitore data lake. A causa di questa limitazione, ogni contenitore data lake in livelli non elaborati, curati, arricchiti e di sviluppo deve contenere una singola cartella che si dirama a più cartelle. Configurare attentamente le autorizzazioni per le cartelle. Quando si crea una nuova cartella dalla radice, l'ACL predefinito nella directory padre determina l'ACL predefinito di una directory figlio e l'ACL di accesso. L'ACL di un file figlio non ha un elenco di controllo di accesso predefinito.

Per altre informazioni, vedere Elenchi di controllo di accesso (ACL) in Azure Data Lake Storage Gen2.

Livello non elaborato o data lake 1

Si pensi allo strato non elaborato come un serbatoio che archivia i dati nello stato naturale e originale. senza filtri di alcun tipo. È possibile archiviare i dati nel formato originale, ad esempio JSON o CSV. In alternativa, potrebbe essere conveniente archiviare il contenuto del file come colonna in un formato di file compresso, ad esempio Avro, Parquet o Databricks Delta Lake.

Questi dati non elaborati non sono modificabili. Mantenere bloccati i dati non elaborati e, se si assegnano autorizzazioni a tutti i consumer, automatizzati o umani, assicurarsi che siano di sola lettura. È possibile organizzare questo livello usando una cartella per ogni sistema di origine. Concedere a ogni processo di inserimento l'accesso in scrittura solo alla cartella associata.

Quando si caricano dati dai sistemi di origine nella zona non elaborata, è possibile scegliere di eseguire le operazioni seguenti:

  • Caricamenti completi per estrarre un set di dati completo.
  • Caricamenti differenziali per caricare solo i dati modificati.

Indicare il modello di caricamento scelto nella struttura di cartelle per semplificare l'uso per i consumer di dati.

I dati non elaborati dei sistemi di origine per ogni applicazione dati allineata all'origine o all'origine del motore di inserimento automatizzato vengono inseriti nella cartella completa o nella cartella delta. Ogni processo di inserimento deve avere accesso in scrittura solo alla cartella associata.

Le differenze tra carichi completi e carichi differenziali sono:

  • Caricamento completo: è possibile caricare i dati completi dall'origine se:

    • Il volume di dati nell'origine è ridotto.
    • Il sistema di origine non gestisce un campo timestamp che identifica se i dati sono stati aggiunti, aggiornati o eliminati.
    • Il sistema di origine sovrascrive i dati completi ogni volta.
  • Caricamento differenziale: i dati incrementali dall'origine possono essere caricati se:

    • Il volume di dati nell'origine è di grandi dimensioni.
    • Il sistema di origine gestisce un campo timestamp che identifica se i dati sono stati aggiunti, aggiornati o eliminati.
    • Il sistema di origine crea e aggiorna i file sulle modifiche ai dati.

Il data lake non elaborato è costituito dai contenitori di destinazione e conformità. Ogni contenitore usa una struttura di cartelle obbligatoria del 100% specifica per il suo scopo.

Layout del contenitore di destinazione

Il contenitore di destinazione è riservato ai dati non elaborati provenienti da un sistema di origine riconosciuto. Il motore di inserimento indipendente dai dati o un'applicazione dati allineata all'origine carica i dati, che non sono stati alterati e nel formato supportato originale.

.
|-Landing
|--Log
|---{Application Name}
|--Master and Reference
|---{Source System}
|--Telemetry
|---{Source System}
|----{Application}
|--Transactional
|---{Source System}
|----{Entity}
|-----{Version}
|------Delta
|-------{date (ex. rundate=2019-08-22)}
|------Full

Contenitore di conformità del livello non elaborato

Il livello non elaborato contiene dati conformi alla qualità dei dati. Quando i dati vengono copiati in un contenitore di destinazione, l'elaborazione e l'elaborazione dei dati vengono attivate per copiare i dati dal contenitore di destinazione al contenitore di conformità. In questa prima fase, i dati vengono convertiti nel formato delta lake e vengono inseriti in una cartella di input. Quando viene eseguita la qualità dei dati, i record passati vengono copiati nella cartella di output. I record che hanno esito negativo vengono inseriti in una cartella di errore.

.
|-Conformance
|--Log
|---{Application Name}
|--Master and Reference
|---{Source System}
|--Telemetry
|---{Source System}
|----{Application}
|--Transactional
|---{Source System}
|----{Entity}
|-----{Version}
|------Delta
|-------Input
|--------{date (ex. rundate=2019-08-22)}
|-------Output
|--------{date (ex. rundate=2019-08-22)}
|-------Error
|--------{date (ex. rundate=2019-08-22)}
|------Full
|-------Input
|--------{date (ex. rundate=2019-08-22)}
|-------Output
|--------{date (ex. rundate=2019-08-22)}
|-------Error
|--------{date (ex. rundate=2019-08-22)}

Suggerimento

Considerare gli scenari in cui potrebbe essere necessario ricompilare una piattaforma di analisi da zero. Considerare i dati più granulari necessari per ricompilare gli archivi dati di lettura downstream. Assicurarsi di disporre di un piano di continuità aziendale e ripristino di emergenza per i componenti chiave.

Livello arricchito o data lake due

Pensate allo strato arricchito come strato di filtraggio. Rimuove le impurità e può anche comportare l'arricchimento.

Il contenitore di standardizzazione contiene sistemi di record e master. Le cartelle vengono segmentate prima per area dell'oggetto, quindi per entità. I dati sono disponibili in tabelle unite e partizionate ottimizzate per l'utilizzo di analisi.

Contenitore standardizzato

.
|-Standardized
|--Log
|---{Application Name}
|--Master and Reference
|---{Source System}
|--Telemetry
|---{Source System}
|----{Application}
|--Transactional
|---{Source System}
|----{Entity}
|-----{Version}
|------General
|--------{date (ex. rundate=2019-08-22)}
|-------Sensitive
|--------{date (ex. rundate=2019-08-22)}

Nota

Questo livello dati è considerato il livello silver o leggere l'origine dati. I dati all'interno di questo livello non hanno applicato trasformazioni diverse dalla qualità dei dati, dalla conversione delta lake e dall'allineamento dei tipi di dati.

Il diagramma seguente illustra il flusso di data lake e contenitori dai dati di origine a un contenitore standardizzato.

Diagram that shows a high level data flow.

Livello curato o data lake due

Il livello curato è il livello di consumo. È ottimizzato per l'analisi anziché per l'inserimento o l'elaborazione dei dati. Il livello curato potrebbe archiviare i dati in data mart denormalizzati o schemi star.

I dati del contenitore standardizzato vengono trasformati in prodotti dati di alto valore che vengono forniti ai consumer di dati. Questi dati hanno una struttura. Può essere servita ai consumer così come sono, ad esempio notebook di data science o tramite un altro archivio dati di lettura, ad esempio database SQL di Azure.

Usare strumenti, ad esempio Spark o Data Factory, per eseguire la modellazione dimensionale invece di eseguirla all'interno del motore di database. Questo uso di strumenti diventa un punto chiave se vuoi rendere il tuo lago l'unica fonte di verità.

Se si esegue la modellazione dimensionale all'esterno del lake, è possibile pubblicare nuovamente i modelli nel lake per coerenza. Questo livello non è una sostituzione per un data warehouse. Le prestazioni in genere non sono adeguate per dashboard reattivi o per l'utente finale e l'analisi interattiva degli utenti finali. Questo livello è più adatto per analisti interni e data scientist che eseguono query o analisi improvvisate su larga scala o per analisti avanzati che non hanno esigenze di creazione di report sensibili al tempo. Poiché i costi di archiviazione sono inferiori nel data lake rispetto al data warehouse, può essere conveniente mantenere dati granulari e di basso livello nel lake. Archiviare i dati aggregati nel warehouse. Generare queste aggregazioni usando Spark o Azure Data Factory. Renderli persistenti nel data lake prima di caricarli nel data warehouse.

Gli asset di dati in questa zona sono in genere altamente regolamentati e ben documentati. Assegnare le autorizzazioni per reparto o per funzione e organizzare le autorizzazioni in base al gruppo di consumer o al data mart.

Contenitore prodotti dati

.
|-{Data Product}
|---{Entity}
|----{Version}
|-----General
|-------{date (ex. rundate=2019-08-22)}
|------Sensitive
|-------{date (ex. rundate=2019-08-22)}

Suggerimento

Quando i dati vengono inseriti in un altro archivio dati di lettura, ad esempio database SQL di Azure, assicurarsi di disporre di una copia dei dati presenti nei dati curati. Gli utenti del prodotto dati vengono guidati all'archivio dati di lettura principale o all'istanza di database SQL di Azure, ma possono anche esplorare i dati con strumenti aggiuntivi se si rendono disponibili i dati nel data lake.

Livello di sviluppo o data lake tre

I consumer di dati possono portare altri prodotti dati utili insieme ai dati inseriti nel contenitore standardizzato.

In questo scenario, la piattaforma dati può allocare un'area sandbox di analisi per questi consumer. Nella sandbox possono generare informazioni dettagliate preziose usando i dati e i prodotti dati curati che usano. Ad esempio, se un team di data science vuole determinare la migliore strategia di posizionamento dei prodotti per una nuova area, può portare altri prodotti dati, ad esempio dati demografici dei clienti e dati di utilizzo, da prodotti simili in tale area. Il team può usare le informazioni dettagliate sulle vendite di alto valore di questi dati per analizzare l'adattamento al mercato del prodotto e la strategia di offerta.

Nota

L'area sandbox di analisi è un'area di lavoro per un singolo utente o un piccolo gruppo di collaboratori. Le cartelle dell'area sandbox hanno un set speciale di criteri che impediscono di usare questa area come parte di una soluzione di produzione. Questi criteri limitano l'archiviazione totale disponibile e la durata dell'archiviazione dei dati.

Questi prodotti dati sono in genere di qualità e accuratezza sconosciuti. Sono ancora classificati come prodotti dati, ma sono temporanei e rilevanti solo per il gruppo di utenti che usa i dati.

Quando questi prodotti dati maturano, l'azienda può promuovere questi prodotti dati al livello dati curato. Per mantenere i team del prodotto dati responsabili dei nuovi prodotti dati, fornire ai team una cartella dedicata nell'area dati curata. Possono archiviare nuovi risultati nella cartella e condividerli con altri team dell'organizzazione.

Nota

Per ogni area di lavoro di Azure Synapse creata, usare Data Lake three per creare un contenitore da usare come risorsa di archiviazione primaria. Questo contenitore impedisce alle aree di lavoro di Azure Synapse di interferire con i limiti di velocità effettiva delle zone curate e arricchite.

Esempio di flusso di dati in prodotti e sandbox di analisi

Il diagramma seguente compila le informazioni contenute in questo articolo e mostra come i dati passano a un ambiente sandbox di analisi e prodotti dati.

Diagram showing a data flow into product container and analytics sandbox.

Passaggi successivi