Ritorniamo sui post di formazione, anche se so che molti di voi ora saranno già esperti di SSIS
.
L'ultima volta ci siamo lasciati con le sorgenti, ora riprendiamo con le destinazioni.
Le possibili sono le seguenti:

Quelle comunemente utilizzate (alcune sono presenti anche nell'elenco delle sorgenti) sono la DataReader Destination, la Excel Destination, la Flat File destination, la OLEDB Destination e la SQL Server Destination. Quest'ultimo è un task dedicato al caricamento di massa (bulk load) su di un server locale, solamente locale, mai remoto.
Per approfondire leggere SQL Server Destination.
Ovviamente,
a differenza dai source task, questi necessitano metadati in input e
non ritornano metadati di output. Possiamo dire che sono la parte
finale di ogni dataflow, anche se non è necessario terminare le nostre
logiche con un destination task.
Come possiamo vedere dall'elenco, ci sono tre task, che non sono proprio destinazioni a tutti gli effetti:
- Data Mining Model Training
- Dimension Processing
- Partition Processing
Sono
task dedicati a chi ha necessità di lavorare con OLAP, con la BI e/o
con il datawarehousing. Gli ultimi due riguardano le parti fondamentali
di un CUBO.
A grandissime linee, consentono di processare una o più
dimensioni di un modello multidimensionale (dove per dimensione si
intende l'entità che consente la navigazione di un CUBO) e di
processare una partizione di un CUBO. Con il termine processare si
intende una sorta di "compilazione", in questo caso delle dimensioni e
delle partizioni di un CUBO.
Fino a che un process non è terminato, la dimensione o il cubo non sono interrogabili.
Per il primo task invece, consiglio di leggere qui, essendo il data mining un discorso delicato, basato su particolari algoritmi.
Le
rimanenti consentono di scrivere su recordset, file raw e versioni
Compact Edition di SQL Server. Per ulteriori informazioni su
quest'ultima destinazione, leggere qui.
Prendiamo
una destinazione di esempio, la OLEDB Destination, e vediamo come sono
composte. Facendo doppio click, la prima sezione è la Connection
Manager:

Tramite
questa interfaccia è possibile definire quale connection manager
utilizzare come destinazione, il livello di accesso ai dati (se
possibile, per ottenere maggiori prestazioni, utilizzare il fast load)
ed alcune importanti opzioni.
Keep Identity - Per imporre alla destinazione di non ricalcolare gli autoincrementanti, utilizzando quelli della sorgente (solo se fast load)
Keep nulls - Per imporre alla destinazione di copiare i null (solo se fast load).
Table lock - Per tenere bloccata la risorsa.
Check constraints - Per imporre alla destinazione di controllare tutti gli eventuali vincoli.
Rows per batch - Per
indicare quante righe per batch devono essere considerate (textbox
vuoto o -1 indicano mancanza di controllo sul numero di righe).
Indicativamente è il numero approssimativo delle righe lette.
Maximum insert commit size - Per specificare le dimensioni del batch per le quali la destinazione OLEDB tenta di eseguire il commit
La sezione mappings indica come la sorgente deve essere riferita alla destinazione.

Se
i nomi sono identici SSIS propone il suo mapping, in caso contrario è
sufficiente indicare il corretto match nei drop down sotto, oppure fare
trascinare i campi sorgente sopra a quelli destinazione. Con
quest'ultima operazione i drop down si popoleranno dinamicamente.
Inoltre,
premendo il tasto destro del mouse sulla zona dei legami, è possibile
selezionare alcune opzioni rapide, per mappare o gestire più
velocemente un numero considerevole di campi.
La sezione Error Output è del tutto identica a quella di ogni task, e quindi permette la gestione di eventuali errori.
E' molto importante valorizzare bene, nel caso degli OLEDB Destination Task, le due opzioni Rows per batch e Maximum insert commit size.
A questo proposito consiglio di leggere questo link,
e comunque consiglio di effettuare tante prove per capire quali valori
sono i più indicati per il miglioramento delle prestazioni, non
esistendo una formula specifica per calcolarli.
Stay tuned! 