L’ingestione e l’elaborazione dei dati sono passaggi fondamentali in qualsiasi soluzione di analytics: prima di poter interrogare o visualizzare i dati, occorre spostarli dalle sorgenti (database, file, API, servizi cloud) verso una destinazione centralizzata come un data lake o un data warehouse. In questa unità vediamo i due grandi approcci di elaborazione — ETL ed ELT — e come Azure Data Factory li orchestra.

ETL vs ELT: due strategie di trasformazione

Entrambi gli approcci comprendono tre operazioni — Extract (estrai), Transform (trasforma), Load (carica) — ma cambiano l’ordine e il luogo in cui avviene la trasformazione.

ETL — Extract, Transform, Load

Nell’approccio ETL i dati vengono estratti dalla sorgente, trasformati in un ambiente intermedio (motore di elaborazione dedicato) e solo dopo caricati nella destinazione già puliti e conformati.

  • Quando usarlo: quando servono trasformazioni complesse prima del caricamento, oppure per rimuovere/mascherare dati sensibili (privacy, compliance) prima che raggiungano il repository finale.
  • Vantaggio: nella destinazione arrivano solo dati già validati e strutturati.
  • Limite: la trasformazione preventiva può rallentare l’ingestione di grandi volumi.

ELT — Extract, Load, Transform

Nell’approccio ELT i dati vengono estratti e caricati subito nella destinazione (tipicamente un data lake o un data warehouse come Microsoft Fabric / Azure Synapse), dove vengono poi trasformati sfruttando la potenza di calcolo scalabile del sistema di destinazione.

  • Quando usarlo: con grandi volumi di dati, quando si vuole conservare anche il dato grezzo, o quando servono elaborazioni parallele su motori distribuiti.
  • Vantaggio: ingestione più rapida e flessibilità di ritrasformare i dati in seguito.
  • Limite: richiede una destinazione con capacità di calcolo adeguata.

Azure Data Factory: il servizio di integrazione dati

Azure Data Factory (ADF) è il servizio cloud di integrazione dati di Azure: permette di creare flussi di lavoro senza scrivere codice (approccio low-code/visuale) per spostare e trasformare dati tra sorgenti on-premises e cloud. Supporta sia scenari ETL sia ELT ed è pensato per orchestrare pipeline su larga scala.

I suoi componenti principali sono:

  • Pipeline: contenitore logico che raggruppa un insieme di attività da eseguire come unità.
  • Attività (activity): singolo passo di elaborazione all’interno della pipeline. Esistono attività di spostamento dati (Copy activity), di trasformazione (es. Data Flow, notebook, stored procedure) e di controllo di flusso (loop, condizioni).
  • Dataset: rappresentazione della struttura dei dati usati come input o output di un’attività (es. una tabella, un file CSV, una cartella nel lake).
  • Linked service: la “stringa di connessione” verso una sorgente o destinazione (definisce dove e come connettersi; concetto correlato ai dataset).

I trigger: automatizzare l’esecuzione

Un trigger stabilisce quando una pipeline deve essere eseguita, abilitando l’elaborazione batch automatica. I tre tipi principali sono:

  • Schedule trigger: avvia la pipeline secondo una pianificazione oraria ricorrente (es. ogni notte alle 02:00). È il trigger classico per i carichi batch periodici.
  • Tumbling window trigger: esegue la pipeline su finestre temporali fisse, contigue e non sovrapposte. Adatto all’elaborazione di intervalli di tempo storici, con supporto a dipendenze e ripetizione dei tentativi.
  • Event-based trigger: avvia la pipeline in risposta a un evento, tipicamente l’arrivo o l’eliminazione di un file in Azure Blob Storage / Data Lake Storage. Ideale quando l’elaborazione deve partire “appena il dato è disponibile”.

Trappole tipiche d’esame

  • “Devi mascherare dati sensibili PRIMA che arrivino nel warehouse” → scegli ETL: la trasformazione avviene prima del caricamento, così i dati riservati non raggiungono mai la destinazione.
  • “Enormi volumi da caricare velocemente e trasformare poi nel data lake / Fabric” → scegli ELT: carichi prima e trasformi sfruttando la scalabilità della destinazione.
  • “La pipeline deve partire ogni notte a orario fisso”Schedule trigger (non tumbling window, che serve per finestre temporali storiche con dipendenze).
  • “La pipeline deve avviarsi quando un nuovo file viene caricato in Blob Storage”Event-based trigger, non schedule.
  • “Quale servizio Azure orchestra lo spostamento e la trasformazione dei dati?”Azure Data Factory (servizio di integrazione dati); non confonderlo con Microsoft Purview, che si occupa di governance e catalogazione.