Exemple de package de nettoyage de données Data Cleaning

Mis à jour : 5 décembre 2005

L'exemple Data Cleaning est un package qui nettoie des données. Ce package utilise comme données une liste de noms et d'adresses qui représentent des clients potentiels. Ces données nécessitent un nettoyage : elles contiennent des fautes d'orthographe, des informations manquent et, parmi les clients concernés, certains se trouvent déjà dans la base de données, d'autres y figurent par erreur ou il existe plusieurs instances légèrement différentes du même client.

Le contrôle de flux du package consiste en deux tâches. La première est une tâche d'exécution SQL qui crée la table d'entrée, CustomerLeads, et les trois tables de sortie nommées ExistingCustomerLeads, NewCustomerLeads et DuplicateCustomerLeads. La seconde tâche est une tâche de flux de données qui effectue le nettoyage des données extraites de la table CustomerLeads. La tâche de flux de données identifie les clients nouveaux, existants et en double, puis elle écrit les lignes de chaque type de client dans la table de sortie appropriée.

Si vous exécutez l'exemple sur une version non anglaise de Windows, vous devrez peut-être remplacer le nom de dossier Program Files par sa traduction pour pouvoir ouvrir ou exécuter l'exemple.

ms160742.note(fr-fr,SQL.90).gifRemarque :
Cet exemple emploie les transformations de regroupement probable et de recherche floue, qui sont disponibles uniquement dans la version Entreprise de SQL Server 2005.
ms160742.note(fr-fr,SQL.90).gifImportant :
Les exemples sont fournis uniquement à titre éducatif. Ils ne sont pas destinés à être utilisés dans un environnement de production et n'ont pas été testés à cet usage. Microsoft ne fournit aucun support technique pour ces exemples.

Pour plus d'informations sur le nettoyage de données, recherchez les articles suivants dans MSDN Library à l'adresse http://msdn.microsoft.com/library.

  • Data Cleansing Applications with SQL Server Integration Services (Vidéo Windows Media)
  • Data Cleaning using the Fuzzy Grouping and Fuzzy Lookup Transformations (livre blanc)

Configuration requise

L'exécution de cet exemple de package nécessite les éléments suivants :

  • Vous devez avoir installé la base de données AdventureWorks et y bénéficier des autorisations administratives.
  • Si vous comptez seulement exécuter l'exemple de package à partir de la ligne de commande, vous devez installer SQL Server 2005 Integration Services (SSIS).
  • Si vous avez l'intention d'ouvrir et d'exécuter le package dans le Concepteur SSIS, vous devez installer Business Intelligence Development Studio.

Pour plus d'informations sur l'installation des exemples, consultez « Installation des exemples de packages Integration Services » dans la documentation en ligne de SQL Server. Pour vous procurer la dernière version des exemples, y compris les nouveaux exemples publiés depuis la version d'origine de SQL Server 2005, consultez Exemples et exemples de base de données SQL Server 2005 (avril 2006).

Emplacement de l'exemple de package

Si les exemples ont été installés à l'emplacement par défaut, le package Data Cleaning se trouve dans le dossier suivant :

C:\Program Files\Microsoft SQL Server\90\Samples\Integration Services\Package Samples\DataCleaning Sample\Data Cleaning\.

Les fichiers suivants sont nécessaires pour exécuter cet exemple de package.

Fichier Description

DataCleaning.dtsx

Exemple de package.

CreateTables.sql

Instructions SQL pour créer les tables.

Ajout de visionneuses de données à l'exemple

Pour mieux comprendre comment le package Data Cleaning fonctionne, vous pouvez ajouter des visionneuses de données au flux de données, puis afficher les données à mesure qu'elles passent entre les composants du flux de données. Nous vous recommandons d'ajouter des visionneuses de données dans les chemins suivants :

  • Chemin de Union All à OLE DB Destination-Existing Customers
  • Chemin de Conditional Split on Canonical Record for Group à OLE DB Destination-Unique Customer Leads
  • Chemin de Conditional Split on Canonical Record for Group à OLE DB Destination-Duplicate Customer Leads

Pour ajouter les visionneuses de données

  1. Cliquez avec le bouton droit sur le chemin, puis cliquez sur Visionneuses de données.

  2. Dans l'Éditeur du chemin d'accès au flux de données, cliquez sur Ajouter.

  3. Dans la boîte de dialogue Configurer la Visionneuse de données, cliquez sur Grille dans la liste de types. Par défaut, toutes les colonnes s'affichent dans la visionneuse de données.

  4. Recommencez les étapes 1-3 pour les autres chemins.

