Comment calculer le nombre de lignes distinctes d’une table SQL ou d’un fichier de données dans un flux SSIS ?
Comment compter le nombre de lignes distinctes avec SSIS et le stocker dans un fichier texte, une table ou une variable? Cette opération SSIS est l’équivalent d’un COUNT DISCTINCT avec SQL Server. Il faut donc utiliser le composant Aggregate dans SSIS, nommé Agrégation en Français. On utilise ensuite l’option COUNT DISTINCT pour calculer le nombre de lignes uniques d’une table ou d’un fichier.
Table of Contents
1. Structure du package pour compter le nombre de lignes
Pour commencer, dans le Data Flow, placer une source, le composant de type transformation SSIS Aggregate et une destination. Dans notre exemple, la source sera le composant SSIS OLE DB Source et la destination sera Flat File Destination pour exporter le résultat dans un fichier texte.
2. Faire pointer le composant OLE DB source vers la table SQL
Deuxièmement, il faut maintenant configurer le Data Flow SSIS. Visual Studio affiche maintenant des messages d’erreur sur les composants Integration Services. Ensuite, double-cliquer sur le composant OLE DB Source pour choisir la table source. Ici c’est la table HumanResources.Employee de la base AdventureWorks.
3. Configurer le composant SSIS Agrégation avec Count Distinct
Une fois la source choisie et configurée, configurer maintenant le composant SSIS Aggregate.
- Dans l’onglet Aggregations, choisir les colonnes où effectuer le calcul des lignes, c’est à dire celles à agréger.
- Dans la colonne Opération, choisir COUNT DISTINCT.
4. Relier l’Agrégation au fichier pour exporter le nombre de lignes
Maintenant, relier le composant SSIS d’aggrégation au composant cible, nommé Flat File Destination. Double-cliquer ensuite sur ce dernier pour choisir le fichier de destination. Pour finir, dans l’onglet Mappings, vérifier que les colonnes sont correctement reliées.
Après avoir configuré tous les composants du package SSIS, il n’y a plus d’erreurs dans le Data Flow.
5. Exécuter le package SSIS pour exporter le nombre de lignes dans le fichier texte
Exécuter maintenant le package SSIS. Le fichier plat exporté contient le nombre distinct de lignes pour les colonnes sélectionnées. Le fichier cible contient maintenant une ligne unique et le nombre 290, qui correspond au nombre de lignes de la table en entrée.
Conclusion sur le calcul de lignes avec SSIS
Enfin, cet article montre pas à pas comment compter le nombre de lignes distinctes avec un package SSIS, sans aucune ligne de code T-SQL. Pour les performances, il est conseillé de réaliser les opérations SQL directement sur le moteur SQL Server. Le but est de diminuer le transfert de données entre la base de données SQL et le serveur SSIS. Par ailleurs, les packages Integration Services permettent toutes les opérations disponibles en T-SQL, mais via une interface graphique et une industrialisation facilitée. Voici par exemple comment pivoter les lignes d’une table SQL en colonnes avec SSIS.
Il est bien sûr possible d’effectuer la même opération pour pivoter des données d’une autre manière. Elle est très pratique car via une seule opération T-SQL, mais plus complexe en termes de code, c’est la requête PIVOT SQL Server, directement depuis SSMS par exemple et avec du code T-SQL uniquement.
Soyez le premier à commenter