In questi giorni sono riuscito finalmente a terminare il mio tool per l'esecuzione di package SSIS (SQL Server Integration Services) che mira a sostituire il tool DTExec fornito nativamente.
Perchè sostituirlo? Perchè secondo me il tool fornito da MS è semplicemente troppo limitato per quanto riguarda le capacità di logging e di profiling. I SSIS hanno tutte queste funzionalità, necessarie per poter monitorare correttamente un package sia dal punto di vista dell'accadimento di errori durante il processo di ETL sia dal punto di vista di monitorare le performance nel tempo, ma sono ben nascoste sotto le coperte, e per essere usate il package deve essere sviluppato in modo particolare (ad. esempio usando il componente RowCount nel DataFlow).
Il punto fondamentale, inoltre, è che per abilitare il logging in un package che non è stato predisposto per tale funzionalità, è necessario modificare il package stesso. Ciò va IMHO contro tutte le regole del buon senso, dato che in un ciclo di vita di un'applicazione (e i package SSIS devono essere paragonati ad essa ed a null'altro) per ogni modifica fatta si dovrebbe passare attraverso una fase di test, di pre-produzione ed infine di produzione.
Ovviamente ciò può rappresentare un problema se dobbiamo solamente attivare il logging.
Come risolvere questa cosa? Semplice: utilizzando DTLoggedExec che, collegandosi direttamente all'engine dei SSIS, permette di attivare logging e profiling del dataflow senza richiedere alcuna modifica ai package!
Grazie a questa possibilità, ogni package esistente o nuovo può essere instrumentato correttamente, ottentendo tutte le informazione necessarie per risolvere un errore (ivi compresa e valori delle variabili e delle espressioni al momento dello stesso):
oppure per monitorare nel tempo le performance della fase di ETL, verificando come risponda alle modifiche hardware o software effettuate per migliorarne le performance:
Mettendo il tutto insieme, si può quindi arrivare alla creazione di una Dashboard che ci permette di tenere sotto controllo la qualità del servizio fornita:
Se la cosa vi interessa (e dovrebbe, se usate SSIS), potete trovare tutte le informazioni del caso (download compreso) sul sito:
http://dtloggedexec.davidemauri.it
che ho creato apposta per essere un riferimento per tutti coloro che usano ed usaranno questo tool.
Il codice sorgente è disponible sotto licenza Creative Commns.