Définition de la granularité des dimensions dans un groupe de mesures

Les utilisateurs peuvent souhaiter dimensionner des données de faits avec des granularités ou spécificités différentes pour diverses raisons. Prenons l'exemple d'un scénario dans lequel les données de ventes des revendeurs ou des ventes Internet sont enregistrées quotidiennement tandis que les données relatives aux quotas de ventes n'existent qu'au niveau du mois ou du trimestre. Dans un scénario de ce type, les utilisateurs souhaiteront que la dimension de temps ait une granularité ou un niveau de détail différent pour chaque table de faits. S'il est possible de définir une nouvelle dimension de base de données comme dimension de temps avec une granularité différente, la méthode qui fait appel à Microsoft SQL Server 2005 Analysis Services (SSAS) est plus simple.

Par défaut, dans SQL Server 2005 Analysis Services, lorsqu'une dimension est utilisée au sein d'un groupe de mesures, la granularité des données de cette dimension est fonction de son attribut clé. Par exemple, lorsqu'une dimension de temps est incluse dans un groupe de mesures et que le niveau de granularité par défaut de la dimension de temps est le jour, le niveau de granularité par défaut de cette dimension dans le groupe de mesures est le jour. Ce niveau de granularité convient dans la plupart des cas, par exemple, pour les groupes de mesures Internet Sales et Reseller Sales du présent didacticiel. Cependant, lorsqu'une dimension de ce type est incluse dans d'autres types de groupes de mesures, tels que les groupes de mesures des quotas de ventes ou du budget, une granularité de niveau mensuel ou trimestriel est généralement plus appropriée.

Pour spécifier une granularité de dimension de cube différente de la granularité par défaut, vous devez modifier l'attribut de granularité de la dimension de cube utilisé dans le groupe de mesures particulier à partir de l'onglet Utilisation de la dimension du Concepteur de cube. Lorsque vous remplacez la granularité d'une dimension dans un groupe de mesures spécifique par un attribut qui n'est pas l'attribut clé de cette dimension, vous devez vous assurer que tous les autres attributs du groupe de mesures sont directement ou indirectement associés au nouvel attribut de granularité. Pour cela, vous devez spécifier les relations entre tous les autres attributs et l'attribut qui est défini comme l'attribut de granularité dans le groupe de mesures. Dans ce cas, définissez des relations d'attributs supplémentaires au lieu de déplacer les relations d'attributs. L'attribut défini comme l'attribut de granularité devient l'attribut clé dans le groupe de mesures pour les attributs restants dans la dimension. Si vous ne définissez pas correctement les relations entre les attributs, Analysis Services ne pourra pas agréger correctement les valeurs, comme vous pourrez le constater dans les tâches de cette rubrique.

Pour plus d'informations, consultez Relations de dimension et Définition d'une relation régulière et des propriétés de relation régulière.

Au cours des tâches de cette rubrique, vous allez ajouter un groupe de mesures Sales Quotas et définir un niveau mensuel pour la granularité de la dimension de temps dans ce groupe de mesures. Vous définirez ensuite les relations d'attribut entre l'attribut de niveau mensuel et les autres attributs de dimension pour que Analysis Services puisse agréger les valeurs correctement.

Ajout de tables et définition du groupe de mesures Sales Quotas

