Modification de la dimension Time
Vous pouvez définir des clés composites pour les attributs afin de contrôler les membres retournés par la requête de traitement SELECT DISTINCT. Lorsque vous utilisez des clés composites, l'ordre de tri des membres d'attribut est déterminé par l'ordre des membres de la clé composite. Au cours des tâches de cette rubrique, vous allez changer le nom de la hiérarchie définie par l'utilisateur, les noms des membres affichés pour les attributs Date, Month, Calendar Quarter et Calendar Semester, définir des clés composites pour les attributs EnglishMonthName, CalendarQuarter et CalendarSemester, puis modifier l'ordre des membres de clé composite pour contrôler l'ordre de tri des membres de dimension.
Modification de la hiérarchie définie par l'utilisateur
Pour modifier la hiérarchie définie par l'utilisateur
Affichez le Concepteur de dimensions pour la dimension Time dans Business Intelligence Development Studio, puis cliquez sur l'onglet Structure de dimension.
Dans le volet Hiérarchies et niveaux, sélectionnez la hiérarchie CalendarYear - CalendarSemester - CalendarQuarter - EnglishMonthName - FullDateAlternateKey, puis remplacez la propriété Name par Calendar Time dans la fenêtre des propriétés.
Le nom de cette hiérarchie définie par l'utilisateur est maintenant Calendar Time.
Dans la hiérarchie définie par l'utilisateur Calendar Time, remplacez le niveau English Month Name par Calendar Month et le niveau Full Date Alternate Key par Date.
Affichez le Concepteur de vues de source de données pour la vue de source de données Adventure Works, cliquez avec le bouton droit sur Time (dbo.DimTime) dans le volet Tables, puis cliquez sur Nouveau calcul nommé.
Dans la boîte de dialogue Créer un calcul nommé, tapez SimpleDate dans la zone Nom de la colonne, puis tapez le script SQL suivant dans la zone Expression :
DATENAME(mm, FullDateAlternateKey) + ' ' + DATENAME(dd, FullDateAlternateKey) + ', ' + DATENAME(yy, FullDateAlternateKey)
Ce script SQL extrait les valeurs relatives à l'année, le mois et le jour à partir de la colonne FullDateAlternateKey. Vous allez modifier le niveau Date dans la hiérarchie Calendar Time de la dimension Time pour afficher la valeur de cette nouvelle colonne à la place de la valeur d'origine qui est stockée dans la colonne FullDateAlternateKey de la table DimTime.
Cliquez sur OK, puis affichez le Concepteur de dimensions pour la dimension Time.
Cliquez sur Date dans la hiérarchie Calendar Time, puis vérifiez les propriétés du niveau Date dans la fenêtre des propriétés.
Notez que le niveau Date dans la hiérarchie est basé sur l'attribut FullDateAlternateKey. Au cours des étapes suivantes, vous allez remplacer l'attribut sur lequel ce niveau est basé par l'attribut TimeKey et modifier ensuite les propriétés de l'attribut TimeKey de sorte que les noms de ses membres soient basés sur les valeurs de la colonne SimpleDate que vous venez de définir. Vous pouvez conserver FullDateAlternateKey comme attribut sur lequel baser le niveau Date et changer l'attribut de sorte que les noms de ses membres soient basés sur la colonne SimpleDate. Toutefois, la première méthode est plus efficace. En effet, l'attribut TimeKey et l'attribut FullDateAlternateKey ne sont pas nécessaires et il vous faudra par conséquent supprimer l'attribut FullDateAlternateKey.
Dans la hiérarchie définie par l'utilisateur Calendar Time, remplacez la valeur de la propriété SourceAttribute du niveau Date par TimeKey, puis supprimez l'attribut FullDateAlternateKey du volet Attributs.
Sélectionnez TimeKey dans le volet Attributs, développez la collection de propriétés NameColumn, puis la collection de propriétés Source dans la fenêtre des propriétés. Remplacez la valeur de la propriété ColumnID par SimpleDate.
Notez que la propriété OrderBy de l'attribut TimeKey spécifie que les membres de la hiérarchie d'attributs sont classés en fonction de la valeur de leur clé.
Dans le menu Générer de BI Development Studio, 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 Time puis cliquez sur Reconnexion dans la barre d'outils.
Développez les niveaux dans la hiérarchie Calendar Time pour passer en revue les membres du niveau Date.
Notez que les membres du niveau Date sont plus conviviaux qu'ils ne l'étaient auparavant. Notez également cependant que les membres Semester, Quarter et Month n'indiquent pas leur année parent.
L'illustration suivante montre les membres du niveau Date.
Dans la liste Hiérarchie, sélectionnez EnglishMonthName, puis développez le membre All.
Notez que chaque mois apparaît une seule fois et non une fois pour chaque année dans la dimension Time. Au cours de la tâche suivante, vous allez générer des noms uniques pour chaque mois au sein de chaque année.
Dans la liste Hiérarchie, sélectionnez CalendarQuarter, puis développez le membre All.
Notez que chaque trimestre apparaît une seule fois et non une fois pour chaque trimestre dans la dimension Time. Remarquez aussi que les mois sont triés par ordre alphabétique. Au cours de la tâche suivante, vous allez générer des noms uniques pour chaque trimestre calendaire au sein de chaque année. À la leçon 4, vous allez configurer les mois pour trier de manière chronologique.
Attribution de noms uniques aux membres de dimension
Pour fournir des noms uniques aux membres de dimension
Affichez le Concepteur de vues de source de données pour la vue de source de données Adventure Works, cliquez avec le bouton droit sur Time (dbo.DimTime) dans le volet Tables, puis cliquez sur Nouveau calcul nommé.
Dans la boîte de dialogue Créer un calcul nommé, tapez MonthName dans la zone Nom de la colonne, puis tapez le script SQL suivant dans la zone Expression :
EnglishMonthName+' '+ CONVERT(CHAR (4), CalendarYear)
Ce script SQL concatène le mois et l'année dans une nouvelle colonne pour chaque mois dans la table DimTime.
Cliquez sur OK.
Dans le volet Tables, cliquez avec le bouton droit sur Time (dbo.DimTime), puis cliquez sur Nouveau calcul nommé.
Dans la boîte de dialogue Créer un calcul nommé, tapez CalendarQuarterDesc dans la zone Nom de la colonne, puis tapez le script SQL suivant dans la zone Expression :
'Q' + CONVERT(CHAR (1), CalendarQuarter) +' '+ 'CY ' + CONVERT(CHAR (4), CalendarYear)
Ce script SQL concatène le trimestre calendaire et l'année dans une nouvelle colonne pour chaque trimestre dans la table DimTime.
Cliquez sur OK.
Dans le volet Tables, cliquez avec le bouton droit sur Time, puis choisissez Nouveau calcul nommé.
Dans la boîte de dialogue Créer un calcul nommé, tapez CalendarSemesterDesc dans la zone Nom de la colonne, puis tapez le script SQL suivant dans la zone Expression :
CASE WHEN CalendarSemester = 1 THEN 'H1' + ' ' + 'CY' + ' ' + CONVERT(CHAR(4), CalendarYear) ELSE 'H2' + ' ' + 'CY' + ' ' + CONVERT(CHAR(4), CalendarYear) END
Ce script SQL concatène le semestre calendaire et l'année dans une nouvelle colonne pour chaque semestre dans la table DimTime.
Cliquez sur OK, puis affichez le Concepteur de dimensions pour la dimension Time et cliquez sur l'onglet Structure de dimension.
Vous allez modifier les attributs EnglishMonthName, CalendarQuarter et CalendarSemester dans la dimension Time pour utiliser les valeurs des nouvelles colonnes comme valeurs de membre.
Dans le volet Attributs, sélectionnez EnglishMonthName. Dans la fenêtre des propriétés, développez la propriété NameColumn, puis la propriété Source, et remplacez la valeur de la propriété ColumnID par MonthName.
De la même façon, remplacez la propriété ColumnID de l'attribut Calendar Quarter et de l'attribut Calendar Semester par les valeurs suivantes :
- Calendar Quarter — remplacez la valeur de la propriété ColumnID par CalendarQuarterDesc.
- Calendar Semester — remplacez la valeur de la propriété ColumnID par CalendarSemesterDesc.
Dans le menu Générer de BI Development Studio, 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 Time.
Dans la barre d'outils de l'onglet Navigateur, cliquez sur Reconnexion, puis vérifiez les membres de la hiérarchie d'attributs CalendarQuarter dans la hiérarchie d'attributs Calendar Quarter.
Notez que les noms des membres de la hiérarchie d'attributs CalendarQuarter sont plus conviviaux et que la hiérarchie ne compte toujours que quatre membres et non un membre pour chaque combinaison année et trimestre. Si vous passez en revue les hiérarchies d'attributs EnglishMonthName ou CalendarSemester, vous noterez les mêmes choses. Au cours de la tâche suivante, vous allez modifier cela en spécifiant une clé composite pour ces attributs.
Spécification de valeurs de clés composites
Pour spécifier des valeurs de clés composites
Cliquez sur l'onglet Structure de dimension dans le Concepteur de dimensions pour la dimension Time, sélectionnez l'attribut EnglishMonthName, puis cliquez sur le bouton (…) dans la cellule de propriété KeyColumns de la fenêtre des propriétés pour modifier la valeur de l'attribut.
L'Éditeur de collection de DataItem s'ouvre et présente la colonne clé de membre pour cet attribut. Lorsque Analysis Services traite une dimension, il génère une requête SELECT DISTINCT pour déterminer les membres de la dimension. Dans l'Éditeur de collection de DataItem, vous pouvez spécifier une clé composite au lieu d'une seule clé de colonne pour l'attribut, afin de retourner des membres de dimension supplémentaires.
Cliquez sur Ajouter pour définir une deuxième clé de colonne pour l'attribut de dimension.
Une nouvelle clé de membre apparaît dans la liste des membres. Vous devez définir les propriétés de cette nouvelle clé de membre.
Sous Propriétés de New Binding (WChar), cliquez sur le bouton (...) dans la cellule de la propriété Source pour changer sa valeur.
La boîte de dialogue Liaison d'objets apparaît. Dans cette boîte de dialogue, vous pouvez spécifier soit une colonne existante dans une table spécifique, soit spécifier le type de colonne que vous souhaitez créer si vous générez le schéma relationnel en utilisant la méthode de conception de haut en bas.
Dans la liste Type de liaison, sélectionnez Liaison de colonne.
Vérifiez si Time est sélectionné dans la liste Table source.
Dans la liste Colonne source, sélectionnez CalendarYear.
L'illustration suivante montre la boîte de dialogue Liaison d'objets.
Cliquez sur OK pour fermer la boîte de dialogue Liaison d'objets, puis cliquez sur OK à nouveau pour fermer l'Éditeur de collection de DataItem.
Notez que la valeur de la propriété KeyColumns est maintenant (Collection).
Sélectionnez l'attribut CalendarQuarter, puis cliquez sur le bouton (…) dans la cellule de propriété KeyColumns de la fenêtre des propriétés pour modifier la valeur de l'attribut.
L'Éditeur de collection de DataItem apparaît.
Cliquez sur Ajouter pour définir un deuxième membre pour la propriété KeyColumns.
Sous Propriétés de New Binding (WChar), cliquez sur le bouton (...) dans la cellule de la propriété Source pour changer sa valeur.
La boîte de dialogue Liaison d'objets apparaît.
Dans la liste Type de liaison, sélectionnez Liaison de colonne.
Dans la liste Table source, vérifiez si Time est sélectionné.
Dans la liste Colonne source, sélectionnez CalendarYear.
Cliquez sur OK, puis à nouveau sur OK.
Sélectionnez l'attribut CalendarSemester, puis cliquez sur le bouton (…) dans la cellule de propriété KeyColumns de la fenêtre des propriétés pour modifier la valeur de l'attribut.
La boîte de dialogue Éditeur de collection de DataItem apparaît.
Cliquez sur Ajouter pour définir un deuxième membre pour la propriété KeyColumns.
Sous Propriétés de New Binding (WChar), cliquez sur le bouton (...) dans la cellule de la propriété Source pour changer sa valeur.
La boîte de dialogue Liaison d'objets apparaît.
Dans la liste Type de liaison, sélectionnez Liaison de colonne.
Dans la liste Table source, vérifiez si Time est sélectionné.
Dans la liste Colonne source, sélectionnez CalendarYear.
Cliquez sur OK, puis à nouveau sur OK.
Dans le menu Générer de BI Development Studio, 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 Time.
Dans la barre d'outils de l'onglet Navigateur, cliquez sur Reconnexion, puis vérifiez les membres de la hiérarchie d'attributs CalendarQuarter dans la hiérarchie d'attributs Calendar Quarter.
Notez que si les membres existent maintenant dans la hiérarchie d'attributs CalendarQuarter pour chaque trimestre de chaque année, ces membres ne sont pas classés par ordre chronologique. Ils sont au contraire triés par trimestre, puis par année. Au cours de la tâche suivante, vous allez modifier cela pour trier les membres de cette hiérarchie d'attributs par année, puis par trimestre.
L'illustration suivante montre la structure actuelle de la hiérarchie d'attributs CalendarQuarter.
Passez en revue les membres des hiérarchies d'attributs EnglishMonthName et CalendarSemester.
Notez que les membres de ces hiérarchies ne sont pas non plus classés par ordre chronologique. Ils sont au contraire triés par mois ou semestre, respectivement, puis par année. Au cours de la tâche suivante, vous allez modifier cela pour changer l'ordre de tri.
Modification de l'ordre de tri en changeant l'ordre des membres de clé composite
Pour modifier l'ordre des membres de clé composite
Cliquez sur l'onglet Structure de dimension dans le Concepteur de dimension pour la dimension Time, puis sélectionnez CalendarSemester dans le volet Attributs.
Dans la fenêtre des propriétés, examinez la valeur de la propriété OrderBy.
Les membres de la hiérarchie d'attributs CalendarSemester sont triés en fonction de la valeur de leur clé. Avec une clé composite, l'ordre des clés de membre est basé en premier sur la valeur de la première clé de membre, puis sur la valeur de la seconde clé de membre. En d'autres termes, les membres de la hiérarchie d'attributs CalendarSemester sont triés en premier lieu par semestre, puis par année.
Dans la fenêtre des propriétés, cliquez sur le bouton (...) pour changer la valeur de la propriété KeyColumns.
L'Éditeur de collection de DataItem s'ouvre.
Dans la table Members de l'Éditeur de collection de DataItem, vérifiez si DimTime.CalendarSemester (UnsignedTinyInt) est sélectionné, puis cliquez sur la flèche vers le bas pour inverser l'ordre des membres de cette clé composite. Cliquez sur OK.
Les membres de la hiérarchie d'attributs sont maintenant triés en premier lieu par année, puis par semestre.
Sélectionnez CalendarQuarter dans le volet Attributs, puis cliquez sur le bouton (...) pour la propriété KeyColumns dans la fenêtre des propriétés.
Dans la table Members de l'Éditeur de collection de DataItem, vérifiez si DimTime.CalendarQuarter (UnsignedTinyInt) est sélectionné, puis cliquez sur la flèche vers le bas pour inverser l'ordre des membres de cette clé composite. Cliquez sur OK.
Les membres de la hiérarchie d'attributs sont maintenant triés en premier lieu par année, puis par trimestre.
Sélectionnez EnglishMonthName dans le volet Attributs, puis cliquez sur le bouton (...) pour la propriété KeyColumns dans la fenêtre des propriétés.
Dans la table Members de l'Éditeur de collection de DataItem, vérifiez si DimTime.EnglishMonthName (WChar) est sélectionné, puis cliquez sur la flèche vers le bas pour inverser l'ordre des membres de cette clé composite. Cliquez sur OK.
Les membres de la hiérarchie d'attributs sont maintenant triés en premier lieu par année, puis par mois.
Dans le menu Générer de BI Development Studio, 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 Time.
Dans la barre d'outils de l'onglet Navigateur, cliquez sur Reconnexion, puis vérifiez les membres des hiérarchies d'attributs CalendarQuarter et CalendarSemester.
Notez que les membres de ces hiérarchies sont maintenant triés par ordre chronologique, par année, puis par trimestre ou semestre, respectivement.
Passez en revue les membres de la hiérarchie d'attributs EnglishMonthName.
Notez que les membres de la hiérarchie sont maintenant triés en premier lieu par année, puis par mois par ordre alphabétique (cela en raison du type des données pour la colonne EnglishCalendarMonth dans la vue de la source de données qui correspond à une colonne de chaînes basée sur le type de données nvarchar dans la base de données relationnelle sous-jacente). Toutefois, il serait plus utile que les mois soient triés par ordre chronologique au sein de chaque année. Vous allez modifier cet ordre de tri au cours de la leçon 4.
L'illustration suivante montre la hiérarchie d'attributs EnglishMonthName.
Dans le menu Fichier de BI Development Studio, cliquez sur Enregistrer tout pour enregistrer les modifications que vous avez apportées jusqu'à présent dans le projet du didacticiel Analysis Services, afin d'arrêter ici de suivre le didacticiel si vous le souhaitez et de recommencer ultérieurement.
Vous avez correctement amélioré la convivialité des membres des hiérarchies d'attributs de la dimension Time. Pour cela, vous avez créé des calculs nommés dans la vue de source de données, puis utilisé ces calculs nommés comme noms de membre d'attribut. Vous avez également amélioré la convivialité d'utilisation en définissant des clés composites et en spécifiant l'ordre des membres de clé composite approprié pour contrôler l'ordre de tri des membres de dimension.
Tâche suivante de la leçon
Modification de la dimension Product
Voir aussi
Autres ressources
Définition et configuration de dimensions, d'attributs et de hiérarchies