Version imprimable       Envoyer     
Cliquez pour évaluer et commenter
TechNet
Bibliothèque TechNet
Articles Techniques
SQL Server
SQL Server 2005
 DTS (Date Transformation Services –...
DTS (Date Transformation Services – services de transformation de données) pour SQL Server 2005 – Questions & réponses sur la conception
Paru le 06 juin 2005
Par Huntting Buckley, Donald Farmer, Amit Goyal, Craig Guyer, James Howey

Ce document répond aux questions les plus fréquemment posées sur DTS (Data Transformation Services) dans SQL Server 2005, en particulier celles ayant trait à la conception. Il s'agit d'un FAQ portant plus sur le « pourquoi » que sur le « comment ».
Pour obtenir des informations complémentaires, veuillez chercher « Utilitaire de déploiement » dans la documentation en ligne.

Sur cette page

Pourquoi l'Assistant échoue-t-il au cours du transfert de données pour plusieurs milliers de tables ?
Pourquoi n'est-il pas possible de copier des objets dans l'Assistant Importation/exportation ?
Pourquoi n'est-il pas possible de concevoir de packages dans SQL Server Management Studio ?
À quoi correspondent les sources de données et les vues des sources de données ? Quel est leur rapport avec les connexions dans mon package ?
Pourquoi n'existe-t-il pas de source de données Microsoft Excel ou Microsoft Access ?
Pourquoi l'option d'analyse rapide n'est-elle pas utilisée par défaut dans le flux de données ?
Pourquoi existe-t-il des tâches de données WMI et des tâches d'événements séparées ?
Pourquoi le langage d'expression n'est-il pas SQL ou Visual Basic ?
Pourquoi certaines fonctions sont-elles manquantes dans le langage d'expressions ?
Pourquoi faut-il configurer l'ordre de tri au niveau de l'adaptateur de source plutôt qu'à celui du composant consommateur, par exemple Merge ?
Pourquoi dois-je verrouiller les variables dans mon package ?
Pourquoi le composant n'est-il pas notifié lorsqu'un chemin d'accès de sortie est détaché ?
Pourquoi existe-t-il un service Windows pour DTS ?
Pourquoi n'est-il pas possible de voir les packages en cours d'exécution sur mon serveur DTS dans Mgt Studio ?
Pourquoi la journalisation de packages ne figure-t-elle plus dans la base de données système MSDB par défaut ?
Pourquoi les modifications apportées au schéma d'un document XML ne figurent-elles pas dans l'adaptateur de source ?
Pourquoi la migration des packages qui référencent Parent DTSGlobalVariables pose-t-elle problème ?
Pourquoi la migration des tâches Data Pump pose-t-elle problème ?
Pourquoi n'est-il pas possible de faire migrer une tâche Propriétés dynamiques ?
Pourquoi les variables globales ne sont-elles pas disponibles dans la tâche Script ActiveX ?
Pourquoi ne pas inclure dans DTS la tâche Transformation de données et la tâche Requête contrôlée par les données ?
Pourquoi DTS n'est-il plus distribuable côté client ?
Pourquoi DTS ne prend-il pas en charge un déploiement MSI ?

Pourquoi l'Assistant échoue-t-il au cours du transfert de données pour plusieurs milliers de tables ?

L'architecture actuelle de l'Assistant crée un flux de données de package DTS pour transférer des données. Il existe des limites de montée en charge pour plusieurs milliers de tables. Cela nous semble raisonnable dans la mesure où il est peu probable que les concepteurs de packages utilisent plusieurs milliers de sources et de destinations dans un même flux de données. Cette fonctionnalité sera peut-être modifiée dans la version Bêta 3.
Pour obtenir des informations complémentaires, veuillez chercher « Utilitaire de déploiement » dans la documentation en ligne.

Pourquoi n'est-il pas possible de copier des objets dans l'Assistant Importation/exportation ?

Cet Assistant est conçu pour permettre à l'utilisateur de déplacer des données facilement vers et depuis SQL Server. La copie d'objets de base de données entre des serveurs correspond en fait davantage à une opération de gestion qu'à une opération de déplacement de données, même si des données sont effectivement déplacées.L'Assistant Copie de base de données SQL Server Management workbench permet aux utilisateurs de copier des objets de base de données, ce qui est sa spécialité.
L'Assistant Importation/exportation DTS, lui, simplifie les opérations DTS courantes (chargement de données à partir de plusieurs sources, notamment les fichiers plats, les feuilles de calcul et les sources de données OLEDB).

Pourquoi n'est-il pas possible de concevoir de packages dans SQL Server Management Studio ?

SQL Server Management Studio est un environnement permettant la gestion du stockage et l'exécution des packages déployés. Il possède des fonctionnalités spécifiques destinées à cette tâche, notamment l'intégration au service DTS et la possibilité d'énumérer des packages sur des serveurs distants. Il ne s'agit pas pour autant d'un environnement de conception.
Business Intelligence Design Studio est un environnement permettant de concevoir des packages, de les organiser sous la forme de solutions et de projets, de les déboguer et de gérer la source ainsi que le contrôle des versions pour des projets multi-utilisateurs.
Ainsi, dans SQL Server 2005, les utilisateurs conçoivent des packages dans un environnement spécialisé et les gèrent dans un environnement spécialisé séparé.
Des informations supplémentaires sur la conception et la gestion des packages ainsi que sur leur déploiement entre plusieurs environnements sont disponibles dans la documentation en ligne.

À quoi correspondent les sources de données et les vues des sources de données ? Quel est leur rapport avec les connexions dans mon package ?

Les sources de données et les vues des sources de données ne sont pas des objets dans votre package DTS. Elles correspondent en fait à des objets enregistrés dans un projet de transformation de données dans Business Intelligence Development Studio. Comme elles figurent dans le projet et non pas dans un package DTS, elles peuvent être partagées entre des packages DTS, ce qui permet à une vue de source de données d'être définie pour un schéma en étoile et d'être utilisée de manière cohérente par chaque package qui charge ce schéma.Les sources de données définissent la manière de se connecter à une base de données OLEDB ou ADO.NET. Elles contiennent la chaîne de connexion et d'autres propriétés, notamment un nom convivial pour la connexion et un champ de description.
Les vues des sources de données sont des sous-ensembles d'un schéma relationnel sur lequel pointe une source de données. Ces vues peuvent être élaborées avec des requêtes nommées, des colonnes calculées, des relations virtuelles et des noms conviviaux. Par exemple, si vous utilisez un grand schéma, vous pouvez décider de n'utiliser qu'un jeu limité de tables à partir de la source ; l'utilisation d'une vue de source de données vous permet de définir ce sous-ensemble.
Les sources de données et les vues des sources de données sont des objets au moment de la conception qui ne peuvent être utilisés que dans des projets BI Development Studio. Au moment de la conception, une source de données peut être utilisée par un ou plusieurs packages DTS dans un projet, mais au moment de l'exécution, un package DTS déployé ne pourra pas accéder à ces objets. Les packages DTS contiennent des connexions qui permettent au concepteur de packages de gérer la connectivité aux bases de données, aux fichiers, etc. Au moment de la conception, une connexion peut référencer une source de données et une vue des sources de données, mais au moment de l'exécution, la connexion DTS dispose de toutes les métadonnées nécessaires pour fonctionner en mode autonome. L'utilisateur peut ainsi concevoir différents packages qui partagent les références de source de données et les vues des sources de données, puis les exécutent de manière indépendante et les déploient séparément.
Si une connexion DTS référence une source de données, un objet utilisant la connexion DTS peut utiliser une vue de source de données qui utilise également la source de données. De cette manière, il est facile pour un package DTS de référencer uniquement un petit sous-ensemble d'un grand schéma.Finalement, les connexions DTS sont plus génériques que les sources de données : elles peuvent se connecter à des fichiers texte, des connexions HTTP, des connexions FTP et de nombreux autres scénarios nécessitant une chaîne de connexion, et pas seulement à des fournisseurs managés OLEDB et ADO.NET.Des informations supplémentaires sur les connexions, les sources de données et les vues des sources de données sont disponibles dans la documentation en ligne.

Pourquoi n'existe-t-il pas de source de données Microsoft Excel ou Microsoft Access ?

Les fichiers de données Excel et Access peuvent être importés à l'aide d'un Gestionnaire de connexion OLEDB correctement configuré. Vous pouvez également utiliser facilement l'Assistant Importation/exportation DTS qui crée le Gestionnaire de connexion pour vous.
Pour des informations supplémentaires, recherchez « Création d'un package à l'aide de l'Assistant Importation/exportation DTS » dans la documentation en ligne.

Pourquoi l'option d'analyse rapide n'est-elle pas utilisée par défaut dans le flux de données ?

L'option d'analyse rapide est opportuniste. Elle ne prend pas en charge l'analyse spécifique à des paramètres régionaux ou les formats de date autres que année-mois. Elle n'est utile que pour certains formats de date pour lesquels une analyse plus rapide que l'analyse standard par défaut est possible. Par conséquent, les utilisateurs doivent choisir explicitement l'option basée sur leur format de date.
Pour des informations supplémentaires, recherchez « Analyse rapide » dans les manuels en ligne.

Pourquoi existe-t-il des tâches de données WMI et des tâches d'événements séparées ?

Les données d’administration système permettent d'influencer un flux de contrôle DTS. Par exemple, avant d'exécuter un flux ETL, vous pouvez vérifier si SQL Server est en cours d'exécution, si l'ordinateur dispose d'un lecteur C: ou s'il possède suffisamment d'espace disque disponible. La tâche des données WMI sert à récupérer ces données système.
Les événements d’administration système permettent de lancer des actions en temps réel dans un flux de contrôle DTS ; par exemple : n'exécuter le flux ETL que lorsque l'utilisation de la mémoire passe en dessous de 50 %, ou démarrer un flux de données uniquement lorsqu'un nouveau fichier source est disponible dans le système de fichiers. La tâche des données WMI permet de définir et de traiter ces événements système.
Ces deux tâches proposent également des fonctionnalités fondamentalement différentes. Dans cette version, nous nous sommes efforcés de séparer les tâches en fonction des fonctionnalités qu'elles fournissent pour la prise en charge de la création détaillée des packages. Un autre exemple de cette séparation est la tâche Système de fichiers et la tâche FTP. Les fonctionnalités qu'elles offrent avaient été regroupées au sein d'une seule tâche dans DTS 2000, mais dans cette version, elles sont distinctes afin de simplifier la création, la compréhension et le support des packages.

Pourquoi le langage d'expression n'est-il pas SQL ou Visual Basic ?

SQL et Visual Basic ne répondent ni l'un ni l'autre aux critères du flux de données DTS. Par exemple, notre objectif était de prendre en charge tout un éventail d'opérateurs, tels que les opérateurs de bits chargés de manipuler des masques de bits utilisés dans de nombreux scénarios en tant qu'indicateurs. En outre, afin d'optimiser l'utilisation de la mémoire (et d'en tirer ainsi les meilleures performances), le flux de données DTS est strict en ce qui concerne les types de données, ce qui se reflète également dans la syntaxe du langage d’expression.
La syntaxe des expressions DTS vous permet de concevoir des flux de données très performants avec un traitement complexe des chaînes et des types de données. Si vous faites appel à des fonctions qui ne sont pas prises en charge par le langage d'expressions, ou si vous préférez utiliser la syntaxe Visual Basic, vous pouvez utiliser le composant Script qui vous permet d'utiliser Visual Basic .NET dans le flux de données.

Pourquoi certaines fonctions sont-elles manquantes dans le langage d'expressions ?

Les ressources n'ont pas permis la mise en œuvre de chaque fonction désormais présente dans SQL Server TSQL. Nous avons sondé les clients et les développeurs pour assembler notre jeu initial et nous examinerons attentivement les commentaires sur la version bêta dans l'optique des futures versions bêtas et de la version finale.

Pourquoi faut-il configurer l'ordre de tri au niveau de l'adaptateur de source plutôt qu'à celui du composant consommateur, par exemple Merge ?

L'ordre des lignes est défini à l'adaptateur source et ne peut pas être modifié par la plupart des transformations en aval (le tri étant une exception). Les adaptateurs de source ayant connaissance de l'ordre des données sources peuvent définir ces informations sans assistance de l'utilisateur, mais dans la plupart des cas, les métadonnées fournies à un composant source sont insuffisantes pour lui permettre de définir les informations de tri de colonnes ; dans ce cas, l'utilisateur est chargé de cette tâche.

Pourquoi dois-je verrouiller les variables dans mon package ?

L'exécution DTS utilise plusieurs threads lorsque cela est nécessaire pour améliorer la concurrence (l'accès simultané) et donc les performances et la montée en charge. Pour éviter que plusieurs threads tentent d'accéder à la même variable au même moment, tous les accès aux variables doivent être « sécurisés » en verrouillant ces dernières pour votre utilisation. Faute de quoi, certains packages risquent soit de fonctionner de manière erratique, soit de retourner des résultats complètement incorrects. Cette situation peut poser des problèmes même si le package est complètement linéaire : par exemple, si l'utilisateur est amené à modifier le paramètre de concurrence dans une boucle.

Pourquoi le composant n'est-il pas notifié lorsqu'un chemin d'accès de sortie est détaché ?

Les utilisateurs du Concepteur DTS doivent pouvoir supprimer un chemin d'accès, puis le rattacher, sans rompre leur package ni en modifier le comportement. En fournissant une méthode OnOutputPathDetached, nous aurions permis à des composants mal conçus de remettre en cause cette situation. Pour répondre aux auteurs de composants qui souhaitent fournir un nombre variable de sorties, le modèle objet DTS fournit une propriété sur la sortie appelée DeleteOutputOnPathDetached qui supprime automatiquement la sortie lorsque le chemin d'accès est détaché si la propriété a la valeur true.

Pourquoi existe-t-il un service Windows pour DTS ?

Le nouveau service Windows pour DTS permet à un opérateur de voir et d'arrêter l'exécution de packages DTS sur un serveur particulier. Ce service est exposé à l'intérieur de SQL Management Studio. Remarque : le service DTS étant désactivé par défaut, il faut d'abord le démarrer.
Le nouveau service Windows pour DTS permet à un opérateur de voir et d'arrêter l'exécution de packages DTS sur un serveur particulier. Ce service est exposé à l'intérieur de SQL Management Studio. Remarque : le service DTS étant désactivé par défaut, il faut d'abord le démarrer.
Pour obtenir des informations complémentaires, recherchez « Services DTS » et « Gestion des services DTS » dans la documentation en ligne.

Pourquoi n'est-il pas possible de voir les packages en cours d'exécution sur mon serveur DTS dans Mgt Studio ?

Le service DTS est désactivé par défaut. Il ne s'exécute pas à moins que l'administrateur système ne le souhaite. Pour démarrer le service DTS, cliquez avec le bouton droit sur Poste de travail et sélectionnez Gérer (à partir du bouton Démarrer ou du Bureau). Dans la fenêtre Gestion de l'ordinateur, cliquez sur Service et Applications, puis sur Services pour afficher tous les services Windows répertoriés sur la droite. Recherchez Serveur DTS dans la liste et cliquez avec le bouton droit pour sélectionner Démarrer. (Vous pouvez également double-cliquer pour ouvrir ses propriétés et remplacer Type de démarrage par Automatique si vous souhaitez que le service démarre automatiquement à chaque démarrage de l'ordinateur).
Pour obtenir des informations complémentaires, recherchez « Services DTS » et « Gestion des services DTS » dans la documentation en ligne.

