Pacchetti di Integration Services (SSIS)Integration Services (SSIS) Packages

Un pacchetto è una raccolta organizzata di connessioni, elementi di flusso di controllo, elementi di flusso di dati, gestori eventi, variabili, parametri e configurazioni che possono essere assemblati usando gli strumenti di progettazione grafica disponibili in SQL ServerSQL Server Integration ServicesIntegration Services, oppure compilati a livello di codice.A package is an organized collection of connections, control flow elements, data flow elements, event handlers, variables, parameters, and configurations, that you assemble using either the graphical design tools that SQL ServerSQL Server Integration ServicesIntegration Services provides, or build programmatically. Salvare il pacchetto completo in SQL ServerSQL Server, nell'archivio pacchetti di SSISSSIS o nel file system oppure distribuire il progetto ssISnoversion nel server SSISSSIS .You then save the completed package to SQL ServerSQL Server, the SSISSSIS Package Store, or the file system, or you can deploy the ssISnoversion project to the SSISSSIS server. Il pacchetto è l'unità di lavoro che viene recuperata, eseguita e salvata.The package is the unit of work that is retrieved, executed, and saved.

Al momento della creazione un pacchetto è un oggetto vuoto, privo di funzionalità.When you first create a package, it is an empty object that does nothing. Per aggiungere funzionalità a un pacchetto è necessario aggiungervi un flusso di controllo e, facoltativamente, uno o più flussi di dati.To add functionality to a package, you add a control flow and, optionally, one or more data flows to the package.

Nella figura seguente viene illustrato un semplice pacchetto che contiene un flusso di controllo con un'attività Flusso di dati, che a sua volta contiene un flusso di dati.The following diagram shows a simple package that contains a control flow with a Data Flow task, which in turn contains a data flow.

Un pacchetto con un flusso di controllo e flusso di datiA package with a control flow and a data flow

Dopo aver creato il pacchetto base è possibile estenderne le funzionalità aggiungendovi ad esempio variabili e funzionalità di registrazione.After you have created the basic package, you can add advanced features such as logging and variables to extend package functionality. Per ulteriori informazioni, vedere la sezione dedicata agli oggetti che estendono le funzionalità dei pacchetti.For more information, see the section about Objects that Extend Package Functionality.

Il pacchetto completo può essere quindi configurato impostando proprietà a livello di pacchetto che implementano la sicurezza, consentono il riavvio del pacchetto da un checkpoint o l'incorporamento di transazioni nel flusso di lavoro.The completed package can then be configured by setting package-level properties that implement security, enable restarting of packages from checkpoints, or incorporate transactions in package workflow. Per ulteriori informazioni, vedere la sezione dedicata alle proprietà che supportano le funzionalità avanzate.For more information, see the section about Properties that Support Extended Features.

Contenuto di un pacchettoContents of a package

Attività e contenitori (flusso di controllo).Tasks and containers (control flow). Un flusso di controllo è costituito da una o più attività e contenitori che vengono eseguiti durante l'esecuzione del pacchetto.A control flow consists of one or more tasks and containers that execute when the package runs. Per controllare l'ordine o definire le condizioni per l'esecuzione dell'attività o del contenitore successivo nel flusso di controllo del pacchetto, è necessario connettere le attività e i contenitori del pacchetto tramite vincoli di precedenza.To control order or define the conditions for running the next task or container in the package control flow, you use precedence constraints to connect the tasks and containers in a package. È anche possibile raggruppare un subset di attività e contenitori per eseguirli ripetutamente come unità nell'ambito del flusso di controllo del pacchetto.A subset of tasks and containers can also be grouped and run repeatedly as a unit within the package control flow. Per altre informazioni, vedere Flusso di controllo.For more information, see Control Flow.

