Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Dans la leçon 3, vous avez appris à trier les membres d’attribut en fonction de leur nom ou de leur valeur de clé. Vous avez également appris à utiliser une clé de membre composite pour influencer les membres d’attribut et l’ordre du tri. Pour plus d’informations, consultez Modifier la dimension de la date. Toutefois, si ni le nom ni la clé de l’attribut ne fournissent l’ordre de tri souhaité, vous pouvez utiliser un attribut secondaire pour obtenir l’ordre de tri souhaité. En définissant une relation entre les attributs, vous pouvez utiliser le deuxième attribut pour trier les membres du premier attribut.
Les relations d’attribut définissent les relations ou les dépendances entre les attributs. Dans une dimension basée sur une table relationnelle unique, tous les attributs sont généralement liés les uns aux autres par le biais de l’attribut clé. Cela est dû au fait que tous les attributs d’une dimension fournissent des informations sur les membres liés par l’attribut clé de la dimension aux faits dans la table de faits pour chaque groupe de mesures associé. Dans une dimension basée sur plusieurs tables, les attributs sont généralement liés en fonction de la clé de jointure entre les tables. Si les données sous-jacentes la prennent en charge, les attributs associés peuvent être utilisés pour spécifier un ordre de tri. Par exemple, vous pouvez créer un nouvel attribut qui fournit la logique de tri d’un attribut associé.
Le Concepteur de dimensions vous permet de définir des relations supplémentaires entre des attributs ou de modifier les relations par défaut pour augmenter les performances. La contrainte principale lorsque vous créez une relation d’attribut est de s’assurer que l’attribut référencé n’a pas plus d’une valeur pour un membre dans l’attribut auquel il est lié. Lorsque vous définissez une relation entre deux attributs, vous pouvez définir la relation comme rigide ou flexible, selon que les relations entre les membres changeront au fil du temps. Par exemple, un employé peut passer à une autre région de vente, mais une ville ne passera pas à un autre état. Si une relation est définie comme rigide, les agrégations d’attributs ne sont pas recalculées chaque fois que la dimension est traitée de manière incrémentielle. Toutefois, si la relation entre les membres change, la dimension doit être entièrement traitée. Pour plus d’informations, consultez Relations d’attributs, Définir des relations d’attributs, configurer des propriétés de relation d’attribut et spécifier des relations d’attributs entre des attributs dans une hiérarchie User-Defined.
Dans les tâches de cette rubrique, vous allez définir un nouvel attribut dans la dimension Date en fonction d’une colonne existante dans la table de dimension sous-jacente. Vous utiliserez ce nouvel attribut pour trier les membres du mois de calendrier chronologiquement au lieu de l’ordre alphabétique. Vous allez également définir un nouvel attribut dans la dimension Customer en fonction du calcul nommé que vous utiliserez pour trier les membres de l’attribut Distance commutée . Dans les tâches de la rubrique suivante, vous allez apprendre à utiliser des relations d’attributs pour augmenter les performances des requêtes.
Définition d’une relation d’attribut et d’un ordre de tri dans la dimension de date
Ouvrez le Concepteur de dimensions pour la dimension Date , puis passez en revue la propriété OrderBy de l’attribut Month Name dans la fenêtre Propriétés.
Notez que les membres de l’attribut Month Name sont classés par leurs valeurs de clé.
Basculez vers l’onglet Navigateur , vérifiez que la date du calendrier est sélectionnée dans la liste Hiérarchie , puis développez les niveaux de la hiérarchie définie par l’utilisateur pour passer en revue l’ordre de tri des mois calendriers.
Notez que les membres de la hiérarchie d’attributs sont triés en fonction des valeurs ASCII de leurs clés membres, qui sont mois et année. Dans ce cas, le tri par le nom ou la clé d’attribut ne trie pas chronologiquement les mois calendaires. Pour résoudre ce problème, vous allez trier les membres de la hiérarchie d’attributs en fonction d’un nouvel attribut, l’attribut MonthNumberOfYear . Vous allez créer cet attribut en fonction d’une colonne qui existe facilement dans la table de dimension Date .
Passez à l’onglet Structure de dimension pour la dimension Date, cliquez avec le bouton droit sur MonthNumberOfYear dans le volet Affichage des sources de données, puis cliquez sur Nouvel Attribut à partir de la Colonne.
Dans le volet Attributs , sélectionnez Month Number Of Year, puis définissez la propriété AttributeHierarchyEnabled sur False dans la fenêtre Propriétés, définissez la propriété AttributeHierarchyOptimizedState sur NotOptimized, puis définissez la propriété AttributeHierarchyOrdered sur False.
Ces paramètres masquent l’attribut des utilisateurs et améliorent le temps de traitement. Cet attribut ne sera pas utilisé pour la navigation. Elle sera utilisée uniquement pour classer les membres d’un autre attribut.
Remarque
Le tri des propriétés dans la fenêtre Propriétés par ordre alphabétique simplifie cette tâche, car ces trois propriétés seront triées les unes aux autres.
Cliquez sur l’onglet Relations d’attributs .
Notez que tous les attributs de la dimension Date sont liés directement à l’attribut Date , qui est la clé membre qui associe les membres de la dimension aux faits dans les groupes de mesures associés. Il n’existe aucune relation définie entre l’attribut Month Name et l’attribut Month Number Of Year .
Dans le diagramme, cliquez avec le bouton droit sur l’attribut Month Name , puis sélectionnez Nouvelle relation d’attribut.
Dans la boîte de dialogue Créer une relation d’attribut , l’attribut source est nom de mois. Définissez l’attribut associé sur le nombre de mois de l’année.
Dans la liste des types de relation, définissez le type de relation sur Rigide.
Les relations entre les membres de l’attribut Month Name et l’attribut Month Number Of Year ne changent pas au fil du temps. Par conséquent, Analysis Services ne supprimera pas les agrégations pour cette relation lors du traitement incrémentiel. Si une modification se produit, une erreur de traitement se produit pendant le traitement incrémentiel et vous devez effectuer un processus complet de la dimension. Vous êtes maintenant prêt à définir l’ordre de tri pour les membres de Month Name.
Cliquez sur OK.
Cliquez sur l’onglet Structure de dimension .
Sélectionnez Nom du mois dans le volet Attributs , puis remplacez la valeur de la propriété OrderBy dans la fenêtre Propriétés par AttributeKey et remplacez la valeur de la propriété OrderByAttribute par Month Number Of Year.
Dans le menu Générer , cliquez sur Déployer le didacticiel Analysis Services.
Une fois le déploiement terminé, basculez vers l’onglet Navigateur de la dimension Date, cliquez sur Reconnecter, puis parcourez les hiérarchies utilisateur Date du calendrier et Date fiscale pour vérifier que les mois sont désormais triés dans l’ordre chronologique.
Notez que les mois sont maintenant triés dans l’ordre chronologique, comme illustré dans l’image suivante.
Définition des relations d’attributs et de l’ordre de tri dans la dimension client
Basculez vers l’onglet Navigateur dans le Concepteur de dimensions pour la dimension Client, puis parcourez les membres de la hiérarchie d’attributs Distance de trajet.
Notez que les membres de cette hiérarchie d’attributs sont triés en fonction des valeurs ASCII de la clé membre. Dans ce cas, le tri par nom ou clé d’attribut ne classe pas les distances de trajet du moindre au plus grand. Dans cette tâche, vous triez les membres de la hiérarchie d’attributs en fonction du calcul CommuteDistanceSort nommé qui attribue le numéro de tri approprié à chaque valeur distincte de la colonne. Pour gagner du temps, ce calcul nommé a déjà été ajouté à la table Customer dans la vue de source de données Adventure Works DW. Vous pouvez basculer vers cette vue de source de données pour afficher le script SQL utilisé dans ce calcul nommé. Pour plus d’informations, consultez Définir des calculs nommés dans une vue de source de données (Analysis Services).
L’image suivante montre les membres de la hiérarchie d’attributs Commute Distance , triés par les valeurs ASCII de la clé membre.
Passez à l’onglet Structure de dimension dans le Concepteur de dimensions pour la dimension Customer, cliquez avec le bouton droit sur CommuteDistanceSort dans la table Customer dans le volet Affichage de la source de données, puis cliquez sur Nouvel attribut à partir de la colonne.
Dans le volet Attributs , sélectionnez Commute Distance Sort, puis définissez la propriété AttributeHierarchyEnabled pour cet attribut sur False dans la fenêtre Propriétés, définissez la propriété AttributeHierarchyOptimizedState sur NotOptimized, puis définissez la propriété AttributeHierarchyOrdered sur False.
Ces paramètres masquent l’attribut des utilisateurs et améliorent le temps de traitement. Cet attribut ne sera pas utilisé pour la navigation. Elle sera utilisée uniquement pour classer les membres d’un autre attribut.
Sélectionnez Geography, puis définissez sa propriété AttributeHierarchyVisible sur False dans la fenêtre Propriétés, définissez sa propriété AttributeHierarchyOptimizedState sur NotOptimized, puis définissez sa propriété AttributeHierarchyOrdered sur False.
Ces paramètres masquent l’attribut des utilisateurs et améliorent le temps de traitement. Cet attribut ne sera pas utilisé pour la navigation. Elle sera utilisée uniquement pour classer les membres d’un autre attribut. Étant donné que Geography possède des propriétés membres, sa propriété AttributeHierarchyEnabled doit être définie sur True. Par conséquent, pour masquer l’attribut, vous définissez la propriété AttributeHierarchyVisible sur False.
Cliquez sur l’onglet Relations d’attributs .
Dans la liste des attributs, cliquez avec le bouton droit sur l’attribut Distance commutée , puis sélectionnez Nouvelle relation d’attribut.
Dans la boîte de dialogue Créer une relation d’attribut , l’attribut source est Distance commutée. Définissez l’attribut associé sur le tri par distance de trajet.
Dans la liste des types de relation, définissez le type de relation sur Rigide.
La relation entre les membres de l’attribut Distance commutée et l’attribut Commute Distance Sort ne change pas au fil du temps.
Cliquez sur OK.
Vous êtes maintenant prêt à définir l’ordre de tri pour l’attribut Distance commutée .
Cliquez sur l’onglet Structure de dimension .
Dans le volet Attributs , sélectionnez Distance commutée, puis remplacez la valeur de la propriété OrderBy dans la fenêtre Propriétés par AttributeKey, puis remplacez la valeur de la propriété OrderByAttribute par Commute Distance Sort.
Dans le menu Générer , cliquez sur Déployer le didacticiel Analysis Services.
Une fois le déploiement terminé, basculez vers l’onglet Navigateur du Concepteur de dimensions pour la dimension Customer, cliquez sur Reconnecter, puis parcourez la hiérarchie d’attributs Distance commutée .
Notez que les membres de la hiérarchie d’attributs sont désormais triés dans un ordre logique en fonction de l’augmentation de la distance, comme illustré dans l’image suivante.
Tâche suivante de la leçon
Spécification des relations d’attributs entre les attributs dans une hiérarchie User-Defined