Packages Integration Services (SSIS)
Un package est une collection organisée de connexions, d’éléments de flux de contrôle, d’éléments de flux de données, de gestionnaires d’événements, de variables, de paramètres et de configurations que vous assemblez à l’aide des outils de conception graphiques de SQL Server Integration Services ou que vous créez programmatiquement. Vous enregistrez le package terminé dans SQL Server, le magasin de packages SSIS , ou le système de fichiers, ou vous pouvez déployer le projet ssISnoversion sur le serveur SSIS . Le package est l'unité de travail qui est extraite, exécutée et enregistrée.
Lorsque vous créez un package, il s'agit d'un objet vide qui ne fait rien. Pour doter un package de fonctionnalités, vous ajoutez à celui-ci un flux de contrôle et, éventuellement un ou plusieurs flux de données.
Le schéma suivant illustre un package simple contenant un flux de contrôle avec une tâche de flux de données, qui contient à son tour un flux de données.
Après avoir créé le package de base, vous pouvez l'enrichir en y ajoutant des fonctionnalités avancées telles que la journalisation et des variables. Pour plus d'informations, consultez la section relative aux objets qui étendent les fonctionnalités des packages.
Vous pouvez ensuite configurer le package achevé en définissant les propriétés de niveau package qui mettent en œuvre la sécurité, autorisent le redémarrage des packages à partir de points de contrôle ou incorporent des transactions dans le flux de travail des packages. Pour plus d'informations, consultez la section relative aux propriétés qui prennent en charge les fonctionnalités étendues.
Contenu des packages
Un flux de contrôle comprend un ou plusieurs conteneurs ou tâches qui s'exécutent quand le package s'exécute. Pour contrôler l'ordre ou définir les conditions d'exécution des tâches et des conteneurs les uns à la suite des autres dans le flux de contrôle du package, vous utilisez des contraintes de priorité afin de connecter les tâches et les conteneurs dans le package. Un sous-ensemble de tâches et de conteneurs peut également être regroupé et exécuté de façon répétée en tant qu'unité dans le flux de contrôle du package. Pour plus d’informations, consultez Control Flow.
Un flux de données comprend les sources et les destinations qui extraient et chargent les données, les transformations qui modifient et étendent les données, ainsi que les chemins qui relient les sources, les transformations et les destinations. Vous ne pouvez ajouter un flux de données à un package que si le flux de contrôle du package comprend une tâche de flux de données. La tâche de flux de données est l'exécutable qui, dans le package SSIS , crée, ordonne et exécute le flux de données. Une instance distincte du moteur de flux de données est ouverte pour chaque tâche de flux de données comprise dans un package. Pour plus d'informations, consultez Data Flow Task et Data Flow.
En règle générale, un package comprend au moins un gestionnaire de connexions. Un gestionnaire de connexions est un lien entre un package et une source de données, qui définit la chaîne de connexion permettant d'accéder aux données utilisées par les tâches, les transformations et les gestionnaires d'événements du package. Integration Services dispose de types de connexion pour des sources de données telles que les fichiers texte et XML, les bases de données relationnelles, et les bases de données et les projets Analysis Services . Pour plus d’informations, consultez Connexions Integration Services (SSIS).
Modèles de packages
Les packages sont fréquemment utilisés comme modèles permettant de générer des packages qui partagent des fonctionnalités de base. Vous construisez le package de base, puis le copiez, ou vous pouvez préciser que le package est un modèle. Par exemple, un package qui télécharge et copie des fichiers, puis extrait les données peut inclure les tâches FTP et de système de fichiers dans une boucle Foreach qui énumère les fichiers dans un dossier. Il peut également inclure des gestionnaires de connexions de fichiers plats pour accéder aux données, ainsi que des sources de fichiers plats pour extraire les données. La destination des données varie, et elle est ajoutée à chaque nouveau package après sa copie à partir du package de base. Vous pouvez également créer des packages, puis les utiliser comme modèles pour les nouveaux packages que vous ajoutez à un projet Integration Services . Pour plus d'informations, consultez Create Packages in SQL Server Data Tools.
Lors de la création initiale d'un package, par programme ou à l'aide du concepteur SSIS, un GUID est ajouté à sa propriété ID
et un nom à sa propriété Name
. Si vous créez un nouveau package en copiant un package existant ou en utilisant un modèle de package, le nom et le GUID sont également copiés. Cela peut causer un problème si vous utilisez la journalisation, car le GUID et le nom du package sont écrits dans les journaux pour identifier le package auquel les informations consignées appartiennent. Par conséquent, vous devez mettre à jour le nom et le GUID des nouveaux packages pour les différencier plus facilement du package à partir duquel ils ont été copiés et entre eux dans les données du journal.
Pour modifier le GUID de package, vous régénérez un GUID dans la ID
propriété du Fenêtre Propriétés dans SQL Server Data Tools (SSDT). Pour modifier le nom du package, vous pouvez mettre à jour la valeur de la propriété Name
dans la fenêtre Propriétés. Vous pouvez également utiliser l’invite de commandes dtutil ou mettre à jour le GUID et le nom par programmation. Pour plus d’informations, consultez Définir les propriétés d’un package et Utilitaire dtutil.
Objets étendant les fonctionnalités des packages
Les packages peuvent comprendre des objets supplémentaires qui offrent des fonctionnalités avancées ou étendent les fonctionnalités existantes, telles que les gestionnaires d'événements, les configurations, la journalisation et les variables.
Gestionnaires d'événements
Un gestionnaire d'événements est un flux de travail qui s'exécute en réponse aux événements déclenchés par un package, une tâche ou un conteneur. Par exemple, vous pouvez utiliser un gestionnaire d'événements pour vérifier l'espace disque lorsqu'un événement se produit avant l'exécution ou si une erreur se produit, et envoyer à un administrateur un message électronique indiquant l'espace disponible ou des informations sur l'erreur. Un gestionnaire d'événements est construit comme un package, avec un flux de contrôle et des flux de données facultatifs. Vous pouvez ajouter des gestionnaires d'événements à des tâches ou à des conteneurs spécifiques dans le package. Pour plus d’informations, consultez Gestionnaires d’événements Integration Services (SSIS).
Configurations
Une configuration est un ensemble de paires propriété/valeur qui définit les propriétés du package et ses tâches, conteneurs, variables, connexions et gestionnaires d'événements lorsque le package s'exécute. Les configurations permettent de mettre à jour les propriétés sans modifier le package. Lorsque le package est exécuté, les informations de configuration sont chargées et mettent à jour les valeurs des propriétés. Par exemple, une configuration peut mettre à jour la chaîne de connexion.
La configuration est enregistrée puis déployée avec le package lorsque celui-ci est installé sur un autre ordinateur. Lorsque vous installez le package, vous pouvez mettre à jour les valeurs de la configuration afin qu'il puisse être pris en charge dans un autre environnement. Pour plus d’informations, consultez Créer des configurations de package.
Journalisation et modules fournisseurs d'informations
Un journal est une collection d'informations relatives au package, qui sont rassemblées lorsque celui-ci s'exécute. Par exemple, un journal peut indiquer l'heure de début et de fin de l'exécution d'un package. Un module fournisseur d'informations définit le type de destination et le format que le package et ses conteneurs et ses tâches peuvent utiliser pour consigner les informations d'exécution. Les journaux sont associés à un package, mais les tâches et les conteneurs figurant dans le package peuvent consigner des informations dans n'importe quel journal de package. Integration Services comprend une série de modules fournisseurs d’informations intégrés qui facilitent la journalisation. Par exemple, Integration Services comprend des modules fournisseurs d'informations pour les fichiers SQL Server et les fichiers texte. Vous pouvez également créer des modules fournisseurs d'informations personnalisés et les utiliser pour la journalisation. Pour plus d’informations, consultez Journalisation d’Integration Services (SSIS).
Variables
Integration Services prend en charge les variables système et les variables définies par l’utilisateur. Les variables système fournissent des informations utiles sur les objets de package lors de l'exécution, tandis que les variables définies par l'utilisateur prennent en charge des scénarios personnalisés dans les packages. Vous pouvez utiliser les deux types de variables dans les expressions, les scripts et les configurations.
Les variables de niveau package comprennent les variables système prédéfinies disponibles pour un package et les variables définies par l'utilisateur et dont la portée s'étend au package. Pour plus d’informations, consultez Variables Integration Services (SSIS).
Paramètres
Integration Services vous permettent d'affecter des valeurs aux propriétés dans des packages au moment de l'exécution du package. Vous pouvez créer des paramètres de projet au niveau du projet et des paramètres de package au niveau du package. Les paramètres du projet sont utilisés pour fournir une entrée externe que le projet reçoit à un ou plusieurs packages du projet. L'utilisation de paramètres de package vous permet de modifier l'exécution du package sans avoir à modifier et à redéployer le package. Pour plus d’informations, consultez Paramètres Integration Services (SSIS).
Propriétés de package prenant en charge les fonctionnalités étendues
L'objet de package peut être configuré de manière à prendre en charge des fonctionnalités telles que le redémarrage du package aux points de contrôle, la signature du package avec un certificat numérique, la définition du niveau de protection du package et la sécurisation de l'intégrité des données à l'aide de transactions.
Redémarrage des packages
Le package comprend des propriétés de point de contrôle qui vous permettent de le redémarrer en cas d'échec d'une ou plusieurs de ses tâches. Par exemple, si un package possède deux tâches de flux de données qui mettent à jour deux tables différentes et que la deuxième tâche échoue, le package peut être réexécuté sans qu'il soit nécessaire de répéter la première tâche de flux de données. Le redémarrage d'un package peut être source de gain de temps pour les packages dont l'exécution est longue. La fonctionnalité de redémarrage vous permet de démarrer le package à partir de la tâche défaillante sans devoir réexécuter l'ensemble du package. Pour plus d'informations, consultez Redémarrer des packages à l'aide de points de contrôle.
Sécurisation des packages
Vous pouvez signer un package au moyen d'une signature numérique et le chiffrer à l'aide d'un mot de passe ou d'une clé utilisateur. Une signature numérique authentifie la source du package. Toutefois, vous devez également configurer Integration Services pour vérifier la signature numérique lors du chargement du package. Pour plus d’informations, consultez Identifier la source de packages à l’aide de signatures numériques et Contrôle d’accès pour les données sensibles présentes dans les packages.
Prise en charge des transactions
La définition d'un attribut de transaction au package permet d'associer les tâches, les conteneurs et les connexions du package à la transaction. Grâce aux attributs de transaction, le package et ses éléments réussissent ou échouent en tant qu'unité. Les packages peuvent également exécuter d'autres packages et inscrire d'autres packages dans les transactions, ce qui vous permet d'exécuter plusieurs packages en tant qu'unité de travail unique. Pour plus d’informations, consultez Transactions Integration Services.
Entrées de journal personnalisées disponibles dans le package
Le tableau suivant répertorie les entrées de journal personnalisées pour les packages. Pour plus d’informations, consultez Journalisation Integration Services (SSIS) et Messages personnalisés pour la journalisation.
Entrée du journal | Description |
---|---|
PackageStart |
Indique que le package a commencé à s'exécuter. Remarque : cette entrée de journal est automatiquement écrite dans le journal. Vous ne pouvez pas l'exclure. |
PackageEnd |
Indique que le package est terminé. Remarque : cette entrée de journal est automatiquement écrite dans le journal. Vous ne pouvez pas l'exclure. |
Diagnostic |
Fournit des informations sur la configuration système qui affecte l'exécution du package, notamment le nombre d'exécutables pouvant s'exécuter simultanément. |
Configuration des packages
Vous pouvez définir les propriétés dans la fenêtre Propriétés de SQL Server Data Tools (SSDT) ou par programmation.
Pour plus d’informations sur la façon de définir ces propriétés à l’aide de SQL Server Data Tools (SSDT), consultez Définir les propriétés d’un package.
Pour plus d’informations sur la définition par programmation de ces propriétés, consultez Package.
Tâches associées
Integration Services , SSIS met à votre disposition deux outils graphiques : le concepteur SQL Server et l'Assistant Importation et Exportation SSIS . Consultez les rubriques suivantes pour plus de détails.
Consultez la section Génération de packages par programmation du Guide du développeur.