La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

MCSD MCAD MCSE+I MCSA MCDBA MCT www.devleap.it Popolare un Data Warehouse con SQL Server Data Transformation Services (DTS)

Presentazioni simili


Presentazione sul tema: "MCSD MCAD MCSE+I MCSA MCDBA MCT www.devleap.it Popolare un Data Warehouse con SQL Server Data Transformation Services (DTS)"— Transcript della presentazione:

1 MCSD MCAD MCSE+I MCSA MCDBA MCT www.devleap.it Popolare un Data Warehouse con SQL Server Data Transformation Services (DTS)

2 www.devleap.it Chi siamo www.DevLeap.it www.DevLeap.it Un gruppo di 5 persone con tanta voglia di Un gruppo di 5 persone con tanta voglia di Studiare a fondo le tecnologie Studiare a fondo le tecnologie Capire il behind the scenes Capire il behind the scenes Implementare soluzioni reali Implementare soluzioni reali Confrontarsi con le problematiche reali Confrontarsi con le problematiche reali Sperimentare nuove idee Sperimentare nuove idee Facciamo Corsi, Conferenze, Training Facciamo Corsi, Conferenze, Training

3 www.devleap.it Agenda ETL - Processo di alimentazione di un Data Warehouse ETL - Processo di alimentazione di un Data Warehouse Individuazione fonti dati Individuazione fonti dati Criteri di normalizzazione Criteri di normalizzazione Processo logico di alimentazione Processo logico di alimentazione DTS come strumento di ETL DTS come strumento di ETL

4 www.devleap.it ETL – processo di alimentazione

5 www.devleap.it Implementazione dello Star Schema Estrazione di dati da fonti diverse Estrazione di dati da fonti diverse Integrazione, trasformazione e ristrutturazione dei dati Integrazione, trasformazione e ristrutturazione dei dati Caricamento dei dati in tabelle dimensioni e tabelle dei fatti Caricamento dei dati in tabelle dimensioni e tabelle dei fatti

6 www.devleap.it Processo di trasformazione dei dati Validate, Gather,Transform Populate Data Distribute Make Data Consistent Data WarehouseData Sales Service Other Data Marts Source OLTP Systems Temporary Data Staging Area DataWarehouse Sales Data Hardware Data Oracle SQLServer Other

7 www.devleap.it Caricamento dati dimensionali Accesso a fonti dati eterogenee Accesso a fonti dati eterogenee Verifica fonti dati Verifica fonti dati Assicurare consistenza dei dati Assicurare consistenza dei dati Mantenere integrità delle dimensioni Mantenere integrità delle dimensioni Gestire il cambiamento dei dati dimensionali Gestire il cambiamento dei dati dimensionali

8 www.devleap.it Accesso a fonti dati eterogenee Fonti relazionali Fonti relazionali OLTP system in SQL Server OLTP system in SQL Server Financial database in Access Financial database in Access … Fonti non relazionali Fonti non relazionali File di testo File di testo Fogli elettronici (Excel) Fogli elettronici (Excel) … NorthwindOLTP Spreadsheets ExternalFiles Files Financial

9 www.devleap.it Verifica fonti dati Verificare accuratezza fonti dati Verificare accuratezza fonti dati Regole di business Regole di business Requisiti strutturali Requisiti strutturali Gestire dati non validi Gestire dati non validi Rifiutare dati non validi nel caricamento Rifiutare dati non validi nel caricamento Salvare dati non validi per successive correzioni Salvare dati non validi per successive correzioni

10 www.devleap.it Rendere i dati consistenti Integrare i dati da fonti diverse Integrare i dati da fonti diverse Trasformare i dati in un formato standardizzato Trasformare i dati in un formato standardizzato

