Initiation au décisionnel (Business Intelligence, DataWarehouse, OLAP)Date de publication : 20/10/2007 , Date de mise à jour : 20/10/2007
Par
Mohamed Taslimanka Sylla (Page personnelle)
Ce tutoriel a pour objectif de vous expliquer les objectifs du décisionnel ainsi que le jargon qui va avec.
Dans une deuxième partie, je passe à un tutoriel qui traite l'analyse OLAP qui est partie intégrante du décisionnel.
I. Introduction II. Aspect Théorique II-A. Pourquoi le décisionnel? II-B. Qui a besoin du décisionnel? II-C. Architecture des systèmes décisionnels II-C-1. Les sources de données II-C-2. L'entrepôt de données II-C-3. Le serveur OLAP ou serveur d'analyse II-C-4. Le générateur d'états II-C-5. Quelques termes usuels du décisionnel III. Aspect pratique III-A. Pré-requis III-B. Créer une Source de données ODBC III-C. Démarrer OLAP Manager III-D. Créer votre base de données d'analyse III-E. Créer une source de données OLAP III-F. Ouvrir l'assistant création de Cube III-G. Ajouter une mesure au cube III-H. Construire la dimension Temps III-I. Construire la dimension Produit III-J. Construire la dimension Magasin III-K. Construire la dimension Promotion III-L. Terminer la création du cube III-M. Editer le cube dans l'éditeur de cube III-N. Ajouter un rôle au cube III-O. Concevoir le type de stockage et traiter le cube III-P. Visualiser les métadonnées du cube III-Q. Naviguer sur les données du cube IV. Conclusion V. Remerciements I. Introduction
Vous avez certainement dû entendre parler, au moins d'un de ces 3 termes qui sont intimement liés : Business intelligence, Datawarehouse et Analyse OLAP.
En effet, depuis l'an 2000-2001, le marché du décisionnel ne cesse d'exploser en France (et partout d'ailleurs) surtout avec l'investissement de plusieurs grandes sociétés qui souhaitent instaurer un système de Business Intelligence (B.I) dans leur organisation.
Ce système difficile à mettre en œuvre, demandant une expertise et nécessitant une maîtrise d'ouvrage de la part des informaticiens concepteurs du système rend souvent difficile le recrutement de ces profils. Mais c'est quoi le décisionnel ? Comment y débuter ?
Eh bien je vais tenter dans cet article de donner un aperçu de tout ce jargon souvent méconnu et n'ayant souvent pas d'équivalents français et j'essaierai après un bref aspect théorique, de passer à un aspect pratique traitant l'analyse OLAP avec Analysis Services de Microsoft.
NB:La deuxième partie de cet article a été réalisé avec la version 7.0 de Sql Server.Etant encore nouveau dans la version 2005, j'attends encore un moment pour réaliser une nouvelle version de cette partie pratique avec SQL Server 2005.
II. Aspect Théorique
Dans cet aspect théorique nous allons un peu expliquer l'utilité du décisionnel, des acteurs du décisionnel et des architectures usuels.
II-A. Pourquoi le décisionnel?
Tout d'abords, rappelons-le, le décisionnel ne concerne souvent que les entreprises qui gèrent un historique de leurs événements passés (faits, transactions etc.).
Les entreprises qui viennent de naître n'ont souvent pas besoin de faire du décisionnel car elles n'ont pas encore besoin de catégoriser ou de fidéliser leurs clients.
Le soucis majeur pour elles serait plutôt d'avoir le maximum de clients et c'est après en avoir récupéré un grand nombre qu'elles penseront certainement à les fidéliser et leur proposer d'autres produits susceptibles de les intéresser. C'est ce que l'on appelle Customer RelationShip Management (CRM ou gestion des relations clients).
II-B. Qui a besoin du décisionnel?
Comme cela peut se deviner, les décideurs sont les principaux utilisateurs des systèmes décisionnels. Les décideurs sont généralement des " marketeurs " ou analystes en général.
Ces derniers établissent généralement des plans marketing qui leur permettent de mieux cibler leurs clients, de les fidéliser etc.. Et pour cela, ils ont besoin d'indicateurs et des données résumées de leur activités (ils n'ont souvent besoin de détail que pour des cas spécifiques).
Par exemple, contrairement aux systèmes relationnels (ou base gestion) où les utilisateurs chercheront à connaître leurs transactions pour faire un bilan, les systèmes décisionnels eux cherchent plutôt à donner un aperçu global pour connaître les tendances des clients (d'où l'opposition des deux modes [quantitatif contre qualitatif] ).
II-C. Architecture des systèmes décisionnels![]() Exemple d'architecture décisionnel
Voici une architecture de système décisionnel très utilisée.
Dans cette architecture, on dispose d'un entrepôt de données ou DataWarehouse (généralement, il s'agit plutôt d' un datamart qui est plus petit que le DW et qui concerne un domaine bien particulier [finance, ressources humaine etc.] ).
L'entrepôt (ou encore infocentre) centralise les données issues de plusieurs sources (bases de production de l'entreprise, fichiers textes, documents web [html, xml, sgml etc.] etc.).
Ces données sont fusionnées dans l'entrepôt qui est généralement une grosse base de données (SQL Server, Oracle etc.)
Ensuite, une fois l'entrepôt confectionné, des données sont extraites dans des serveurs d'analyse ou serveurs OLAP sous forme de cubes de données (Analysis Server, EssBase etc.) afin d'être analysées.
Enfin des générateurs d'états (Business Objects, Crystal Report etc.) sont utilisés afin de présenter l'étude aux utilisateurs finaux ou décideurs(Ex: analystes marketing).
II-C-1. Les sources de données
Les sources de données sont souvent diverses et variées et le but est de trouver des outils ETL (Extraction, Transformation, Loading) afin de les extraire, de les nettoyer, de les transformer et de les mettre dans l'entrepôt de données (DTS de SQL Server est un exemple d'outil ETL).Des outils comme Datastage ou Talend (monde open source) sont spécialisés en la matière.
II-C-2. L'entrepôt de données
Il est le coeur du système décisionnel et demande une analyse profonde de la part de la maîtrise d'ouvrage.
La conception d'un DataWarehouse diffère de la conception d'une base de données relationnelle.
En effet, alors que les Bases de données relationnelles tendent le plus souvent à être normalisées, les bases de données multidimensionnelles, elles, sont plutôt dénormalisées respectant le modèle en étoile ou le modèle en flocon.
Voici ci dessous un exemple de schéma d'un entrepôt de données:
![]() Modèle physique d'un schéma en étoile
Le modèle physique ci-dessus contient une table centrale à laquelle toutes les autres tables sont liées (modèle en étoile).
La table centrale (ici table VENTE) est appelée la table des faits et contient toutes les autres clés des autres tables.
Cette table de faits contient aussi une ou plusieurs valeurs numériques particulières (ici prix et nb_articles) appelées mesures.
Généralement un niveau de granularité est aussi défini pour la table des faits (regroupe-t-on par exemple un ensemble de ventes de même type pour en faire un enregistrement?Les enregistrements sont-ils unitaires(un enregistrement par transaction)?).
Les autres tables du modèle sont appelées tables de dimensions.
Ici par exemple, on dispose des dimensions CLIENTS,PRODUITS et TEMPS.
Une dimension Temps est presque toujours présente dans les bases multidimensionnelles tout simplement parce qu'on analyse les données dans le temps.
II-C-3. Le serveur OLAP ou serveur d'analyse
OLAP (On-Line Analytical Processing) est opposé à OLTP (On-Line Transactional Processing) et a pour but d'organiser les données à analyser par domaine/thème et d'en ressortir des résultats pertinents pour le décideur.
Les résultats sont donc des résumés et peuvent être obtenus par différents algorithmes de datamining (fouille de données) du serveur d'analyse.
On peut par exemple établir le résultat suivant :
" Les clients qui achètent généralement du beurre et du pain achètent aussi du lait ".
Ces résultats pourraient amener l'organisation (ici en l'occurrence une grande distribution) à disposer ses rayons de tels façon qu'à côté de l'emplacement du beurre, elle mettra le pain et le lait.
II-C-4. Le générateur d'états
Le générateur d'état permet seulement de mieux appréhender le résultat de l'analyse.
L'utilisateur final n'étant pas forcément un informaticien, il aura plus de facilité dans des états Business Objects (ou même dans des feuilles de données Excel) avec des diagrammes et courbes statistiques que d'aller directement requêter dans le serveur d'analyse.
Au passage, je rappelle que travaillant généralement avec SQL Server et Analysis Services, le langage de requêtage multidimensionnelles a pour nom MDX (qui ressemble au SQL mais n'est pas du SQL).
Les états permettent également de faire de l'exploration (navigation) de données (notamment du Rollup / Drill-Down).
II-C-5. Quelques termes usuels du décisionnel
datawarehouse : entrepôt de données
datamart : petit entrepôt de données à l'échelle d'un département ou succursale d'une grande société. Généralement un datamart déverse ses données chez sa mère qui est le datawarehouse
OLTP : OnLine Transactonal Processing. Il s'agit des traitements transactionnels. Par exemple, les logiciels des caisses enregistreuses des chaines de magasins font du OLTP.
OLAP : OnLine Analytical Processing. Opposé à l'OLTP, faire de l'OLAP signifie faire de l'analyse de données. Analyser les ventes, détecter les fraudes, prospecter des clients font partie du processus OLAP.
ETL : un outil ETL (Extraction/Transformation/Loading) permet à partir de diverses sources de données, d'extraire de l'information, de faire des transformations afin de nettoyer les données et de charger des données utiles dans l'entrepôt de données.Les sources de données peuvent être diverses (HTML,XML,Base de données, fichiers texte, tableurs, ERP etc..).
Serveur d'analyse : un serveur d'analyse ou serveur OLAP est un serveur de base de données multidimensionnelle. Exemple : Analysis Server est un serveur de bases multidimensionnelles.
Base de données multidimensionnelle : une base de données multidimensionnelle par opposition à une base de donnée relationnelle est une base dénormalisée ou il existe une table centrale (table de fait) liée à toutes les autres tables (tables de dimension).
Table de fait : comme son nom l'indique, une table de fait est une table contenant tous les faits du SI et dont dépendent toutes les autres tables. Cette table ne contient que des clés étrangères venant des tables de dimension et des valeurs numériques appelées mesure. Exemple de table de fait : table des Ventes
Tables de dimension : les tables de dimension sont des tables servant d'axes d'analyse. On peut par exemple analyser les ventes (table de fait) suivant l'axe des temps (table de dimension) pour indiquer par exemple pendant quel trimestre de l'année les ventes ont explosé.
Mesure :une mesure est une quantité présente dans la table de fait qui permet de mesurer les faits. Par exemple, nombre de vente ou prix unitaire sont des exemples de mesures.
Cube : un cube de données est une structure dimensionnelle comme une table est une structure relationnelle. Un cube est constitué d'un ou plusieurs tables de faits avec leurs tables de dimension. On peut par exemple considérer un cube vente contenant sa table de fait " vente " et ses tables de dimensions " clients ", " région " et " temps ".
Niveau de hiérarchie : un niveau de hiérarchie se définit au niveau des tables de dimensions. Cela permet d'agréger les données. Par exemple, supposons qu'on ait la dimension région contenant la liste des villes, on pourrait faire un niveau de hiérarchie(niveau 1) classant les villes en région, ensuite un niveau plus bas qui les classerait en département (niveau 2).
Drill-down: faire un drill-down, c'est avoir un niveau de détails sur les données. Par exemple Supposons qu'on veuille voir le détail des ventes pour le premier trimestre de l'année 1997.On dit qu'on fait un drill-down sur l'axe (ou dimension) temps. C'est à dire qu'on ne veut pas voir seulement les données de l'année 1997 mais descendre à un niveau de détail plus bas.
Roll-up: rollup est le contraire de drill-down. C'est donc faire de l'agrégation (ou résumé) des données.
III. Aspect pratique
Pour l'aspect pratique, nous allons supposer que notre datawarehouse est déjà mis en place. Tout ce que nous allons faire , c'est faire de l'analyse OLAP sur notre datawarehouse.
III-A. Pré-requis
Avant de commencer ce tutorial, vous devez posséder la base Access FoodMart.mdb qui est notre datawarehouse. Cette base est une base d'exemple fournit par Microsoft.
Une remarque assez importante sur cette base est qu'ici on voit que la base Access est déjà sous format d'un datawarehouse avec des tables de faits (sales_fact_1997 ou sales_fact_1998) et tables de dimensions (product ou region ou store).
![]()
Ci-dessous on voit bien que la table sales_fact_1997 est une table de fait qui référence les autres tables.
Cette table ne contient que des valeurs numériques (les identifiants des tables de dimension ainsi que les mesures).
NB : Cette base de données exemple se situe sur C:\Program Files\OLAP Services\Samples\FoodMart.mdb (bien sur pour la version 7 de SQL Server).
![]() III-B. Créer une Source de données ODBC
Avant de commencer à travailler avec OLAP Manager, vous devez créer un lien ODBC sur vos données ici en l'occurrence sur la base Access FoodMart.mdb.
Pour cela faire :
![]()
III-C. Démarrer OLAP Manager
OLAP manager est un snap-in qui se situe sur la console MMC Microsoft Management Console.
Pour démarrer OLAP manager faire :
![]() III-D. Créer votre base de données d'analyse
Maintenant vous pouvez travailler avec OLAP manager. Avant d'ouvrir votre cube en mode design, vous devez d'abords mettre en place une structure de données et vous connecter à la source de données créées plus haut.
Pour mettre en place cette source de données faire :
![]()
![]()
![]()
Maintenant que la base de données est créée, il va falloir se connecter à notre datawarehouse et pour cela il faudra créer une source de donnée sous OLAP manager et choisir notre source de données ODBC créées précédemment.
III-E. Créer une source de données OLAP
Pour cela faire :
![]()
Maintenant que nous avons tout configuré, il est temps de construire notre cube de données.
Pour cela nous allons considérer le scénario suivant :
Scénario :
Vous êtes un DBA travaillant pour la société Food Mart.
Food Mart est une large chaîne alimentaire avec des ventes enregistrées dans les 50 états des Etats-Unis. Le département de marketing voudrait alors analyser ses ventes réalisées pour la seule année 1997.
Avec les données stockées dans le " datawarehouse ", vous êtes chargé de construire une structure multidimensionnelle (un cube) pour avoir des temps de réponse plus rapide lorsque les analystes marketing interrogent la base de données.
Rappel :
Un cube de données contient des mesures (ou données qualitatifs comme les coûts ou le nombre de vente etc..) et des dimensions (ou données métiers descriptives comme les régions géographiques, le temps ou encore clients etc.).
III-F. Ouvrir l'assistant création de Cube
Dans l'arborescence du OLAP manager, dans la base vente ", faire un click droit sur " Cube " et choisir " Nouveau cube " puis choisir le sous-menu " Assistant ".
![]() III-G. Ajouter une mesure au cube
![]()
![]() ![]()
![]()
III-H. Construire la dimension Temps
Dans les bases multidimensionnelles la dimension Temps est généralement utilisé. D'ailleurs dans des SGBD comme DB2, elle est même imposée.
Pour construire cette dimension faire :
![]()
![]()
![]()
![]()
![]() ![]()
![]()
![]()
III-I. Construire la dimension Produit
Pour construire la dimension Produit :
![]()
![]()
![]()
![]()
![]()
![]()
III-J. Construire la dimension Magasin
Pour construire la dimension Magasin :
![]()
![]()
![]()
III-K. Construire la dimension Promotion
Pour construire la dimension promotion :
![]()
![]()
III-L. Terminer la création du cube
Pour terminer la création du cube faire :
![]()
III-M. Editer le cube dans l'éditeur de cube
Dans le panneau schéma de l'éditeur de cube, vous pouvez voir la table de fait (avec sa barre de titre jaune) et les tables de dimension (avec leur barre de titre bleue).De plus, dans le panneau de gauche, vous pouvez voir la structure du cube. Vous pouvez éditer les propriétés du cube en cliquant sur le bouton " propriété ".
![]()
Supposons que maintenant vous ayez besoin d'une autre dimension qui vous donne des informations sur les clients. Vous pouvez facilement créer cette dimension .Cependant, les dimensions créées dans l'éditeur de cube sont privées c'est à dire qu'elles ne peuvent être utilisées qu'avec le cube avec lequel vous travaillez. Elles ne peuvent donc être partagées avec d'autres cubes.
![]()
![]()
![]()
![]()
III-N. Ajouter un rôle au cube
Les rôles de cube définissent quels utilisateurs ou groupe d'utilisateurs ont accès au cube et peuvent y requêter. Maintenant que votre cube est totalement construit, vous allons ajouter un rôle au cube. Dans cet exemple, nous ajouterons le rôle " marketing ".
NB :
Le DBA lui n'a pas besoin d'avoir des droits pour requêter sur le cube via OLAP manager. Seuls les utilisateurs qui utilisent un outil client (Excel, Business Objects etc.) sont concernés par les rôles définis.
Pour créer un nouveau rôle pour le cube faire :
![]()
![]()
III-O. Concevoir le type de stockage et traiter le cube
Les services OLAP permettent de choisir un type d' agrégations adéquat. Le choix du type d'agrégation est important car il influe beaucoup sur les temps de réponse des requêtes.Pour optimiser les performances de traitement des requêtes de votre cube, il faut utiliser " l'assistant design du stockage ".
Pour démarrer " l'assistant design du stockage " faire :
![]()
![]()
![]()
![]()
![]()
![]()
NB :
Traiter les agrégations risque de prendre du temps.
III-P. Visualiser les métadonnées du cube
Les services OLAP permettent de voir les métadonnées du cube c'est à dire les information détaillées de la configuration du cube de données. Ces informations apparaissent dans le panneau droit du OLAP manager.
Pour visualiser les métadonnées du cube " sales " faire :
![]() III-Q. Naviguer sur les données du cube
Maintenant, vous êtes prêt à naviguer sur les données de votre cube " Sales ".
En utilisant le browser de cube, vous pouvez voir les données suivant différents axes, vous pouvez aussi filtrer la quantité de données visible des dimensions et vous pouvez aussi faire des " drill-down " pour voir les données à un niveau de détail plus fin (ou faire un " roll-up " pour voir les données agrégées).Pour naviguer faire :
Ainsi le navigateur de cube apparaît faisant apparaître une partie supérieure contenant des dimensions et une partie inférieure contenant une grille avec les mesures et une dimension.
Dans notre cas comme illustré dans la capture d'écran ci-dessous, on voit les quatre dimensions dans la partie de haut et une dimension et les mesures dans la partie basse.
Pour remplacer une dimension par une autre, il suffit de faire un drag de la dimension à partir de la partie haute et faire le drop sur la partie basse.
![]()
Selectionnez donc la dimension Product faite un drag and drop sur la grille (partie basse) en faisant le drop sur là ou se trouve les mesures (MesuresLevel).Vous pouvez voir alors que product et MeasuresLevel sont intervertis comme sur l'écran suivant :
![]()
Maintenant, essayons de filtrer les données par date.
Vous pouvez alors Cliquer sur la combo box de la dimension Time et vous avez la possibilité de voir toutes les données de l 'année 1997 ou de voir par exemple les données du deuxième trimestre seulement de cette même année.
![]()
Vous pouvez aussi faire un " drill-down " des données, c'est à dire avoir un niveau de détail des données.
Par exemple, pour la dimension Product, dérouler le produit " Baking Goods " (patisserie) de la grille, vous pouvez donc voir pour cette catégorie de produit, ses sous-catégories et voir les ventes pour voir les sous-catégories.
![]() IV. Conclusion
Dans cet article, j'ai juste donné un aspect global d'un système décisionnel qui est à la base du Business intelligence (B.I).Car avant de se lancer dans la panoplie d'outils qui font du décisionnel, sans doute faudrait-il d'abords connaître son mode de fonctionnement et avoir un aperçu pratique avec Analysis Services.
Cependant, il serait intéressant de traiter les outils ETL, les états Business Objects ou encore les APIs de programmation multidimensionnelles (ADOMD, javax.jolap etc).
V. Remerciements
Je remercie Fadace pour sa relecture de l'article.
Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur.
La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur.
|