Pourquoi la journalisation de packages ne figure-t-elle plus dans la base de données système MSDB par défaut ?

SQL 2005 DTS ajoute de nombreuses nouvelles options pour la journalisation des informations sur votre base de données. Vous pouvez ainsi définir un ou plusieurs fournisseurs d'informations par package, qui peuvent être de différents types. Les types de fournisseur d'informations comprennent des fichiers texte, SQL Server, le journal des événements Windows, etc. Dans votre package, vous pouvez ajouter les fournisseurs d'informations en accédant au menu DTS et en cliquant sur Enregistrement.
Pour obtenir des informations complémentaires, recherchez « Fournisseurs d'informations DTS » et « Définition des options de journalisation dans les packages » dans la documentation en ligne.

Pourquoi les modifications apportées au schéma d'un document XML ne figurent-elles pas dans l'adaptateur de source ?

Les modifications apportées au schéma d'un fichier XML affectent de manière significative les métadonnées du flux de données. Par conséquent, l'utilisateur est obligé de modifier de manière explicite le schéma et de prendre en compte les modifications apportées aux métadonnées.

Pourquoi la migration des packages qui référencent Parent DTSGlobalVariables pose-t-elle problème ?

L'importance des modifications incorporées dans DTS 2005 a nécessité une réécriture complète du modèle objet. Par conséquent, après la migration vers SQL Server 2005 DTS, les références de script ActiveX aux objets SQL Server 2000 DTS accédés via la propriété Parent DTSGlobalVariables ne sont plus valides.