Exécution de l'exemple

Le package peut être exécuté soit à partir de la ligne de commande à l'aide de l'utilitaire dtexec, soit dans Business Intelligence Development Studio.

Si vous utilisez une version non anglaise de Windows, vous devrez peut-être mettre à jour la propriété ConnectionString de tous les gestionnaires de connexions de fichiers utilisés dans le package pour pouvoir exécuter comme il se doit l'exemple de package. Vérifiez que le chemin d'accès utilisé dans le gestionnaire de connexions est valide sur votre ordinateur et, le cas échéant, modifiez le chemin d'accès pour utiliser le nom traduit du dossier Program Files.

Pour cet exemple, vous serez sans doute amené à mettre à jour « Program Files » dans la propriété ConnectionString du gestionnaire de connexions CreateTables.sql.

Pour exécuter le package à l'aide de dtexec

  1. Ouvrez une fenêtre d'invite de commandes.

  2. Accédez au répertoire C:\Program Files\Microsoft SQL Server\90\DTS\Binn, l'emplacement de dtexec.

  3. Tapez la commande suivante :

    dtexec /f "C:\Program Files\Microsoft SQL Server\90\Samples\Integration Services\Package Samples\Data Cleaning Sample\DataCleaning\DataCleaning.dtsx"
    
  4. Appuyez sur Entrée.

Pour plus d'informations sur l'exécution du package à l'aide de l'utilitaire dtexec, consultez la rubrique « Utilitaire dtexec » dans la documentation en ligne de SQL Server 2005.

Pour exécuter le package dans Business Intelligence Development Studio

  1. Ouvrez Business Intelligence Development Studio.

  2. Dans le menu Fichier, pointez sur Ouvrir, puis cliquez sur Projet/Solution.

  3. Recherchez le dossier DataCleaning Sample, puis double-cliquez sur le fichier nommé DataCleaning.sln.

  4. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur DataCleaning.dtsx dans le dossier Packages SSIS, puis cliquez sur Exécuter le package.

ms160742.note(fr-fr,SQL.90).gifRemarque :
Si vous ouvrez le package dans le Concepteur SSIS et affichez ses propriétés, vous remarquerez que la propriété DelayValidation a la valeur True. La validation du package doit être retardée parce que certaines tables utilisées par l'exemple de package Data Cleaning (la table d'entrée CustomerLeads et les trois tables de sortie nommées ExistingCustomerLeads, NewCustomerLeads et DuplicateCustomerLeads) ne seront créées que lors de la première exécution du package. Si DelayValidation a la valeur False, une erreur de validation se produit lorsque vous ouvrez le package dans le concepteur SSIS avant de l'exécuter.

Composants de l'exemple

Le tableau suivant répertorie les tâches, les conteneurs, les sources et les destinations de données, ainsi que les transformations qui sont utilisés dans l'exemple.

Élément Fonction

Tâche d'exécution SQL

La tâche d'exécution SQL est appelée Create Customer Address Reference Table View, Populate NewCustomer Input Table and Create Output Tables. Cette tâche crée la table d'entrée, CustomerLeads, et les trois tables de sortie nommées ExistingCustomerLeads, NewCustomerLeads et DuplicateCustomerLeads.

Tâche de flux de données

La tâche de flux de données, Fuzzy Lookup Data Flow Task, exécute le flux de données du package.

Source OLE DB

La source OLE DB, OLE DB Source - Customer Leads, lit les enregistrements de la table CustomerLeads.

Transformation de recherche

La transformation de recherche, Lookup against Existing Customers, effectue une recherche exacte visant à identifier les clients existants. Si la recherche réussit, l'enregistrement est inséré dans la table ExistingCustomerLeads.

Transformation de colonne dérivée

La transformation de colonne dérivée, Derived Column, ajoute les colonnes _Similarity à chaque ligne et définit la valeur de colonne à 1.

Transformation de recherche floue

La transformation de recherche floue, Fuzzy Lookup against Existing Customers, effectue une recherche floue pour identifier les enregistrements des clients qui correspondent approximativement à des clients existants.

