Définition du membre inconnu et des propriétés de traitement Null
Lorsque Microsoft SQL Server 2005 Analysis Services (SSAS) traite une dimension, toutes les valeurs distinctes des colonnes sous-jacentes dans les tables ou les vues de la vue de source de données remplissent les attributs dans la dimension. Si Analysis Services rencontre une valeur Null au cours du traitement, par défaut, elle convertit celle-ci en zéro pour des colonnes numériques ou en une chaîne vide pour des colonnes de type chaîne - aucune erreur n'est générée. Vous pouvez modifier ces paramètres par défaut ou convertir les valeurs Null dans votre processus d'extraction, de transformation et de chargement (le cas échéant) de l'entrepôt de données relationnelles sous-jacent. Vous pouvez aussi faire convertir par Analysis Service la valeur Null en une valeur désignée en configurant trois propriétés : les propriétés UnknownMember et UnknownMemberName pour la dimension et la propriété NullProcessing pour l'attribut clé de la dimension.
L'Assistant Dimension et l'Assistant Cube activeront ces propriétés correctement si l'attribut clé d'une dimension peut accepter une valeur Null ou si l'attribut racine d'une dimension en flocons est basée sur une colonne pouvant être Null. Dans ce cas, la propriété NullProcessing de l'attribut clé a la valeur UnknownMember et la propriété UnknownMember a la valeur Visible.
Remarque : |
---|
La valeur par défaut du membre inconnu est Unknown. Vous pouvez spécifier une valeur différente en affectant une autre valeur à la propriété UnknownMemberName. |
Cependant, lorsque vous construisez des dimensions à flocons incrémentielles, comme c'est le cas avec la dimension Product dans ce didacticiel, ou si vous définissez des dimensions à l'aide du Concepteur de dimensions puis incorporez ces dimensions existantes dans un cube, il peut être nécessaire de définir manuellement les propriétés UnknownMember et NullProcessing.
Comme l'illustre la tâche suivante, lorsque Analysis Services traite une dimension en flocons, Analysis Services supprime les membres d'attribut dont la valeur est Null pour la colonne qui lie les tables en flocons, sauf si vous modifiez les paramètres pour certaines propriétés. Aucune erreur ne se produit car, par défaut, Analysis Services ignore ce type d'erreur. En effet, par défaut, la propriété NullKeyCovertedToUnknown a la valeur IgnoreError. Analysis Services supprime le membre d'attribut avec la valeur Null, car il effectue une jointure interne entre les deux tables en flocons.
Vous pouvez contrôler la façon dont Analysis Services effectue le traitement dans ce cas, en procédant comme suit :
- Activez la propriété UnknownMember pour la dimension.
- Spécifiez une valeur pour la propriété UnknownMemberName de la dimension.
- Définissez les relations d'attributs qui lient les attributs de dimension.
- Définissez une gestion d'erreur personnalisée pour la colonne clé qui lie les tables en flocons.
Au cours des tâches de cette rubrique, vous allez ajouter les attributs de la catégorie de produit et de la sous-catégorie de produit à la dimension Product des tables en flocons que vous avez ajoutées à la vue de source de données de l'entrepôt de données Adventure Works. Vous allez ensuite activer la propriété UnknownMember pour la dimension Product, spécifier la valeur Assembly Components pour la propriété UnknownMemberName, lier les attributs Subcategory et category à l'attribut du nom de produit, puis définir une gestion d'erreur personnalisée pour l'attribut clé de membre qui lie les tables en flocons.
Remarque : |
---|
Si vous avez ajouté les attributs Subcategory et Category lors de la définition initiale du cube du didacticiel de Analysis Services à l'aide de l'Assistant Cube, ces étapes ont été effectuées automatiquement. |
Vérification des propriétés de la gestion d'erreur et du membre inconnu dans la dimension Product
Pour vérifier les propriétés de la gestion d'erreur et du membre inconnu dans la dimension Product
Affichez le Concepteur de dimensions pour la dimension Product, cliquez sur l'onglet Structure de dimension, puis sélectionnez Product dans le volet Attributs.
Vous pouvez ainsi afficher et modifier les propriétés de la dimension elle-même.
Dans la fenêtre des propriétés, vérifiez les propriétés UnknownMember et UnknownMemberName.
Notez que la propriété UnknownMember n'est pas activée car la valeur qui lui est affectée est None et non Visible ou Hidden et parce qu'aucun nom n'est spécifié pour la propriété UnknownMemberName.
Dans la fenêtre des propriétés, sélectionnez (Personnalisé) dans la cellule de la propriété ErrorConfiguration, puis développez la collection de propriétés ErrorConfiguration.
Définir la propriété ErrorConfiguration sur (Personnalisé) vous permet d'afficher les paramètres de configuration d'erreur par défaut - cela ne modifie aucun paramètre.
Vérifiez les propriétés de la clé et de la configuration de l'erreur de clé Null, mais n'apportez aucune modification.
Notez que par défaut, lorsque les clés Null sont converties en membre inconnu, l'erreur de traitement associée à cette conversion est ignorée.
L'illustration suivante montre les paramètres définis pour la collection de propriétés ErrorConfiguration.
Cliquez sur l'onglet Navigateur, vérifiez si Product Model Lines est sélectionné dans la liste Hiérarchie, puis développez le membre All Products.
Notez la présence de cinq membres au niveau Product Line.
Développez Components, puis le membre sans nom du niveau Model Name.
Ce niveau contient les composants d'assembly utilisés pour la création d'autres composants et qu'il commence par le produit Adjustable Race, comme le montre l'illustration suivante.
Définition des attributs à partir des tables en flocons et d'une hiérarchie définie par l'utilisateur Product Category
Pour définir des attributs à partir des tables en flocons et d'une hiérarchie définie par l'utilisateur Product Category
Ouvrez le Concepteur de vues de source de données pour la vue de source de données de l'entrepôt de données Adventure Works, sélectionnez Reseller Sales dans le volet Bibliothèque de diagrammes, puis cliquez sur Ajouter/Supprimer des tables dans le menu Vues des sources de données de Business Intelligence Development Studio.
La boîte de dialogue Ajouter/supprimer des tables s'affiche.
Dans la liste Objets inclus, sélectionnez dbo.DimProduct, puis cliquez sur Ajouter des tables associées.
La table dbo.DimProductSubcategory est ajoutée à la liste Objets inclus.
Une fois la table dbo.DimProductSubcategory sélectionnée par défaut et désignée comme la table ajoutée le plus récemment, cliquez à nouveau sur Ajouter des tables associées.
La table dbo.DimProductCategory est ajoutée à la liste Objets inclus.
Cliquez sur OK.
Dans le menu Format de BI Development Studio, pointez sur Disposition automatique, puis cliquez sur Diagramme.
Notez que la table dbo.DimProductSubcategory et la table dbo.DimProductCategory sont liées l'une à l'autre et également à la table ResellerSales par le biais de la table Product, comme le montre l'illustration suivante.
Affichez le Concepteur de dimensions pour la dimension Product, puis cliquez sur l'onglet Structure de dimension.
Cliquez avec le bouton droit dans le volet Vue de source de données, puis choisissez Afficher toutes les tables.
Dans le volet Vue de source de données, recherchez la table DimProductCategory, cliquez avec le bouton droit sur ProductCategoryKey dans cette table et choisissez Nouvel attribut de colonne.
Dans le volet Attributs, affectez à ce nouvel attribut le nom Category.
Dans la fenêtre des propriétés, sélectionnez la cellule de la propriété NameColumn, sélectionnez (nouveau), puis spécifiez DimProductCategory dans le champ Table source et EnglishProductCategoryName dans le champ Colonne source de la boîte de dialogue Liaison d'objets, puis cliquez sur OK.
Dans le volet Vue de source de données, recherchez la table DimProductSubcategory, cliquez avec le bouton droit sur ProductSubcategoryKey dans cette table et choisissez Nouvel attribut de colonne.
Dans le volet Attributs, affectez à ce nouvel attribut le nom Subcategory.
Dans la fenêtre des propriétés, sélectionnez la cellule de la propriété NameColumn, sélectionnez (nouveau), puis spécifiez DimProductSubcategory dans le champ Table source et EnglishProductSubcategoryName dans le champ Colonne source de la boîte de dialogue Liaison d'objets, puis cliquez sur OK.
Créez une nouvelle hiérarchie définie par l'utilisateur appelée Product Categories avec les niveaux suivants en commençant par le haut : Category, Subcategory et Product Name.
Spécifiez All Products comme valeur pour la propriété AllMemberName de la hiérarchie définie par l'utilisateur Product Categories.
Exploration des hiérarchies définies par l'utilisateur dans la dimension Product
Pour explorer les hiérarchies définies par l'utilisateur dans la dimension Product
Dans la barre d'outils de l'onglet Structure de dimension du Concepteur de dimensions pour la dimension Product, cliquez sur Traiter.
Cliquez sur Oui pour créer et déployer le projet, puis sur Exécuter pour traiter la dimension Product.
Une fois le traitement terminé, développez Traitement de Dimension « Nom du produit » terminé dans la boîte de dialogue État d'avancement du traitement, développez Traitement de l'attribut de Dimension « Nom du produit » terminé, puis développez Requêtes SQL 1.
Sélectionnez la requête SELECT DISTINCT et cliquez sur Afficher les détails.
Notez qu'une clause WHERE a été ajoutée à la clause SELECT DISTINCT qui supprime les produits pour lesquels il n'existe aucune valeur dans la colonne ProductSubcategoryKey, comme le montre l'illustration suivante.
Cliquez trois fois sur Fermer pour fermer toutes les boîtes de dialogue de traitement.
Cliquez sur l'onglet Navigateur dans le Concepteur de dimensions pour la dimension Product, puis cliquez sur Reconnexion.
Vérifiez que Product Model Lines apparaît dans la liste Hiérarchie, développez All Products, puis Components.
Notez l'absence des composants d'assembly qui est due à l'utilisation de la clause WHERE dans l'instruction SELECT DISTINCT, comme le montre l'illustration suivante.
Sélectionnez Product Categories dans la liste Hiérarchie, développez All Products, puis Components.
Notez qu'aucun composant d'assembly n'apparaît.
Pour modifier les résultats mentionnés à la tâche précédente, activez la propriété UnknownMember de la dimension Products, affectez une valeur à la propriété UnknownMemberName, affectez à la propriété NullProcessing des attributs Subcategory et Model Name la valeur UnknownMember, définissez l'attribut Category en tant qu'attribut associé de l'attribut Subcategory, puis définissez l'attribut Product Line en tant qu'attribut associé de l'attribut Model Name. Ces étapes permettront à Analysis Services d'utiliser la valeur du nom du membre inconnu pour les produits pour lesquels il n'existe pas de valeur pour la colonne SubcategoryKey, comme vous allez le constater dans la tâche suivante.
Activation du membre inconnu, définition des relations d'attribut et définition des propriétés de traitement personnalisé pour les valeurs Null
Pour activer le membre inconnu, définir des relations d'attribut et définir des propriétés de traitement personnalisé pour les valeurs Null
Cliquez sur l'onglet Structure de dimension dans le Concepteur de dimensions pour la dimension Product.
Dans la fenêtre des propriétés, affectez à la propriété UnknownMember de la dimension Product la valeur Visible et affectez à la propriété UnknownMemberName de cette dimension la valeur Assembly Components.
L'attribution de la valeur Visible ou Hidden à la propriété UnknownMember active la propriété UnknownMember de la dimension.
Dans le volet Attributs, développez les attributs suivants :
- Product Name
- Subcategory
- Model Name
Remarquez que Product Line est lié à l'attribut Model Name et donc lié indirectement à l'attribut clé Product Name. Notez qu'aucune relation d'attribut n'a été définie pour l'attribut Subcategory et que l'attribut Category est lié à l'attribut Product Name directement par l'attribut clé.
Faites glisser la relation d'attribut Category de l'attribut Product Name vers l'attribut Subcategory.
L'attribut Category est maintenant lié aux lignes de la table de faits par le biais de l'attribut Subcategory, qui est lui-même lié aux lignes de la table de faits par le biais de l'attribut Product Name.
Sélectionnez Subcategory dans le volet Attributs, puis cliquez sur le bouton Sélection (...) dans la cellule de la propriété KeyColumns dans la fenêtre des propriétés.
Dans la boîte de dialogue Éditeur de collection de DataItem, remplacez la propriété NullProcessing par UnknownMember, comme montré dans l'illustration suivante.
Cliquez sur OK.
Sélectionnez Model Name dans le volet Attributs, puis cliquez sur le bouton Sélection (...) dans la cellule de la propriété KeyColumns dans la fenêtre des propriétés.
Dans la boîte de dialogue Éditeur de collection de DataItem, remplacez la propriété NullProcessing par UnknownMember, puis cliquez sur OK.
Une fois cette modification apportée, lorsque Analysis Services rencontre une valeur Null pour l'attribut Subcategory ou Model Name au cours du traitement, la valeur du membre inconnu est utilisée comme valeur clé et les hiérarchies définies par l'utilisateur sont créées correctement.
Nouvelle exploration de la dimension Product
Pour explorer la dimension Product
Dans le menu Générer, cliquez sur Déployer Analysis Services Tutorial.
Une fois le déploiement terminé, cliquez sur l'onglet Navigateur dans le Concepteur de dimensions pour la dimension Product, puis cliquez sur Reconnexion.
Vérifiez si Product Categories est sélectionné dans la liste Hiérarchie, puis développez All Products.
Notez que Assembly Components apparaît en tant que nouveau membre du niveau Category.
Développez le membre Assembly Components du niveau Category puis développez le membre Assembly Components du niveau Subcategory.
Notez que tous les composants d'assembly apparaissent maintenant au niveau Product Name, comme le montre l'illustration suivante.
Sélectionnez Product Model Lines dans la liste Hiérarchie, développez All Products, développez le membre Assembly Components du niveau Product line, puis le membre Assembly Components du niveau Model name.
Notez que tous les composants d'assembly apparaissent maintenant au niveau Product Name.
Remarque : |
---|
Un projet finalisé jusqu'à la leçon 4 est disponible en téléchargeant et en installant les exemples mis à jour. Pour plus d'informations, consultez la rubrique relative à l'obtention des exemples mis à jour dans Installation des exemples. |
Leçon suivante
Leçon 5 : Définition des relations entre les dimensions et les groupes de mesures