Integration Services-Pakete (SSIS)Integration Services (SSIS) Packages

Bei einem Paket handelt es sich um eine organisierte Auflistung von Verbindungen, Ablaufsteuerungselementen, Datenflusselementen, Ereignishandlern, Variablen, Parametern und Konfigurationen, die Sie entweder mit den grafischen Designtools von SQL ServerSQL Server Integration ServicesIntegration Services oder programmgesteuert erstellen.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. Sie speichern dann das fertige Paket in SQL ServerSQL Server, dem SSISSSIS -Paketspeicher oder im Dateisystem, oder Sie können das ssISnoversion-Projekt auf dem Server SSISSSIS bereitstellen.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. Das Paket ist jene Arbeitseinheit, die abgerufen, ausgeführt und gespeichert wird.The package is the unit of work that is retrieved, executed, and saved.

Wenn Sie ein Paket erstellen, ist es zunächst ein leeres Objekt ohne Funktionalität.When you first create a package, it is an empty object that does nothing. Um einem Paket Funktionalität hinzuzufügen, fügen Sie ihm eine Ablaufsteuerung und optional mindestens einen Datenfluss hinzu.To add functionality to a package, you add a control flow and, optionally, one or more data flows to the package.

Das folgende Diagramm zeigt ein einfaches Paket, das eine Ablaufsteuerung mit einem Datenflusstask enthält, der wiederum einen Datenfluss enthält.The following diagram shows a simple package that contains a control flow with a Data Flow task, which in turn contains a data flow.

Paket mit Ablaufsteuerung und DatenflussA package with a control flow and a data flow

Nachdem Sie das Basispaket erstellt haben, können Sie erweiterte Funktionen hinzufügen, wie z. B. Protokollierung und Variablen, um die Funktionalität des Pakets zu erweitern.After you have created the basic package, you can add advanced features such as logging and variables to extend package functionality. Weitere Informationen finden Sie im Abschnitt zu Objekten, die die Paketfunktionalität erweitern.For more information, see the section about Objects that Extend Package Functionality.

Das fertige Paket kann anschließend konfiguriert werden. Legen Sie dazu Eigenschaften auf Paketebene fest, die die Sicherheit implementieren, das erneute Starten von Paketen an Prüfpunkten ermöglichen oder Transaktionen in den Paket-Workflow integrieren.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. Weitere Informationen finden Sie im Abschnitt zu Eigenschaften, die erweiterte Funktionen unterstützen.For more information, see the section about Properties that Support Extended Features.

Inhalt eines PaketsContents of a package

Tasks und Container (Ablaufsteuerung).Tasks and containers (control flow). Eine Ablaufsteuerung besteht aus Tasks und Containern, die beim Ausführen des Pakets ausgeführt werden.A control flow consists of one or more tasks and containers that execute when the package runs. Um die Reihenfolge zu steuern oder die Bedingungen zum Ausführen des nächsten Tasks oder Containers in der Paketablaufsteuerung zu definieren, verbinden Sie mithilfe von Rangfolgeneinschränkungen die Tasks und Container in einem Paket.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. Eine Teilmenge der Tasks und Container kann auch gruppiert und wiederholt als eine Einheit innerhalb der Paketablaufsteuerung ausgeführt werden.A subset of tasks and containers can also be grouped and run repeatedly as a unit within the package control flow. Weitere Informationen finden Sie unter Control Flow.For more information, see Control Flow.

Datenquellen und Ziele (Datenfluss).Data sources and destinations (data flow). Ein Datenfluss besteht aus den Quellen und Zielen zum Extrahieren und Laden von Daten, den Transformationen zum Ändern und Erweitern von Daten sowie den Pfaden zum Verlinken von Quellen, Transformationen und Zielen.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. Bevor Sie einem Paket einen Datenfluss hinzufügen können, muss die Paketablaufsteuerung einen Datenflusstask einschließen.Before you can add a data flow to a package, the package control flow must include a Data Flow task. Der Datenflusstask ist die ausführbare Datei im SSISSSIS -Paket, das den Datenfluss erstellt, anordnet und ausführt.The Data Flow task is the executable within the SSISSSIS package that creates, orders, and runs the data flow. Eine separate Instanz des Datenflussmoduls wird für jeden Datenflusstask in einem Paket geöffnet.A separate instance of the data flow engine is opened for each Data Flow task in a package. Weitere Informationen finden Sie unter Data Flow Task und Data Flow.For more information, see Data Flow Task and Data Flow.

