Certo che oggi giorno il lavoro del programmatore, sembra essere un pochino quello del Jolly. Un giorno dobbiamo progettare la soluzione, poi per ovvie ragioni di costi, la dobbiamo sviluppare e poi, guarda caso, sempre per ovvie ragioni di costi ci si deve inbarcare anche in qualche piccolo progetto di ETL. Per fortuna che Microsoft ci fa fare tutto tramite VS!!
In questo esempio, caso reale semplificato, dobbiamo sviluppare un semplice ETL che legga i dati da un sistema AS400 e li invia ad MS SQL, questo in automatico ogni giorno. Ma veniamo ai dati.
Il sistema di arrivo ovvero il Database MS SQL 2005 ci mette a disposizione questa struttura (che non va discussa perchè tanto è il cliente che ce la sta imponendo ...).
Creazione del Progetto
Andiamo nel nostro Visual Studio versione Integration Services Designer, e creiamo un nuovo progetto Integration Services. Una volta creato, andiamo nella barra Connection Managers e creiamo le due connessioni. Nel mio caso utilizzo una OleDb per il sistema AS400 ed una SQL Client per MS SQL. Come in figura :
Per ovvie ragioni ho dovuto cancellare il nome. Comunque due connessioni verso due MS SQL ed una OleDb verso AS400.
SQL Task.
Questo componente di SSIS è uno dei piu' flessibili e semplice da utilizzare. Il SQL Task, come dice la parola, deve essere associato ad una connessione e puo' eseguire svariate tipologie di task SQL, da una semplice select ad una procedura di Update.
Nel nostro caso vogliamo azzerare i valori presenti all' interno di una certa Tabella. Per fare cio' basta cliccare con il tasto destro del Mouse sul componente e selezionare Edit.
Da questo menu possiamo anche provare ad eseguire il singolo Task per verificarne la correttezza. Davvero un toccasana.
DataFlow.
A volte non basta eseguire un task ma vogliamo trasferire dei dati da un calderone verso un altro (un po' come le nostre vecchie care DTS) e quindi ecco che ci torna utile il DataFlow.
In questo caso devo prelevare dei dati dal sistema AS400 e inserirli in MS SQL. Facendo doppio click sul DataFlow possiamo andare a modificarne i contenuti.
Io qui ho messo due sorgenti di tipo OleDb. La prima effettua una SELECT nel sistema AS400 mentre la seconda effettua il mapping. Basta aprire la OleDb Destination per modificare a mano il mapping autogenerato.
Ecco fatto. Con pochi Click SSIS ci consente di effettuare un ottimo ETL in stile NET Workflow e poter gestire il nostro package sia da MS Visual Studio che da MS SQL Server.