Origini e destinazioni dei dati (flusso di dati).Data sources and destinations (data flow). Un flusso di dati è costituito da origini e destinazioni che estraggono e caricano dati, da trasformazioni che modificano ed estendono dati e da percorsi che collegano origini, trasformazioni e destinazioni.A data flow consists of the sources and destinations that extract and load data, the transformations that modify and extend data, and the paths that link sources, transformations, and destinations. È possibile aggiungere un flusso di dati a un pacchetto solo se il flusso di controllo del pacchetto include un'attività Flusso di dati.Before you can add a data flow to a package, the package control flow must include a Data Flow task. L'attività Flusso di dati è un eseguibile, nell'ambito del pacchetto SSISSSIS , che crea, ordina ed esegue il flusso di dati.The Data Flow task is the executable within the SSISSSIS package that creates, orders, and runs the data flow. Per ogni attività Flusso di dati contenuta in un pacchetto, viene aperta un'istanza distinta del motore flusso di dati.A separate instance of the data flow engine is opened for each Data Flow task in a package. Per altre informazioni, vedere Attività Flusso di dati e Flusso di dati.For more information, see Data Flow Task and Data Flow.

Gestioni connessioni (connessioni).Connection managers (connections). Un pacchetto include in genere almeno una gestione connessione.A package typically includes at least one connection manager. Una gestione connessione è un collegamento tra un pacchetto e un'origine dati che definisce la stringa di connessione per l'accesso ai dati utilizzata da attività, trasformazioni e gestori dell'evento nel pacchetto.A connection manager is a link between a package and a data source that defines the connection string for accessing the data that the tasks, transformations, and event handlers in the package use. Integration ServicesIntegration Services sono disponibili tipi di connessione per origini dati quali file di testo e XML, database relazionali e progetti e database di Analysis ServicesAnalysis Services . includes connection types for data sources such as text and XML files, relational databases, and Analysis ServicesAnalysis Services databases and projects. Per altre informazioni, vedere Connessioni in Integration Services (SSIS).For more information, see Integration Services (SSIS) Connections.

Oggetti che estendono le funzionalità dei pacchettiObjects that extend package functionality

I pacchetti possono includere oggetti quali gestori eventi, configurazioni, funzionalità di registrazione e variabili, che aggiungono funzionalità avanzate o estendono quelle esistenti.Packages can include additional objects that provide advanced features or extend existing functionality, such as event handlers, configurations, logging, and variables.

Gestori di eventiEvent Handlers

Un gestore di evento è un flusso di lavoro che viene eseguito in risposta agli eventi generati da un pacchetto, un'attività o un contenitore.An event handler is a workflow that runs in response to the events raised by a package, task, or container. È ad esempio possibile utilizzare un gestore di evento per controllare lo spazio su disco quando si verifica un evento di pre-esecuzione o un errore e inviare a un amministratore un messaggio di posta elettronica contenente informazioni sullo spazio disponibile o sull'errore.For example, you could use an event handler to check disk space when a pre-execution event occurs or if an error occurs, and send an e-mail message that reports the available space or error information to an administrator. Un gestore di evento è strutturato come un pacchetto, con un flusso di controllo e uno o più flussi di dati facoltativi.An event handler is constructed like a package, with a control flow and optional data flows. I gestori di eventi possono essere aggiunti alle singole attività o contenitori di un pacchetto.Event handlers can be added to individual tasks or containers in the package. Per altre informazioni, vedere Gestori eventi di Integration Services (SSIS).For more information, see Integration Services (SSIS) Event Handlers.

ConfigurazioniConfigurations

Una configurazione è un set di coppie proprietà-valore che definisce le proprietà del pacchetto e dei relativi contenitori, attività, variabili, connessioni e gestori di eventi, al momento dell'esecuzione del pacchetto.A configuration is a set of property-value pairs that defines the properties of the package and its tasks, containers, variables, connections, and event handlers when the package runs. Grazie alle configurazioni è possibile aggiornare le proprietà senza modificare il pacchetto.Using configurations makes it possible to update properties without modifying the package. Quando il pacchetto viene eseguito, le informazioni di configurazione vengono caricate e i valori delle proprietà vengono aggiornati.When the package is run, the configuration information is loaded, updating the values of properties. Una configurazione può ad esempio aggiornare la stringa di connessione.For example, a configuration can update the connection string of connection.

