Condividi tramite


Procedure consigliate per la scrittura in file in data lake con flussi di dati

APPLICABILE A: Azure Data Factory Azure Synapse Analytics

Suggerimento

Data Factory in Microsoft Fabric è la nuova generazione di Azure Data Factory, con un'architettura più semplice, un'intelligenza artificiale predefinita e nuove funzionalità. Se non si ha familiarità con l'integrazione dei dati, iniziare con Fabric Data Factory. I carichi di lavoro di Azure Data Factory esistenti possono eseguire l'aggiornamento a Fabric per accedere a nuove funzionalità tra data science, analisi in tempo reale e creazione di report.

Se non si ha familiarità con Azure Data Factory, vedere Introduzione a Azure Data Factory.

In questa esercitazione verranno illustrate le procedure consigliate che possono essere applicate durante la scrittura di file in ADLS Gen2 o Archiviazione BLOB di Azure usando i flussi di dati. È necessario accedere a un account Archiviazione BLOB di Azure o Azure Data Lake account Store Gen2 per leggere un file parquet e quindi archiviare i risultati nelle cartelle.

Prerequisiti

  • sottoscrizione Azure. Se non si ha una sottoscrizione Azure, creare un account free Azure prima di iniziare.
  • un account di archiviazione di Azure. Usare l'archivio di Azure Data Lake Storage come archivi dati di origine e sink. Se non si ha un account di archiviazione, vedere Creare un account di archiviazione Azure per la procedura per crearne uno.

I passaggi di questa esercitazione presuppongono che siano disponibili

Creare una data factory

In questo passaggio si crea una data factory e si apre l'esperienza utente di Data Factory per creare una pipeline nella data factory.

  1. Aprire Microsoft Edge o Google Chrome. Attualmente, l'interfaccia utente di Data Factory è supportata solo nei web browser Microsoft Edge e Google Chrome.

  2. Nel menu a sinistra selezionare Crea una risorsa>Integration>Data Factory

  3. Nella pagina Nuova data factory, sotto Nome, immettere ADFTutorialDataFactory

  4. Selezionare la sottoscrizione di Azure subscription in cui si vuole creare la fabbrica di dati.

  5. Per Gruppo di risorse eseguire una delle operazioni seguenti:

    a) Selezionare Usa esistente e selezionare un gruppo di risorse esistente nell'elenco a discesa.

    b. Selezionare Crea nuovo e immettere il nome di un gruppo di risorse. Per informazioni sui gruppi di risorse, vedere Usare i gruppi di risorse per gestire le risorse Azure.

  6. In Versione selezionare V2.

  7. Nella sezione Località, selezionare una posizione per la data factory. Nell'elenco a discesa vengono mostrate solo le località supportate. Gli archivi dati (ad esempio, Archiviazione di Azure e il database SQL) e i calcoli (ad esempio, Azure HDInsight) usati dalla data factory possono trovarsi in altre aree.

  8. Selezionare Crea.

  9. Al termine della creazione, la relativa notifica verrà visualizzata nel centro notifiche. Selezionare Vai alla risorsa per passare alla pagina Data factory.

  10. Selezionare Autore e monitoraggio per avviare l'interfaccia utente di Data Factory in una scheda separata.

Creare una pipeline con un'attività Flusso di dati

In questo passaggio si creerà una pipeline che contiene un'attività flusso di dati.

  1. Nella home page di Azure Data Factory selezionare Orchestrate.

    Screenshot che mostra la home page della data factory con il pulsante Orchestrate evidenziato.

  2. Nella scheda Generale della pipeline immettere DeltaLake per Nome della pipeline.

  3. Nell'interfaccia della factory, attivare il cursore Flusso di dati debug. La modalità di debug consente il test interattivo della logica di trasformazione rispetto a un cluster Spark live. I cluster di Flusso di dati richiedono 5-7 minuti per il riscaldamento e si consiglia agli utenti di attivare il debug prima se prevedono di eseguire sviluppo di Flusso di dati. Per altre informazioni, vedere Modalità di debug.

    Flusso di dati Activity

  4. Nel riquadro Attività espandere l’accordion Sposta e trasforma. Trascinare e rilasciare l'attività Flusso di dati dal riquadro al canvas della pipeline.

    Screenshot che mostra l'area di disegno della pipeline in cui è possibile eliminare l'attività Flusso di dati.

Compilare la logica di trasformazione nell’area di disegno del flusso di dati

