Author: FABIO PERIN
Con Azure Data Factory Microsoft vuole rispondere alla necessità di avere una piattaforma ibrida per gestire processi di integrazione di dati (ETL) presenti sia on premise che nel cloud.
Azure Data Factory stesso non archivia alcun dato, ma consente di creare flussi di lavoro (denominati “pipeline”) per orchestrare lo spostamento di dati tra dataset supportati ed eventualmente l’elaborazione degli stessi usando i servizi di calcolo come HDInsight, Hadoop, Spark.
Un altro punto di forza consiste nell’interfaccia per potere schedulare e monitorare comodamente da portale tutti i flussi di lavoro sviluppati.
Facendo un confronto con il più familiare SSIS il concetto di Control Flow Task in SSIS viene riportato su ADF con il nome di Activity, mentre la singola unità di esecuzione che per SSIS è il pacchetto (dtsx) prende il nome più generico di Pipeline.
Negli ultimi mesi sono state rilasciate diverse nuove funzionalità volte a potenziare e semplificare lo sviluppo delle varie pipeline:
- Orchestration design da portale:
- In modo simile a ciò che si può fare con SSDT per i pacchetti SSIS è ora possibile sviluppare, gestire e monitorare direttamente nel browser il flusso delle varie pipeline, facendo uso delle varie attività possibili nel control flow come il branching, looping, esecuzione condizionale e parametrizzazione.
- Integrazione nativa con repository Git in Visual Studio Team Services per consentire lo sviluppo delle pipeline in collaborazione.
- Sviluppo delle pipeline in modo iterativo:
- L’ambiente di sviluppo di Data Factory permette anche il debug tramite l’utilizzo di breakpoint senza l’obbligo di pubblicare le modifiche prima di aggiornare il workflow.
- Schedulazione flessibile:
- è ora possibile schedulare le varie pipeline in base ad altri tipi di trigger oltre alla normale schedulazione ad un dato orario, quali il tumbling window trigger ed event-based trigger (ad esempio in base alla creazione/cancellazione di un blob di Azure Blob Storage)
- Migrazione(Lift and shift) di pacchetti SSIS nel cloud:
- Azure Data Factory v2 permette facilmente di importare i pacchetti SSIS già esistenti (on premise) nel cloud ed eseguirli usando il runtime di SSIS come servizio (Azure-SSIS Integration Runtime), sfruttando tutti i vantaggi che Azure fornisce per la scalabilità delle risorse utilizzate.
In particolare, riguardo questo ultimo punto, vediamo come configurare Data Factory in modo da poter utilizzare i nostri pacchetti SSIS con il runtime gestito da Azure.
Una volta creata una nuova Data Factory come descritto qui (link), è sufficiente eseguire il provisioning dell’Integration Runtime, configurandolo in modo che possa eseguire pacchetti SSIS pre-esistenti.
Azure-SSIS IR è un cluster di macchine virtuali dedicato all’esecuzione di pacchetti SSIS che è interamente gestito da Azure e che possiamo scalare (o anche solo accendere/spegnere) a seconda delle nostre esigenze.
Abbiamo bisogno anche di un Azure SQL Database, necessario per ospitare il catalogo dei progetti/pacchetti SSIS (SSISDB) ossia dove vengono salvati fisicamente.
Deployment progetti SSIS su Azure
Attraverso SSMS è possibile distribuire i progetti connettendosi al catalogo SSIS nell’ Azure SQL Database precedentemente creato e selezionando “Deploy Project”.
In particolare bisogna fare attenzione nel connettersi direttamente a SSISDB andando a cambiare le Connection Properties, altrimenti l’ Integration Service Catalog non sarà accessibile.
Schedulazione ed esecuzione pacchetti attraverso Data Factory
Direttamente da SSMS è possibile generare le pipeline, le attività e i trigger Data Factory necessari per la pianificazione dei pacchetti SSIS.
Ciò si traduce in una pipeline contenente l’attività “Execute SSIS Package” e dei trigger che controllano il tipo di schedulazione.
Monitorare l’attività Esegui pacchetto SSIS
E’ possibile monitorare le esecuzioni della pipeline nell’interfaccia utente di Data Factory nella sezione Monitor da portale.
Inoltre si può usare l’ID di esecuzione SSISDB dall’output dell’attività eseguita e usarlo per consultare log di esecuzione e messaggi di errore più completi in SSMS.
Nota finale: in private preview è disponibile ADF Data Flow che permette di trasformare i dati in modo molto simile a ciò che è possibile fare con i Data Flow Task in SSIS.