Filtrage d'une table imbriquée dans un modèle d'exploration de données (Didacticiel sur l'exploration de données intermédiaire)

Après avoir créé et exploré le modèle, vous décidez de vous concentrer sur un sous-ensemble des données des clients. Par exemple, vous pouvez souhaiter analyser uniquement les paniers qui contiennent un article spécifique ou les caractéristiques démographiques des clients qui n'ont rien acheté pendant une certaine période.

SQL Server 2008 Analysis Services vous permet de filtrer les données utilisées dans un modèle d'exploration de données, afin que vous n'ayez pas besoin de configurer une nouvelle vue de source de données pour les différentes données. Dans le Didacticiel sur l'exploration de données de base, vous avez appris à filtrer les données d'une table plate en appliquant des conditions à la table de cas. Au cours de cette tâche, vous allez créer un filtre qui s'applique à une table imbriquée.

Filtres sur des tables imbriquées ou des tables de cas

Si votre vue de source de données contient une table de cas et une table imbriquée, à l'instar de la vue de source de données utilisée dans le modèle Association, vous pouvez effectuer un filtrage sur les valeurs de la table de cas, sur la présence ou l'absence d'une valeur dans la table imbriquée ou sur une combinaison des deux.

Au cours de cette tâche, vous allez d'abord effectuer une copie du modèle Association, puis ajouter les attributs IncomeGroup et Region au nouveau modèle associé, afin de pouvoir filtrer ces attributs dans la table de cas.

Pour créer et modifier une copie du modèle Association

  1. Sous l'onglet Modèles d'exploration de données de Business Intelligence Development Studio, cliquez avec le bouton droit sur le modèle Association et sélectionnez Nouveau modèle d'exploration de données.

  2. Dans Nom du modèle, tapez Association avec filtre. Dans Nom d'algorithme, sélectionnez Algorithme MAR (Microsoft Association Rules). Cliquez sur OK.

  3. Dans la colonne du modèle Association Filtered, cliquez sur la ligne IncomeGroup et modifiez la valeur Ignorer en Entrée.

Ensuite, vous allez créer un filtre sur la table de cas dans le nouveau modèle Association. Le filtre va passer au modèle uniquement les clients inclus dans la région cible ou possédant le niveau de revenu cible. Ensuite, vous allez ajouter un deuxième jeu de conditions de filtre pour spécifier que le modèle utilise uniquement les clients dont les paniers ont contenu au moins un article.

Pour ajouter un filtre à un modèle d'exploration de données

  1. Sous l'onglet Modèles d'exploration de données, cliquez avec le bouton droit sur le modèle Association Filtered et sélectionnez Définir le filtre de modèle.

  2. Dans la boîte de dialogue Filtre de modèle, cliquez sur la ligne supérieure dans la grille, dans la zone de texte Colonne de la structure d'exploration de données.

  3. Dans la zone de texte Colonne de la structure d'exploration de données, sélectionnez IncomeGroup.

    L'icône située à gauche de la zone de texte change pour indiquer que l'élément sélectionné est une colonne.

  4. Cliquez sur la zone de texte Opérateur et sélectionnez l'opérateur = dans la liste.

  5. Cliquez sur la zone de texteValeur et tapez High dans la zone.

  6. Cliquez sur la ligne suivante dans la grille.

  7. Cliquez sur la zone de texte AND/OR dans la ligne suivante de la grille et sélectionnez OR.

  8. Dans la zone de texte Colonne de la structure d'exploration de données, sélectionnez IncomeGroup. Dans la zone de texte Valeur, tapez Moderate.

    La condition de filtre que vous avez créée s'ajoute automatiquement à la zone de texte Expression et doit apparaître comme suit :

    [IncomeGroup] = 'High' OR [IncomeGroup] = 'Moderate'

  9. Cliquez sur la ligne suivante dans la grille, en laissant l'opérateur par défaut, AND.

  10. Dans Opérateur, laissez la valeur par défaut, à savoir Contient. Cliquez sur la zone de texte Valeur.

  11. Dans la boîte de dialogue Filtre, dans la première ligne sous Colonne de la structure d'exploration de données, sélectionnez Model.

  12. Dans Opérateur, sélectionnez IS NOT NULL. Laissez la zone de texte Valeur non renseignée. Cliquez sur OK.

    La condition de filtre dans la zone de texte Expression de la boîte de dialogue Filtre de modèle se met automatiquement à jour afin d'inclure la nouvelle condition sur la table imbriquée. L'expression complétée se présente comme suit :

    [IncomeGroup] = 'High' OR [IncomeGroup] = 'Moderate' AND EXISTS (SELECT * FROM [vAssocSeqLineItems] WHERE [Model] <> NULL)

  13. Cliquez sur OK.  

Pour activer l'extraction et traiter le modèle filtré

  1. Sous l'onglet Modèles d'exploration de données, cliquez avec le bouton droit sur le modèle Association avec filtre et sélectionnez Propriétés.

  2. Attribuez à la propriété AllowDrillThrough la valeur True.

  3. Cliquez avec le bouton droit sur le modèle d'exploration de données Association avec filtre et sélectionnez Traiter le modèle.

  4. Cliquez sur Oui dans le message d'erreur pour déployer le nouveau modèle dans la base de données Analysis Services.

  5. Dans la boîte de dialogue Traiter la structure d'exploration de données, cliquez sur Exécuter.

  6. Lorsque le traitement est terminé, cliquez sur Fermer pour quitter la boîte de dialogue État d'avancement du traitement, puis cliquez de nouveau sur Fermer pour quitter la boîte de dialogue Traiter la structure d'exploration de données.

Vous pouvez vérifier que le modèle filtré contient moins de cas que le modèle d'origine en utilisant la visionneuse de l'arborescence de contenu générique Microsoft et en recherchant la valeur de NODE_SUPPORT.

Notes

Le filtre de table imbriquée que vous venez de créer recherche uniquement la présence d'au moins une ligne dans la table imbriquée ; toutefois, vous pouvez également créer des conditions de filtre qui permettent de rechercher la présence de produits spécifiques. Par exemple, vous pouvez créer le filtre suivant :

 [IncomeGroup] = 'High' AND
  EXISTS (SELECT * FROM [<nested table name>] WHERE [Model] = 'Water Bottle' ) 

Cette instruction signifie que vous restreignez les clients figurant dans la table de cas à uniquement ceux qui ont acheté une bouteille d'eau. Toutefois, puisque le nombre d'attributs de table imbriquée est potentiellement illimité, Analysis Services ne fournit pas de liste de valeurs possibles à sélectionner. Vous devez alors taper la valeur exacte.

Vous pouvez cliquer sur Modifier la requête pour modifier manuellement l'expression de filtre. Toutefois, si vous modifiez manuellement quelque partie que ce soit d'une expression de filtre, la grille est alors désactivée et vous devez utiliser l'expression de filtre en mode édition de texte uniquement. Pour restaurer le mode de modification de grille, vous devez effacer l'expression de filtre et recommencer.

En outre, notez que vous ne pouvez pas utiliser l'opérateur LIKE dans une table imbriquée.