Si prenderanno tutti i dati di origine (in questa esercitazione si userà un'origine file Parquet) e si userà una trasformazione sink per spostare i dati in formato Parquet usando i meccanismi più efficaci per data lake ETL.

Flusso finale

Obiettivi dell'esercitazione

  1. Scegliere uno dei set di dati di origine in un nuovo flusso di dati 1. Usare i flussi di dati per partizionare in modo efficace il set di dati del sink
  2. Visualizzare i dati partizionati nelle cartelle di ADLS Gen2 Lake

Iniziare da un'area di disegno del flusso di dati vuota

Prima di tutto, configurare l'ambiente del flusso di dati per ognuno dei meccanismi descritti di seguito per i dati di destinazione in ADLS Gen2

  1. Fare clic sulla trasformazione di origine.
  2. Fare clic sul nuovo pulsante accanto al set di dati nel pannello inferiore.
  3. Scegliere un set di dati o crearne uno nuovo. Per questa demo si userà un set di dati Parquet denominato User Data.
  4. Aggiungere una trasformazione Colonna derivata. Verrà usato come metodo per impostare dinamicamente i nomi delle cartelle desiderate.
  5. Aggiungere una trasformazione sink.

Output della cartella gerarchica

È molto comune usare valori univoci nei dati per creare gerarchie di cartelle per partizionare i dati nel lake. Si tratta di un modo molto ottimale per organizzare ed elaborare i dati nel lake e in Spark (il motore di calcolo dietro i flussi di dati). Tuttavia, l'organizzazione dell'output in questo modo comporta un costo ridotto per le prestazioni. Si prevede una piccola riduzione delle prestazioni complessive della pipeline usando questo meccanismo nel sink.

  1. Tornare alla finestra di progettazione del flusso di dati e modificare la creazione del flusso di dati precedente. Fare clic sulla trasformazione sink.
  2. Fare clic su Ottimizza > imposta chiave di partizionamento >
  3. Selezionare le colonne da usare per impostare la struttura gerarchica delle cartelle.
  4. Si noti che l'esempio seguente usa anno e mese come colonne per la denominazione delle cartelle. I risultati saranno cartelle nel formato releaseyear=1990/month=8.
  5. Quando si accede alle partizioni dati in un'origine flusso di dati, si punterà solo alla cartella di primo livello precedente releaseyear e si userà un modello con caratteri jolly per ogni cartella successiva, ad esempio: **/**/*.parquet
  6. Per modificare i valori dei dati o anche se è necessario generare valori sintetici per i nomi delle cartelle, usare la trasformazione Colonna derivata per creare i valori da usare nei nomi delle cartelle.

Partizionamento delle chiavi

Assegnare un nome alla cartella come valori di dati

Una tecnica di sink con prestazioni leggermente migliori per i dati lake che usano ADLS Gen2 che non offre lo stesso vantaggio del partizionamento chiave/valore, è Name folder as column data. Mentre lo stile di partizionamento delle chiavi della struttura gerarchica consentirà di elaborare più facilmente le sezioni di dati, questa tecnica è una struttura di cartelle bidimensionale in grado di scrivere i dati più rapidamente.

  1. Tornare alla finestra di progettazione del flusso di dati e modificare la creazione del flusso di dati precedente. Fare clic sulla trasformazione sink.
  2. Fare clic su Ottimizza > Set di partizionamento > Usa partizionamento corrente.
  3. Fare clic su Impostazioni > Cartella Nome come dati di colonna.
  4. Selezionare la colonna che si desidera utilizzare per la generazione dei nomi delle cartelle.
  5. Per modificare i valori dei dati o anche se è necessario generare valori sintetici per i nomi delle cartelle, usare la trasformazione Colonna derivata per creare i valori da usare nei nomi delle cartelle.

Opzione cartella

Assegnare un nome al file come valori di dati

Le tecniche elencate nelle esercitazioni precedenti sono casi d'uso validi per la creazione di categorie di cartelle nel data lake. Lo schema di denominazione dei file predefinito usato da queste tecniche consiste nell'usare l'ID processo dell'executor Spark. In alcuni casi può essere necessario impostare il nome del file di output in un sink di testo del flusso di dati. Questa tecnica è consigliata solo per l'uso con file di piccole dimensioni. Il processo di unione dei file di partizione in un singolo file di output è un processo a esecuzione prolungata.

  1. Tornare alla finestra di progettazione del flusso di dati e modificare la creazione del flusso di dati precedente. Fare clic sulla trasformazione sink.
  2. Fare clic su Ottimizza > set partizionamento > partizione singola. È questo requisito di partizione singola che crea un collo di bottiglia nel processo di esecuzione man mano che i file vengono uniti. Questa opzione è consigliata solo per i file di piccole dimensioni.
  3. Fare clic su Impostazioni > File Nome come dati di colonna.
  4. Selezionare la colonna che si desidera utilizzare per la generazione dei nomi di file.
  5. Per modificare i valori dei dati o anche se è necessario generare valori sintetici per i nomi di file, usare la trasformazione Colonna derivata per creare i valori da usare nei nomi file.

Altre informazioni sui sink del flusso di dati.