11 www.devleap.it Trasformare i dati Transform Change Combine Calculatebuyer_namebuyer_name Barr, Adam Chai, Sean OMelia, Erin... reg_idreg_id 2 2 4 4 6 6 total_salestotal_sales 17.60 52.80 8.82... buyer_namebuyer_name Barr, Adam Chai, Sean OMelia, Erin... reg_idreg_id 2 2 4 4 6 6 total_salestotal_sales 17.60 52.80 8.82... buyer_namebuyer_name Barr, Adam Chai, Sean OMelia, Erin... price_idprice_id 0.55 1.10 0.98... qty_idqty_id 32 48 9 9... buyer_namebuyer_name Barr, Adam Chai, Sean OMelia, Erin... reg_idreg_id II IV VI... total_salestotal_sales 17.60 52.80 8.82... buyer_namebuyer_name Barr, Adam Chai, Sean OMelia, Erin... price_idprice_id 0.55 1.10 0.98... qty_idqty_id 32 48 9 9... total_salestotal_sales 17.60 52.80 8.82... buyer_firstbuyer_first Adam Sean Erin... buyer_lastbuyer_last Barr Chai OMelia... reg_idreg_id 2 2 4 4 6 6 total_salestotal_sales 17.60 52.80 8.82...

12 www.devleap.it Mantenere integrità della dimensione Chiave surrogata per ogni record Chiave surrogata per ogni record Definisce la chiave primaria della dimensione Definisce la chiave primaria della dimensione Collega i campi foreign key della tabella dei fatti Collega i campi foreign key della tabella dei fatti Caricare un record per ogni chiave applicativa Caricare un record per ogni chiave applicativa Mantiene univocità nella dimensione Mantiene univocità nella dimensione Dipende da come si gestisce il cambiamento dei dati dimensionali Dipende da come si gestisce il cambiamento dei dati dimensionali Mantenere lintegrità della tabella dei fatti Mantenere lintegrità della tabella dei fatti

13 www.devleap.it Gestire cambiamento dati dimensioni Dimensioni con valori di colonne che cambiano Dimensioni con valori di colonne che cambiano Inserire nuovi dati Inserire nuovi dati Modificare dati esistenti Modificare dati esistenti Soluzione di disegno per slowly-changing Dimension Soluzione di disegno per slowly-changing Dimension Type 1: Sovrascrivere il record della dimensione Type 1: Sovrascrivere il record della dimensione Type 2: Scrivere un altro record nella dimensione Type 2: Scrivere un altro record nella dimensione Type 3: Aggiungere attributi al record della dimensione Type 3: Aggiungere attributi al record della dimensione

14 www.devleap.it Definire caricamento tabella dei fatti Accesso a fonti dati eterogenee Accesso a fonti dati eterogenee Come per dimensioni Come per dimensioni Verifica fonte dati Verifica fonte dati Come per dimensioni Come per dimensioni Assegnare foreign key Assegnare foreign key Definire misure Definire misure Mantenere integrità dei dati Mantenere integrità dei dati

15 www.devleap.it Assegnare Foreign Key Identificare chiave applicativa dimensionale nei dati che alimentano la tabella dei fatti Identificare chiave applicativa dimensionale nei dati che alimentano la tabella dei fatti Recuperare le chiavi primarie da ogni tabella dimensionale per assegnare le foreign key Recuperare le chiavi primarie da ogni tabella dimensionale per assegnare le foreign key Dimension Tables customer_dimcustomer_dim 201 ALFI Alfreds product_dimproduct_dim 25 123 Chai Sales Fact Source Data customer id ALFI1231/1/2000400 134 1/1/2000 time_dimtime_dim product id order date quantity_sales amount_sales 10,7891231/1/200040010,789

16 www.devleap.it Definire misure Caricare le misure dalla fonte dati Caricare le misure dalla fonte dati Calcolare misure aggiuntive / derivate Calcolare misure aggiuntive / derivate Source System Data Fact Table Data customer_idcustomer_id VINET ALFI HANAR... product_idproduct_id 9GZ 1KJ 0ZA... priceprice.55 1.10.98... qtyqty 32 48 9 9... customer_keycustomer_key 100 238 437... product_keyproduct_key 512 207 338... qtyqty 32 48 9 9... total_salestotal_sales 17.60 52.80 8.82...

17 www.devleap.it Mantenere integrità dei dati Aderire alla granularità della tabella dei fatti Aderire alla granularità della tabella dei fatti Una tabella dei fatti può avere una sola granularità Una tabella dei fatti può avere una sola granularità Bisogna caricare i dati con lo stesso livello di dettaglio definito dalla granularità Bisogna caricare i dati con lo stesso livello di dettaglio definito dalla granularità Verificare constraint colonne Verificare constraint colonne NOT NULL constraint NOT NULL constraint FOREIGN KEY constraint FOREIGN KEY constraint

