Data Transformation Services1 Luca Cabibbo
Data Transformation Services(tutorial)
Luca Cabibbo
10 novembre 2000
Data Transformation Services2 Luca Cabibbo
Data Transformation Services
La preparazione dei dati richiede lo svolgimento coordinato di un grande numero di attività
� attività � estrazione dei dati � trasformazione� caricamento dei dati
� le attività sono più o meno semplici � coordinamento tra attività
� ordinamento tra attività � gestione di eccezioni
� Data Transformation Services (DTS) è un insieme di servizi di supporto alla preparazione dei dati
Data Transformation Services3 Luca Cabibbo
Importazione e esportazione di datiNella preparazione dei dati vengono solitamente svolte molte attività che riguardano l’accesso a dati e la trasformazione del formato di dati
� dati acceduti e/o salvati in formato relazionale, in sistemi diversi
� dati acceduti e/o salvati in formato testuale � dati acceduti e/o salvati in altri formati (ad esempio,
da/su un foglio elettronico)
Questo tutorial introduce queste attività
Data Transformation Services4 Luca Cabibbo
DTS import/export wizard
In SQL Server, molte attività (semplici) possono essere progettate e realizzate mediante dei wizard
Data Transformation Services5 Luca Cabibbo
Selezione della sorgente dei dati
Si vogliono trasferire delle tabelle da una base di dati relazionale a un’altra
Data Transformation Services6 Luca Cabibbo
Selezione della destinazione dei dati
Come destinazione dei dati, viene creata una nuova base di dati relazionale
Data Transformation Services7 Luca Cabibbo
Opzioni di estrazione
Si vogliono trasferire (accedere e copiare) delle intere tabelle
Data Transformation Services8 Luca Cabibbo
Selezione delle tabelle da copiare
Vengono selezionate le tabelle da copiare e le tabelle destinazione
Data Transformation Services9 Luca Cabibbo
Package
Un package DTS specifica una attività di trasformazione dei dati
� un package può essere eseguito direttamente e/o salvato
Data Transformation Services10 Luca Cabibbo
Sommario della trasformazione
Data Transformation Services11 Luca Cabibbo
Esecuzione del package
Il package viene eseguito come un insieme coordinato di attività
� ad esempio, le creazioni delle tabelle destinazione precedono le copie
Data Transformation Services12 Luca Cabibbo
Copia selettiva di datiViene ora definito un nuovo package per eseguire una copia selettiva di dati, basata su una interrogazione
Data Transformation Services13 Luca Cabibbo
Scrittura dell’interrogazione
Viene specificata l’interrogazione SQL
Data Transformation Services14 Luca Cabibbo
Selezione della destinazione
La tabella destinazione viene creata nella stessa base di dati usata come sorgente dei dati
Data Transformation Services15 Luca Cabibbo
Selezione della destinazione
È possibile modificare lo schema della tabella destinazione (se diverso da quello inferito)
Data Transformation Services16 Luca Cabibbo
Salvataggio del package
Sono possibili diverse modalità di salvataggio di un package DTS
Data Transformation Services17 Luca Cabibbo
Salvataggio del package
Data Transformation Services18 Luca Cabibbo
Esecuzione del package
Data Transformation Services19 Luca Cabibbo
Esportazione su foglio elettronicoSi vogliono esportare dati relazionali su un foglio elettronico
Data Transformation Services20 Luca Cabibbo
Selezione della destinazione
Microsoft Excel può essere acceduto/scritto mediante OLE DB
Data Transformation Services21 Luca Cabibbo
Opzioni di estrazione
Si vuole copiare il risultato di una interrogazione
Data Transformation Services22 Luca Cabibbo
Query builder
L’interrogazione può essere espressa in modo visuale anziché in SQL
� selezione della target list
Data Transformation Services23 Luca Cabibbo
Query builder
� selezione dei criteri di ordinamento del risultato
Data Transformation Services24 Luca Cabibbo
Query builder
� criteri di selezione
Data Transformation Services25 Luca Cabibbo
Salvataggio ed esecuzione
Data Transformation Services26 Luca Cabibbo
DTS Package DesignerDTS permette la definizione di package composti da più attività coordinate
� DTS Package Designer è uno strumento visuale per la definizione di package complessi
Data Transformation Services27 Luca Cabibbo
Concetti di DTS
Connection� una connessione a una sorgente e/o destinazione dei
dati
Task� un’unità di lavoro, costituita da una o più operazioni
� esempi di task sono l’esecuzione di una istruzione SQL, la copia di una tabella, l’invio di un messaggio di posta elettronica
Precedence constraints� ordine sequenziale tra due task
� on success � on failure � on completion (indipendentemente dall’esito)
Data Transformation Services28 Luca Cabibbo
Concetti di DTS
Data transformation� movimento di dati tra una sorgente e una
destinazione� un Data Transform Task è un task che permette di
� selezionare dati da una sorgente � trasformare (record per record) i dati selezionati in modo personalizzato (ad esempio, in Visual Basic)
� inviare i dati trasformati a una destinazione
Package� un insieme di task, con i relativi vincoli di precedenza
Data Transformation Services29 Luca Cabibbo
Creazione di un package sempliceL’ambiente visuale del DTS Package Designer
Data Transformation Services30 Luca Cabibbo
Definizione di una nuova connessione
Si vogliono accedere dati da un file di testo
Data Transformation Services31 Luca Cabibbo
Selezione del formato del file
Si deve descrivere il formato dei dati nel file di testo
Data Transformation Services32 Luca Cabibbo
Selezione del formato del file
Una finestra mostra l’anteprima dei dati estratti
Data Transformation Services33 Luca Cabibbo
Selezione della destinazione
I dati devono essere copiati in una base di dati relazionale
Data Transformation Services34 Luca Cabibbo
Inserimento di un task di trasformazione
Viene aggiunto un task di trasformazione
Data Transformation Services35 Luca Cabibbo
Proprietà del task di trasformazione
La sorgente della trasformazione
Data Transformation Services36 Luca Cabibbo
Proprietà del task di trasformazione
La destinazione della trasformazione è una nuova tabella
Data Transformation Services37 Luca Cabibbo
Proprietà del task di trasformazione
Viene definito lo schema della tabella destinazione
Data Transformation Services38 Luca Cabibbo
Proprietà del task di trasformazione
Viene usata la trasformazione di default
Data Transformation Services39 Luca Cabibbo
Esecuzione del package
Il package può essere salvato e /o eseguito
Data Transformation Services40 Luca Cabibbo
Uso di vincoli di precedenzaViene definito un package con dei vincoli di precedenza tra task
Data Transformation Services41 Luca Cabibbo
Cancellazione di una tabella
Viene definito un task SQL per cancellare una tabella da una base di dati
Data Transformation Services42 Luca Cabibbo
Creazione di una tabella
Viene definito un task SQL per ri-creare la tabella cancellata
Data Transformation Services43 Luca Cabibbo
Vincoli
La creazione della tabella deve seguire la cancellazione della tabella (on completion)
Data Transformation Services44 Luca Cabibbo
Vincoli
La creazione della tabella deve essere seguita (on success) dall’inserimento dei dati, e quindi da un task di backup
Data Transformation Services45 Luca Cabibbo
Esecuzione del package
I task vengono schedulati rispettando i vincoli
Data Transformation Services46 Luca Cabibbo
Trasformazioni con Visual BasicLa preparazione dei dati non si limita alla copia selettiva di dati tra sorgenti
� la maggior parte dei dati trasferiti tra sorgenti è soggetta a trasformazioni, che cambiano la struttura e/o il valore dei dati
� la specifica delle trasformazioni avviene come componente di un data transform task, che comprende
� la selezione di dati da una sorgente � la trasformazione (record per record) dei dati mediante uno script o una applicazione
� l’invio dei dati trasformati a una destinazione � viene ora mostrata una semplice trasformazione
Visual Basic
Data Transformation Services47 Luca Cabibbo
Definizione di un task di trasformazione
Nel task di trasformazione è possibile definire il mapping diretto tra campi della sorgente e campi della destinazione
Data Transformation Services48 Luca Cabibbo
Definizione di un task di trasformazione
Il campo TotalValue può essere calcolato moltiplicando i campi Col006 e Col007
Data Transformation Services49 Luca Cabibbo
Definizione di una trasformazione ActiveX
Una trasformazione per un campo può essere � generica, ovvero selezionata da un insieme
predefinito� personalizzata, mediante uno script ActiveX
Data Transformation Services50 Luca Cabibbo
Definizione di una trasformazione ActiveX
Data Transformation Services51 Luca Cabibbo
Definizione di una trasformazione ActiveX
Data Transformation Services52 Luca Cabibbo
Definizione di una trasformazione ActiveX
Data Transformation Services53 Luca Cabibbo
Salvataggio di una trasformazione ActiveX
Un package DTS, comprensivo delle sue trasformazioni sui campi, può essere memorizzato come codice sorgente Visual Basic