SQL Server 2005 Integration Services Franco Perduca Factory Software [email protected].

30
SQL Server 2005 Integration Services Franco Perduca Factory Software [email protected]

Transcript of SQL Server 2005 Integration Services Franco Perduca Factory Software [email protected].

Page 1: SQL Server 2005 Integration Services Franco Perduca Factory Software francop@factorysw.com.

SQL Server 2005Integration Services

Franco Perduca Factory Software

[email protected]

Page 2: SQL Server 2005 Integration Services Franco Perduca Factory Software francop@factorysw.com.

Introduzione

Cosa sono i SSIS?UtilizziArchitetturaVersioniSSIS su piattaforme a 64bit

2

Page 3: SQL Server 2005 Integration Services Franco Perduca Factory Software francop@factorysw.com.

Cosa sono i SSIS?

Sono una piattaforma per costruire soluzioni di integrazione dati. Si tratta dunque di uno strumento ETL:

ExtractTransformLoad

Sono utilizzati in particolare nella costruzione di datawarehouse, dove spesso è necessario:

caricare ed integrare dati da fonti eterogenee eseguire trasformazioni sui dati

3

Page 4: SQL Server 2005 Integration Services Franco Perduca Factory Software francop@factorysw.com.

Cosa sono i SSIS?

SSIS rimpiazza i DTS, presenti in SQL Server a partire dalla versione 7.0

I SSIS includono:Tool grafici per la creazione di packageTask per le funzionalità di workflowData source e data destinationTask per la trasformazione, aggregazione, copia dei dati

4

Page 5: SQL Server 2005 Integration Services Franco Perduca Factory Software francop@factorysw.com.

Quando li utilizziamo?Ecco alcuni scenari di utilizzo:

Integrazione di dati eterogeneiPopolamento di datawarehouse e datamartPopolamento di fact table e dimensioniSlowly changing dimension taskPulizia e standardizzazione dei datiLe funzionalità di trasformazione (anche via script) sono strumenti potenti per questo scopoAutomatizzazione di funzionalità amministrativeBackup/restore, copia di oggetti di SQL Server, process di cubi OLAP

5

Page 6: SQL Server 2005 Integration Services Franco Perduca Factory Software francop@factorysw.com.

Architettura di Integration Services

SSIS ServiceStart e stop di packageMonitoraggio Gestione package storage

SSIS runtime engineEsecuzione packageSupporto perLoggingDebugConfigurazione

SSIS data flow engineGestione buffer per il movimento dati da source a destinationGestione trasformazioni

SSIS clients (object model)

Tool grafici e da command lineAPI

6

Page 7: SQL Server 2005 Integration Services Franco Perduca Factory Software francop@factorysw.com.

Tools

SviluppoVisual studio 2005Business intelligence development studio

Amministazione/EsecuzioneSQL Server Management StudioDTUtilDTExec

7

Page 8: SQL Server 2005 Integration Services Franco Perduca Factory Software francop@factorysw.com.

SSIS e versioni SQL Server 2005

SQL ExpressSSIS non è disponibile per questa versione

WorkgroupSolo import/export wizard

StandardMancano solo le funzionalità avanzate di Business intelligence

Enterprise/DeveloperVersione completa di tutte le funzionalità

8

Page 9: SQL Server 2005 Integration Services Franco Perduca Factory Software francop@factorysw.com.

SSIS e piattaforme a 64-bit

Su server a 64bit le feature a 64bit sono installate nella cartella Program Files, mentre le feature a 32 bit sono nella cartella Program Files(x86)Gli unici tool a 64bit sono dtexec.exe, dtutil.exe, DTSWizard.exeAlcuni driver non sono disponibili, ad es: Microsoft OLE DB Provider for JetProblema con Export su ExcelNon è possibile disegnare package su ItaniumGli script devono essere precompilatiNon è possibile utilizzare il task Execute DTS 2000 Package. Run64bitRuntime = False in Project Properties se si vuol eseguire il package con il runtime a 32bitIl job di tipo SSIS Package Execution del SQL Server agent utilizza sempre il runtime a 64bit.Per schedulare un package a 32bit occorre creare un job di tipo Operating System ed eseguire il package attraverso dtexec.exe a 32bit

9