18 www.devleap.it Implementare Staging Table Centralizzare e integrare fonti dati diverse Centralizzare e integrare fonti dati diverse Spezzare in parti più semplici delle trasformazioni complessi Spezzare in parti più semplici delle trasformazioni complessi Facilitare il recovery degli errori Facilitare il recovery degli errori

19 www.devleap.it ETL Tool utilizzati per alimentare un data mart Tool utilizzati per alimentare un data mart ETL: Extract, Transform and Load ETL: Extract, Transform and Load Estrazione Estrazione Connettività Connettività Trasformazione Trasformazione Cambia il modello logico Cambia il modello logico Individua errori di coerenza Individua errori di coerenza Corregge o segnala anomalie Corregge o segnala anomalie Caricamento Caricamento Connettività Connettività Ottimizzazione Ottimizzazione

20 www.devleap.it Validazione dei dati Convalidare e correggere i dati prima di importarli nel Data Warehouse Convalidare e correggere i dati prima di importarli nel Data Warehouse Determinare e correggere i processi che invalidano i dati Determinare e correggere i processi che invalidano i dati Salvare in un log i dati non validi per un esame successivo Salvare in un log i dati non validi per un esame successivo

21 www.devleap.it Rendere i dati consistenti I dati possono essere inconsistenti per vari motivi: I dati possono essere inconsistenti per vari motivi: I dati provengono da fonti diverse, in cui sono consistenti, ma vengono rappresentati in modo diverso nel Data Warehouse I dati provengono da fonti diverse, in cui sono consistenti, ma vengono rappresentati in modo diverso nel Data Warehouse La stessa informazione è rappresentata in modo diverso su differenti fonti dati La stessa informazione è rappresentata in modo diverso su differenti fonti dati Rendere i dati consistenti: Rendere i dati consistenti: Eliminare codifiche numeriche in valori leggibili Eliminare codifiche numeriche in valori leggibili Convertire versioni diverse della stessa informazione in una singola rappresentazione Convertire versioni diverse della stessa informazione in una singola rappresentazione

22 www.devleap.it Alimentare un Data Warehouse Scegliere il tool ETL appropriato Scegliere il tool ETL appropriato Transact-SQL Transact-SQL Query distribuite Query distribuite Utility BCP (bulk copy), istruzione BULK INSERT Utility BCP (bulk copy), istruzione BULK INSERT DTS (Data Transformation Services) DTS (Data Transformation Services)

23 www.devleap.it DTS (Data Transformation Services) Incluso in SQL Server 2000 Incluso in SQL Server 2000 Supporta qualsiasi fonte (e destinazione) OLE DB Supporta qualsiasi fonte (e destinazione) OLE DB Consente di integrare ActiveX Scripts allinterno delle operazioni disponibili Consente di integrare ActiveX Scripts allinterno delle operazioni disponibili

24 www.devleap.it Il Package di DTS Step 3 Step 1 Step 2 VB Script COMObject Java SQL Query Query Exec Utility Destination SourceDestination Source Step N …..

25 www.devleap.it Il Package di DTS Contiene la definizione delle attività da eseguire come parte della trasformazione Contiene la definizione delle attività da eseguire come parte della trasformazione Può essere eseguito dalla GUI, da scheduler, da command line, da script Può essere eseguito dalla GUI, da scheduler, da command line, da script Ciascun package è costituito da passi (step) multipli Ciascun package è costituito da passi (step) multipli Gli step vengono eseguiti in serie o in parallelo Gli step vengono eseguiti in serie o in parallelo Fornisce un modello di workflow Fornisce un modello di workflow Transazioni lungo gli step Transazioni lungo gli step

26 www.devleap.it DTS Package Editor

27 www.devleap.it DTS Object Model DTS Package Transforms Source Columns Destination Globals Precedences Steps Custom ActiveX Data Pump Tasks

