Tâche d'exécution de package
La tâche d'exécution de package étend les fonctionnalités d'entreprise de Integration Services en permettant à des packages d'exécuter d'autres packages au sein d'un flux de travail.
Vous pouvez utiliser la tâche d'exécution de package aux fins suivantes :
Division d'un flux de travail de package complexe. Cette tâche vous permet de diviser le flux de travail en plusieurs packages, qui sont plus faciles à lire, à tester et à maintenir. Par exemple, si vous chargez des données dans un schéma en étoile, vous pouvez créer un package distinct pour remplir chaque dimension et la table de faits.
Réutilisation de parties de packages. D'autres packages peuvent réutiliser des parties d'un flux de travail de package. Par exemple, vous pouvez créer un module d'extraction des données qui peut être appelé depuis différents packages. Chaque package qui appelle le module d'extraction peut exécuter différentes opérations de purge, de filtrage ou d'agrégation sur les données.
Regroupement des unités de travail. Les unités de travail peuvent être encapsulées dans des packages distincts et incluses sous forme de composants transactionnels au flux de travail d'un package parent. Par exemple, le package parent exécute les packages secondaires et, en fonction de la réussite ou de l'échec des packages secondaires, il valide ou annule la transaction.
Contrôle de la sécurité des packages. Les auteurs de package ont besoin d'accéder à une seule partie d'une solution multipackage. En séparant un package en plusieurs packages, vous pouvez fournir un niveau de sécurité plus élevé ; en effet, vous pouvez permettre à un auteur d'accéder aux seuls packages appropriés.
Un package qui exécute d'autres packages est généralement appelé « package parent », tandis que les packages exécutés par un flux de travail parent sont appelés « packages enfants ».
La tâche d'exécution de package peut exécuter des packages stockés dans la base de données SQL Servermsdb et des packages stockés dans le système de fichiers. La tâche utilise un gestionnaire de connexions OLE DB pour se connecter à SQL Server et un gestionnaire de connexions de fichiers pour accéder au système de fichiers. Pour plus d'informations, consultez Gestionnaire de connexions OLE DB et Gestionnaire de connexions de fichiers plats.
La tâche d'exécution de package peut également exécuter un plan de maintenance de base de données, ce qui vous permet de gérer les packages SSIS et les plans de maintenance de base de données dans la même solution Integration Services. Un plan de maintenance de base de données est similaire à un package SSIS, mais il ne peut inclure que des tâches de maintenance de base de données et est toujours stocké dans msdb. Pour plus d'informations, consultez Maintenance des bases de données (Moteur de base de données) et Tâches de maintenance.
Si vous choisissez un package stocké dans le système de fichiers, vous devez fournir le nom et l'emplacement du package. Le package peut se trouver à n'importe quel endroit dans le système de fichiers ; il n'est pas nécessaire qu'il figure dans le même dossier que le package parent.
Le package enfant peut être exécuté dans le processus du package parent ou dans son propre processus. L'exécution du package enfant dans son propre processus nécessite davantage de mémoire, mais elle offre plus de souplesse. Par exemple, si le processus enfant échoue, l'exécution du processus parent peut se poursuivre.
Dans d'autres situations, vous pouvez préférer que les packages parent et enfants échouent ensemble comme une même unité, ou bien éviter la charge de traitement supplémentaire d'un autre processus. Par exemple, si un processus enfant échoue et que les traitements ultérieurs du processus parent du package dépendent de la réussite du processus enfant, alors le package enfant doit s'exécuter dans le processus du package parent.
Par défaut, la propriété ExecuteOutOfProcess de la tâche d'exécution du package a la valeur False, et le package enfant s'exécute dans le même processus que le package parent. Si vous affectez à cette propriété la valeur True, vous pouvez déboguer uniquement les packages contenant des fonctionnalités limitées. Pour déboguer tous les packages pris en charge par votre édition de SQL Server, vous devez installer Integration Services.
Extension des transactions
La transaction que le package parent utilise peut être étendue au package enfant ; par conséquent, le travail réalisé par les deux packages peut être validé ou annulé. Par exemple, les insertions dans une base de données effectuées par le package parent peuvent être validées ou annulées, en fonction de celles réalisées par le package enfant, et vice versa. Pour plus d'informations, consultez Transactions héritées.
Propagation des détails de la journalisation
Le package enfant exécuté par la tâche d'exécution de package peut ou non être configuré de manière à utiliser la journalisation, mais il transfère toujours les détails du journal au package parent. Si la tâche d'exécution de package est configurée de manière à utiliser la journalisation, elle consigne les informations détaillées du journal à partir du package enfant. Pour plus d'informations, consultez Implémentation de la journalisation dans les packages.
Passage de valeurs à des packages enfants
Un package enfant utilise fréquemment des valeurs transmises par un autre package qui l'appelle, généralement son package parent. L'utilisation de valeurs issues d'un package parent est utile dans les scénarios suivants :
Les parties d'un flux de travail plus volumineux sont affectées à différents packages. Par exemple, un package télécharge des données chaque nuit, les résume, affecte des valeurs de données de synthèse à des variables, puis les passe à un autre package qui les traite à son tour.
Le package parent coordonne dynamiquement les tâches d'un package enfant. Par exemple, le package parent détermine le nombre de jours d'un mois en cours et affecte ce nombre à une variable, puis le package enfant effectue une tâche autant de fois que la valeur du nombre.
Un package enfant nécessite l'accès à des données dérivées dynamiquement par le package parent. Par exemple, le package parent extrait des données d'une table et charge l'ensemble de lignes dans une variable, puis le package enfant effectue des opérations supplémentaires sur les données.
Vous pouvez utiliser des configurations de package pour mettre les valeurs issues du package parent à la disposition du package enfant. Integration Services contient un type de configuration, en l'occurrence la configuration Variable de package parent, qui permet de passer les valeurs du package parent au package enfant. La configuration est basée sur le package enfant et utilise une variable dans le package parent.
La variable du package parent peut être définie dans l'étendue de la tâche d'exécution de package ou dans un conteneur parent tel que le package. Si plusieurs variables de même nom sont disponibles, la variable utilisée est celle définie dans l'étendue de la tâche d'exécution de package ou celle qui, du point de vue de l'étendue, est la plus proche de la tâche. La configuration est ensuite mappée à une variable ou à la propriété d'un objet du package enfant. La variable peut également être utilisée dans les scripts utilisés par la tâche de script ActiveX, la tâche de script ou le composant de script.
Pour plus d'informations, consultez Procédure : utiliser les valeurs de variables parents dans un package enfant.
Autres tâches apparentées
Integration Services comprend des tâches qui effectuent des opérations de flux de travail, telles que l'exécution de fichiers de commandes, d'exécutables et de packages SQL Server 2000.
Pour plus d'informations sur ces tâches, cliquez sur l'une des rubriques suivantes :
Configuration de la tâche d'exécution de package
Vous pouvez définir les propriétés par le biais du concepteur SSIS ou par programme.
Pour plus d'informations sur les propriétés définissables dans le concepteur SSIS, cliquez sur l'une des rubriques suivantes :
Pour plus d'informations sur la définition de ces propriétés dans le concepteur SSIS, cliquez sur la rubrique suivante :
Configuration de la tâche d'exécution de package par programme
Pour plus d'informations sur la définition par programme de ces propriétés, cliquez sur la rubrique suivante :
|