SQL Server 2005 Integration Services Franco Perduca Factory Software francop@factorysw.com
Introduzione Cosa sono i SSIS? Utilizzi Architettura Versioni 3/27/2017 2:28 AM Introduzione Cosa sono i SSIS? Utilizzi Architettura Versioni SSIS su piattaforme a 64bit © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
3/27/2017 2:28 AM Cosa sono i SSIS? Sono una piattaforma per costruire soluzioni di integrazione dati. Si tratta dunque di uno strumento ETL: Extract Transform Load Sono utilizzati in particolare nella costruzione di datawarehouse, dove spesso è necessario: caricare ed integrare dati da fonti eterogenee eseguire trasformazioni sui dati © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
3/27/2017 2:28 AM 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 package Task per le funzionalità di workflow Data source e data destination Task per la trasformazione, aggregazione, copia dei dati © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Quando li utilizziamo? Ecco alcuni scenari di utilizzo: Integrazione di dati eterogenei Popolamento di datawarehouse e datamart Popolamento di fact table e dimensioni Slowly changing dimension task Pulizia e standardizzazione dei dati Le funzionalità di trasformazione (anche via script) sono strumenti potenti per questo scopo Automatizzazione di funzionalità amministrative Backup/restore, copia di oggetti di SQL Server, process di cubi OLAP © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Architettura di Integration Services 3/27/2017 2:28 AM Architettura di Integration Services SSIS Service Start e stop di package Monitoraggio Gestione package storage SSIS runtime engine Esecuzione package Supporto per Logging Debug Configurazione SSIS data flow engine Gestione buffer per il movimento dati da source a destination Gestione trasformazioni SSIS clients (object model) Tool grafici e da command line API © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Tools Sviluppo Amministazione/Esecuzione Visual studio 2005 Business intelligence development studio Amministazione/Esecuzione SQL Server Management Studio DTUtil DTExec © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
SSIS e versioni SQL Server 2005 3/27/2017 2:28 AM SSIS e versioni SQL Server 2005 SQL Express SSIS non è disponibile per questa versione Workgroup Solo import/export wizard Standard Mancano solo le funzionalità avanzate di Business intelligence Enterprise/Developer Versione completa di tutte le funzionalità © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
SSIS e piattaforme a 64-bit 3/27/2017 2:28 AM 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.exe Alcuni driver non sono disponibili, ad es: Microsoft OLE DB Provider for Jet Problema con Export su Excel Non è possibile disegnare package su Itanium Gli script devono essere precompilati Non è possibile utilizzare il task Execute DTS 2000 Package. Run64bitRuntime = False in Project Properties se si vuol eseguire il package con il runtime a 32bit Il 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 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Oggetti e struttura di Integration Services 3/27/2017 2:28 AM Oggetti e struttura di Integration Services Package Control flow Container Task Variable © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Precedence Contraints 3/27/2017 2:28 AM Package Il package è un oggetto contenente una collection di oggetti interrelati. Tasks Connection Managers Precedence Contraints Log Providers Variables Containers For each Enumerators Tranform e Adapters © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Package E’ il punto di partenza per lo sviluppo di SSIS 3/27/2017 2:28 AM Package E’ il punto di partenza per lo sviluppo di SSIS Al package vuoto si aggiungono il control flow ed i data flow. E’ salvato in un file dtsx (xml) oppure nell’msdb © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Control Flow Il package contiene un control flow che: Container Task 3/27/2017 2:28 AM Control Flow Il package contiene un control flow che: Definisce i precedence contraints di Container Task © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Container Organizzano il package in unità più piccole Forniscono : 3/27/2017 2:28 AM Container Organizzano il package in unità più piccole Forniscono : Transaction scope Variable scope Execution scope Looping functions Breakpoints Error routing Logging scope. Il package stesso è un container. © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Container For Each loop For loop Sequence container TaskHost 3/27/2017 2:28 AM Container For Each loop Esegue il workflow una volta per ciscun elemento di una collection For loop Esegue il workflow finchè una condizione non diventi falsa. Sequence container Unità di organizzazione dei task TaskHost Contenier di ciascun task Trasparente all’utente © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Task Eseguono il lavoro Ogni task ha un compito specifico 3/27/2017 2:28 AM Task Eseguono il lavoro Ogni task ha un compito specifico DataFlow Task: Sposta i dati Trasforma di dati Sono estensioni “pluggable” Possono essere sviluppati da terze parti © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
3/27/2017 2:28 AM Variables Gli oggetti di Integration Services sono isolati, non “vedono” gli altri oggetti Le varibili sono utilizzate come meccanismo di comunicazione tra gli oggetti. Possono contenere numerosi datatype: Stringhe Numeri Date Dataset Oggetti © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Variables Possono avere scope diversi: 3/27/2017 2:28 AM Variables Possono avere scope diversi: Package Container Task Aiutano a rendere i package più configurabili e flessibili. Esistono numerose variabili di sistema © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Connection Managers Forniscono un link al mondo estero a SSIS 3/27/2017 2:28 AM Connection Managers Forniscono un link al mondo estero a SSIS Alcuni 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: OLEDB File SQL Server Analysis Services Oracle XML SAP HTTP © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Log provider Ogni oggetto ha accesso all’infrastruttura di logging. 3/27/2017 2:28 AM 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. © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
3/27/2017 2:28 AM Event Handlers I package ed i container (i loop e i task) generano eventi che possono essere intercettati attraverso gli EVENT HANDLERS Se 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 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Eventi Evento Descrizione 3/27/2017 2:28 AM 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. 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. © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
3/27/2017 2:28 AM 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. © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Metadati I Metadati sono dati che descrivono altri dati. 3/27/2017 2:28 AM 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. © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
3/27/2017 2:28 AM Connections © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Data source Data source views Connection Managers 3/27/2017 2:28 AM © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
3/27/2017 2:28 AM Data source E’ un riferimento ad una connessione creato al di fuori dei package Quando 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 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Data Source View Descrive lo schema di un data source. 3/27/2017 2:28 AM 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 destination E’ estendibile: Posso creare campi calcolati Posso introdurre filtri Posso sostituire tabelle con named query. Non appartiene ad uno specifico package. © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
Connection Manager Rappresentazione logica di una connessione 3/27/2017 2:28 AM Connection Manager Rappresentazione logica di una connessione In design time si imposta la proprietà ConnectionString. Al runtime SSIS crea una connessione basandosi su questa proprietà. 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. MSOLAP90 Connects 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. WMI Connects to a server and specifies the scope of Windows Management Instrumentation (WMI) management on the server. © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.
EXCEL E’ utilizzato per Microsoft Office Excel 2003 o precedenti. 3/27/2017 2:28 AM EXCEL E’ utilizzato per Microsoft Office Excel 2003 o precedenti. Per Excel 2007 occorre utilizzare: Microsoft Office 12.0 Access Database Engine OLE DB Provider Bisogna impostare: Extended Properties = Excel 12.0 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.