Comment synchroniser les colonnes SSIS automatiquement dans un flux de données ?

Apprendre à synchroniser les colonnes sources et cibles d’un composant SSIS de manière automatique avec Visual Studio.

C’est à dire comment synchroniser les colonnes SSIS sources et cibles automatiquement, en fonction de leur nom ? Cette astuce permet de développer les packages SSIS de manière plus efficace. Pour relier les colonnes dans un composant SSIS il existe 2 options. Mapper à la main constitue la première option. La deuxième option est de les relier de manière automatique via l’interface graphique de Visual Studio.

Créer les tables avec les colonnes à synchroniser

En effet, la gestion des colonnes nécessite un prérequis de taille. Préparer tous les noms de colonnes cibles avec les mêmes noms que les colonnes sources. En effet, pour relier un grand nombre de colonnes rapidement et éviter de perdre du temps avec des opérations manuelles, suivre les étapes ci-dessous.

Créer la table source depuis SSMS

Exécuter simplement le code SQL ci-dessous pour créer une table vide avec 20 colonnes.

CREATE TABLE [dbo].[Source_Table]
(
    [Column_01] [nvarchar](20) NULL,
    [Column_02] [nvarchar](20) NULL,
    [Column_03] [nvarchar](20) NULL,
    [Column_04] [nvarchar](20) NULL,
    [Column_05] [nvarchar](20) NULL,
    [Column_06] [nvarchar](20) NULL,
    [Column_07] [nvarchar](20) NULL,
    [Column_08] [nvarchar](20) NULL,
    [Column_09] [nvarchar](20) NULL,
    [Column_10] [nvarchar](20) NULL,
    [Column_11] [nvarchar](20) NULL,
    [Column_12] [nvarchar](20) NULL,
    [Column_13] [nvarchar](20) NULL,
    [Column_14] [nvarchar](20) NULL,
    [Column_15] [nvarchar](20) NULL,
    [Column_16] [nvarchar](20) NULL,
    [Column_17] [nvarchar](20) NULL,
    [Column_18] [nvarchar](20) NULL,
    [Column_19] [nvarchar](20) NULL,
    [Column_20] [nvarchar](20) NULL
); 

Créer la table cible avec la même structure

CREATE TABLE [dbo].[Target_Table]
(
    [Column_01] [nvarchar](20) NULL,
    [Column_02] [nvarchar](20) NULL,
    [Column_03] [nvarchar](20) NULL,
    [Column_04] [nvarchar](20) NULL,
    [Column_05] [nvarchar](20) NULL,
    [Column_06] [nvarchar](20) NULL,
    [Column_07] [nvarchar](20) NULL,
    [Column_08] [nvarchar](20) NULL,
    [Column_09] [nvarchar](20) NULL,
    [Column_10] [nvarchar](20) NULL,
    [Column_11] [nvarchar](20) NULL,
    [Column_12] [nvarchar](20) NULL,
    [Column_13] [nvarchar](20) NULL,
    [Column_14] [nvarchar](20) NULL,
    [Column_15] [nvarchar](20) NULL,
    [Column_16] [nvarchar](20) NULL,
    [Column_17] [nvarchar](20) NULL,
    [Column_18] [nvarchar](20) NULL,
    [Column_19] [nvarchar](20) NULL,
    [Column_20] [nvarchar](20) NULL
); 

Gérer les noms de colonnes à synchroniser automatiquement avec SSIS

Cette solution apporte un gain de temps important car elle permet aussi de limiter les erreurs manuelles et donc les régressions. Pour cela, créer simplement une connexion et un flux de données SSIS. Soit une destination OLE DB sur une base de données SQL Server par exemple. Les colonnes se synchronisent automatiquement à la première connexion.

Cependant, après une modification, les colonnes mises à jour ne sont plus mappées avec celles de destination. L’astuce est de nommer les colonnes cibles de la même manière que les sources. En effet le lien entre les colonnes dans SSIS est basé sur le nom des colonnes.

Au préalable, réaliser ces opérations :

  • Nommer les colonnes sources et destination de la même manière, comme avec les 2 tables d’exemple fournies
  • Dans un flux de données, Ouvrir le composant SSIS destination

Note: les captures suivantes proviennent d’une version Anglaise de Visual Studio

1. Ouvrir le composant OLE DB Destination depuis SSIS

Par défaut, les colonnes avec les mêmes noms sont synchronisés, mais en cas de changement de nom, il est possible de relier de manière automatique les colonnes sources et cibles.

Mapping des colonnes dans un flux de données SSIS
Mapping des colonnes dans un flux de données SSIS

2. Faire un clic-droit et sélectionner l’option de mappage par noms

Faire un clic droit dans la fenêtre de mapping du composant à synchroniser. Cliquer ensuite sur Map items by matching names pour les relier automatiquement, comme ci-dessous.

Option de mapping automatique des colonnes dans SSIS
Option de mapping automatique des colonnes dans SSIS

Sur la version Française, l’option est Mapper les éléments par noms correspondants.

3. Les colonnes SSIS sources et cibles ayant le même nom sont mappées

Toutes les colonnes sont maintenant reliées.

Synchroniser les colonnes SSIS automatiquement depuis un flux de données
Synchroniser les colonnes SSIS automatiquement depuis un flux de données

Nommer les colonnes sources et cibles de manière uniforme

Cette option connecte les colonnes sources et destination en une seconde. Même après une éventuelle modification des caractéristiques des champs sources qui alimentent le composant. En effet, nommer les colonnes sources et cibles exactement de la même façon permet de faire le mapping automatiquement. Le mapping par défaut des colonnes dans SSIS est basé sur leur nom.

Conclusion

Le mappage automatique avec SSIS offre une fonctionnalité très utile pour la gestion des données. Lorsque vous utilisez cette fonction, toutes les colonnes source qui portent le même nom que la cible sont automatiquement mappées. Cela signifie que SSIS identifie et connecte ces colonnes en correspondance avec leur nom.

Cette caractéristique réduit considérablement le temps nécessaire pour configurer manuellement chaque mappage, surtout dans le cas où vous travaillez avec de grands ensembles de données avec un grand nombre de colonnes. Par conséquent, le mappage automatique est une fonction clé pour améliorer l’efficacité et l’exactitude lors de la manipulation de données avec SSIS.

Enfin, pour continuer à apprendre la gestion des données avec SSIS, voici comment exporter une table vers un fichier Excel.

Exporter une table SQL Server vers un fichier Excel avec SSIS

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Retour en haut