La configurazione viene salvata e quindi distribuita insieme al pacchetto quando questo viene installato in un altro computer.The configuration is saved and then deployed with the package when the package is installed on a different computer. Quando il pacchetto viene installato in un ambiente diverso, i valori della configurazione possono essere aggiornati in base alle nuove esigenze.The values in the configuration can be updated when the package is installed to support the package in a different environment. Per altre informazioni, vedere Creazione di configurazioni dei pacchetti.For more information, see Create Package Configurations.

Registrazione e provider di logLogging and Log Providers

Un log è una raccolta di informazioni sul pacchetto che vengono raccolte quando il pacchetto viene eseguito.A log is a collection of information about the package that is collected when the package runs. Un log può ad esempio indicare l'ora di inizio e di fine dell'esecuzione di un pacchetto.For example, a log can provide the start and finish time for a package run. Un provider di log definisce il tipo di destinazione e il formato che il pacchetto e i relativi contenitori e attività possono utilizzare per la registrazione delle informazioni in fase di esecuzione.A log provider defines the destination type and the format that the package and its containers and tasks can use to log run-time information. I log sono associati a un pacchetto, ma le attività e i contenitori nel pacchetto possono registrare informazioni in qualsiasi log di pacchetto.The logs are associated with a package, but the tasks and containers in the package can log information to any package log. Integration ServicesIntegration Services è disponibile una varietà di provider di log predefiniti per la registrazione. includes a variety of built-in log providers for logging. Integration ServicesIntegration Services include ad esempio provider di log per SQL ServerSQL Server e file di testo.For example, Integration ServicesIntegration Services includes log providers for SQL ServerSQL Server and text files. È inoltre possibile creare provider di log personalizzati e utilizzarli per la registrazione.You can also create custom log providers and use them for logging. Per altre informazioni, vedere Registrazione di Integration Services (SSIS).For more information, see Integration Services (SSIS) Logging.

VariabiliVariables

Integration ServicesIntegration Services supporta variabili di sistema e variabili definite dall'utente. supports system variables and user-defined variables. Le variabili di sistema contengono informazioni utili sugli oggetti del pacchetto in fase di esecuzione, mentre le variabili definite dall'utente consentono la gestione di scenari personalizzati.The system variables provide useful information about package objects at run time, and user-defined variables support custom scenarios in packages. Entrambi i tipi di variabili possono essere utilizzati in espressioni, script e configurazioni.Both types of variables can be used in expressions, scripts, and configurations.

Le variabili a livello di pacchetto includono le variabili di sistema predefinite e le variabili definite dall'utente con ambito pacchetto.The package-level variables include the pre-defined system variables available to a package and the user-defined variables with package scope. Per altre informazioni, vedere Variabili di Integration Services (SSIS).For more information, see Integration Services (SSIS) Variables.

ParametriParameters

Integration ServicesIntegration Services I parametri consentono di assegnare valori alle proprietà incluse nei pacchetti durante la fase di esecuzione. parameters allow you to assign values to properties within packages at the time of package execution. È possibile creare parametri di progetto al livello del progetto e parametri di pacchetto al livello del pacchetto.You can create project parameters at the project level and package parameters at the package level. I parametri del progetto vengono utilizzati per fornire input esterno ricevuto dal progetto a uno o più pacchetti nel progetto.Project parameters are used to supply any external input the project receives to one or more packages in the project. I parametri del pacchetto consentono di modificare l'esecuzione del pacchetto senza doverlo modificare e ridistribuire.Package parameters allow you to modify package execution without having to edit and redeploy the package. Per altre informazioni, vedere Parametri di Integration Services (SSIS).For more information, see Integration Services (SSIS) Parameters.

Proprietà dei pacchetti che supportano funzionalità avanzatePackage properties that support extended features

L'oggetto pacchetto può essere configurato in modo da supportare funzionalità quali il riavvio del pacchetto da un determinato checkpoint, la firma del pacchetto con un certificato digitale, l'impostazione del livello di protezione del pacchetto e la protezione dell'integrità dei dati tramite transazioni.The package object can be configured to support features such as restarting the package at checkpoints, signing the package with a digital certificate, setting the package protection level, and ensuring data integrity by using transactions.

Riavvio dei pacchettiRestarting Packages