28 www.devleap.it Package steps Step custom (personalizzato) Step custom (personalizzato) IDTSCustomStep IDTSCustomStep Datapump Datapump Trasformazione generica OLE DB Trasformazione generica OLE DB ActiveX Scripting ActiveX Scripting Logica procedurale (integrata in DataPump) Logica procedurale (integrata in DataPump) EXE EXE Integrazione con applicazioni esistenti Integrazione con applicazioni esistenti

29 www.devleap.it DTS Import/Export Wizard Il Wizard Import/Export data di SQL Server genera un package DTS Il Wizard Import/Export data di SQL Server genera un package DTS Se eseguito immediatamente, resta in memoria e non viene salvato Se eseguito immediatamente, resta in memoria e non viene salvato Utile per creare veloci prototipi o per mappare inizialmente molte tabelle Utile per creare veloci prototipi o per mappare inizialmente molte tabelle

30 www.devleap.it DTS Package Designer Menu System Menu System MMC menu MMC menu DTS Package Designer menu DTS Package Designer menu Toolbars Toolbars DTS Package Designer toolbar DTS Package Designer toolbar Task toolbar Task toolbar Connection toolbar Connection toolbar Design Sheet Design Sheet Connections Connections Tasks Tasks Steps Steps

31 www.devleap.it Connessioni in un package DTS Fonti dati Fonti dati OLE DB OLE DB ODBC ODBC Categorie connessioni Categorie connessioni File connections File connections Database connections Database connections Microsoft Data Links Microsoft Data Links

32 www.devleap.it Tasks che trasformano dati Transform Data Task Trasforma e inserisce dati Transform Data Task Trasforma e inserisce dati Data Driven Query Task Operazioni flessibili con T-SQL Data Driven Query Task Operazioni flessibili con T-SQL ParallelDataPumpTask Elabora rowset gerarchici ParallelDataPumpTask Elabora rowset gerarchici

33 www.devleap.it Tasks che copiano e gestiscono dati Bulk Insert Task Loads Files into SQL Server Bulk Insert Task Loads Files into SQL Server Execute SQL Task Runs SQL Statements Execute SQL Task Runs SQL Statements Copy SQL Server Objects Task Copies Objects Between SQL Server Databases Copy SQL Server Objects Task Copies Objects Between SQL Server Databases Transfer Databases Task Copies a SQL Server Database Transfer Databases Task Copies a SQL Server Database Transfer Jobs Task Copies SQL Server Agent Jobs Transfer Logins Task Copies SQL Server Logins Transfer Master Stored Procedures Task Copies SQL Server Master Database Stored Procedures Transfer Error Messages Task Copies SQL Server User-specified Error Messages

34 www.devleap.it Tasks che funzionano come Job ActiveX Script Task Performs User- Defined Logic FTP Task Transfers Files Analysis Services Task Processes Cubes Data Mining Task Processes Data Mining Models Send Mail Task Sends Email Messages Execute Process Task Runs Executable Files Execute Process Task Runs Executable Files Message Queue Task Sends and Receives Messages Message Queue Task Sends and Receives Messages Execute Package Task Executes DTS Packages Execute Package Task Executes DTS Packages Dynamic Properties Task Changes Package Properties Dynamic Properties Task Changes Package Properties

35 www.devleap.it Applicare vincoli di precedenza Vincoli di precedenza Vincoli di precedenza On Completion On Completion On Success On Success On Failure On Failure Esecuzione degli step basata su vincoli di precedenza Esecuzione degli step basata su vincoli di precedenza Usare zero, uno o pi ù vincoli di precedenza Usare zero, uno o pi ù vincoli di precedenza Si devono soddisfare tutto i vincoli di precedenza definiti Si devono soddisfare tutto i vincoli di precedenza definiti

36 www.devleap.it Proprietà step Transazione Transazione Joining a step to package transaction Joining a step to package transaction Committing a transaction Committing a transaction Rolling back a transaction Rolling back a transaction Impostazioni esecuzione Impostazioni esecuzione Eseguire uno step nel thread principale (STA) Eseguire uno step nel thread principale (STA) Interruzione di un package in seguito al fallimento di uno step Interruzione di un package in seguito al fallimento di uno step Disabilitazione di uno step Disabilitazione di uno step

