Décisionnel : Création de votre premier cube

Stacia Misner

 

Je choisis en général de faire découvrir Microsoft SQL Server Analysis Services aux utilisateurs en créant un cube simple qui comprend un échantillonnage de leurs données personnelles. Je dois pour ce faire procéder avec prudence, car je me suis retrouvée plus d'une fois détrônée par des nouveaux utilisateurs qui, débordants d'enthousiasme face à ce qu'ils découvraient, ont souhaité se lancer tête baissée dans l'exploration de données. Que vous disposiez de données personnelles dont vous souhaitez faciliter l'exploration ou que vous gériez une communauté d'utilisateurs gourmands en données, SQL Server Analysis Services (SSAS) fournit les outils requis.

Cet article est le troisième d'une série. Les deux premiers ont été publiés dans le numéro d'août 2009 et sont disponibles à l'adresse technet.microsoft.com/magazine/ee263919.aspx. Ces articles a pour but de vous aider à mieux comprendre le principe du décisionnel en utilisant les composants disponibles dans Microsoft SQL Server 2008 pour créer une solution de décisionnel simple. Étant donné que je ferai référence aux concepts et à la terminologie introduits dans les deux articles précédents, je vous recommande de prendre le temps de lire ces articles (si vous ne l'avez pas déjà fait), avant de poursuivre la lecture de l'article présent.

Dans l'article "Planification de votre première solution de décisionnel Microsoft", j'expliquais les avantages que présente la création d'un data mart par rapport à l'extraction directe de données à partir d'une base de données d'entreprise. Je fournissais également des instructions pour le téléchargement des exemples de bases de données nécessaires pour poursuivre la procédure décrite dans ces articles. Dans l'article "Création d'une fondation de données pour une solution de décisionnel", Derek Comingore expliquait ensuite comment utiliser Integration Services pour peupler un data mart avec des données d'une base de données d'entreprise. Dans l'article présent, je vais démontrer comment créer un cube basé sur une conception de data mart similaire.

Pourquoi dois-je créer un cube ?

Mon premier article résumait les raisons pour lesquelles vous pouvez envisager de transférer des données de votre base de données d'entreprise vers une structure appelée data mart. Même s'il est entendu que l'interrogation d'un data mart présente des avantages et qu'elle est sans doute efficace dans certains scénarios, la réintégration de ces données dans une structure appelée cube présente des avantages supplémentaires. En fait, le data mart constitue une étape intermédiaire lors du transfert des données vers leur destination finale dans le cube. Il joue donc un rôle essentiel dans la solution globale.

La création d'un cube pour héberger vos données vous permet également de centraliser les règles métier pour les calculs difficiles à stocker dans un data mart relationnel. De plus, la structure du cube simplifie l'écriture de requêtes visant à comparer des données année après année ou à créer des valeurs cumulatives telles que les ventes cumulées annuelles jusqu'à ce jour. 

Vous avez par ailleurs la possibilité de gérer en toute transparence des données agrégées dans le cube. Pour améliorer les performances des requêtes sur un data mart relationnel qui comprend un nombre important de données, les administrateurs de bases de données créent souvent des tables de synthèse destinées à préparer les données aux requêtes qui ne recherchent pas d'informations détaillées au niveau des transactions. SSAS crée l'équivalent logique des tables de synthèse (appelées agrégations) et les maintient à jour.

Dans cet article, je reprendrai les scénarios introduits dans le premier article. Ces scénarios définissent les objectifs de base de l'analyse pour la solution de décisionnel que vous créez dans cette série. La solution doit pouvoir indiquer le canal de ventes le plus avantageux pour Adventure Works, les ventes par Internet ou les ventes du revendeur, et si les tendances de ventes signalent un accroissement ou un déclin de la demande pour certains produits. Votre base de données pour les solutions de décisionnel est la base de données AdventureWorksDW2008, qui applique la modélisation dimensionnelle et les principes ETL décrits dans l'article de Derek.

Vous pouvez télécharger les exemples de bases de données utilisés pour créer la solution pour Adventure Works à partir de CodePlex, à l'adresse msftdbprodsamples.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=18407. Lorsqu'un data mart est disponible en tant que source, vous êtes prêt à créer une base de données Analysis Services 2008.

Préparation de votre base de données Analysis Services

La première étape consiste à créer un projet dans Business Intelligence Development Studio (BIDS). Lancez BIDS à partir du groupe de programmes Microsoft SQL Server 2008, cliquez sur Fichier | Nouveau | Projet. Dans la boîte de dialogue Nouveau projet, sélectionnez Projet Analysis Services. Dans la zone de texte Nom, tapez ssas_TECHNET_AW2008 et si vous le souhaitez, modifiez l'emplacement de votre projet. Cliquez sur OK afin de créer le projet.