Il pacchetto include proprietà checkpoint che possono essere utilizzate per riavviarlo quando una o più attività hanno esito negativo.The package includes checkpoint properties that you can use to restart the package when one or more of its tasks fail. Se ad esempio un pacchetto contiene due attività Flusso di dati che aggiornano due diverse tabelle e la seconda attività non riesce, sarà possibile riavviare il pacchetto senza ripetere la prima attività Flusso di dati.For example, if a package has two Data Flow tasks that update two different tables and the second task fails, the package can be rerun without repeating the first Data Flow task. Per i pacchetti a esecuzione prolungata questo consente un notevole risparmio di tempo,Restarting a package can save time for long-running packages. perché tramite il riavvio è possibile riprendere l'esecuzione del pacchetto a partire dall'attività non riuscita, anziché rieseguirlo per intero.Restarting means you can start the package from the failed task instead of having to rerun the whole package. Per ulteriori informazioni, vedere Restart Packages by Using Checkpoints.For more information, see Restart Packages by Using Checkpoints.

Sicurezza dei pacchettiSecuring Packages

I pacchetti possono essere firmati digitalmente e crittografati utilizzando una password o una chiave utente.A package can be signed with a digital signature and encrypted by using a password or a user key. La firma digitale consente di autenticare l'origine del pacchetto.A digital signature authenticates the source of the package. Tuttavia, è necessario configurare anche Integration ServicesIntegration Services per verificare la firma digitale quando viene caricato il pacchetto.However, you must also configure Integration ServicesIntegration Services to check the digital signature when the package loads. Per altre informazioni, vedere Identificazione dell'origine dei pacchetti con firme digitali e Controllo dell'accesso per dati sensibili nei pacchetti.For more information, see Identify the Source of Packages with Digital Signatures and Access Control for Sensitive Data in Packages.

Supporto delle transazioniSupporting Transactions

Se si imposta un attributo di transazione a livello di pacchetto, sarà possibile includere nella transazione tutti i contenitori, le attività e le connessioni del pacchetto.Setting a transaction attribute on the package enables tasks, containers, and connections in the package to join the transaction. Gli attributi di transazione assicurano che il pacchetto e i relativi elementi abbiano esito positivo o negativo come una singola unità.Transaction attributes ensure that the package and its elements succeed or fail as a unit. Poiché un pacchetto può eseguire altri pacchetti e includerli in una transazione, una singola unità di lavoro può comprendere più pacchetti.Packages can also run other packages and enroll other packages in transactions, so that you can run multiple packages as a single unit of work. Per altre informazioni, vedere Transazioni di Integration Services.For more information, see Integration Services Transactions.

Voci di log personalizzate disponibili nei pacchettiCustom log entries available on the package

Nella tabella seguente sono elencate le voci di log personalizzate disponibili per i pacchetti.The following table lists the custom log entries for packages. Per altre informazioni, vedere registrazione di Integration Services (SSIS).For more information, see Integration Services (SSIS) Logging.

Voce di logLog entry DescriptionDescription
PackageStartPackageStart Indica che l'esecuzione del pacchetto è iniziata.Indicates that the package began to run.

Nota: questa voce di log viene scritta automaticamente nel log.Note: This log entry is automatically written to the log. e non può essere esclusa.You cannot exclude it.
Fine pacchettoPackageEnd Indica che l'esecuzione del pacchetto è stata completata.Indicates that the package completed.

Nota: questa voce di log viene scritta automaticamente nel log.Note: This log entry is automatically written to the log. e non può essere esclusa.You cannot exclude it.
DiagnosticDiagnostic Offre informazioni sulla configurazione del sistema che influisce sull'esecuzione dei pacchetti, ad esempio il numero di file eseguibili che è possibile eseguire simultaneamente.Provides information about the system configuration that affects package execution such as the number executables that can be run concurrently.

Impostare le proprietà di un pacchettoSet the properties of a package

È possibile impostare le proprietà a livello di codice o nella finestra Proprietà di SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT) .You can set properties in the Properties window of SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT) or programmatically.