Pour ajouter des tables et définir le groupe de mesures Sales Quotas

  1. Affichez le Concepteur de vues de source de données pour la vue de source de données Adventure Works.

  2. Cliquez avec le bouton droit dans le volet Bibliothèque de diagrammes, choisissez Nouveau diagramme, puis spécifiez Sales Quotas comme nom du nouveau diagramme. Pour plus d'informations, consultez Utilisation des diagrammes dans une vue de source de données (Analysis Services).

  3. Faites glisser les tables Employee, Sales Territory et Time du volet Tables vers le volet Diagramme.

  4. Ajoutez la table FactSalesQuota dans le volet Diagramme en cliquant avec le bouton droit dans le volet Diagramme et choisissez Ajouter/supprimer des tables.

    Notez que la table SalesTerritory est liée à la table FactSalesQuota par le biais de la table Employee.

  5. Passez en revue les colonnes dans la table FactSalesQuota puis explorez les données de cette table.

    Notez que le niveau de granularité des données de cette table est le trimestre calendaire, qui est le niveau de détail le plus bas dans la table FactSalesQuota.

  6. Dans le Concepteur de vues de source de données, remplacez la propriété FriendlyName de la table FactSalesQuota par la propriété SalesQuotas.

  7. Affichez le Concepteur de cube pour le cube du didacticiel Analysis Services, puis cliquez sur l'onglet Structure de cube.

  8. Cliquez avec le bouton droit dans le volet Mesures, choisissez Nouveau groupe de mesures, sélectionnez SalesQuotas dans la boîte de dialogue Nouveau groupe de mesures, puis cliquez sur OK.

    Le groupe de mesures Sales Quotas apparaît dans le volet Mesures. Dans le volet Dimensions, notez qu'une nouvelle dimension de cube Time est également définie. Elle est basée sur la dimension de base de données Time. Une nouvelle dimension de cube temporelle est définie car Analysis Services ne sait pas quelles dimensions temporelles existantes associer à la colonne TimeKey dans la table de faits FactSalesQuota sous-jacente du groupe de mesures Sales Quotas. Vous allez modifier cela ultérieurement, au cours d'une autre tâche de cette rubrique.

  9. Développez le groupe de mesures Sales Quotas.

    Notez que trois nouvelles mesures sont définies.

  10. Dans le volet Mesures, sélectionnez Sales Amount Quota et affectez à la propriété FormatString la valeur Currency dans la fenêtre des propriétés.

  11. Sélectionnez la mesure Sales Quotas Count et affectez à la propriété FormatString la valeur #,# dans la fenêtre des propriétés.

  12. Supprimez la mesure Calendar Quarter dans le groupe de mesures Sales Quotas.

    Analysis Services a détecté la colonne sous-jacente de la mesure Calendar Quarter comme étant une colonne contenant des mesures. Toutefois, cette colonne et la colonne CalendarYear contiennent les valeurs que vous allez utiliser plus tard dans cette rubrique pour lier le groupe de mesures Sales Quotas à la dimension Time.

  13. Dans le volet Mesures, cliquez avec le bouton droit sur le groupe de mesures Sales Quotas et choisissez Nouvelle mesure. Pour plus d'informations, consultez Définition et configuration d'une mesure.

    La boîte de dialogue Nouvelle mesure s'affiche et présente les colonnes sources disponibles pour une mesure avec le type d'utilisation Sum.

  14. Dans la boîte de dialogue Nouvelle mesure, sélectionnez Distinct count dans la liste Utilisation, vérifiez si SalesQuotas est sélectionné dans la liste Table source, sélectionnez EmployeeKey dans la liste Colonne source, puis cliquez sur OK.

    Notez que la mesure est créée dans un nouveau groupe de mesures appelé Sales Quotas 1. Des mesures de comptage distinctes sont créées dans Microsoft SQL Server 2005 dans leurs propres groupes de mesures pour augmenter les performances de traitement.

  15. Remplacez la valeur de la propriété Name de la mesure Employee Key Distinct Count par la valeur Sales Person Count, puis affectez à la propriété FormatString la valeur #,#.

Exploration des mesures dans le groupe de mesures Sales Quota sur la base de la dimension Time

Pour explorer les mesures dans le groupe de mesures Sales Quota sur la base de la dimension Time

  1. Dans le menu Générer, cliquez sur Déployer Analysis Services Tutorial.

  2. Une fois le déploiement terminé, cliquez sur l'onglet Navigateur dans le Concepteur de cube pour le cube du didacticiel Analysis Services, puis cliquez sur Reconnexion.

  3. Désélectionnez toutes les hiérarchies et toutes les mesures dans le volet Données, puis le membre de dimension dans le volet Filtre.

  4. Développez le groupe de mesures Sales Quotas dans le volet Métadonnées et ajoutez la mesure Sales Amount Quota dans la zone de données.

  5. Ajoutez la hiérarchie définie par l'utilisateur Sales Territory de la dimension Sales Territory à la zone de colonnes.

    Notez que la dimension de cube Sales Territory n'est pas liée, directement ou indirectement, à la table Fact Sales Quota, comme le montre l'illustration suivante.

    Dimension du cube Secteur de vente

    Au cours de la tâche suivante de la présente rubrique, vous allez définir une relation de dimension de référence entre cette dimension et cette table de faits.

  6. Dans le volet Données, cliquez sur la flèche vers le bas en regard de Sales Territory Group, puis désactivez toutes les cases à cocher, excepté la case à cocher North America, pour remplacer par North America les membres de dimension affichés dans Sales Territory Group.

  7. Dans le volet Métadonnées, développez Time puis Fiscal.

  8. Ajoutez la hiérarchie utilisateur Time.Fiscal Time dans la zone de lignes et cliquez sur la flèche vers le bas en regard de Fiscal Year dans le volet Données, puis désactivez toutes les cases à cocher excepté FY 2004, pour afficher uniquement l'année fiscale 2004.

  9. Dans le volet Données, développez FY 2004, H1 FY 2004, Q1 FY 2004, puis July 2003.

    Remarquez que seul le membre July 2003 du niveau Month apparaît en lieu et place des membres July, 2003, August, 2003, et September, 2003 du niveau Month, et que seul le membre July 1, 2003 du niveau Date apparaît en lieu et place des 31 jours. Ce résultat est obtenu car le niveau de granularité des données de la table de faits est le trimestre et le niveau de granularité de la dimension Time est le jour. Vous allez modifier cela ultérieurement, au cours de la tâche suivante de cette rubrique.

    Notez également que la valeur Sales Amount Quota des niveaux Month et Day est la même pour le niveau Quarter, $13,733,000.00. Cela est dû au fait que le niveau le plus bas des données dans le groupe de mesures est le niveau trimestriel :Quarter. Vous allez modifier ce résultat au cours de la leçon 6.

    L'illustration suivante montre les valeurs de la mesure Sales Amount Quota.

    Valeurs de quota Montant des ventes