Ajoutez à présent une source de données pour définir la chaîne de connexion pour votre data mart. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le dossier Sources de données et cliquez sur Nouvelle source de données. Dans l'Assistant Source de données, cliquez sur Suivant dans la page de bienvenue, si le bouton n'est pas désactivé. Dans la page Sélectionner la méthode de définition de la connexion, cliquez sur Nouveau pour configurer une nouvelle connexion. Dans le Gestionnaire de connexions, la connexion par défaut est SQL Server Native Client, ce qui est correct pour ce projet. Vous pourriez cependant utiliser un fournisseur OLE DB ou .NET pour accéder à d'autres types de données.

Pour définir la connexion, tapez le nom de votre serveur dans la zone de texte Nom du serveur ou sélectionnez-le dans la liste déroulante, puis sélectionnez AdventureWorksDW2008 dans la liste déroulante de bases de données et cliquez sur OK. Lorsque l'Assistant Source de données s'affiche à nouveau, cliquez sur Suivant. Dans la page Informations d'emprunt d'identité, sélection l'option Utiliser le compte de service. Le compte de service est utilisé pour lire les données de la source lors du chargement des données vers votre base de données SSAS. Il doit par conséquent posséder les autorisations de lecture appropriées. Cliquez sur Suivant, puis sur Terminer pour fermer l'assistant.

Création d'une vue de source de données

Vous devez à présent créer une vue de source de données (DSV) en tant qu'abstraction des tables (ou vues) à partir de la source de données que vous souhaitez utiliser pour définir des dimensions et des cubes. Vous pouvez modifier la vue DSV sans changer la source de données sous-jacente, ce qui est pratique si vous possédez uniquement des autorisations de lecture sur le data mart et que vous ne pouvez pas modifier la source. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le dossier Vues de sources de données et cliquez sur Nouvelle vue de source de données.

Dans la page de bienvenue, cliquez sur Suivant si nécessaire. Dans la page Sélectionnez une source de données, sélectionnez la source de données que vous venez d'ajouter au projet et cliquez sur Suivant. Ajoutez des objets à la vue DSV en double-cliquant sur chaque table ou vue requise. Pour créer une vue DSV qui vous aide à répondre aux questions de décisionnel posées au début de cet article, ajoutez les tables suivantes à la vue DSV : DimDate, DimProduct, DimProductCategory, DimProductSubcategory, FactInternetSales et FactResellerSales. Étant donné que vous êtes en train d'apprendre comment utiliser SSAS, il est préférable de commencer avec une vue DSV simple, comme celle illustrée ci-dessous. Vous pourrez toujours ajouter des tables supplémentaires selon vos besoins, si vous souhaitez répondre à d'autres questions grâce à votre solution de décisionnel. Dans l'Assistant Vue de source de données, cliquez sur Suivant lorsque vous avez fini d'ajouter des tables, puis cliquez sur Terminer.

Je vous conseille de simplifier les noms de vos tables en sélectionnant chacune d'elle dans le volet Tables du concepteur et en supprimant les préfixes Dim et Fact de la propriété FriendlyName de chaque table. Les assistants utilisés pour créer des dimensions et des cubes utiliseront alors la valeur de la propriété FriendlyName pour attribuer des noms aux objets. La vue DSV complète est reproduite à la figure 1.

Figure 1: Data Source View

Figure 1 : Vue de source de données

Outre la modification des propriétés d'une table dans la vue DSV, vous pouvez définir les clés primaires logiques ou la relation logique entre des tables, si la source physique ne les a pas déjà définis. SSAS ne pourra pas afficher les données correctement si ces définitions ne sont pas présentes physiquement sur la couche de données ou logiquement dans la vue DSV. Vous pouvez également ajouter un calcul nommé, ce qui revient à ajouter une colonne dérivée à une vue, ou remplacer l'objet table par une requête nommée, ce qui revient à créer une vue.

En préparation de la création de la dimension de date dans SSAS, vous devez ajouter deux calculs nommés à la table Date (Trimestre et Mois) pour concaténer la colonne d'année avec les colonnes de trimestre et de mois. Si vous ne le faites pas, les données ne seront pas cumulées correctement par mois, trimestre et année lorsque vous souhaitez afficher des données résumées. Pour ajouter le calcul nommé pour Trimestre, cliquez avec le bouton droit sur la table Date dans le concepteur ou dans le volet Tables et cliquez sur Nouveau calcul nommé. Dans la zone de texte Nom de la colonne, tapez Trimestre. Dans la zone de texte Expression, tapez l'expression suivante :