37 www.devleap.it Memorizzare ed eseguire package Memorizzare i Package Memorizzare i Package SQL Server SQL Server SQL Server Meta Data Services SQL Server Meta Data Services Structured storage file Structured storage file Visual Basic file Visual Basic file Eseguire i package Eseguire i package Esecuzione interattiva Esecuzione interattiva Esecuzione batch Esecuzione batch

38 www.devleap.it Task che copiano e gestiscono dati Bulk Insert Task Quickly Carica file in SQL Server Bulk Insert Task Quickly Carica file in SQL Server Execute SQL Task Esegue istruzioni T-SQL Execute SQL Task Esegue istruzioni T-SQL Copy SQL Server Objects Task Copia oggetti tra istanze di SQL Server 7.0 o SQL Server 2000 Copy SQL Server Objects Task Copia oggetti tra istanze di SQL Server 7.0 o SQL Server 2000 Transfer Database Objects Tasks Copia informazioni complessive per un database da unistanza di SQL Server 7.0 o SQL Server 2000 a unistanza di SQL Server 2000 Transfer Database Objects Tasks Copia informazioni complessive per un database da unistanza di SQL Server 7.0 o SQL Server 2000 a unistanza di SQL Server 2000

39 www.devleap.it Funzionalità Bulk Insert Task Caricamento veloce da file a SQL Server Caricamento veloce da file a SQL Server Supporta destinazione Tabelle o Viste su SQL Server Supporta destinazione Tabelle o Viste su SQL Server Richiede file delimitati (CSV o lunghezza fissa) Richiede file delimitati (CSV o lunghezza fissa) Carica i dati senza trasformazioni Carica i dati senza trasformazioni Supporta i Format Files per specificare il layout del file Supporta i Format Files per specificare il layout del file Richiede appartenenza a ruolo sysadmin o bulkadmin Richiede appartenenza a ruolo sysadmin o bulkadmin

40 www.devleap.it SQL Task Esecuzione istruzioni SQL Esecuzione istruzioni SQL Il database connesso deve comprendere la sintassi SQL Il database connesso deve comprendere la sintassi SQL Supporta una o più istruzioni SQL Supporta una o più istruzioni SQL Query parametriche Query parametriche Parametri input Parametri input Parametri output Parametri output Si usano le variabili di package Si usano le variabili di package

41 www.devleap.it Trasformazioni DTS

42 www.devleap.it DTS Data Pump Architettura a elevate prestazioni Architettura a elevate prestazioni OLE DB Service Provider OLE DB Service Provider Estendibile via COM e ActiveX Scripts Estendibile via COM e ActiveX Scripts Data Pump IDTSDataPump IUnknown

43 www.devleap.it Elaborazione Data Pump OLE DB ODBC Fixed Field ASCII Delimited Source OLE DB ODBC Fixed Field ASCII Delimited Repl. Publication Destination DTS Data Pump InOut ActiveX Script Copy Trim String …Custom X Forms 1. Connessione a sorgente e destinazione 2. Lettura metadati OLE DB su colonne sorgenti e destinazione 3. Raccoglie definizioni delle trasformazioni dati 4. Implementa le trasformazioni 5. Scrive i record sulla destinazione

44 www.devleap.it Transform Data Task Funzionalità di spostamento e trasformazione dei dati Funzionalità di spostamento e trasformazione dei dati Copia i dati tra fonti dati eterogenee Copia i dati tra fonti dati eterogenee Applica trasformazioni opzionali a livello di colonna Applica trasformazioni opzionali a livello di colonna Funzionalità estese di trasferimento dei dati Funzionalità estese di trasferimento dei dati Supporta elaborazione batch dei dati Supporta elaborazione batch dei dati Fornisce capacità di gestione degli errori Fornisce capacità di gestione degli errori Contiene impostazioni di ottimizzazione per destinazioni SQL Server Contiene impostazioni di ottimizzazione per destinazioni SQL Server