Définition des propriétés d'utilisation des dimensions pour le groupe de mesures Sales Quotas

Pour définir les propriétés d'utilisation des dimensions pour le groupe de mesures Sales Quotas

  1. Ouvrez le Concepteur de dimensions pour la dimension Employee, puis ajoutez l'attribut SalesTerritoryKey basé sur la colonne SalesTerritoryKey dans la table Employee comme attribut masqué, non-optimisé et non-classé.

    Cet attribut est obligatoire pour lier la dimension Sales Territory aux groupes de mesures Sales Quotas et Sales Quotas 1 en tant que dimension référencée.

  2. Dans le Concepteur de cube pour le cube du didacticiel Analysis Services, cliquez sur l'onglet Utilisation de la dimension, puis notez l'utilisation de la dimension dans les groupes de mesures Sales Quotas et Sales Quotas 1.

    Notez que les dimensions de cube Employee et Time sont liées aux groupes de mesures Sales Quotas et Sales Quotas 1 par le biais de relations régulières. Notez également que la dimension de cube n'est liée à aucun de ces groupes de mesures.

  3. Définissez une relation référencée matérialisée entre la dimension Sales Territory et le groupe de mesures Sales Quotas. Pour cela, spécifiez Employee comme dimension intermédiaire, Sales Territory Region comme attribut de dimension de référence et SalesTerritoryKey comme attribut de dimension intermédiaire. (La colonne clé de l'attribut Sales Territory Region est la colonne SalesTerritoryKey.)

  4. Répétez les opérations de l'étape précédente pour le groupe de mesures Sales Quotas 1.

  5. Supprimez la dimension de cube Time.

    Au lieu d'utiliser quatre dimensions de cube temporelles, vous allez utiliser la dimension de cube Order Date du groupe de mesures Sales Quotas comme valeur de date sur laquelle dimensionner les quotas de ventes. Vous allez également utiliser cette dimension de cube comme dimension de date principale dans le cube.

  6. Dans la liste Dimensions, remplacez la dimension de cube Time (Order Date) par la dimension Time (Date).

    Remplacer la dimension de cube Order Date par Date permet aux utilisateurs de comprendre son rôle en tant que dimension de date principale dans ce cube.

  7. Cliquez sur le bouton Sélection () dans la cellule située à l'intersection du groupe de mesures Sales Quotas et de la dimension Time (Date).

  8. Dans la boîte de dialogue Définir une relation, sélectionnez Normal dans la liste Sélectionnez un type de relation.

  9. Dans la liste Attribut de granularité, sélectionnez Calendar Quarter.

    Un message d'avertissement apparaît. Il vous signale qu'étant donné que vous avez sélectionné un attribut non clé comme attribut de granularité, vous devez vous assurer que tous les autres attributs sont directement ou indirectement liés à l'attribut de granularité en les déclarant comme propriétés de membre.

    L'illustration suivante montre la boîte de dialogue Définir une relation.

    Boîte de dialogue Définir une relation

  10. Dans la zone Relation de la boîte de dialogue Définir une relation, liez les colonnes de dimension CalendarYear et CalendarQuarter de la table sous-jacente de la dimension de cube Time (Date) aux colonnes CalendarYear et CalendarQuarter de la table sous-jacente du groupe de mesures Sales Quota, puis cliquez sur OK.

    ms166573.note(fr-fr,SQL.90).gifRemarque :
    La dimension Calendar Quarter est définie comme attribut de granularité pour la dimension du cube Time (Date) dans le groupe de mesures Sales Quotas, mais l'attribut Date continue à être l'attribut de granularité pour les groupes de mesures Internet Sales et Reseller Sales.
  11. Répétez les opérations des quatre étapes précédentes pour le groupe de mesures Sales Quotas 1.

    L'illustration suivante montre la dimension Calendar Quarter définie comme attribut de granularité pour la dimension de cube Time (Date) pour les groupes de mesures Sales Quotas et Sales Quotas 1.

    Trimestre calendrier défini en tant qu'attribut de granularité

Définition des relations d'attribut entre l'attribut Calendar Quarter et les attributs des autres dimensions dans la dimension Time

Pour définir les relations d'attribut entre l'attribut Calendar Quarter et les attributs des autres dimensions dans la dimension Time

  1. Affichez le Concepteur de dimensions pour la dimension Time, puis cliquez sur Structure de dimension.

  2. Dans le volet Attributs, développez les attributs suivants :

    • Calendar Quarter
    • Calendar Semester
    • Fiscal Quarter
    • Fiscal Semester

    Notez que même si l'attribut Calendar Year est lié à l'attribut Calendar Quarter par le biais de l'attribut Calendar Semester, les attributs qui définissent le calendrier fiscal sont liés uniquement entre eux et ne sont pas liés à l'attribut Calendar Quarter. Par conséquent, ils ne vont pas être agrégés correctement dans le groupe de mesures Sales Quotas.

  3. Faites glisser l'attribut Fiscal Quarter vers la balise <nouvelle relation d'attributs> de l'attribut Calendar Quarter.

    Remarquez qu'un message d'avertissement apparaît indiquant que la dimension Time contient une ou plusieurs relations d'attributs redondantes qui peuvent empêcher l'agrégation des données si un attribut non clé est utilisé comme attribut de granularité. L'avertissement suggère également que la relation d'attributs Fiscal Quarter à l'attribut Month Name n'est pas nécessaire.

  4. Supprimez la relation d'attributs Fiscal Quarter à l'attribut Month Name.

    L'avertissement précédent disparaît.

Exploration des mesures dans le groupe de mesures Sales Quota sur la base de la dimension Time

Pour explorer les mesures dans le groupe de mesures Sales Quota sur la base de la dimension Time

  1. Dans le menu Générer, cliquez sur Déployer Analysis Services Tutorial.

  2. Une fois le déploiement terminé, cliquez sur l'onglet Navigateur dans le Concepteur de cube pour le cube du didacticiel Analysis Services, puis cliquez sur Reconnexion.

    Notez que la mesure Sales Amount Quota est correctement dimensionnée par Sales Territory car la dimension Sales Territory est maintenant définie en tant que dimension référencée.

  3. Ajoutez la hiérarchie utilisateur Date.FiscalTime dans la zone de lignes à partir de la dimension de cube Date et cliquez sur la flèche vers le bas en regard de Fiscal Year, puis désactivez toutes les cases à cocher excepté FY 2004, pour afficher uniquement l'année fiscale 2004.

  4. Cliquez sur OK.

  5. Développez FY 2004, H1 FY 2004, puis Q1 FY 2004.

    Notez que les mesures du groupe de mesures Sales Quotas sont correctement dimensionnées. Notez également que chaque membre du niveau fiscal trimestriel apparaît avec, pour chaque membre, la valeur du niveau trimestriel. Ce résultat est obtenu car le niveau de granularité des données de la table de faits est le trimestre et le niveau de granularité de la dimension de temps est également le trimestre. Au cours de la leçon 6, vous allez apprendre à allouer la valeur du niveau trimestriel proportionnellement à chaque mois.

    L'illustration suivante montre le Concepteur de cube pour le cube du didacticiel Analysis Services et le groupe de mesures Sales Quota dimensionné correctement.

    Groupe de mesures Quota de ventes correctement dimensionné

ms166573.note(fr-fr,SQL.90).gifRemarque :
Un projet finalisé jusqu'à la leçon 5 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 6 : Définition de calculs

Voir aussi

Autres ressources

Relations de dimension
Définition d'une relation régulière et des propriétés de relation régulière

Aide et Informations

Assistance sur SQL Server 2005