Configurations du package
SQL Server Integration Services fournit des configurations de package avec lesquelles vous pouvez mettre à jour les valeurs des propriétés au moment de l’exécution.
Notes
Des configurations sont disponibles pour le modèle de déploiement de package. Les paramètres sont utilisés à la place des configurations pour le modèle de déploiement de projet. Le modèle de déploiement de projet vous permet de déployer vos projets sur le serveur Integration Services. Pour plus d'informations sur les modèles de déploiement, consultez Deployment of Projects and Packages.
Une configuration est une paire propriété/valeur que vous ajoutez à un package terminé. En règle générale, vous devez créer un package, définir des propriétés sur les objets du package lors du développement de ce dernier, puis ajouter la configuration au package. Lors de son exécution, le package extrait les nouvelles valeurs de la propriété à partir de la configuration. Par exemple, lorsque vous utilisez une configuration, vous pouvez modifier la chaîne de connexion d'un gestionnaire de connexions ou mettre à jour la valeur d'une variable.
Les configurations de package offrent les avantages suivants :
Les configurations facilitent le déplacement des packages d'un environnement de développement vers un environnement de production. Par exemple, une configuration peut mettre à jour le chemin d'accès d'un fichier source ou bien modifier le nom d'une base de données ou d'un serveur.
Les configurations sont utiles lorsque vous déployez des packages sur de nombreux serveurs différents. Par exemple, une variable dans la configuration de chaque package déployé peut contenir une valeur d'espace disque différente, et si l'espace disque disponible ne correspond pas à cette valeur, le package ne s'exécute pas.
Les configurations rendent ces packages plus souples. Par exemple, une configuration peut mettre à jour la valeur d'une variable utilisée dans une expression de propriété.
Integration Services prend en charge différentes méthodes de stockage des configurations de package, telles que les fichiers XML, les tables d’une base de données SQL Server et les variables d’environnement et de package.
Chaque configuration est une paire propriété/valeur. Le fichier de configuration XML et les types de configuration SQL Server peuvent inclure plusieurs configurations.
Les configurations sont incluses lorsque vous créez un utilitaire de déploiement de package pour l'installation des packages. Lorsque vous installez les packages, les configurations peuvent être mises à jour lors d'une étape de l'installation du package.
Fonctionnement de l'application des configurations de package au moment de l'exécution
Quand vous utilisez l’utilitaire d’invite de commandes dtexec (dtexec.exe) pour exécuter un package déployé, l’utilitaire applique les configurations de package à deux reprises. L'utilitaire applique les configurations avant et après avoir appliqué les options que vous avez spécifiées sur la ligne de commande.
Lorsque l'utilitaire charge et exécute le package, des événements se produisent dans l'ordre suivant :
L’utilitaire dtexec charge le package.
L'utilitaire applique les configurations spécifiées dans le package au moment de la conception et dans l'ordre spécifié dans le package. (L’une des exceptions concerne les configurations des variables de package parent. L’utilitaire applique ces configurations une seule fois et plus tard dans le processus.)
L'utilitaire applique ensuite les options que vous avez spécifiées sur la ligne de commande.
L'utilitaire recharge ensuite les configurations spécifiées dans le package au moment du design et dans l'ordre spécifié dans le package. (Une fois encore, la seule exception à cette règle concerne les configurations des variables de package parent). L'utilitaire se base sur les options de ligne de commande spécifiées pour recharger les configurations. Par conséquent, des valeurs différentes peuvent être rechargées à partir d'un emplacement distinct.
L'utilitaire applique les configurations des variables de package parent.
L'utilitaire exécute le package.
La façon dont l’utilitaire dtexec applique les configurations affecte les options de ligne de commande suivantes :
Vous pouvez utiliser l’option /Connection ou /Set à l’exécution pour charger les configurations de package à partir d’un emplacement autre que celui que vous avez spécifié au moment de la conception.
Vous pouvez utiliser l’option /ConfigFile pour charger des configurations supplémentaires que vous n’aviez pas spécifiées au moment de la conception.
Toutefois, ces options de ligne de commande sont soumises à quelques restrictions :
Vous ne pouvez pas utiliser l’option /Set ou /Connection pour remplacer des valeurs uniques qui sont également définies par une configuration.
Vous ne pouvez pas utiliser l’option /ConfigFile pour charger des configurations qui remplacent celles que vous aviez spécifiées au moment de la conception.
Pour plus d’informations sur ces options et sur la façon dont le comportement de ces options diffère entre SQL Server 2014 Integration Services (SSIS) et les versions antérieures, consultez Changements de comportement des fonctionnalités Integration Services dans SQL Server 2014.
Types de configuration de package
Le tableau suivant décrit les types de configuration de package.
Type | Description |
---|---|
Fichier de configuration XML | Un fichier XML contient les configurations. Le fichier XML peut inclure plusieurs configurations. |
Variable d’environnement | Une variable d'environnement contient la configuration. |
Entrée de Registre | Une entrée de Registre contient la configuration. |
Variable de package parent | Une variable dans le package contient la configuration. Ce type de configuration est généralement utilisé pour mettre à jour les propriétés dans les packages enfants. |
Table SQL Server | Une table d’une base de données SQL Server contient la configuration. La table peut inclure plusieurs configurations. |
Fichiers de configuration XML
Si vous sélectionnez le type de configuration Fichier de configuration XML , vous pouvez créer un nouveau fichier de configuration, réutiliser un fichier existant et ajouter de nouvelles configurations, ou réutiliser un fichier existant en remplaçant son contenu.
Un fichier de configuration XML est composé de deux sections :
Un en-tête qui contient des informations sur le fichier de configuration. Cet élément comprend des attributs tels que la date de création du fichier et le nom de la personne qui a généré le fichier.
Les éléments de configuration qui contiennent des informations sur chaque configuration. Cet élément comprend des attributs tels que le chemin d'accès de la propriété et la valeur configurée de la propriété.
Le code XML suivant présente la syntaxe d'un fichier de configuration XML. Cet exemple montre une configuration de la propriété Valeur d’une variable de type entier nommée MyVar
.
<?xml version="1.0"?>
<DTSConfiguration>
<DTSConfigurationHeading>
<DTSConfigurationFileInfo
GeneratedBy="DomainName\UserName"
GeneratedFromPackageName="Package"
GeneratedFromPackageID="{2AF06766-817A-4E28-9878-0DE37A150648}"
GeneratedDate="2/01/2005 5:58:09 PM"/>
</DTSConfigurationHeading>
<Configuration ConfiguredType="Property" Path="\Package.Variables[User::MyVar].Value" ValueType="Int32">
<ConfiguredValue>0</ConfiguredValue>
</Configuration>
</DTSConfiguration>
Entrée de Registre
Si vous souhaitez utiliser une entrée de Registre pour stocker la configuration, vous pouvez utiliser une clé existante ou créer une nouvelle clé dans HKEY_CURRENT_USER. La clé de Registre que vous utilisez doit contenir une valeur nommée Value
. Cette valeur peut être de type DWORD ou une chaîne.
Si vous sélectionnez le type de configuration Entrée de Registre , tapez le nom de la clé de Registre dans la zone d'entrée de Registre. Le format est <clé de Registre>. Si vous souhaitez utiliser une clé de Registre qui n’est pas à la racine de HKEY_CURRENT_USER, utilisez le format <Clé de Registre\clé de registre\...> pour identifier la clé. Par exemple, pour utiliser la clé MyPackage située dans SSISPackages, tapez SSISPackages\MyPackage
.
SQL Server
Si vous sélectionnez le type de configuration SQL Server, vous spécifiez la connexion à la base de données SQL Server dans laquelle vous voulez stocker les configurations. Vous pouvez enregistrer les configurations dans une table existante ou créer une nouvelle table dans la base de données spécifiée.
L'instruction SQL suivante montre l'instruction CREATE TABLE par défaut fournie par l'Assistant Configuration de package.
CREATE TABLE [dbo].[SSIS Configurations]
(
ConfigurationFilter NVARCHAR(255) NOT NULL,
ConfiguredValue NVARCHAR(255) NULL,
PackagePath NVARCHAR(255) NOT NULL,
ConfiguredValueType NVARCHAR(20) NOT NULL
)
Le nom que vous donnez à la configuration est la valeur stockée dans la colonne ConfigurationFilter .
Configurations directes et indirectes
Integration Services fournit des configurations directes et indirectes. Si vous spécifiez directement les configurations, Integration Services crée un lien direct entre l’élément de configuration et la propriété de l’objet package. Les configurations directes sont un meilleur choix lorsque l'emplacement de la source ne change pas. Par exemple, si vous êtes sûr que tous les déploiements dans le package utilisent le même chemin d'accès de fichier, vous pouvez spécifier un fichier de configuration XML.
Les configurations indirectes utilisent des variables d'environnement. Au lieu de spécifier directement le paramètre de configuration, la configuration pointe vers une variable d'environnement, qui contient à son tour la valeur de configuration. L'utilisation de configurations indirectes est un meilleur choix lorsque l'emplacement de la configuration peut changer pour chaque déploiement d'un package.
Tâches associées
Créer des configurations de package
Contenu associé
Article technique, Understanding Integration Services Package Configurations, sur msdn.microsoft.com
Entrée de blog, Création de packages dans le code - Configurations de package, sur www.sqlis.com.
Entrée de blog, Exemple d’API - Ajouter par programmation un fichier de configuration à un package, sur blogs.msdn.com.