'Qtr ' + convert(char(1), CalendarQuarter) + ' ' + convert(char(4), CalendarYear)

Cliquez sur OK et répétez ces étapes pour ajouter le calcul nommé pour Mois, en utilisant l'expression suivante :

left(EnglishMonthName, 3) + ' ' + convert(char(4), CalendarYear)

Notez que la table Date dans le concepteur (illustrée à la figure 2) affiche vos calculs nommés avec une icône de calculatrice pour les différencier des colonnes physiques présentes dans la table. Vous pouvez examiner l'effet de l'ajout des calculs nommés en cliquant avec le bouton droit sur la table et en cliquant sur Explorer les données. Une nouvelle fenêtre s'ouvre dans BIDS pour afficher les données de la table source.

Lorsque vous faites défiler la fenêtre complètement vers la droite, vous pouvez voir les valeurs pour les calculs nommés. Vous devez toujours utiliser la commande Explorer les données pour confirmer que les calculs nommés s'affichent comme prévu avant de passer à la création des dimensions.

Définition de dimensions dans Analysis Services

Après avoir ajouté des tables de dimension à la vue DSV, vous êtes prêt à créer des dimensions dans la base de données SSAS. Gardez à l'esprit qu'une dimension est utilisée pour stocker des informations sur les entités métier, telles que des personnes, des lieux et des objets. Pour pouvoir répondre aux questions de décisionnel posées au début de cet article, vous devez créer des dimensions pour les éléments Date et Product (Produit).
Pour ajouter une dimension au projet, lancez l'Assistant Dimension en cliquant avec le bouton droit sur le dossier Dimensions dans l'Explorateur de solutions et en sélectionnant Nouvelle dimension. Dans la page Sélectionner la méthode de création, conservez la sélection par défaut pour utiliser une table existante, car votre vue DSV inclut la table DimDate. Dans les situations où vous souhaitez créer une base de données simple basée sur une table transactionnelle de petite taille qui inclut des dates, il n'est pas nécessaire de générer un data mart. Vous pouvez à la place utiliser l'une des autres options de cette page pour générer une table de temps dans la source de données ou sur le serveur.

Figure 2 Date Table with Named Calculations

Figure 2 : Table Date avec des calculs nommés

Dans les deux cas, vous fournissez une date de début et une date de fin pour les données dans la table transactionnelle. SSAS peut créer et peupler une table physique dans la source de données qu'il utilisera pour peupler la dimension gérée dans la base de données SSAS ou il peut simplement gérer la dimension exclusivement dans la base de données SSAS.

Vous pouvez choisir de générer la table physique lorsque vous souhaitez être en mesure de prendre en charge les requêtes relationnelles sur la source de données. Cliquez sur Suivant pour continuer.

Dans la page Spécifier des informations sur la source, sélectionnez Date dans la liste déroulante Table principale. Notez que la colonne clé est DateKey. La colonne clé doit identifier de manière unique chaque enregistrement dans la table, de sorte que SSAS puisse correctement agréger ou regrouper des données lors du renvoi de résultats de requête. Ensuite, dans la liste déroulante Nom de la colonne, sélectionnez FullDateAlternateKey. SSAS utilise la colonne de nom comme étiquette s'affichant pour l'utilisateur, au lieu d'afficher la colonne clé.

Cliquez sur Suivant.

Dans la page Sélectionner les attributs de dimension, choisissez les attributs à inclure dans la dimension, que vous utilisez pour définir des hiérarchies ou des étiquettes de regroupement supplémentaires.

La décision d'inclure tous les attributs de la table de dimension dépend des types de questions auxquelles vous souhaitez répondre dans votre solution de décisionnel. Ajoutez uniquement la quantité d'attributs requise pour garantir un fonctionnement optimal de SSAS, afin d'éviter la consommation inutile d'espace de stockage et de semer la confusion chez les utilisateurs avec un nombre excessif d'options. Pour cette dimension, sélectionnez Calendar Year (Année civile), Quarter (Trimestre) et Month (Mois). Cliquez sur Suivant, puis sur Terminer.

Pour vous assurer que chaque attribut peut être identifié de manière unique, mettez à jour la propriété KeyColumn. En définissant cette propriété sur les colonnes clés, vous êtes sûr que l'attribut Month est correctement trié selon une séquence numérique plutôt que par ordre alphabétique (par nom du mois), qui correspond à l'ordre de tri par défaut.

