Jointure avec le composant Merge Join SSIS

Comment faire une jointure avec SSIS et utiliser le composant Merge Join SSIS ? Le composant SSIS Merge Join permet d’effectuer une jointure et de fusionner deux ou plusieurs sources de données. Autrement dit, le composant SSIS Merge Join permet de fusionner différentes sources hétérogènes en une seule, par exemple des fichiers plats, des fichiers Excels ou encore des tables SQL Server.

Joindre deux ou plusieurs tables avec le composant SSIS Merge Join

Dans ce tutorial SSIS en Français, le composant permet de fusionner les deux fichiers textes sources dans une seule table cible SQL Server. 

Avec SSIS, pour les versions on-premises ou sur Le Cloud Microsoft Azure, ce composant est utile pour gérer des tables distinctes et sans utiliser de code T-SQL ou .NET.

Première étape: préparer les deux fichiers sources et la table cible

Voici deux captures d’écran des deux fichiers plats utilisés dans le tutoriel.

Premier fichier Source :

Premier fichier texte source pou la jointure SSIS
Premier fichier texte source pou la jointure SSIS

Deuxième Fichier Source :

Deuxième fichier texte source pou la jointure SSIS

Voici maintenant la requête de la création de la table Neighbourhood, ou voisinage en Français: 

CREATE TABLE [dbo].[Neighbourhood]
(
   [Name] 		[nvarchar](50) NOT NULL,
   [PhoneNumber] 	[int] NOT NULL,
   [HouseNumber] 	[int] NOT NULL,
   [HouseColor] 	[nvarchar](50) NOT NULL,
   [HouseFloor] 	[int] NOT NULL
);

Deuxième étape : paramétrer les composants SSIS sources du composant Merge Join SSIS

1. Commencer par créer trois connexions dans le package SSIS dans l’onglet Connection Manager, une pour chaque fichier texte et une à la base de données.

Les trois connections SSIS avec les fichiers sources et la base de donnée cible
Les trois connections SSIS avec les fichiers sources et la base de donnée cible

2. Ensuite, dans la tâche Data Flow Task, faire glisser deux composants SSIS Flat File Source. Puis le composant SSIS Merge Join et enfin le composant SSIS OLE DB Destination comme ci-dessous.

Ensuite, attribuer les connexions déjà créées aux composants Source comme ci-dessous et relier les composants pour schématiser le flux de données.

3. Configurer le composant SSIS Merge Join, après un double-clic, l’erreur SSIS suivante s’affiche:

“The IsSorted property must be set to True on both sources of this transformation.”

Erreur SSIS  The IsSorted property must be set to True on both sources of this transformation.
Erreur SSIS The IsSorted property must be set to True on both sources of this transformation.

4. L’erreur SSIS s’affiche car le composant SSIS Merge Join doit utiliser des données sortant des sources triées au préalable.

Pour indiquer à SSIS de trier les données, faites un clic droit sur un composant SSIS Flat File Source. Cliquer sur show advanced editor puis sur Input and Output Properties.

Puis passer la case IsSorted à True (faire la même chose pour les deux sources), comme ci-dessous :

SSIS éditeur avancé pour trier les données avec l'option IsSorted
SSIS éditeur avancé pour trier les données avec l’option IsSorted

Troisième étape: paramétrer la jointure SSIS et exécuter le package

5. Ensuite, indiquer obligatoirement à SSIS quelle colonne fait office de SortKey, c’est à dire sur quelle colonne trier les données.

En effet, les composants Flat File Source trient les données en amont du composant Merge Join. Dans cet exemple, c’est la colonne HouseNumber (faire la même chose pour les deux fichiers sources). De plus, pour une jointure, utiliser nécessairement une colonne en commun, qui est la clef de jointure.

Choisir la colonne pour la jointure utiliser par SSIS Merge Join
Choisir la colonne pour la jointure utiliser par SSIS Merge Join

6. Une fois les données triées, configurer le composant SSIS Merge Join jusqu’à n’avoir aucun message d’erreur. Choisir quelles colonnes intégrer dans la table de destination et avec quel type de jointure. Dans ce cas, choisir Inner join, pour n’avoir que les lignes présentes dans les deux fichiers textes.

Paramétrer la jointure dans le composant SSIS Merge Join
Paramétrer la jointure dans le composant SSIS Merge Join

7. Le package SSIS est désormais correctement configuré et est prêt à être exécuter (appuyer sur F5 pour lancer directement l’exécution depuis le clavier).

Exécution avec succès du package SSIS avec le composant Merge Join
Exécution avec succès du package SSIS avec le composant Merge Join

Noter que les 5 lignes de chaque fichier en entrée du composant Merge Join correspondent aux 5 lignes fusionnées en sortie du composant.

Quatrième et dernière étape : vérifier le résultat de la jointure 

8. Enfin, vérifier que les deux fichiers plats choisis en source ont bien été fusionnés dans la table cible choisie grâce au composant de jointure SSIS.

Exécuter une simple requête SQL:

SELECT TOP 10
	[Name], 
	[PhoneNumber], 
	[HouseNumber], 
	[HouseColor], 
	[HouseFloor] 
FROM [dbo].[Neighbourhood];

Note: Penser à adapter la requête à la table cible.

Requête SQL Server pour vérifier la jointure SSIS
Requête SQL Server pour vérifier le résultat de la jointure SSIS

Enfin, voici un court tutoriel SSIS avec une méthode pour utiliser le composant d’agrégation SSIS.

Soyez le premier à commenter

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.


*