Verbindungs-Manager (Verbindungen).Connection managers (connections). Ein Paket schließt in der Regel mindestens einen Verbindungs-Manager ein.A package typically includes at least one connection manager. Ein Verbindungs-Manager ist ein Link zwischen einem Paket und einer Datenquelle, die die Verbindungszeichenfolge für den Zugriff auf die Daten definiert, die von den Tasks, Transformationen und Ereignishandlern im Paket verwendet wird.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 schließt Verbindungstypen für Datenquellen ein, wie z. B. Text- und XML-Dateien, relationale Datenbanken und Analysis ServicesAnalysis Services -Datenbanken und -Projekte. includes connection types for data sources such as text and XML files, relational databases, and Analysis ServicesAnalysis Services databases and projects. Weitere Informationen finden Sie unter Integration Services-Verbindungen (SSIS).For more information, see Integration Services (SSIS) Connections.

Objekte, die die Paketfunktionalität erweiternObjects that extend package functionality

Pakete können zusätzliche Objekte einschließen, die erweiterte Funktionen bereitstellen oder vorhandene Funktionalität erweitern, wie z. B. Ereignishandler, Konfigurationen, Protokollierung und Variablen.Packages can include additional objects that provide advanced features or extend existing functionality, such as event handlers, configurations, logging, and variables.

EreignishandlerEvent Handlers

Ein Ereignishandler ist ein Workflow, der als Reaktion auf die Ereignisse ausgeführt wird, die von einem Paket, einem Task oder Container ausgelöst werden.An event handler is a workflow that runs in response to the events raised by a package, task, or container. Beispielsweise können Sie mit einem Ereignishandler den Speicherplatz überprüfen, wenn ein Ereignis vor der Ausführung oder ein Fehler auftritt, und eine E-Mail-Nachricht senden, um dem Administrator den verfügbaren Speicherplatz oder Fehlerinformationen zu melden.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. Ein Ereignishandler ist wie ein Paket aufgebaut, mit einer Ablaufsteuerung und optionalen Datenflüssen.An event handler is constructed like a package, with a control flow and optional data flows. Ereignishandler können einzelnen Tasks oder Containern im Paket hinzugefügt werden.Event handlers can be added to individual tasks or containers in the package. Weitere Informationen finden Sie unter Integration Services-Ereignishandler (SSIS).For more information, see Integration Services (SSIS) Event Handlers.

KonfigurationenConfigurations

Eine Konfiguration enthält Paare aus einer Eigenschaft und einem Wert, die die Eigenschaften des Pakets und der zugehörigen Tasks, Containers, Variablen, Verbindungen und Ereignishandler beschreiben, wenn das Paket ausgeführt wird.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. Mithilfe von Konfigurationen können Eigenschaften aktualisiert werden, ohne das Paket zu ändern.Using configurations makes it possible to update properties without modifying the package. Wenn das Paket ausgeführt wird, werden die Konfigurationsinformationen geladen und die Eigenschaftswerte aktualisiert.When the package is run, the configuration information is loaded, updating the values of properties. Beispielsweise kann mit einer Konfiguration die Verbindungszeichenfolge der Verbindung aktualisiert werden.For example, a configuration can update the connection string of connection.

Die Konfiguration wird gespeichert und mit dem Paket bereitgestellt, wenn das Paket auf einem anderen Computer installiert wird.The configuration is saved and then deployed with the package when the package is installed on a different computer. Die Konfigurationswerte können aktualisiert werden, wenn das Paket installiert wird, damit das Paket in einer anderen Umgebung unterstützt wird.The values in the configuration can be updated when the package is installed to support the package in a different environment. Weitere Informationen finden Sie unter Erstellen von Paketkonfigurationen.For more information, see Create Package Configurations.