La transformation ajoute une colonne _Similarity contenant un score de similarité à chaque ligne. Le score 0,0 signifie qu'aucune correspondance n'a été trouvée, alors que 1,0 signifie qu'une correspondance exacte a été détectée. Un score compris entre 0,0 et 1,0 est une mesure de similarité : plus la valeur est proche de 1,0, plus la ressemblance est grande.

Transformation de fractionnement conditionnel

La première transformation de fractionnement conditionnel, ConditionalSplit on _Similarity, ventile les lignes d'entrée entre deux sorties en fonction de la valeur du score de similarité déterminé par la recherche floue. Les lignes ayant un score de similarité >= 0,70 sont écrites dans la table ExistingCustomerLeads. Les lignes dotées de scores de similarité inférieurs à (<) 0,70 sont probablement de nouveaux responsables de clients valides. Le nettoyage de ces lignes se poursuit.

La seconde transformation de fractionnement conditionnel, Conditional Split on Canonical Record for Group, ventile les lignes d'entrée entre deux sorties selon que la ligne de données est un doublon ou non. Si les valeurs des colonnes _key_in et _key_out sont égales, la ligne est utilisée comme ligne canonique dans le groupe et la ligne canonique est insérée dans la table NewCustomerLeads. Si les valeurs des colonnes _key_in et _key_out ne sont pas égales, la ligne est traitée comme un doublon approximatif et elle est insérée dans la table DuplicateCustomerLeads.

Transformation d'union totale

La transformation d'union totale, Union All, fusionne les lignes de clients existants (que la correspondance soit exacte ou approximative) en un seul dataset.

Transformation de regroupement probable

La transformation de regroupement probable, Fuzzy Grouping, regroupe les clients qui sont probablement des doublons. La transformation ajoute trois colonnes, _key_in, _key_out et _score à chaque ligne. _key_in est un identificateur unique attribué à chaque ligne d'entrée et _key_out contient la valeur _key_in particulière attribuée à la ligne qui représente le mieux toutes les lignes d'un groupe probable. Toutes les lignes d'un groupe probable possèdent la même valeur _key_out. La colonne _score contient une valeur comprise entre 0,0 et 1,0 qui décrit la similarité textuelle entre une ligne d'entrée donnée et la ligne sélectionnée comme valeur canonique.

Destinations OLE DB

La destination OLE DB, OLE DB Destination - Existing Customers, insère les lignes dans la table ExistingCustomerLeads.

La destination OLE DB, OLE DB Destination - Unique Customer Leads, insère les lignes dans la table NewCustomerLeads.

La destination OLE DB, OLE DB Destination - Duplicate Customer Leads, insère les lignes dans la table DuplicateCustomerLeads.

Gestionnaire de connexions de fichiers

Le Gestionnaire de connexions de fichiers, CreateTables.sql, établit la connexion au fichier qui contient les instructions SQL qu'utilise le package.

Gestionnaire de connexions OLE DB

Le Gestionnaire de connexions OLE DB, (local).AdventureWorks, établit la connexion à la base de données AdventureWorks sur le serveur local.

Le tableau suivant décrit les données des tables de sortie.

Table Description

ExistingCustomerLeads

Contient les enregistrements qui correspondent exactement à un client existant et les enregistrements qui correspondent approximativement à un client existant avec une similarité textuelle très élevée.

NewCustomerLeads

Contient les enregistrements pour lesquels il n'existe pas de bonne correspondance avec un client existant. Si la liste contenait plusieurs instances du même nom, ou une version très similaire d'un nom particulier, un seul enregistrement est dirigé vers NewCustomerLeads, les doublons étant dirigés vers DuplicateCustomerLeads.

DuplicateCustomerLeads

Contient les doublons de nouveaux clients.

Résultats de l'exemple

Pour voir les résultats de l'exécution de l'exemple de package Data Cleaning, exécutez la requête Transact-SQL suivante :

Select * from AdventureWorks.FuzzyLookupExample.ExistingCustomerLeads
Select * from AdventureWorks.FuzzyLookupExample.NewCustomerLeads
Select * from AdventureWorks.FuzzyLookupExample.DuplicateCustomerLeads

Historique des modifications

Version Historique

5 décembre 2005

Contenu modifié :
  • Correction du nom du schéma à utiliser dans les instructions SELECT qui retournent des résultats d'exécution.