Jointure SSIS avec le composant Merge Join




Comment faire une jointure avec le composant Merge Join dans SSIS? On utilise le composant SSIS Merge Join pour faire une jointure et 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 une seul, par exemple fichiers plats, fichier Excel, tables SQL. Dans notre exemple nous allons fusionner deux fichiers textes sources dans une seule table cible SQL Server.

Pour notre exemple, nous avons comme source deux fichiers plats et comme destination une table dans notre base de données SQL Server.

 

Fichier Source 1 :

Fichier Source 2 :

Requête de la création de la table Neighbourhood :

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
);

 

1. Commencez donc par créer trois connexions dans votre package SSIS dans l’onglet connexion manager, une pour chaque fichier texte et une à votre base de données.

 

 

2. Ensuite, dans votre Data Flow Task, faites glisser deux composant SSIS Flat File Source, le composant SSIS Merge Join et le composant SSIS OLE DB Destination comme ci-dessous, puis attribuez les connexions déjà crées aux composants Source comme ci-dessous :

 

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

« The IsSorted property must be set to True on both sources of this transformation. »

 

4. La raison pour laquelle s’affiche ce message d’erreur est que pour être traité par le composant SSIS Merge Join, les données sortant des sources doivent être triées. Pour indiquer à SSIS que les données sont triées, faites un clic droit sur un composant SSIS Flat File Source, cliquez sur show advanced editor puis sur input and output properties. Puis passez la case IsSorted à True (faites la même chose pour les deux sources) comme ci-dessous :

 

5. Ensuite, vous devez obligatoirement indiquer à SSIS quelle colonne fait office de SortKey, c’est à dire sur quelle colonne trier les données, car le composant Flat File Source a trié les données en amont du Merge Join et dans notre cas, ce sera la colonne HouseNumber (faire la même chose pour les deux fichiers sources). De plus pour une jointure, il faut nécessairement une colonne en commun, qui est la clef de jointure.

 

6. Une fois les données triées, configurer le composant SSIS Merge Join jusqu’à n’avoir aucun message d’erreur. Choisir quelles colonnes vous souhaitez intégrer dans votre table de destination et quel type de jointure vous voulez faire, dans notre cas, nous choisirons inner join, pour n’avoir que les lignes qui sont dans les deux fichiers textes.

 

7. Votre package SSIS est désormais correctement configuré et est prêt à être lancé (appuyer sur F5 pour lancer l’exéction), on note les 5 lignes de chaque fichier en entrée du composant et les 5 lignes fusionnées en sortie du composant Merge Join.

 

8. Vérifier que les deux fichiers plats choisis en source ont bien été chargés dans la table choisie en destination grâce au composant SSIS Merge Join, avec une simple requête SQL:

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

 

 

Note: Dans la capture la requête comporte aussi le nom de ma base de données [Tutorials], non nécessaire pour vous.




Soyez le premier à commenter

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.


*