Pour mettre à jour la propriété KeyColumn, sélectionnez Month dans le volet Attributs sur la gauche. Dans la fenêtre Propriétés, cliquez sur la propriété KeyColumns, puis sur le bouton points de suspension (...). Dans la boîte de dialogue Colonnes clés, cliquez sur la flèche gauche pour effacer l'affectation actuelle, puis double-cliquez sur CalendarYear et MonthNumberOfYear. Affectez ensuite une étiquette à cet attribut en cliquant sur le bouton points de suspension (...) dans la zone de propriété NameColumns. Sélectionnez EnglishMonthName et cliquez sur OK.

Répétez ces étapes pour définir la propriété KeyColumns de l'attribut Quarter sur CalendarYear et CalendarQuarter, et pour définir la propriété NameColumns sur Quarter.
La dimension apparaît désormais dans l'Explorateur de données en tant que Date.dim et le Concepteur de dimensions (illustré à la figure 3) s'affiche dans la zone d'espace de travail principale dans BIDS.

Date Dimension

Figure 3 : Dimension Date affichée dans le concepteur

Le volet Attributs situé sur la gauche affiche la dimension avec ses attributs associés, notamment l'attribut clé. Si vous décidez ultérieurement d'ajouter des attributs supplémentaires, vous pouvez les faire glisser l'un après l'autre du volet Vue de source de données vers le volet Attributs. Vous utilisez l'Assistant Dimension uniquement lorsque vous démarrez une nouvelle dimension, mais tout changement ultérieur doit être apporté via le Concepteur de dimensions.

Utilisez à présent l'Assistant Dimension pour créer la dimension Product, en utilisant Product comme table principale et EnglishProductName comme nom de colonne. Étant donné que la dimension Product est un schéma en flocon, l'assistant inclut une page supplémentaire pour confirmer que vous souhaitez inclure les tables associées ProductSubcategory et ProductCategory.

Ajoutez ensuite les attributs Color (Couleur) et Size (Taille) à la dimension. Notez que l'assistant sélectionne automatiquement les colonnes clés pour les tables en flocon, Product Subcategory Key et Product Category Key. Pour pouvoir ensuite ajouter les colonnes de noms correspondant pour ces attributs, vous devez auparavant finalisé l'assistant afin de pouvoir modifier les propriétés d'attributs. 

Lorsque le Concepteur de dimensions s'affiche, sélectionnez Product Category Key dans le volet Attributs. Dans la fenêtre Propriétés, recherchez la propriété Name (Nom) et attribuez-lui le nom Catégorie. Faites défiler la fenêtre Propriétés vers le bas pour rechercher la propriété NameColumn.

Cliquez sur la zone de texte de la propriété pour afficher le bouton points de suspension (…), cliquez sur le bouton, sélectionnez EnglishProductCategoryName et cliquez sur OK. Répétez ces étapes pour renommer Product Subcategory Key en Sous-catégorie et pour spécifier EnglishProductSubcategoryName comme nom de colonne. Enfin, renommez l'attribut Product Key en Produit.

Ajout de hiérarchies

Notez la ligne ondulée bleue qui s'affiche sous le nom de la dimension Product dans le volet Attributs. Lorsque vous placez votre curseur sur cette ligne, le message d'avertissement suivant s'affiche : "Créer les hiérarchies dans les dimensions de type enfant non parent". Ce message est un exemple des avertissements de méthodes recommandées intégrés à SSAS 2008 pour vous aider à créer une base de données SSAS correcte. Retournez dans le Concepteur de dimensions Date, en cliquant sur l'onglet applicable dans l'espace de travail du document ou en double-cliquant sur Date.dim dans l'Explorateur de solutions. Le même message d'avertissement s'affiche alors.

L'ajout d'une hiérarchie à une dimension est considéré comme une méthode recommandée pour plusieurs raisons, notamment à des fins de convivialité et d'optimisation. Plus précisément, une hiérarchie fournit un chemin de navigation que les utilisateurs peuvent suivre pour passer des données résumées aux données détaillées. Cela peut en outre permettre d'améliorer les performances de requête en autorisant SSAS à calculer et stocker des agrégations avant la réception des requêtes utilisateur.

Par exemple, si l'utilisateur souhaite voir les ventes du revendeur par année et qu'une hiérarchie dans la dimension Date définit le chemin cumulatif depuis l'attribut clé (Date Key) jusqu'à l'attribut Calendar Year, SSAS peut calculer les données de ventes par année lors du processus, puis placer les résultats dans un stockage permanent. Grâce à ce stockage des agrégations, il est inutile de calculer les ventes de chaque année au moment de la requête, et c'est bien là que réside la différence clé par rapport à l'extraction de données depuis un data mart relationnel ou une base de données multidimensionnelle telle que SSAS.