Page 10: SQL Server 2005 Integration Services Franco Perduca Factory Software francop@factorysw.com.

Oggetti e struttura di Integration Services

PackageControl flowContainerTaskVariable

10

Page 11: SQL Server 2005 Integration Services Franco Perduca Factory Software francop@factorysw.com.

PackageIl package è un oggetto contenente una collection di oggetti interrelati.

11

Page 12: SQL Server 2005 Integration Services Franco Perduca Factory Software francop@factorysw.com.

Package

E’ il punto di partenza per lo sviluppo di SSISAl package vuoto si aggiungono il control flow ed i data flow.

E’ salvato in un file dtsx (xml) oppure nell’msdb

12

Page 13: SQL Server 2005 Integration Services Franco Perduca Factory Software francop@factorysw.com.

Control Flow

Il package contiene un control flow che:

Definisce i precedence contraints di ContainerTask

13

Page 14: SQL Server 2005 Integration Services Franco Perduca Factory Software francop@factorysw.com.

Container

Organizzano il package in unità più piccole Forniscono :

Transaction scopeVariable scopeExecution scopeLooping functionsBreakpointsError routingLogging scope. Il package stesso è un container.

14

Page 15: SQL Server 2005 Integration Services Franco Perduca Factory Software francop@factorysw.com.

Container

For Each loopEsegue il workflow una volta per ciscun elemento di una collection

For loopEsegue il workflow finchè una condizione non diventi falsa.

Sequence containerUnità di organizzazione dei task

TaskHostContenier di ciascun taskTrasparente all’utente

15

Page 16: SQL Server 2005 Integration Services Franco Perduca Factory Software francop@factorysw.com.

Task

Eseguono il lavoroOgni task ha un compito specificoDataFlow Task:

Sposta i datiTrasforma di dati

Sono estensioni “pluggable”Possono essere sviluppati da terze parti

16

Page 17: SQL Server 2005 Integration Services Franco Perduca Factory Software francop@factorysw.com.

Variables

Gli oggetti di Integration Services sono isolati, non “vedono” gli altri oggettiLe varibili sono utilizzate come meccanismo di comunicazione tra gli oggetti.Possono contenere numerosi datatype:

Stringhe NumeriDateDatasetOggetti17

Page 18: SQL Server 2005 Integration Services Franco Perduca Factory Software francop@factorysw.com.

Variables

Possono avere scope diversi:PackageContainerTask

Aiutano a rendere i package più configurabili e flessibili.Esistono numerose variabili di sistema

18

Page 19: SQL Server 2005 Integration Services Franco Perduca Factory Software francop@factorysw.com.

Connection ManagersForniscono un link al mondo estero a SSISAlcuni Connection manager non forniscono una vera e propria connessione (ma solo un nome di un file)Altri conneciton manager effrono numerose informazioni oltre la connessione.Esistono numerosi connection manager:

OLEDBFileSQL ServerAnalysis ServicesOracleXMLSAPHTTP

19

Page 20: SQL Server 2005 Integration Services Franco Perduca Factory Software francop@factorysw.com.

Log provider

Ogni oggetto ha accesso all’infrastruttura di logging.I log provider sono componenti “pluggable” che raccolgono le informazioni di log dei componenti e le scrivono in una determinata destinazione.I componenti dei SSIS mandano i loro log al runtime SSIS e non conoscono nulla dei log provider.Quindi i log provider rendono indipendenti i componenti di SSIS dal log.

20

Page 21: SQL Server 2005 Integration Services Franco Perduca Factory Software francop@factorysw.com.

Event Handlers

I package ed i container (i loop e i task) generano eventi che possono essere intercettati attraverso gli EVENT HANDLERSSe un evento non è gestito dal proprio container, esso è rilanciato nel container di livello superiore nella gerarchia.Un event handler è simile ad un package:

Ha task, data-flow e control flows

21

Page 22: SQL Server 2005 Integration Services Franco Perduca Factory Software francop@factorysw.com.

Eventi

22

Evento DescrizioneOnError This event is raised by an executable when an error occurs.OnExecStatusChanged This event is raised by an executable when its execution status changes.

OnInformation This event is raised during the validation and execution of an executable to report information. This event conveys information only, no errors or warnings.

OnPostExecute This event is raised by an executable immediately after it has finished running.

