Définition du membre inconnu et des propriétés de traitement Null
Quand Analysis Services traite une dimension, toutes les valeurs distinctes des colonnes sous-jacentes dans les tables ou des vues dans la vue de source de données remplissent les attributs de la dimension. Si Analysis Services rencontre une valeur Null pendant le traitement, par défaut, il la convertit en zéro pour les colonnes numériques ou en chaîne vide pour les colonnes de chaîne. Vous pouvez modifier les 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. En outre, vous pouvez faire en sorte qu’Analysis Services convertit 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 automatiquement ces propriétés si l'attribut de 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 de clé a la valeur UnknownMember et la propriété UnknownMember a la valeur Visible.
Toutefois, quand 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 dans un cube, les propriétés UnknownMember et NullProcessing doivent peut-être être définies manuellement.
Dans les tâches de cette rubrique, vous allez ajouter la catégorie de produit et les attributs de sous-catégorie de produit à la dimension Product à partir de tables en flocons que vous allez ajouter à la vue de source de données Adventure Works DW. Vous allez ensuite activer la propriété UnknownMember pour la dimension Product, spécifier Assembly Components
comme valeur pour la propriété UnknownMemberName , lier les Subcategory
attributs et Category
à l’attribut product name, puis définir la gestion personnalisée des erreurs pour l’attribut de clé membre qui lie les tables en flocons.
Notes
Si vous avez ajouté les attributs Subcategory et Category lors de la définition initiale du cube analysis Services Tutorial à l’aide de l’Assistant Cube, ces étapes auraient été effectuées automatiquement pour vous.
Vérification des 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 sa valeur est None , et non Visible ou Hidden, et 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 .
Si la propriété ErrorConfiguration a la valeur (Personnalisé) , vous avez la possibilité 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 de propriété définis pour la collection de propriétés ErrorConfiguration .
de
Cliquez sur l’onglet Navigateur , vérifiez que Lignes de modèle de produit est sélectionné dans la liste Hiérarchie , puis développez
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, en commençant 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
Ouvrez la vue de source de données Designer pour la vue de source de données Adventure Works DW, sélectionnez Reseller Sales dans le volet Organisateur de diagramme, puis cliquez sur Ajouter/supprimer des objets dans le menu Affichage de source de données de SQL Server Data Tools (SSDT).
La boîte de dialogue Ajouter/supprimer des tables s’affiche.
Dans la liste Objets inclus , sélectionnez DimProduct (dbo), puis cliquez sur Ajouter des tables associées.
Les tables DimProductSubcategory (dbo) et FactProductInventory (dbo) sont ajoutées. Supprimez FactProductInventory (dbo) pour que seule la table DimProductSubcategory (dbo) soit ajoutée à la liste des Objets inclus .
Une fois la table DimProductSubcategory (dbo) sélectionnée par défaut comme la table la plus récemment ajoutée, recliquez sur Ajouter des tables associées .
La table DimProductCategory (dbo) est ajoutée à la liste Objets inclus .
Cliquez sur OK.
Dans le menu Format de SQL Server Data Tools, pointez sur Disposition automatique, puis cliquez sur Diagramme.
Notez que la table DimProductSubcategory (dbo) et la table DimProductCategory (dbo) sont liées l’une à l’autre, ainsi qu’à la table ResellerSales , par le biais de la table Product .
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 cliquez sur 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 cliquez sur Nouvel attribut de colonne.
Dans le volet Attributs , remplacez le nom de ce nouvel attribut par
Category
.Dans le Fenêtre Propriétés, cliquez dans le champ de propriété NameColumn, puis cliquez sur le bouton parcourir (...) pour ouvrir la boîte de dialogue Colonne de noms.
Sélectionnez EnglishProductCategoryName dans la liste Colonne source , 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, puis cliquez sur Nouvel attribut de colonne.
Dans le volet Attributs , remplacez le nom de ce nouvel attribut par
Subcategory
.Dans le Fenêtre Propriétés, cliquez dans le champ de propriété NameColumn, puis cliquez sur le bouton parcourir (...) pour ouvrir la boîte de dialogue Colonne de nom.
Sélectionnez EnglishProductSubcategoryName dans la liste Colonne source , puis cliquez sur OK.
Créez une hiérarchie définie par l’utilisateur appelée Catégories de produits avec les niveaux suivants, dans l’ordre de haut en bas :
Category
,Subcategory
et Nom du produit.Spécifiez
All Products
comme valeur pour la propriété AllMemberName de la hiérarchie définie par l’utilisateur Catégories de produits.
Exploration des 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 la dimension « Product » terminé dans la boîte de dialogue État d’avancement du traitement , développez Traitement de l’attribut de dimension « Product Name » 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 Lignes de modèle de produit apparaît dans la liste Hiérarchie , développez
All Products
, puis Développez Composants.Sélectionnez Catégories de produits dans la liste Hiérarchie , développez
All Products
, puis Développez Composants.Notez qu'aucun composant d'assembly n'apparaît.
Pour modifier le comportement mentionné dans la tâche précédente, vous allez activer la propriété UnknownMember de la dimension Products, définir une valeur pour la propriété UnknownMemberName , définir la propriété NullProcessing pour les Subcategory
attributs et Model Name sur UnknownMember, définir l’attribut Category
en tant qu’attribut associé de l’attribut Subcategory
, puis définir l’attribut Product Line en tant qu’attribut associé de l’attribut Model Name . Ces étapes entraînent l’utilisation par Analysis Services de la valeur du nom de membre inconnu pour chaque produit qui n’a pas de valeur pour la colonne SubcategoryKey , comme vous le verrez 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
Dans le Concepteur de dimensions pour la dimension Product , cliquez sur l’onglet Structure de dimension , puis sélectionnez Product dans le volet Attributs .
Dans la fenêtre Propriétés , remplacez la propriété UnknownMember par Visible, puis remplacez la valeur de la propriété UnknownMemberName par
Assembly Components
.L’attribution de la valeur Visible ou Hidden à la propriété UnknownMember active la propriété UnknownMember de la dimension.
Cliquez sur l’onglet Relations d’attributs .
Dans le diagramme, cliquez avec le bouton droit sur l’attribut
Subcategory
, puis sélectionnez Nouvelle relation d’attribut.Dans la boîte de dialogue Créer une relation d’attribut , l’attribut source est
Subcategory
. Définissez l’attribut connexe surCategory
. Laissez le type de relation défini sur Flexible.Cliquez sur OK.
Dans le volet Attributs , sélectionnez Subcategory
Dans la fenêtre Propriétés, développez la propriété KeyColumns , puis la propriété DimProductSubcategory.ProductSubcategoryKey (Integer) .
Remplacez la propriété NullProcessing par UnknownMember.
Dans le volet Attributs , sélectionnez Model Name.
Dans la fenêtre Propriétés, développez la propriété KeyColumns , puis la propriété Product.ModelName (WChar) .
Remplacez la propriété NullProcessing par UnknownMember.
En raison de ces modifications, quand Analysis Services rencontre une valeur Null pour l’attribut
Subcategory
ou l’attribut Model Name pendant le traitement, la valeur de membre inconnue est remplacée par la valeur de clé et les hiérarchies définies par l’utilisateur sont construites correctement.
Nouvelle exploration de 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 que Catégories de produits 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
Assembly Components
membre duCategory
niveau, puis développez leAssembly Components
membre duSubcategory
niveau.Notez que tous les composants d’assembly apparaissent maintenant au niveau Product Name , comme le montre l’illustration suivante.
Leçon suivante
Leçon 5 : Définition des relations entre les dimensions et les groupes de mesures