Pour ajouter une hiérarchie à la dimension Date, faites glisser l'attribut Calendar Year du volet Attributs vers le volet Hiérarchie dans le Concepteur de dimensions. Une fois que vous avez ajouté le premier attribut, un objet hiérarchie s'affiche avec un nouveau niveau vide sous l'attribut que vous venez d'ajouter. Ajoutez les attributs Quarter et Month à la hiérarchie en les faisant glisser sur l'espace correspondant au niveau vide. Renommez ensuite la hiérarchie en cliquant avec le bouton droit sur Hiérarchie, puis en cliquant sur Renommer et en tapant Année.

Bien que vous ayez ajouté une hiérarchie, un avertissement continue de s'afficher pour la dimension Date. Déplacez votre curseur sur la ligne pour voir s'afficher un nouvel avertissement : "Éviter les hiérarchies d'attributs visibles pour les attributs utilisés comme niveaux dans les hiérarchies définies par l'utilisateur". Ce message vous suggère d'empêcher les utilisateurs d'afficher un attribut seul lorsque cet attribut a été inclus dans une hiérarchie. En d'autres termes, un utilisateur doit pouvoir afficher l'attribut uniquement lorsqu'il navigue au sein de la hiérarchie.

D'après mon expérience, cette décision doit réellement être prise en accord avec les utilisateurs. Si vous décidez de tenir compte de cet avertissement, sélectionnez Quarter dans l'onglet Attributs puis, dans la fenêtre Propriétés, définissez la valeur AttributeHierarchyVisible sur False.

Relations d'attributs

Un autre avertissement s'affiche dans la hiérarchie elle-même. Le cas échéant, ce message indique qu'un problème de performances peut se produire en raison de l'absence de relations d'attributs entre un ou plusieurs niveaux de la hiérarchie. Les relations d'attributs sont utilisées par SSAS pour optimiser les performances de requête et la conception des agrégations, réduire la quantité de stockage requise pour une dimension, et accélérer le temps de traitement de base de données.

Cliquez sur l'onglet Relations d'attributs dans le Concepteur de dimensions. (Notez que cet onglet est disponible uniquement si vous utilisez Analysis Services 2008.) Par défaut, tous les attributs sont directement associés à l'attribut clé, Date Key. Pour optimiser la conception en réaffectant les relations, faites glisser l'onglet Month vers l'objet Quarter, puis faites glisser l'objet Quarter vers l'objet Year (Année). La relation illustrée dans le concepteur représente désormais correctement les relations plusieurs-à un entre chaque niveau, de gauche à droite, comme illustré à la figure 4.

Attribute Relationships

Figure 4 : Relations d'attributs

Ajoutez ensuite une hiérarchie à la dimension Product appelée Categories (Catégories) qui contient Category (Catégorie), Subcategory (Sous-catégorie) et Product (Produit), de haut en bas. Une fois la hiérarchie créée, il sera inutile de résoudre les relations d'attributs entre les niveaux, car les relations de clés étrangères entre les tables sont déjà définies dans la vue DSV. Vous pouvez cependant, si vous le souhaitez, définir la propriété AttributeHierarchyVisible sur la valeur False.

Votre projet comprend désormais deux dimensions qui possèdent des hiérarchies et des relations d'attributs correctement définies. Lorsque vous en saurez plus sur la conception des dimensions, vous découvrirez que plusieurs propriétés permettent d'ajuster les performances et de contrôler un comportement spécifique de l'interface utilisateur.

Par ailleurs, dans des solutions de décisionnel plus complexes, il y aura davantage de dimensions. Cependant, à ce stade, vous maîtrisez les principes de base des dimensions et possédez les connaissances requises pour créer une solution viable en créant un cube.

Création d'un cube

De la même manière que vous utilisez l'Assistant Dimension pour lancer le processus de définition de vos dimensions, vous utilisez l'Assistant Cube pour lancer la création de votre cube. Dans l'Explorateur de solutions, cliquez avec le bouton droit sur le dossier Cubes, cliquez sur Nouveau cube, puis sur Suivant dans la page de bienvenue si applicable. Dans la page Sélectionner la méthode de création, conservez l'option par défaut. (Vous utiliseriez les deux autres options avec une conception que vous souhaitez créer manuellement ou avec un modèle, puis SSAS générerait les tables dans la source de données en fonction de cette conception. Vous devrez ensuite peupler cette source de données avec des données à l'aide d'Integration Services avant de pouvoir naviguer dans votre cube.) Cliquez sur Suivant.