45 www.devleap.it Impostare sorgente e destinazione Sorgente Sorgente Connessione sorgente Connessione sorgente Tabella, query, vista o file sorgente Tabella, query, vista o file sorgente Destinazione Destinazione Connessione destinazione Connessione destinazione Tabella destinazione esistente o struttura tabellare Tabella destinazione esistente o struttura tabellare Nuova tabella destinazione o struttura tabellare Nuova tabella destinazione o struttura tabellare La creazione avviene a design-time, non a ogni esecuzione La creazione avviene a design-time, non a ogni esecuzione Il DTS Import/Export wizard crea un DTS con due step separati, uno crea la tabella e laltro lalimenta Il DTS Import/Export wizard crea un DTS con due step separati, uno crea la tabella e laltro lalimenta

46 www.devleap.it Definizione del mapping delle colonne Mapping uno-a-uno Mapping uno-a-uno Mapping simmetrico molti-a-molti Mapping simmetrico molti-a-molti Mapping asimmetrico Mapping asimmetrico

47 www.devleap.it Costruire trasformazioni ActiveX Script

48 www.devleap.it Trasformazioni ActiveX Script Trasformazioni ActiveX Script Trasformazioni ActiveX Script Contengono logica di trasformazione definita dallutente Contengono logica di trasformazione definita dallutente Sono interpretate al momento dellesecuzione Sono interpretate al momento dellesecuzione Linguaggi di scripting Linguaggi di scripting VB Script VB Script JScript JScript Qualsiasi linguaggio di scripting installato Qualsiasi linguaggio di scripting installato

49 www.devleap.it Definire trasformazioni ActiveX Script Funzione che contiene la logica di trasformazione dei dati Funzione che contiene la logica di trasformazione dei dati Mapping delle colonne sorgenti e destinazione Mapping delle colonne sorgenti e destinazione Il valore di ritorno (definito nelle costanti DTSTransformStat) definisce lazione da eseguire per il record Il valore di ritorno (definito nelle costanti DTSTransformStat) definisce lazione da eseguire per il record Consente di fare trasformazioni 1:N e N:1 Consente di fare trasformazioni 1:N e N:1 Es. Pivot o Unpivot di una tabella Es. Pivot o Unpivot di una tabella

50 www.devleap.it Costanti DTSTransformStat DTSTransformStat Constant DescriptionDescription Terminate further processing of this row and return an error for the record Terminate further processing of this row and return an error for the record DTSTransformStat_SkipFetch Do not fetch the next row DTSTransformStat_SkipInsert Do not write the current row to the destination Do not write the current row to the destination DTSTransformStat_SkipRow Terminate further processing of this row for non-error reasons Terminate further processing of this row for non-error reasons DTSTransformStat_OK Default conversions succeed and insert the record into the destination Default conversions succeed and insert the record into the destination DTSTransformStat_Error

51 www.devleap.it Creare record multipli Product Group Hot Beverage Fruit Juice Drinks Hot Chocolate Apple Cider Product Group BeverageBeverage Drinks Hot Chocolate Drinks Apple Cider

52 www.devleap.it Conclusioni DTS è uno strumento di sviluppo DTS è uno strumento di sviluppo Riduce il codice da scrivere per le operazioni ripetitive Riduce il codice da scrivere per le operazioni ripetitive Mantiene aperte tutte le strade di personalizzazione quando è necessario Mantiene aperte tutte le strade di personalizzazione quando è necessario VBScript, JScript VBScript, JScript Componenti ActiveX Componenti ActiveX Supporto per automazione procedure e generazione log dettagliati Supporto per automazione procedure e generazione log dettagliati

53 www.devleap.it Altre Informazioni Dove posso ottenere maggiori informazioni Dove posso ottenere maggiori informazioni www.microsoft.com/italy/sql www.microsoft.com/italy/sql www.microsoft.com/italy/businessintelligence www.microsoft.com/italy/businessintelligence www.microsoft.com/sql www.microsoft.com/sql www.microsoft.com/sql/evaluation/bi www.microsoft.com/sql/evaluation/bi msdn.microsoft.com msdn.microsoft.com Developer resources Developer resources Microsoft Developer Network Microsoft Developer Network www.devleap.it www.devleap.it www.sqljunkies.com www.sqljunkies.com


Scaricare ppt "MCSD MCAD MCSE+I MCSA MCDBA MCT www.devleap.it Popolare un Data Warehouse con SQL Server Data Transformation Services (DTS)"

Presentazioni simili


Annunci Google