{"id":1296,"date":"2023-07-19T07:20:00","date_gmt":"2023-07-19T05:20:00","guid":{"rendered":"https:\/\/expert-only.com\/prep\/?p=1296"},"modified":"2023-09-26T18:23:29","modified_gmt":"2023-09-26T16:23:29","slug":"nombre-de-lignes-distinctes-avec-ssis","status":"publish","type":"post","link":"https:\/\/expert-only.com\/fr\/ssis\/nombre-de-lignes-distinctes-avec-ssis\/","title":{"rendered":"Comment compter le nombre de lignes distinctes avec SSIS ?"},"content":{"rendered":"\n<h4 class=\"wp-block-heading has-text-align-left\" id=\"h-comment-calculer-le-nombre-de-lignes-distinctes-d-une-table-sql-ou-d-un-fichier-de-donnees-dans-un-flux-ssis\"><strong><em>Comment calculer le nombre de lignes distinctes d&rsquo;une table  SQL ou d&rsquo;un fichier de donn\u00e9es dans un flux SSIS ?<\/em><\/strong><\/h4>\n\n\n\n<p>Comment compter le nombre de lignes distinctes avec SSIS et le stocker dans un fichier texte, une table ou une variable? Cette op\u00e9ration SSIS est l&rsquo;\u00e9quivalent d&rsquo;un COUNT DISCTINCT avec SQL Server. Il faut donc utiliser le composant Aggregate dans SSIS, nomm\u00e9 Agr\u00e9gation en Fran\u00e7ais. On utilise ensuite l&rsquo;option COUNT DISTINCT pour calculer le nombre de lignes uniques d&rsquo;une table ou d&rsquo;un fichier.<\/p>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 ez-toc-wrap-center counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/expert-only.com\/fr\/ssis\/nombre-de-lignes-distinctes-avec-ssis\/#1-structure-du-package-pour-compter-le-nombre-de-lignes\" >1. Structure du package pour compter le nombre de lignes<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/expert-only.com\/fr\/ssis\/nombre-de-lignes-distinctes-avec-ssis\/#2-faire-pointer-le-composant-ole-db-source-vers-la-table-sql\" >2. Faire pointer le composant OLE DB source vers la table SQL<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/expert-only.com\/fr\/ssis\/nombre-de-lignes-distinctes-avec-ssis\/#3-configurer-le-composant-ssis-agregation-avec-count-distinct\" >3. Configurer le composant SSIS Agr\u00e9gation avec Count Distinct<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/expert-only.com\/fr\/ssis\/nombre-de-lignes-distinctes-avec-ssis\/#4-relier-lagregation-au-fichier-pour-exporter-le-nombre-de-lignes\" >4. Relier l&rsquo;Agr\u00e9gation au fichier pour exporter le nombre de lignes<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/expert-only.com\/fr\/ssis\/nombre-de-lignes-distinctes-avec-ssis\/#5-executer-le-package-ssis-pour-exporter-le-nombre-de-lignes-dans-le-fichier-texte\" >5. Ex\u00e9cuter le package SSIS pour exporter le nombre de lignes dans le fichier texte<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\" id=\"h-1-structure-du-package-pour-compter-le-nombre-de-lignes\"><span class=\"ez-toc-section\" id=\"1-structure-du-package-pour-compter-le-nombre-de-lignes\"><\/span>1. Structure du package pour compter le nombre de lignes<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Pour commencer, dans le Data Flow, placer une source, <strong>le composant de type transformation SSIS Aggregate<\/strong> et une destination. Dans notre exemple, la source sera <strong>le composant SSIS OLE DB Source<\/strong> et la destination sera <strong>Flat File Destination<\/strong> pour <a href=\"https:\/\/expert-only.com\/fr\/ssis\/exporter-table-sql-server-fichier-texte-ssis\/\">exporter le r\u00e9sultat dans un fichier texte.<\/a><\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/expert-only.com\/wp-content\/uploads\/2017\/08\/ssis-2008-count-distinct-composant-aggregate.jpg\" alt=\"Les 3 composants SSIS pour calculer le nombre de lignes distinctes\" class=\"wp-image-1297\" style=\"width:459px;height:402px\" width=\"459\" height=\"402\" srcset=\"https:\/\/expert-only.com\/wp-content\/uploads\/2017\/08\/ssis-2008-count-distinct-composant-aggregate.jpg 459w, https:\/\/expert-only.com\/wp-content\/uploads\/2017\/08\/ssis-2008-count-distinct-composant-aggregate-300x263.jpg 300w\" sizes=\"auto, (max-width: 459px) 100vw, 459px\" \/><figcaption class=\"wp-element-caption\"><em>Les 3 composants SSIS pour calculer le nombre de lignes distinctes<\/em><\/figcaption><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"h-2-faire-pointer-le-composant-ole-db-source-vers-la-table-sql\"><span class=\"ez-toc-section\" id=\"2-faire-pointer-le-composant-ole-db-source-vers-la-table-sql\"><\/span>2. Faire pointer le composant OLE DB source vers la table SQL<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Deuxi\u00e8mement, il faut maintenant configurer le Data Flow SSIS. Visual Studio affiche maintenant des messages d&rsquo;erreur sur les composants Integration Services. Ensuite, <strong>double-cliquer sur le composant OLE DB Source pour choisir la table source<\/strong>. Ici c&rsquo;est la table HumanResources.Employee de la base <a href=\"https:\/\/docs.microsoft.com\/fr-fr\/sql\/samples\/adventureworks-install-configure?view=sql-server-ver16&amp;tabs=ssms\" target=\"_blank\" rel=\"noreferrer noopener nofollow\">AdventureWorks<\/a>.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/expert-only.com\/wp-content\/uploads\/2017\/08\/ssis-2008-count-distinct-composant-aggregate-2.jpg\" alt=\"Configurer la connexion \u00e0 la table source pour compter les lignes distinctes\" class=\"wp-image-1298\" style=\"width:648px;height:635px\" width=\"648\" height=\"635\" srcset=\"https:\/\/expert-only.com\/wp-content\/uploads\/2017\/08\/ssis-2008-count-distinct-composant-aggregate-2.jpg 648w, https:\/\/expert-only.com\/wp-content\/uploads\/2017\/08\/ssis-2008-count-distinct-composant-aggregate-2-300x294.jpg 300w\" sizes=\"auto, (max-width: 648px) 100vw, 648px\" \/><figcaption class=\"wp-element-caption\"><em>Configurer la connexion \u00e0 la table source pour compter les lignes distinctes<\/em><\/figcaption><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"h-3-configurer-le-composant-ssis-agregation-avec-count-distinct\"><span class=\"ez-toc-section\" id=\"3-configurer-le-composant-ssis-agregation-avec-count-distinct\"><\/span>3. Configurer le composant SSIS Agr\u00e9gation avec Count Distinct<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Une fois la source choisie et configur\u00e9e, <strong>configurer maintenant le composant SSIS Aggregate<\/strong>.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Dans l&rsquo;onglet <em>Aggregations<\/em>, <strong>choisir les colonnes<\/strong> o\u00f9 effectuer le calcul des lignes, c&rsquo;est \u00e0 dire celles \u00e0 <a href=\"https:\/\/www.cairn.info\/revue-economique-2012-4-page-645.htm\" target=\"_blank\" rel=\"noreferrer noopener\">agr\u00e9ger<\/a>.<\/li>\n\n\n\n<li>Dans la colonne <em>Op\u00e9ration<\/em>, choisir <strong>COUNT DISTINCT<\/strong>.<\/li>\n<\/ol>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"618\" height=\"635\" src=\"https:\/\/expert-only.com\/wp-content\/uploads\/2017\/08\/ssis-2008-count-distinct-composant-aggregate-3.jpg\" alt=\"Configurer l'agr\u00e9gation SSIS avec le Count Distinct\" class=\"wp-image-1299\" srcset=\"https:\/\/expert-only.com\/wp-content\/uploads\/2017\/08\/ssis-2008-count-distinct-composant-aggregate-3.jpg 618w, https:\/\/expert-only.com\/wp-content\/uploads\/2017\/08\/ssis-2008-count-distinct-composant-aggregate-3-292x300.jpg 292w\" sizes=\"auto, (max-width: 618px) 100vw, 618px\" \/><figcaption class=\"wp-element-caption\"><em>Configurer l&rsquo;agr\u00e9gation SSIS avec le Count Distinct<\/em><\/figcaption><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"h-4-relier-l-agregation-au-fichier-pour-exporter-le-nombre-de-lignes\"><span class=\"ez-toc-section\" id=\"4-relier-lagregation-au-fichier-pour-exporter-le-nombre-de-lignes\"><\/span>4. Relier l&rsquo;Agr\u00e9gation au fichier pour exporter le nombre de lignes<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Maintenant, relier le composant SSIS d&rsquo;aggr\u00e9gation au composant cible, nomm\u00e9 <em><strong>Flat File Destination<\/strong><\/em>. Double-cliquer ensuite sur ce dernier pour <strong>choisir le fichier de destination<\/strong>. Pour finir, dans l&rsquo;onglet <em>Mappings<\/em>, v\u00e9rifier que les colonnes sont correctement reli\u00e9es.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"647\" height=\"634\" src=\"https:\/\/expert-only.com\/wp-content\/uploads\/2017\/08\/ssis-2008-count-distinct-composant-aggregate-4.jpg\" alt=\"Configurer les liens en sortie pour calculer le nombre de lignes distinctes avec SSIS\" class=\"wp-image-1300\" srcset=\"https:\/\/expert-only.com\/wp-content\/uploads\/2017\/08\/ssis-2008-count-distinct-composant-aggregate-4.jpg 647w, https:\/\/expert-only.com\/wp-content\/uploads\/2017\/08\/ssis-2008-count-distinct-composant-aggregate-4-300x294.jpg 300w\" sizes=\"auto, (max-width: 647px) 100vw, 647px\" \/><figcaption class=\"wp-element-caption\"><em>Configurer les liens en sortie pour calculer le nombre de lignes distinctes avec SSIS<\/em><\/figcaption><\/figure>\n<\/div>\n\n\n<p>Apr\u00e8s avoir configur\u00e9 tous les composants du package SSIS, il n&rsquo;y a plus d&rsquo;erreurs dans le Data Flow.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/expert-only.com\/wp-content\/uploads\/2017\/08\/ssis-2008-count-distinct-composant-aggregate-5.jpg\" alt=\"Flux de donn\u00e9es SSIS avec les 3 composants n\u00e9cessaires\" class=\"wp-image-1301\" style=\"width:479px;height:401px\" width=\"479\" height=\"401\" srcset=\"https:\/\/expert-only.com\/wp-content\/uploads\/2017\/08\/ssis-2008-count-distinct-composant-aggregate-5.jpg 479w, https:\/\/expert-only.com\/wp-content\/uploads\/2017\/08\/ssis-2008-count-distinct-composant-aggregate-5-300x251.jpg 300w\" sizes=\"auto, (max-width: 479px) 100vw, 479px\" \/><figcaption class=\"wp-element-caption\"><em>Flux de donn\u00e9es SSIS avec les 3 composants n\u00e9cessaires<\/em><\/figcaption><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"h-5-executer-le-package-ssis-pour-exporter-le-nombre-de-lignes-dans-le-fichier-texte\"><span class=\"ez-toc-section\" id=\"5-executer-le-package-ssis-pour-exporter-le-nombre-de-lignes-dans-le-fichier-texte\"><\/span>5. Ex\u00e9cuter le package SSIS pour exporter le nombre de lignes dans le fichier texte<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Ex\u00e9cuter maintenant le package SSIS. <strong>Le fichier plat export\u00e9 contient le nombre distinct de lignes pour les colonnes s\u00e9lectionn\u00e9es.<\/strong> Le fichier cible contient maintenant une ligne unique et le nombre 290, qui correspond au nombre de lignes de la table en entr\u00e9e.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"535\" height=\"402\" src=\"https:\/\/expert-only.com\/wp-content\/uploads\/2017\/08\/ssis-2008-count-distinct-composant-aggregate-6.jpg\" alt=\"Ex\u00e9cution avec succ\u00e8s du flux de donn\u00e9es SSIS\" class=\"wp-image-1302\" srcset=\"https:\/\/expert-only.com\/wp-content\/uploads\/2017\/08\/ssis-2008-count-distinct-composant-aggregate-6.jpg 535w, https:\/\/expert-only.com\/wp-content\/uploads\/2017\/08\/ssis-2008-count-distinct-composant-aggregate-6-300x225.jpg 300w, https:\/\/expert-only.com\/wp-content\/uploads\/2017\/08\/ssis-2008-count-distinct-composant-aggregate-6-326x245.jpg 326w, https:\/\/expert-only.com\/wp-content\/uploads\/2017\/08\/ssis-2008-count-distinct-composant-aggregate-6-80x60.jpg 80w\" sizes=\"auto, (max-width: 535px) 100vw, 535px\" \/><figcaption class=\"wp-element-caption\"><em>Ex\u00e9cution avec succ\u00e8s du flux de donn\u00e9es SSIS<\/em><\/figcaption><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\">Conclusion sur le calcul de lignes avec SSIS<\/h3>\n\n\n\n<p>Enfin, cet article montre pas \u00e0 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\u00e9 de r\u00e9aliser les op\u00e9rations SQL directement sur le moteur SQL Server. Le but est de diminuer le transfert de donn\u00e9es entre <a href=\"https:\/\/expert-only.com\/fr\/dba\/creer-une-base-avec-ssms\/\"><strong>la base de donn\u00e9es SQL<\/strong><\/a> et le serveur SSIS. Par ailleurs, les packages Integration Services permettent toutes les op\u00e9rations disponibles en T-SQL, mais via une interface graphique et une industrialisation facilit\u00e9e. Voici par exemple <a href=\"https:\/\/expert-only.com\/fr\/ssis\/lignes-en-colonnes-avec-ssis-pivot\/\"><strong>comment pivoter les lignes d&rsquo;une table SQL en colonnes avec SSIS<\/strong><\/a>.<\/p>\n\n\n\n<figure class=\"wp-block-embed aligncenter is-type-wp-embed is-provider-tutoriels-sql-et-it wp-block-embed-tutoriels-sql-et-it\"><div class=\"wp-block-embed__wrapper\">\nhttps:\/\/expert-only.com\/fr\/ssis\/lignes-en-colonnes-avec-ssis-pivot\/\n<\/div><\/figure>\n\n\n\n<p>Il est bien s\u00fbr possible d&rsquo;effectuer la m\u00eame op\u00e9ration pour pivoter des donn\u00e9es d&rsquo;une autre mani\u00e8re. Elle est tr\u00e8s pratique car via une seule op\u00e9ration T-SQL, mais plus complexe en termes de code, c&rsquo;est <a href=\"https:\/\/expert-only.com\/fr\/t-sql\/pivot-sql-server\/\"><strong>la requ\u00eate PIVOT SQL Server<\/strong><\/a>, directement depuis SSMS par exemple et avec du code T-SQL uniquement.<\/p>\n\n\n\n<figure class=\"wp-block-embed aligncenter is-type-wp-embed is-provider-tutoriels-sql-et-it wp-block-embed-tutoriels-sql-et-it\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"G7z9pf8UUx\"><a href=\"https:\/\/expert-only.com\/fr\/t-sql\/pivot-sql-server\/\">Exemple de Requ\u00eate PIVOT SQL Server<\/a><\/blockquote><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"\u00ab\u00a0Exemple de Requ\u00eate PIVOT SQL Server\u00a0\u00bb &#8212; Tutoriels SQL et IT\" src=\"https:\/\/expert-only.com\/fr\/t-sql\/pivot-sql-server\/embed\/#?secret=pE67Hl619e#?secret=G7z9pf8UUx\" data-secret=\"G7z9pf8UUx\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<div class=\"mh-excerpt\"><p>Comment calculer le nombre de lignes distinctes d&rsquo;une table SQL ou d&rsquo;un fichier de donn\u00e9es dans un flux SSIS ? Comment compter le nombre de lignes distinctes avec SSIS et le stocker dans un fichier texte, une table ou <a class=\"mh-excerpt-more\" href=\"https:\/\/expert-only.com\/fr\/ssis\/nombre-de-lignes-distinctes-avec-ssis\/\" title=\"Comment compter le nombre de lignes distinctes avec SSIS ?\">&#8230;<\/a><\/p>\n<\/div>","protected":false},"author":1,"featured_media":10867,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9],"tags":[],"class_list":{"0":"post-1296","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-ssis"},"_links":{"self":[{"href":"https:\/\/expert-only.com\/fr\/wp-json\/wp\/v2\/posts\/1296","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/expert-only.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/expert-only.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/expert-only.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/expert-only.com\/fr\/wp-json\/wp\/v2\/comments?post=1296"}],"version-history":[{"count":15,"href":"https:\/\/expert-only.com\/fr\/wp-json\/wp\/v2\/posts\/1296\/revisions"}],"predecessor-version":[{"id":27122,"href":"https:\/\/expert-only.com\/fr\/wp-json\/wp\/v2\/posts\/1296\/revisions\/27122"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/expert-only.com\/fr\/wp-json\/wp\/v2\/media\/10867"}],"wp:attachment":[{"href":"https:\/\/expert-only.com\/fr\/wp-json\/wp\/v2\/media?parent=1296"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/expert-only.com\/fr\/wp-json\/wp\/v2\/categories?post=1296"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/expert-only.com\/fr\/wp-json\/wp\/v2\/tags?post=1296"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}