Pourquoi la migration des tâches Data Pump pose-t-elle problème ?

Les tâches de flux de données DTS 2005 remplacent les tâches de transformation de données DTS 2000 et offrent des fonctionnalités nettement améliorées. Toutefois, il en résulte une correspondance ambiguë entre les offres de 2000 et celles de 2005. Pour garantir un fonctionnement correct des tâches de transformation de données anciennes, ces tâches ont été entièrement migrées vers SQL Server 2005. L'Assistant Migration englobe ces tâches dans un package SQL Server 2000 dédié et l'appelle depuis une tâche Exécuter un package DTS SQL Server 2000.

Pourquoi n'est-il pas possible de faire migrer une tâche Propriétés dynamiques ?

Comme cette tâche est directement dépendante du modèle objet DTS 2000 désormais absent, l'Assistant Migration n'offre qu'une prise en charge limitée de cette tâche. Les instances de cette tâche sont remplacées par des tâches de script contenant des commentaires qui décrivent les propriétés définies auparavant par cette tâche. Des modifications manuelles sont nécessaires pour restaurer les anciennes fonctionnalités.

Pourquoi les variables globales ne sont-elles pas disponibles dans la tâche Script ActiveX ?

L'accès aux variables globales n'est pas pris en charge dans la version Bêta 2.