Protokollierung und ProtokollanbieterLogging and Log Providers

Bei einem Protokoll handelt es sich um eine Auflistung von Informationen zu dem Paket, die beim Ausführen des Pakets gesammelt werden.A log is a collection of information about the package that is collected when the package runs. Beispielsweise kann ein Protokoll die Start- und Beendigungszeit für die Ausführung eines Pakets bereitstellen.For example, a log can provide the start and finish time for a package run. Ein Protokollanbieter definiert den Zieltyp und das Format, der bzw. das vom Paket und dessen Containern und Tasks zum Protokollieren von Laufzeitinformationen verwendet werden kann.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. Die Protokolle sind einem Paket zugeordnet, aber die Tasks und Container im Paket können Informationen in einem beliebigen Paketprotokoll protokollieren.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 enthält eine Reihe von integrierten Protokollanbietern für die Protokollierung. includes a variety of built-in log providers for logging. Beispielsweise enthält Integration ServicesIntegration Services Protokollanbieter für SQL ServerSQL Server und Textdateien.For example, Integration ServicesIntegration Services includes log providers for SQL ServerSQL Server and text files. Darüber hinaus können Sie benutzerdefinierte Protokollanbieter erstellen und zur Protokollierung verwenden.You can also create custom log providers and use them for logging. Weitere Informationen finden Sie unter Integration Services-Protokollierung (SSIS).For more information, see Integration Services (SSIS) Logging.

VariablenVariables

Integration ServicesIntegration Services unterstützt Systemvariablen und benutzerdefinierte Variablen. supports system variables and user-defined variables. Die Systemvariablen stellen nützliche Informationen zu Paketobjekten zur Laufzeit bereit, und mit benutzerdefinierten Variablen werden benutzerdefinierte Szenarios in Paketen unterstützt.The system variables provide useful information about package objects at run time, and user-defined variables support custom scenarios in packages. Beiden Arten von Variablen können in Ausdrücken, Skripts und Konfigurationen verwendet werden.Both types of variables can be used in expressions, scripts, and configurations.

Die Variablen auf Paketebene schließen die vordefinierten Systemvariablen ein, die für ein Paket verfügbar sind, und die benutzerdefinierten Variablen für den Paketbereich.The package-level variables include the pre-defined system variables available to a package and the user-defined variables with package scope. Weitere Informationen finden Sie unter Integration Services-Variablen (SSIS).For more information, see Integration Services (SSIS) Variables.

ParameterParameters

Integration ServicesIntegration Services -Parametern können Sie Eigenschaften in Paketen zur Zeit der Paketausführung Werte zuweisen. parameters allow you to assign values to properties within packages at the time of package execution. Sie können Projektparameter auf Projektebene und Paketparameter auf Paketebene erstellen.You can create project parameters at the project level and package parameters at the package level. Projektparameter werden verwendet, um jegliche externen Eingaben bereitzustellen, die das Projekt für ein oder mehrere Pakete im Projekt empfängt.Project parameters are used to supply any external input the project receives to one or more packages in the project. Mit Paketparametern können Sie die Paketausführung ändern, ohne das Paket bearbeiten und erneut bereitstellen zu müssen.Package parameters allow you to modify package execution without having to edit and redeploy the package. Weitere Informationen finden Sie unter Integration Services-Parameter (SSIS).For more information, see Integration Services (SSIS) Parameters.

Paketeigenschaften, die erweiterte Funktionen unterstützenPackage properties that support extended features

Das Paketobjekt kann so konfiguriert werden, dass Funktionen, wie z. B. das erneute Starten des Pakets an Prüfpunkten, das Signieren des Pakets mit einem digitalen Zertifikat, das Festlegen der Paketschutzebene und das Sicherstellen der Datenintegrität, mithilfe von Transaktionen unterstützt werden.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.

Erneutes Starten von PaketenRestarting Packages