Dans la page Sélectionner les tables de groupes de mesures, choisissez Ventes sur Internet et Ventes du revendeur, puis cliquez sur Suivant. (Les tables de groupes de mesures sont l'équivalent de tables de faits.) L'assistant affiche ensuite toutes les colonnes numériques trouvées dans les tables de groupes de mesures sélectionnées. En conservant l'approche simple que vous avez adopté jusqu'à présent, supprimez toutes les mesures en désactivant la case à cocher Mesure en haut de la page, puis sélectionnez les mesures suivantes dans chaque groupe (Ventes sur Internet et Ventes du revendeur) : Quantité de commandes, Coût de revient total et Montant des ventes.

Vous pouvez également renommer les mesures sur cette page. Il vous suffit de cliquer avec le bouton droit de la souris sur le nom de la mesure et de taper le nouveau nom, en veillant à ce que chaque mesure ait un nom unique. Le nom doit être court, mais suffisamment long pour être cryptique. Renommez les mesures dans le groupe Ventes sur Internet, comme suit : Quantité de commandes sur Internet, Coût Internet et Ventes sur Internet. De la même manière, renommez les mesures Ventes du revendeur comme Quantité de commandes du revendeur, Coût du revendeur et Ventes du revendeur. Cliquez sur Suivant.

Dans la page Sélectionnez des dimensions existantes, l'assistant affiche les dimensions que vous avez déjà créées. Cliquez sur Suivant. Si certaines tables de la vue DSV ne sont pas référencées comme table de groupes de mesures ou par une dimension existante, la page Sélectionner de nouvelles dimensions s'affiche et vous permet d'ajouter rapidement des dimensions supplémentaires, si nécessaire. Le cas échéant, désactivez les cases à cocher Ventes sur Internet et Ventes du revendeur, car ces tables créées comme des dimensions ne sont pas requises. (Même si techniquement il s'agit de tables de groupes de mesures, la présence de numéros de commandes dans les tables vous permettrait de créer des dimensions pour assurer la création de rapport ou l'analyse de ventes par numéro de vente.)

Cliquez sur Suivant, attribuez le nom Ventes au cube, puis cliquez sur Terminer. Félicitations !

Vous avez créé un cube simple. Le Concepteur de cube affiche les groupes de mesures et les dimensions ajoutées au cube dans les volets sur la gauche et la vue DSV source sur la droite, comme illustré à la figure 5.

Cube Designer Showing Measure Groups and Dimensions

Figure 5 : Concepteur de cube affichant des groupes de mesures et des dimensions

La première action à effectuer après avoir créé un cube est de définir la propriété FormatString de chaque mesure pour faciliter l'affichage des valeurs dans l'Explorateur de cube. Pour ce faire, la manière la plus rapide consiste à afficher les mesures dans une grille. Dans la barre d'outils du Concepteur de cube, cliquez sur le cinquième bouton à partir de la gauche pour passer de la vue d'arborescence à la vue de grille. Dans la vue de grille, vous pouvez utiliser la touche Ctrl pour sélectionner simultanément plusieurs mesures. Sélectionnez tout d'abord Quantité de commandes sur Internet et Quantité de commandes du revendeur. Dans la fenêtre Propriétés, dans la liste déroulante FormatString, sélectionnez Standard. Sélectionnez ensuite toutes les mesures restantes pour définir la propriété FormatString sur Currency.

Ajout de calculs

SSAS offre une fonctionnalité puissante qui permet d'ajouter des calculs en utilisant le langage MDX (Multidimensional Expression). Si vous pouvez écrire des formules dans Excel, alors vous pouvez créer des calculs dans votre cube en utilisant des expressions MDX simples. Pour les expressions plus complexes, vous devrez vous attarder davantage sur l'apprentissage du langage MDX (cours théoriques et beaucoup de pratique).

N'oubliez pas que l'un des objectifs de la conception de cette solution consiste à mesurer la rentabilité par canal de vente. Le cube inclut désormais les mesures requises pour calculer la rentabilité : Coût Internet, Ventes sur Internet, Coût du revendeur et Ventes du revendeur. La différence entre les ventes et le coût est la marge brute. Cependant, ce calcul renvoie des valeurs exprimées en dollars absolus, ce qui n'aide pas vraiment pour effectuer des comparaisons entre les canaux. Outre la marge brute, vous devez calculer le pourcentage de marge brute en divisant la marge brute par le montant de vente.

Dans le Concepteur de cube, cliquez sur l'onglet Calculs, le troisième onglet à partir de la gauche. Cliquez ensuite sur le bouton Nouveau membre calculé de la barre d'outils, le cinquième bouton à partir de la gauche. Dans la zone de texte Nom, tapez [Marge brute Internet].

Les crochets sont nécessaires lorsque le nom inclut des espaces. Dans la zone de texte Expression, tapez [Ventes sur Internet] - [Coût Internet], puis dans la liste déroulante Chaîne de format, sélectionnez Currency. Répétez ces étapes pour ajouter les calculs illustrés à la figure 6.

Nom Expression Chaîne de format
[Marge brute du revendeur] [Ventes du revendeur] - [Coût du revendeur] "Currency"
[Pourcentage de marge brute Internet] [Marge brute Internet] / [Ventes sur Internet] "Percent"
[Pourcentage marge brute du revendeur] [Marge brute du revendeur] / [Ventes du revendeur] "Percent"

Figure 6 : Ajout de calculs au cube

Déploiement d'une base de données Analysis Services à partir de BIDS

Jusqu'à présent, bien que nous ayons créé les objets requis pour créer une base de données SSAS sur le serveur, la base de données elle-même n'existe pas encore. Les tâches de conception réalisées dans BIDS produisent des fichiers XML qui doivent être déployés vers le serveur.

Une fois ces fichiers déployés, vous pouvez traiter la base de données, qui exécute les commandes requises pour générer les structures de stockage définies par les fichiers XML et pour peupler ces structures en exécutant des requêtes sur la source de données spécifiée.

Dans BIDS, démarrez toutes ces activités en cliquant avec le bouton droit sur le projet dans l'Explorateur de solutions, puis en cliquant sur Déployer. La fenêtre État d'avancement du déploiement s'ouvre. Elle affiche chaque étape réalisée, et indique quelles étapes ont échoué et quelles étapes ont réussi.

Une fois que vous avez déployé un projet, vous pouvez encore effectuer des modifications dans les concepteurs. Il vous suffit de déployer à nouveau le projet comme décrit précédemment pour transférer les changements vers le serveur et lancer le traitement. Si un message vous demande de confirmer le remplacement de la base de données, cliquez sur Oui, si vous êtes sûr d'être la seule personne à avoir effectuer des changements dans la base de données.

Il arrive que les changements effectués ne déclenchent pas la commande de traitement de la base de données après le déploiement. Le cas échéant, cliquez simplement sur la dimension ou sur le cube modifié, puis cliquez sur Traiter, puis sur Exécuter. Si vous traitez une dimension à l'aide de l'option Traiter entièrement (nécessaire si vous réalisez un changement structurel important sur la dimension), vous devrez peut-être également traiter le cube manuellement.

À chaque stade du développement, du moment que vous avez réussi à déployer et à traiter la solution, vous pouvez consulter la progression des opérations du point de vue de l'utilisateur. Dans le Concepteur de cube, cliquez sur l'onglet Navigateur. Le volet de gauche affiche les objets présents dans la base de données SSAS dans une arborescence (illustré à la figure 7). Le nœud supérieur de l'arborescence est le cube. Développez le nœud Mesures et les dossiers qu'il contient pour afficher toutes les mesures disponibles, puis développez les nœuds Order Date (Date de commande) et Product (Produit) pour afficher les attributs dans ces dimensions.

Sales cube

Figure 7 : Arborescence des métadonnées du cube Ventes

Vous pouvez vous demander pourquoi le cube contient les nœuds Due Date (Date d'échéance), Order Date (Date de commande) et Ship Date (Date d'expédition) alors que vous avez créé une seule dimension Date. Ces dimensions du cube sont appelées de dimensions de rôle actif, car elles représentent des versions logiques différentes de la même dimension.

Elles s'affichent automatiquement dans le cube lorsque vous incluez la dimension Date, car la table de faits comprend trois colonnes de clés étrangères différentes qui sont toutes associées à la table unique sur laquelle la dimension Date se base pour assurer le suivi séparé des événements de commande, d'expédition et d'échéance. (Si ces dates de rôle actif ne sont pas pertinentes pour l'analyse, vous pouvez supprimer celles dont vous n'avez pas besoin sur la page Structure de cube du concepteur.)

Pour afficher les données du cube, faites glisser des objets de l'arborescence de métadonnées vers la grille, au centre du concepteur. Commencez en faisant glisser Ventes sur Internet vers la zone intitulée Placer les totaux ou les champs de détails ici.

Répétez ensuite ce processus pour ajouter Pourcentage de marge brute sur Internet, Ventes du revendeur et Pourcentage de marge brute du revendeur à la grille. Les résultats de cette requête simple étant désormais clairement visibles dans l'Explorateur de cube (comme illustré à la figure 8), vous pouvez voir que les Ventes sur Internet sont sensiblement plus rentables que les Ventes du revendeur.

Query result

Figure 8 : Résultats de la requête dans l'Explorateur de cube

Vous pouvez continuer à explorer ces résultats en faisant glisser des attributs vers les sections de la grille pour les lignes, les colonnes ou les filtres, collectivement appelées des axes, ou en faisant glisser des attributs et des mesures en dehors de la grille. Le processus d'ajout d'objets aux axes destiné à affiner la requête est appelé "décomposition" par les utilisateurs de décisionnel et constitue un moyen rapide d'interroger des données sans écrire de code. Par exemple, pour décomposer par année, faites glisser Order Date.Year vers la section intitulée Déposer champs de ligne Ici.

Étant donné que Order Date.Year est une hiérarchie (comme indiqué par l'icône en forme de pyramide), vous pouvez décomposer la vue par trimestre en développant une ou plusieurs des années. De même, vous pouvez décomposer par catégorie en faisant glisser Catégories vers l'axe des colonnes, sous les mesures.

Après avoir placé des objets sur les lignes ou les colonnes, vous pouvez filtrer la liste des éléments en cliquant sur la flèche dans la légende. Pour supprimer Composants de la grille, cliquez sur la flèche dans l'option Catégorie, désactivez la case à cocher Composants et cliquez sur OK. Ensuite, pour simplifier la vue, faites glisser Ventes sur Internet et Ventes du revendeur en dehors de la grille. Vous pouvez à présent facilement comparer la rentabilité des canaux Internet et Revendeur par année et par trimestre, ainsi que par catégorie de produit, comme illustré à la figure 9.

Profitability

Figure 9 : Rentabilité des canaux de ventes par Année et Trimestre, et par Catégorie

Partage du cube avec d'autres utilisateurs

Par défaut, seul l'administrateur de serveur est autorisé à accéder au cube. Cependant, une fois que votre cube est déployé sur Analysis Server, vous pouvez définir des autorisations d'accès aux utilisateurs, leur permettant d'utiliser leur outil préféré pour parcourir le cube. Microsoft Excel 2007 est un choix populaire pour une navigation interactive, mais vous pouvez également utiliser Reporting Services pour distribuer des rapports basés sur les données du cube, comme je l'expliquerai dans un article à venir.

Mise en pratique de vos nouvelles compétences

Maintenant que vous avez créé une base de données de petite taille en utilisant les exemples de données AdventureWorks, vous devez appliquer ce que vous avez appris à vos propres données en créant un cube simple. Si vous avez une conception simple et un jeu de données de taille limitée (contenant moins de plusieurs millions de lignes, par exemple), vous pouvez créer une base de données sans avoir à créer et gérer un data mart. Configurez simplement une vue de source de données pour interroger la source en utilisant des requêtes nommées qui structurent les données d'une façon qui se rapproche le plus possible d'un schéma en flocon. Lorsque votre source de données reçoit de nouvelles données, il vous suffit de procéder à un traitement intégral de votre base de données SSAS pour qu'elle soit synchronisée avec votre source de données.

Si votre cube comporte davantage de données, consultez les manuels et ressources en ligne disponibles pour en savoir plus sur SSAS, car cet article se contente d'aborder les principes de base concernant la création d'un cube simple. Par exemple, au début de cet article, j'ai mentionné la gestion de l'agrégation comme étant un des avantages de SSAS, mais je ne suis pas entrée plus en détail sur ce sujet.

Pour en savoir plus sur les agrégations et autres options avancées, consultez le manuel "Microsoft SQL Server 2008 Analysis Services Step by Step" (Microsoft Press, 2009), publié récemment par un de mes amis, Scott Cameron, qui a entamé une carrière dans le décisionnel en même temps que moi, il y a maintenant des années. Maintenant que vous avez créé votre premier cube, essayez de renforcer vos compétences afin de développer des cubes plus avancés et de bénéficier au maximum de la plate-forme de décisionnel Microsoft.

Stacia Misnerest consultante en décisionnel, formatrice et auteur, ainsi que la fondatrice et directrice de Data Inspirations. Elle possède 25 ans d'expérience dans le secteur informatique, dont neuf axés sur la pile Microsoft BI. Stacia a écrit plusieurs livres sur le décisionnel et SQL Server. Son dernier livre, "Microsoft SQL Server 2008 Reporting Services Step by Step" (Microsoft Press, 2009), a été publié cette année. Vous pouvez lui écrire à l'adresse smisner@datainspirations.com.

 

Ressources complémentaires

Développement (Analysis Services - Données multidimensionnelles) (documentation en ligne)
msdn.microsoft.com/library/bb500183.aspx

Configuration de la sécurité (Analysis Services - Données multidimensionnelles) (documentation en ligne)
msdn.microsoft.com/library/ms175386.aspx

Vidéos liées à Analysis Services (SQL Server 2008) (documentation en ligne)
msdn.microsoft.com/library/dd299422.aspx