OnPostValidate This event is raised by an executable when its validation is finished.OnPreExecute This event is raised by an executable immediately before it runs.OnPreValidate This event is raised by an executable when its validation starts.

OnProgress This event is raised by an executable when measurable progress is made by the executable.

OnQueryCancel This event is raised by an executable to determine whether it should stop running.

OnTaskFailed This event is raised by a task when it fails.

OnVariableValueChanged

This event is raised by an executable when the value of a variable changes. The event is raised by the executable on which the variable is defined. This event is not raised if you set the RaiseChangeEvent property for the variable to False. For more information, see .

OnWarning This event is raised by an executable when a warning occurs.OnError This event is raised by an executable when an error occurs.OnExecStatusChanged This event is raised by an executable when its execution status changes.

OnInformation This event is raised during the validation and execution of an executable to report information. This event conveys information only, no errors or warnings.

Page 23: SQL Server 2005 Integration Services Franco Perduca Factory Software francop@factorysw.com.

Tipi di dati

SSIS ha tipi di dati proprietari. Quando i dati sono caricati, essi sono convertiti nel data type di SSIS.Questo rende indipendente il Data Flow dalla sorgente dati.

Page 24: SQL Server 2005 Integration Services Franco Perduca Factory Software francop@factorysw.com.

Metadati

I Metadati sono dati che descrivono altri dati.SSIS è basato sui metadati.Grazie ai metadati è possibile validare il package a priori.Però è abbastanza laborioso cambiare i tipi di dati in input.

Page 25: SQL Server 2005 Integration Services Franco Perduca Factory Software francop@factorysw.com.

Connections

25

Page 26: SQL Server 2005 Integration Services Franco Perduca Factory Software francop@factorysw.com.

Data sourceData source viewsConnection Managers

26

Page 27: SQL Server 2005 Integration Services Franco Perduca Factory Software francop@factorysw.com.

Data source

E’ un riferimento ad una connessione creato al di fuori dei packageQuando si crea un Data Source:

BIDS aggiunge un connection manager (OLE DB)La proprietà DataSourceID di questo connection manager punta al data source.

Più package vi possono fare riferimento.

Semplifica l’aggiornamento

27

Page 28: SQL Server 2005 Integration Services Franco Perduca Factory Software francop@factorysw.com.

Data Source View

Descrive lo schema di un data source.Rende disponibili gli oggetti di un database che possono poi essere utilizzati per definire source o destinationE’ estendibile:

Posso creare campi calcolatiPosso introdurre filtriPosso sostituire tabelle con named query.

Non appartiene ad uno specifico package.28

Page 29: SQL Server 2005 Integration Services Franco Perduca Factory Software francop@factorysw.com.

Connection Manager

Rappresentazione logica di una connessioneIn design time si imposta la proprietà ConnectionString.Al runtime SSIS crea una connessione basandosi su questa proprietà.

29

Tipo Descrizione

ADO Connects to ActiveX Data Objects (ADO) objects

ADO.NET Connects to a data source by using a .NET provider.

EXCEL Connects to an Excel workbook file.

FILE Connects to a file or a folder.

FLATFILE Connect to data in a single flat file.

FTP Connect to an FTP server.

HTTP Connects to a web server.

MSMQ Connects to a message queue.

MSOLAP90Connects to an instance of SQL Server 2005 Analysis Services (SSAS) or an Analysis Services project.

MULTIFILE Connects to multiple files and folders.

MULTIFLATFILE Connects to multiple data files and folders.

OLEDB Connects to a data source by using an OLE DB provider.

ODBC Connects to a data source by using ODBC.

SMOServer Connects to a SQL Server Management Objects (SMO) server.

SMTP Connects to an SMTP mail server.

SQLMOBILE Connects to a SQL Server Compact Edition database.

WMIConnects to a server and specifies the scope of Windows Management Instrumentation (WMI) management on the server.

Page 30: SQL Server 2005 Integration Services Franco Perduca Factory Software francop@factorysw.com.

EXCEL

E’ utilizzato per Microsoft Office Excel 2003 o precedenti.Per Excel 2007 occorre utilizzare:

Microsoft Office 12.0 Access Database Engine OLE DB ProviderBisogna impostare: Extended Properties = Excel 12.0

30