Das Paket schließt Prüfpunkteigenschaften ein, mit denen Sie das Paket neu starten können, wenn bei Tasks ein Fehler auftritt.The package includes checkpoint properties that you can use to restart the package when one or more of its tasks fail. Wenn z. B. ein Paket zwei Datenflusstasks aufweist, die zwei verschiedene Tabellen aktualisieren, und beim zweiten Task ein Fehler auftritt, kann das Paket erneut ausgeführt werden, ohne den ersten Datenflusstask zu wiederholen.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. Das erneute Starten eines Pakets kann bei zeitaufwändigen Paketen Zeit sparen.Restarting a package can save time for long-running packages. Neustart bedeutet, dass nicht das gesamte Paket erneut ausgeführt werden muss, sondern nur ab dem fehlerhaften Task.Restarting means you can start the package from the failed task instead of having to rerun the whole package. Weitere Informationen finden Sie unter Restart Packages by Using Checkpoints.For more information, see Restart Packages by Using Checkpoints.

Sichern von PaketenSecuring Packages

Ein Paket kann mit einer digitalen Signatur signiert und mit einem Kennwort oder Benutzerschlüssel verschlüsselt werden.A package can be signed with a digital signature and encrypted by using a password or a user key. Mit einer digitalen Signatur wird die Quelle des Pakets authentifiziert.A digital signature authenticates the source of the package. Sie müssen jedoch auch Integration ServicesIntegration Services konfigurieren, um die digitale Signatur zu überprüfen, wenn das Paket lädt.However, you must also configure Integration ServicesIntegration Services to check the digital signature when the package loads. Weitere Informationen finden Sie unter Identifizieren der Quelle von Paketen mit digitalen Signaturen und Zugriffssteuerung für vertrauliche Daten in Paketen.For more information, see Identify the Source of Packages with Digital Signatures and Access Control for Sensitive Data in Packages.

Unterstützen von TransaktionenSupporting Transactions

Durch das Festlegen eines Transaktionsattributs für ein Paket können Tasks, Container und Joins im Paket an der Transaktion teilnehmen.Setting a transaction attribute on the package enables tasks, containers, and connections in the package to join the transaction. Transaktionsattribute stellen sicher, dass das Paket und die zugehörigen Elemente als eine Einheit erfolgreich ausgeführt werden bzw. einen Fehler erzeugen.Transaction attributes ensure that the package and its elements succeed or fail as a unit. Pakete können auch andere Pakete ausführen und andere Pakete für Transaktionen registrieren, damit Sie mehrere Pakete als eine einzelne Arbeitseinheit ausführen können.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. Weitere Informationen finden Sie unter Integration Services-Transaktionen.For more information, see Integration Services Transactions.

Verfügbare benutzerdefinierte Protokolleinträge für PaketeCustom log entries available on the package

In der folgenden Tabelle werden die benutzerdefinierten Protokolleinträge für Pakete aufgelistet.The following table lists the custom log entries for packages. Weitere Informationen finden Sie unter Integration Services-Protokollierung (SSIS).For more information, see Integration Services (SSIS) Logging.

ProtokolleintragLog entry DescriptionDescription
PackageStartPackageStart Zeigt den Beginn der Paketausführung an.Indicates that the package began to run.

Hinweis: Dieser Protokolleintrag wird automatisch in das Protokoll geschrieben.Note: This log entry is automatically written to the log. Dieser Eintrag kann nicht ausgeschlossen werden.You cannot exclude it.
PackageEndPackageEnd Zeigt den Abschluss der Paketausführung an.Indicates that the package completed.

Hinweis: Dieser Protokolleintrag wird automatisch in das Protokoll geschrieben.Note: This log entry is automatically written to the log. Dieser Eintrag kann nicht ausgeschlossen werden.You cannot exclude it.
DiagnosticDiagnostic Enthält Informationen zur Systemkonfiguration, die sich auf die Paketausführung auswirken, wie z. B. die Anzahl ausführbarer Dateien, die gleichzeitig ausgeführt werden können.Provides information about the system configuration that affects package execution such as the number executables that can be run concurrently.

Festlegen der Eigenschaften eines PaketsSet the properties of a package

Eigenschaften können Sie im Fenster Eigenschaften von SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT) oder programmgesteuert festlegen.You can set properties in the Properties window of SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT) or programmatically.