Per informazioni su come impostare queste proprietà usando SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT), vedere Impostazione delle proprietà di un pacchetto.For information about how to set these properties using SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT), see Set Package Properties.

Per informazioni sull'impostazione di queste proprietà a livello di codice, vedere Package.For information about programmatically setting these properties, see Package.

Riusare un pacchetto esistente come modelloReuse an existing package as a template

Molti pacchetti vengono utilizzati come modello per la compilazione di pacchetti con le stesse funzionalità di base.Packages are frequently used as templates from which to build packages that share basic functionality. È possibile compilare il pacchetto di base e quindi copiarlo oppure impostare tale pacchetto come modello.You build the basic package and then copy it, or you can designate the package is a template. Un pacchetto che scarica e copia file e quindi ne estrae i dati, ad esempio, può includere le attività FTP e File system in un ciclo Foreach che enumera i file presenti in una cartella.For example, a package that downloads and copies files and then extracts the data may include the FTP and File System tasks in a Foreach Loop that enumerates files in a folder. Può inoltre includere gestioni connessioni file flat per l'accesso ai dati e origini file flat per l'estrazione dei dati.It may also include Flat File connection managers to access the data, and Flat File sources to exact the data. Poiché la destinazione dei dati può variare, viene aggiunta a ogni nuovo pacchetto dopo la copia dal pacchetto di base.The destination of the data varies, and the destination is added to each new package after it is copied from the basic package. È anche possibile creare pacchetti e quindi usarli come modelli per i nuovi pacchetti da aggiungere a un progetto di Integration ServicesIntegration Services .You can also create packages and then use them as templates for the new packages that you add to an Integration ServicesIntegration Services project. Per altre informazioni, vedere Creare pacchetti in SQL Server Data Tools.For more information, see Create Packages in SQL Server Data Tools.

Alla creazione di un nuovo pacchetto, a livello di codice o tramite Progettazione SSIS, viene aggiunto un GUID alla proprietà ID e un nome alla proprietà Name del pacchetto.When a package is first created, either programmatically or by using SSIS Designer, a GUID is added to its ID property and a name to its Name property. Se si crea un nuovo pacchetto copiando un pacchetto esistente oppure utilizzando un pacchetto modello, verranno copiati anche il nome e il GUID di tale pacchetto.If you create a new package by copying an existing package or by using a template package, the name and the GUID are copied as well. Quando si utilizza la registrazione questo può costituire un problema, perché il GUID e il nome del pacchetto vengono scritti nei log per identificare il pacchetto a cui appartengono le informazioni registrate.This can be a problem if you use logging, because the GUID and the name of the package are written to the logs to identify the package to which the logged information belongs. È pertanto necessario modificare il nome e il GUID dei nuovi pacchetti per distinguerli tra loro e da quello da cui sono stati copiati, nei dati dei file di log.Therefore, you should update the name and the GUID of the new packages to help differentiate them from the package from which they were copied and from each other in the log data.

Per modificare il GUID di un pacchetto è necessario rigenerare il GUID nella proprietà ID , disponibile nella finestra Proprietà in SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT).To change the package GUID, you regenerate a GUID in the ID property in the Properties window in SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT). Per cambiare il nome di un pacchetto è necessario modificare il valore della proprietà Name nella finestra Proprietà.To change the package name, you can update the value of the Name property in the Properties window. In alternativa è possibile usare il prompt dei comandi dtutil oppure modificare il nome e il GUID a livello di codice.You can also use the dtutil command prompt, or update the GUID and name programmatically. Per altre informazioni, vedere Impostazione delle proprietà di un pacchetto e Utilità dtutil.For more information, see Set Package Properties and dtutil Utility.

Integration ServicesIntegration Services sono disponibili due strumenti grafici per la creazione di pacchetti, Progettazione SSISSSIS e Importazione/Esportazione guidata SQL ServerSQL Server , oltre al modello a oggetti SSISSSIS . includes two graphical tools, SSISSSIS Designer and SQL ServerSQL Server Import and Export Wizard, in addition to the SSISSSIS object model for creating packages. Per informazioni dettagliate, vedere gli argomenti seguenti.See the following topics for details.