Pourquoi ne pas inclure dans DTS la tâche Transformation de données et la tâche Requête contrôlée par les données ?

SQL Server 2005 inclut la tâche Flux de données à la place de ces deux tâches SQL 2000. Cette tâche n'impose aucune limite sur le nombre de sources, de destinations et de transformations, contrairement à SQL 2000 où l'utilisateur était limité à une seule source, destination et transformation par tâche. Le nouveau modèle objet nécessaire à la prise en charge de cette fonctionnalité étendue n’est pas compatible avec ces deux tâches moins robustes.

Pourquoi DTS n'est-il plus distribuable côté client ?

Simple utilitaire pratique dans SQL Server 2000, DTS a été récrit et s'est transformé en une application et une plate-forme comportant un grand nombre de fonctionnalités dans SQL Server 2005. Il est donc devenu nécessaire d'offrir un service et un support aux utilisateurs DTS, ce qui sera facilité en gérant et en concédant sous licence les fonctionnalités du moteur DTS comme pour d'autres applications SQL Server. Par conséquent, si les utilisateurs peuvent facilement déployer des packages grâce au nouvel Assistant Déploiement, ils devront exécuter le programme d'installation SQL Server 2005 et installer DTS sur tous les ordinateurs à partir desquels ils souhaitent exécuter leurs packages. Cela permettra de garantir que l'utilisateur ou l'ordinateur utilise la bonne version des exécutables DTS, et facilitera les futures mises à jour du logiciel.

Pourquoi DTS ne prend-il pas en charge un déploiement MSI ?

Le déploiement MSI offre l'avantage d'une installation autonome complète, mais il nécessite la redistribution des binaires DTS. Si un correctif de sécurité important est nécessaire, il est impossible de le diffuser facilement à l'ensemble des cibles du déploiement. L'utilitaire de déploiement actuel nécessite que les serveurs cibles disposent d'une installation existante de DTS dans la mesure où il s'agit d'un modèle plus facile à maintenir pour des administrateurs.

© 2009 Microsoft Corporation. Tous droits réservés. Conditions d'utilisation | Marques | Confidentialité
Page view tracker