Informationen zum Festlegen dieser Eigenschaften mit SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT)finden Sie unter Festlegen von Paketeigenschaften.For information about how to set these properties using SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT), see Set Package Properties.

Weitere Informationen zum programmgesteuerten Festlegen dieser Eigenschaften finden Sie unter Package.For information about programmatically setting these properties, see Package.

Wiederverwenden eines vorhandenen Pakets als VorlageReuse an existing package as a template

Pakete werden häufig als Vorlagen zum Erstellen von Paketen verwendet, die gemeinsam eine Basisfunktionalität verwenden.Packages are frequently used as templates from which to build packages that share basic functionality. Sie können das Basispaket erstellen und dann kopieren. Sie haben auch die Möglichkeit, das Paket als Vorlage festzulegen.You build the basic package and then copy it, or you can designate the package is a template. Ein Paket, mit dem beispielsweise Dateien heruntergeladen und kopiert und dann die Daten extrahiert werden, kann die Tasks FTP und Dateisystem in einer Foreach-Schleife beinhalten, mit der Dateien in einem Ordner aufgezählt werden.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. Ebenso kann das Paket Verbindungs-Manager für Flatfiles für den Zugriff auf die Daten sowie Flatfilequellen zum Extrahieren der Daten beinhalten.It may also include Flat File connection managers to access the data, and Flat File sources to exact the data. Das Ziel der Daten variiert. Nach dem Kopieren aus dem Basispaket wird das Ziel jedem neuen Paket hinzugefügt.The destination of the data varies, and the destination is added to each new package after it is copied from the basic package. Sie können auch Pakete erstellen und diese als Vorlagen für die neuen Pakete verwenden, die Sie einem Integration ServicesIntegration Services -Projekt hinzufügen.You can also create packages and then use them as templates for the new packages that you add to an Integration ServicesIntegration Services project. Weitere Informationen finden Sie unter Create Packages in SQL Server Data Tools.For more information, see Create Packages in SQL Server Data Tools.

Wenn ein Paket zum ersten Mal erstellt wird, entweder programmgesteuert oder mithilfe des SSIS-Designers, wird ein GUID (Globally Unique Indentifier) der ID -Eigenschaft und ein Name der Name -Eigenschaft hinzugefügt.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. Beim Erstellen eines neuen Pakets durch Kopieren eines vorhandenen Pakets oder mithilfe eines Vorlagenpakets werden Name und GUID ebenfalls kopiert.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. Dies kann problematisch werden, wenn Sie die Protokollierung verwenden, da der GUID und Name des Pakets in die Protokolle geschrieben werden, um das Paket zu identifizieren, zu dem die protokollierten Informationen gehören.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. Sie sollten daher den Namen und GUID der neuen Pakete aktualisieren, um diese von jenen Paketen zu unterscheiden, von denen sie kopiert wurden, und um in den Protokolldaten eine Unterscheidung untereinander zu ermöglichen.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.

Zum Ändern der Paket-GUID müssen Sie in im Eigenschaftenfenster in der ID SQL Server Data Tools (SSDT)SQL Server Data Tools (SSDT)-Eigenschaft eine GUID neu generieren.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). Zum Ändern des Paketnamens können Sie im Eigenschaftenfenster den Wert der Name -Eigenschaft aktualisieren.To change the package name, you can update the value of the Name property in the Properties window. Sie können auch die dtutil -Eingabeaufforderung verwenden oder die GUID und Namen programmgesteuert aktualisieren.You can also use the dtutil command prompt, or update the GUID and name programmatically. Weitere Informationen finden Sie unter Festlegen von Paketeigenschaften und dtutil (Hilfsprogramm).For more information, see Set Package Properties and dtutil Utility.

Integration ServicesIntegration Services schließt neben dem SSISSSIS -Objektmodell zum Erstellen von Paketen zwei grafische Tools ein, den SQL ServerSQL Server -Designer und den SSISSSIS -Import/Export-Assistenten. includes two graphical tools, SSISSSIS Designer and SQL ServerSQL Server Import and Export Wizard, in addition to the SSISSSIS object model for creating packages. Weitere Informationen finden Sie in den folgenden Themen:See the following topics for details.