Vous êtes sur la page 1sur 313

Business Intelligence 

avec SQL Server 2008 R2

Sébastien FANTINI  

Résumé

Ce livre sur la Business Intelligence (BI) avec SQL Server 2008 R2, s'adresse à tous les membres d'une équipe décisionnelle : chef de projet,
architecte, développeur ETL, développeur de rapports, service Aide à la Maîtrise d'Ouvrage (AMO). Du débutant au technicien expérimenté, le
lecteur bénéficiera d'une approche métier du décisionnel.
Tout au long du livre, et très progressivement, l’auteur détaille les concepts clés du décisionnel puis les met concrètement en application. Ainsi,
au cours des différents chapitres, le lecteur va utiliser les différents outils de la suite SQL Server pour bâtir progressivement un système
décisionnel complet et professionnel. A chaque chapitre, le livre regorge de solutions concrètes et professionnelles et de bonnes pratiques. Le
lecteur bénéficie des retours d’expérience de l’auteur pour finalement gagner en expertise sur les différentes étapes d’un projet décisionnel.
Plus précisément, l’auteur propose de créer le système décisionnel d’une société virtuelle, Distrisys. Ce sera l'occasion pour le lecteur
d'aborder les sujets suivants :
- L'architecture des serveurs et le choix des licences
- La modélisation de l'entrepôt de données
- La conception du cube Analysis Services
- La réalisation des différents types de flux d'alimentation ETL avec Integration Services
- L'utilisation d'Excel et de PowerPivot pour exploiter les données décisionnelles
- La réalisation de rapports opérationnels et décisionnels avec Reporting Services

Les différentes solutions réalisées au cours du livre sont en téléchargement sur le site www.editions-eni.fr et sont directement exploitables dans
des projets.
Les chapitres du livre :
Avant-propos – Introduction – Installation et découverte des outils SQL Server – Réaliser son premier système décisionnel – La modélisation
dimensionnelle – Alimenter l’entrepôt de données avec SSIS – Restituer les données décisionnelles – Conclusion et perspectives
L'auteur
Sébastien FANTINI est Consultant décisionnel - Expert Microsoft depuis plus de 8 ans. Ses missions d'expert décisionnel auprès de grandes
entreprises tant nationales qu'internationales le conduisent à réaliser l'étude de cadrage, l'élaboration d'un plan directeur, la modélisation
dimensionnelle, l'audit des SIAD, la conception de tableaux de bord, la conception de systèmes d'audit de flux ETL... Il est certifié sur tous les
derniers outils Microsoft liés à la BI.

Ce livre numérique a été conçu et est diffusé dans le respect des droits d’auteur. Toutes les marques citées ont été déposées par leur éditeur respectif. La loi du 11 Mars
1957 n’autorisant aux termes des alinéas 2 et 3 de l’article 41, d’une part, que les “copies ou reproductions strictement réservées à l’usage privé du copiste et non destinées
à une utilisation collective”, et, d’autre part, que les analyses et les courtes citations dans un but d’exemple et d’illustration, “toute représentation ou reproduction intégrale,
ou partielle, faite sans le consentement de l’auteur ou de ses ayants droit ou ayant cause, est illicite” (alinéa 1er de l’article 40). Cette représentation ou reproduction, par
quelque procédé que ce soit, constituerait donc une contrefaçon sanctionnée par les articles 425 et suivants du Code Pénal. Copyright Editions ENI

Ce livre numérique intègre plusieurs mesures de protection dont un marquage lié à votre identifiant visible sur les principales images.

© ENI Editions - All rigths reserved - educ algeria - 1-


À qui s’adresse ce livre ? 
Ce livre s’adresse en premier lieu à tous les membres d’une équipe, ayant pour objectif la mise en œ uvre d’un système 
décisionnel avec SQL Server. 

Par membre de l’équipe décisionnel, nous entendons : 

● Le  chef  de  projet,  qui  trouvera  dans  ce  livre  une  approche  méthodologique,  pour  aborder  la  conception  du 
système décisionnel, ainsi qu’une vision d’ensemble sur les bonnes pratiques d’implémentation des différents 
outils SQL Server. 

● L’architecte,  qui  trouvera  des  réponses  très  concrètes  concernant  l’architecture  serveur,  l’architecture 
logicielle,  le  choix  des  outils  de  restitution,  l’organisation  des  bases  de  données,  les  bonnes  pratiques  de 
modélisation des bases décisionnelles… 

● Le développeur ETL, qui quant à lui, trouvera dans ce livre, un chapitre détaillant comment utiliser l’outil d’ETL 
de Microsoft et rappelant tous les concepts du métier, mais aussi une partie importante qui sera consacrée à 
l’audit  du  système  ETL  :  un  sujet  à  grande  valeur  ajoutée  dans  le  cadre  de  la  mise  en  place  d’un  projet 
d’alimentation de données. 

● Le  développeur  de  rapports  trouvera  un  chapitre  consacré  à  la  restitution  de  données  ainsi  que  tous  les 
éléments  pour  choisir  le  bon  outil  de  restitution.  Il  trouvera  aussi  des  exemples  concrets  mettant  en  œ uvre 
tous les cas d’emplois offerts par les outils à disposition. 

● Le membre d’un service AMO, ne connaissant pas particulièrement le décisionnel et désirant réaliser un cahier 
des  charges  ou  un  appel  à  projet  pour  sélectionner  un  prestataire,  y  trouvera  tous  les  éléments  pour 
comprendre le décisionnel, ses enjeux et comment aborder cette problématique. 

Enfin ce livre s’adresse à toute personne connaissant la base de données SQL Server, désirant comprendre ce qu’est 
le décisionnel et apprendre à utiliser les outils SQL Server qui y sont associés. 

Les  débutants  y  trouveront  des  explications  très  détaillées,  des  actions  et  des  manipulations  à  réaliser.  Les 
techniciens  expérimentés,  quant  à  eux  y  trouveront  une  approche  métier  du  décisionnel,  très  complémentaire  avec 
l’utilisation des outils, ainsi que des solutions pratiques pour implémenter ces concepts. 

Les  étudiants  enfin,  y  trouveront  une  approche  et  des  mises  en  œ uvre  très  concrètes,  proches  du  monde  de 
l’entreprise. Ce livre est un bon moyen d’aborder  l’état de l’art du décisionnel et pour apprendre à utiliser des outils 
qu’ils rencontreront sûrement dans l’exercice de leur futur métier. 

© ENI Editions - All rigths reserved - educ algeria - 1-


Les pré­requis 
Le  seul  pré­requis  nécessaire  est  d’être  familier  avec  la  base  de  données  SQL  Server,  sans  toutefois  en  être  un 
expert. Le livre est fait de telle manière que les bases et concepts liés au décisionnel sont repris et expliqués. 

Pour réaliser les manipulations et suivre le déroulement du livre, vous aurez besoin d’une installation de SQL Server 
2008 R2 ainsi que d’Office 2010 (Excel 2010 notamment). 
Si  besoin,  vous  pouvez  télécharger  ces  solutions  en  version  d’évaluation  sur  le  site  de  Microsoft  : 
http://technet.microsoft.com/fr­fr/evalcenter/ 

© ENI Editions - All rigths reserved - educ algeria - 1-


Les objectifs du livre 
Cet ouvrage n’a pas pour objectif de faire de vous des experts techniques sur chacun des outils de la suite SQL Server, 
mais  plutôt  de  vous  apprendre  à  les  comprendre  et  à  bien  les  employer  dans  le  cadre  de  la  mise  en  œ uvre  d’un 
système décisionnel. 
Cet ouvrage se veut avant tout un support et un outil pour toute personne désirant réaliser un système décisionnel 
avec  Microsoft,  en  bénéficiant  des  meilleures  pratiques.  Les  pratiques  expliquées  dans  l’ouvrage  sont  issues  des 
théories du décisionnel mais aussi de leur application concrète sur le terrain. 
Le livre suit la mise en œ uvre concrète d’un système décisionnel au sein d’une société virtuelle, sous tous ses aspects. 

● Les premiers chapitres vont vous permettre de vous familiariser avec le projet décisionnel : 

● Le  chapitre  Installation  et  découverte  des  outils  SQL  Server  permettra  de  faire  le  point  sur 
l’architecture serveur et logicielle. Des propositions concrètes d’architecture vous seront proposées. 

● Le  chapitre  Réaliser  son  premier  système  décisionnel  vous  permettra  de  créer  en  quelques 
manipulations  un  entrepôt  de  données  avec  son  cube  associé.  Ce  chapitre  vous  permettra  ainsi  de 
vous familiariser avec les grands concepts du décisionnel et de les démystifier. Il vise à vous donner les 
moyens de réaliser des maquettes ou de mener à bien des ateliers de modélisation. 

● Les chapitres suivants entreront dans les détails de chacune des phases clés d’un lot projet : 

● Le chapitre La modélisation dimensionnelle abordera les concepts ainsi que les bonnes pratiques de 
modélisation. Nous vous fournirons très concrètement des modélisations standards dont vous pourrez 
vous inspirer pour vos projets. 

● Le chapitre Alimenter l’entrepôt de données avec SSIS vous permettra d’aborder dans le détail l’ETL : 
l’architecture d’alimentation des données, les différents types de flux et le système d’audit. Ce chapitre 
regorge  d’exemples  illustrant  chaque  type  de  flux  et  chaque  situation.  Autant  d’exemples  que  vous 
pourrez réutiliser également directement sur vos projets. 

● Le chapitre Restituer les données décisionnelles abordera le bon usage des outils Excel et Reporting 
Services. Vous apprendrez notamment à utiliser le PowerPivot et à réaliser la publication de masse d’un 
rapport décisionnel. 

L’ensemble de ces chapitres est organisé logiquement afin de suivre le déroulement chronologique du projet. 

Vous découvrirez dans le chapitre qui va suivre qu’un lot projet débute toujours par la réalisation puis la validation d’un 
modèle de données et du cube qui lui est associé. 

Les étapes d’un projet décisionnel sur un périmètre fonctionnel (lot) 

L’ouvrage  ne  traite  pas  spécifiquement  des  nouveautés  de  la  version  SQL  Server  2008  R2  par  rapport  aux  versions 
précédentes. Néanmoins, les lecteurs trouveront ici et là des éléments abordant ces nouveautés. 

© ENI Editions - All rigths reserved - educ algeria - 1-


- 2- © ENI Editions - All rigths reserved - educ algeria
Présentation du décisionnel 
Cet ouvrage a pour but de montrer la manière dont il faut se servir des outils Microsoft SQL Server afin d’aborder au 
mieux la problématique décisionnelle. 
Avant de rentrer dans des considérations techniques, il est bon de faire un point sur ce qu’est le décisionnel et ce que 
ce terme sous­entend. 
Pour faire très simple, l’informatique décisionnelle recouvre tous les moyens informatiques destinés à améliorer la prise 
de décision des décideurs d’une organisation. 
Cette définition pose trois nouvelles questions : 

● Qu’est­ce qu’un décideur ? 

● Qu’est­ce qui peut permettre d’améliorer la prise de décision ? 

● Quels sont les moyens informatiques disponibles ? 

L’informatique  décisionnelle  est  souvent  appelée  BI  pour  Business  Intelligence.  Attention,  le  décisionnel  n’a 
strictement  rien  à  voir  avec  une  mauvaise  traduction  littérale  de  Business  Intelligence,  qui  serait  Intelligence 
Economique. Ne confondons pas tout ! 

1. La notion de décideur 

Sous  le  modèle  du  taylorisme  et  jusque  dans  les  années  80­90,  les  organisations  étaient  organisées  de  manière 
pyramidale.  Les  décisions  étaient  prises  au  sommet  de  la  pyramide  et  les  ordres  étaient  transmis  de  manière 
descendante  et  unilatérale  à  tous  les  niveaux  opérationnels.  Dans  ce  type  d’organisation,  les  décideurs  étaient 
seulement les dirigeants de l’organisation. 
Ce type d’organisation était efficace tant que le marché était localisé et qu’il suffisait de produire pour vendre. 

Depuis nous sommes confrontés à une complexité grandissante du marché liée : 

● À la mondialisation : les concurrents sont plus nombreux, plus innovants, mieux armés. 

● À  une  modification  des  comportements  d’achats  :  l’organisation  se  doit  d’être  centrée  client.  En  effet,  les 
produits sont de plus en plus personnalisés (on parle de one­to­one). 

● Au fait que le monde va de plus en plus vite : le critère de délai de livraison ou de disponibilité de l’information 
7  jours  du  7,  24h  sur  24  associé  à  la  mondialisation  et  la  personnalisation  du  besoin  client,  démultiplie  la 
complexité de l’écosystème de l’organisation. 

Afin  de  pouvoir  répondre  à  cette  complexité  grandissante  du  marché,  l’entreprise  dans  les  années  90,  puis  avec  le 
web dans les années 2000 a amorcé une mutation de son organisation. Une des conséquences de cette modification 
latente des organisations est que les cadres opérationnels sont devenus autant de décideurs de terrain. 

Dans une entreprise internationale, les responsables du marché français, japonais et indien sont forcément des personnes 
distinctes. Les marchés sont trop différents. De même, dans cette même entreprise, le responsable de l’unité parisienne est 
différent du responsable de l’activité à Nice sur le littoral ou à Limoges dans le Limousin : les clients sont trop différents, 
leurs  attentes,  leurs  disponibilités  diffèrent  trop  pour  qu’une  politique  unique  soit  menée  unilatéralement  sans  prise  en 
compte de cette différence. 

Cette  logique,  facile  à  comprendre  dans  un  cadre  commercial,  s’applique  dans  tous  les  domaines  de  l’entreprise. La 
prise de décision ne peut plus être centrale, celle­ci doit être déléguée. 

De fait, dans une entreprise moderne, tout cadre devient un décideur de terrain et dispose d’une autonomie relative. 
C’est cette explosion du nombre de décideurs qui pose un gros problème à : 

● L’informatique, qui se voit démultiplier le nombre de demandes de rapports et d’extraction de données. 

● La direction, qui a besoin d’outils pour manager ses décideurs : de la cohérence est nécessaire afin que les 
décisions prises à tous les niveaux de l’entreprise, le soient en accord avec la stratégie d’entreprise. 

© ENI Editions - All rigths reserved - educ algeria - 1-


Cette problématique, liée à une démocratisation des outils décisionnels, a fait exploser la demande et mis en avant au 
début des années 2000, ce besoin de décisionnel. 

Face à ce constat, qui sont les décideurs dans une entreprise ? 

On les classe en trois catégories : 

Les décideurs stratégiques

Exemple : la direction générale dans une entreprise. 

● Horizon de travail : Long terme. 

● Périmètre de travail : Tous les services, tous les territoires. 

● Leur  rôle  :  ces  décideurs  impulsent  une  politique,  définissent  les  valeurs  de  l’organisation  et  donnent  les 
moyens aux ambitions de l’organisation. 

Les décideurs tactiques

Exemple : sur un axe horizontal, on va retrouver la direction financière, la direction des achats, la direction des ventes… Sur 
un  axe  vertical,  pour  chaque  direction,  on  aura  le  responsable  des  ventes  France,  le  responsable  des  ventes  Japon… Mais 
aussi, potentiellement, suivant la taille de l’entreprise, le responsable Paris, Nice et Limoges… 

● Horizon de travail : Moyen terme. 

● Périmètre de travail : un service ou un territoire. 

● Leur rôle : les décideurs tactiques sont les relais des caps stratégiques, fixés par les décideurs stratégiques. 
Ce  sont  eux  qui  fixent  les  objectifs  de  leur  direction  ou  de  leur  territoire,  qui  élaborent  et  choisissent  la 
meilleure tactique pour atteindre ces objectifs. 

Les décideurs opérationnels

Exemple : un commercial, un acheteur, un responsable de magasin, l’agent de maîtrise d’une ligne de production ou d’un 
atelier... Ce sont toutes ces personnes qui prennent des décisions à chaud sur le terrain. 

● Horizon de travail : court terme. 

● Périmètre de travail : un service sur un territoire. 

● Leur rôle : faire face à la réalité du terrain, gérer le quotidien. 

À  ces  trois  profils  de  décideurs  s’ajoute  celui  des  analystes.  Le  rôle  des  analystes  est  de  récolter  et  de  travailler 
l’information, fiabiliser les données, expliquer les résultats. Leur rôle est d’aider à la prise de décision des décideurs. 
Les  analystes  varient  suivant  le  type  d’organisation  (industrie,  négoce,  service  public…)  et  le  service  auquel  ils 
appartiennent. 

Par exemple, les analystes de la direction financière sont des contrôleurs de gestion, ceux du service marketing peuvent être 
statisticiens,  dans  une  société  industrielle  l’analyste  peut  être  aussi  un  qualiticien  ou  un  gestionnaire  des  stocks…  Dans 
beaucoup d’entreprises, ce sont les secrétariats de direction qui récoltent les chiffres et les consolident pour leur directeur de 
rattachement. 

Il est important d’identifier les analystes dans l’organisation dans laquelle vous intervenez, car ce sont de très 
loin, les utilisateurs les plus demandeurs d’informations. 

- 2- © ENI Editions - All rigths reserved - educ algeria


 

Cette  classification  a  de  l’importance,  car  elle  va  révéler  de  grosses  différences  dans  le  type  d’outils  dont  chacun  a 
besoin. Bien entendu, les choses ne sont pas aussi binaires : certaines personnes relèveront du stratégique/tactique, 
d’autres  du  tactique/opérationnel…  Toutes  les  nuances  sont  permises.  Ce  qu’il  faut  bien  comprendre,  c’est  que  la 
notion  de  prise  de  décision  pour  chacun  de  ces  décideurs  n’a  pas  la  même  teinte  et  que  chaque  profil  n’a  pas  les 
mêmes attentes vis­à­vis du décisionnel. 

2. Les facteurs d’amélioration de la prise de décision 

Généralement, on présente les trois facteurs de prise de décision comme étant : 

● La connaissance et l’analyse du passé. 

● La représentation du présent. 

● L’anticipation du futur. 

Les informations permettant d’appréhender ces facteurs peuvent être de deux natures différentes : 

● Les  informations  quantitatives  :  ce  sont  toutes  les  données  chiffrées  telles  que  les  montants,  quantités, 
pourcentages, délais… 

● Les  informations  qualitatives  :  ce  sont  toutes  les  informations  non  quantifiables  telles  qu’un  commentaire 
accompagnant un rapport, des mécontentements, un sentiment, une directive, une nouvelle procédure… 

Ces facteurs n’ont pas le même sens suivant le type de décideur. Leurs horizons fonctionnels et temporels sont trop 
différents pour être traités de manière uniforme. 
Les  décideurs  stratégiques  ont  besoin  d’une  vision  à  360°  de  leur  organisation.  S’ils  ont  besoin  d’une  évaluation 
régulière  de  leur  politique,  ils  travaillent  surtout  sur  l’anticipation  de  l’avenir.  Ils  ont  besoin  de  projections  chiffrées 
internes  et  externes  à  l’organisation  (données  quantitatives),  mais  aussi  de  beaucoup  de  données  qualitatives 
remontant  du  terrain  :  commentaires,  comptes­rendus.  La  conviction  repose  sur  des  chiffres,  mais  aussi  sur 
l’appréhension et la compréhension d’un contexte et d’un climat interne ou externe à l’organisation. 
Les décideurs tactiques sont souvent les plus grands demandeurs d’outils décisionnels, car ils sont comprimés entre 
des décideurs stratégiques, qui leur demandent des évaluations de leur politique, et des décideurs de terrain, parfois 
très nombreux, qu’il faut cadrer et suivre. Ces décideurs tactiques ont besoin d’une parfaite compréhension du passé, 
travaillent  peu  avec  le  présent,  mais  se  doivent  de  travailler  avec  des  prévisions  pour  recadrer  leur  politique.  Les 
données chiffrées sont bien évidemment essentielles, encore faut­il que les différents systèmes s’accordent entre eux. 

Les  décideurs  opérationnels  travaillent  surtout  avec  le  présent  :  il  leur  faut  des  données  opérationnelles  brutes 
instantanées.  L’analyse du passé relève surtout d’un  suivi  opérationnel  pour  vérifier  l’adéquation avec les objectifs. 
L’anticipation de l’avenir relève de la fourniture de données opérationnelles en amont du service. 

Par exemple, s’il y a beaucoup de prises de commandes lors d’une journée, le responsable d’un centre logistique sait que le 
lendemain ou la semaine suivante la charge de son service va augmenter. 

Pour  les  décideurs  tactiques  et  opérationnels,  les  informations  qualitatives  quant  à  elles  ne  sont  pas  dans  les 
systèmes informatiques traditionnels : elles sont dans les mails et circulent de vive voix. 
Pour être concret, la plupart des cadres d’entreprise arrivent le matin à leurs bureaux. Ils déposent leurs affaires, puis 
allument leur ordinateur pour consulter leurs mails. 
Ils vont ensuite à la machine à café pour discuter du dernier mail ou de l’information de la veille. Ils règlent certaines 

© ENI Editions - All rigths reserved - educ algeria - 3-


de leurs affaires à cette occasion, mais découvrent aussi d’autres problèmes. Enfin, ils reviennent à leurs bureaux pour 
traiter  les  problèmes  qu’on  leur  a  soumis.  Ils  font  le  nécessaire  pour  obtenir  et  consulter  des  données  chiffrées.  Ils 
analysent puis retravaillent ces informations chiffrées. Enfin, après réflexion, ils prennent leur décision sur la base de 
ces données. 
Le  problème,  c’est  que  ces  cadres  ne  connaissent  pas  la  fiabilité  des  données  à  leur  disposition.  De  plus,  chaque 
fichier contient une information dense mais qui pourtant, ne révèle qu’une information partielle. Il faut alors croiser des 
données de différents fichiers, émis par des services distincts, pour en avoir une vue complète. Cela n’est pas toujours 
très  facile  à  faire.  L’autre  problème  consiste  à  obtenir  les  données.  Dans  certaines  organisations,  la  recette  de  la 
conception des chiffres et plus encore la possession de ces mêmes chiffres est un enjeu de pouvoir important. Enfin 
dans de nombreuses organisations, les chiffres émis par un service sont systématiquement contestés par les autres. 
Les  réunions  de  comité  de  direction  se  transforment  dans  certaines  entreprises  en  dialogue  de  sourds  car  chacun 
reste sur sa position et estime être celui qui possède le bon chiffre. 

Dans  ce  contexte,  prendre  des  décisions  sur  des  données  fiables  et  en  toute  sérénité  relève  du  parcours  du 
combattant. 

Sachez que vous pouvez avoir confiance en chacune des décisions que vous prenez, dès l’instant que vous avez : 

● La certitude que vos données sont fiables, à jour et complètes. 

● Les capacités de comprendre l’origine d’un succès ou d’une défaillance. 

● Les moyens d’évaluer les plans d’action et les politiques mises en œ uvre suite à une décision. 

Dès lors, la mise en place d’outils décisionnels doit permettre de répondre progressivement à ces trois attentes : 

● Améliorer l’accès et la qualité des données. 

● Gagner en finesse d’analyse et de compréhension de données. 

● Gérer les performances de l’organisation et de ses politiques. 

3. L’informatique décisionnelle 

L’informatique décisionnelle couvre toutes les solutions informatisées pour améliorer la prise de décision des décideurs 
dans l’organisation. 
Dans  ses  débuts,  l’informatique  décisionnelle  s’est  contentée  tout  d’abord  de  dupliquer  les  bases  de  données  des 
systèmes  de  gestion,  afin  d’isoler  les  requêtes  d’analyse  de  données  des  requêtes  opérationnelles.  Les  requêtes 
d’analyse  étant  souvent  très  lourdes,  l’objectif  était  surtout  de  préserver  les  performances  des  systèmes 
opérationnels.  Ensuite  cette  base  de  données  dédiée  aux  requêtes  et  à  l’analyse  a  progressivement  muté  et  s’est 
organisée. 
Partant du constat qu’il est difficile de croiser des données contenues dans des bases de données distinctes, le plus 
simple  a  été  de  regrouper  ces  données  éparses.  Le  concept  de  la  base  unique  pour  centraliser  les  données  de 
l’entreprise est plus que jamais d’actualité. Il s’agit du concept d’entrepôt de données (ou Data Warehouse). 

S’il est plus simple d’analyser ces données une fois qu’elles sont dans l’entrepôt de données, il n’en reste pas moins 
qu’il  faut  tout  de  même  remplir  l’entrepôt  de  données.  L’extraction  et  le  croisement  des  données  des  différents 
systèmes  opérationnels  puis  le  chargement  dans  l’entrepôt  de  données,  ont  fait  émerger  des  outils  dédiés  à  cette 
tâche, avec des concepts métiers qui leur sont propres : les outils d’ETL (Extract Transform Load). 

Si  au  début,  les  requêtes  d’analyses  portaient  sur  une  base  relationnelle  (dites  OLTP  pour  OnLine  Transaction 
Processing), le concept de base multidimensionnelle (dites OLAP pour OnLine Analytical Processing) s’est démocratisé fin 
des  années  90.  Ce  concept  de  bases  de  données  offrait  des  performances  très  largement  supérieures  aux  bases 
OLTP  pour  répondre  à  des  requêtes  d’analyse.  Ces  bases  OLAP  se  sont  alors  couplées  avantageusement  avec 
l’utilisation  de  l’entrepôt  de  données.  En  effet,  elles  offraient  à  la  fois  un  environnement  plus  performant,  mais 
permettaient également aux utilisateurs finaux de bénéficier d’une interface simplifiée d’accès aux données, beaucoup 
plus intuitive qu’une base de données OLTP. On parle alors de méta­modèle. 

Attention,  suivant  les  éditeurs,  les  méta­modèles  ne  reposent  pas  forcément  sur  des  bases 
multidimensionnelles. On constate toutefois sur ces dernières années que ce schéma s’impose peu à peu. 

L’ensemble  des  moyens  informatiques  et  techniques  destiné  à  améliorer  la  prise  de  décision  est  appelé  système 
décisionnel ou encore Système Informatique d’Aide à la Décision (SIAD). 

- 4- © ENI Editions - All rigths reserved - educ algeria


Architecture technique d’un système décisionnel 

Si  l’informatique  décisionnelle  s’est  contentée  dans  ses  débuts  d’une  approche  technicienne,  elle  progresse  et 
converge de plus en plus rapidement vers le poste utilisateur et s’adapte aux métiers des utilisateurs. Nous sommes 
encore aujourd’hui dans cette phase de convergence. 
Vous le comprendrez, dans le contexte actuel, les décideurs étant de natures très différentes, les outils de restitution 
sont multiples afin de convenir et répondre à toutes les attentes des différents acteurs de la prise de décision. 
On dénombre sur le poste de travail des outils de natures très variées : 

● Les outils de reporting pour délivrer une information opérationnelle ou une information décisionnelle de suivi 
d’activité.  Dans  le  cadre  du  reporting  décisionnel,  il  s’agit  notamment  de  reporting  de  masse  destiné  à  la 
publication d’un rapport personnalisé vers de nombreux utilisateurs avec un profil de décideur opérationnel. 

● Les outils d’analyses pour comprendre et appréhender une situation passée. Les outils d’analyse reposant sur 
une  base  multidimensionnelle  (OLAP)  pour  des  performances  optimales.  Ces  outils  doivent  permettre  aux 
analystes de naviguer et d’explorer les données disponibles facilement, rapidement et en toute autonomie. 

La  base  OLAP  favorise  l’utilisation d’outils  d’analyse. Attention la base OLAP n’est  pas  un  outil  d’analyse en 
soi.  Que  serait  un  système  de  gestion  (type  ERP  ou  CRM),  si  on  ne  livrait  aux  utilisateurs  que  la  base  de 
données sans les interfaces… 

● Les outils de statistiques pour modéliser des situations ou des comportements, pour tenter de les anticiper. 

● Les outils de tableaux de bord et de pilotage pour assurer l’alignement des objectifs stratégiques, tactiques et 
opérationnels de l’organisation et permettre le suivi des politiques. 

● Les  outils  d’intranet  pour  partager  l’information  dans  l’entreprise,  favoriser  la  production  d’informations 
qualitatives (Wiki, Blog, forum, enquêtes…) et associer informations qualitatives et quantitatives. L’objectif de 
l’intranet,  dans  une  optique  décisionnelle,  est  de  favoriser  l’émergence  de  véritables  espaces  de  prises  de 
décision,  personnalisés  à  un  service  et/ou  à  un  utilisateur.  L’intranet  est  aussi  le  relais  idéal  du  décisionnel 
lorsqu’il s’agit de mettre en œ uvre les actions correctrices et bien entendu de les suivre. 

© ENI Editions - All rigths reserved - educ algeria - 5-


Les outils de restitution suivant les profils d’utilisateurs 

Dans  la  section  suivante  nous  allons  voir  comment  Microsoft  articule  sa  solution  pour  répondre  aux  exigences,  tant 
techniques que fonctionnelles. 

- 6- © ENI Editions - All rigths reserved - educ algeria


La solution Microsoft BI 

1. L’offre Microsoft BI 

Contrairement à ce que l’on pourrait penser, Microsoft n’est pas un nouveau venu dans le monde de la BI. Depuis le 
tout début des années 2000, il en est même un acteur majeur et ce, grâce à sa base OLAP Analysis Services et au 
tableau croisé dynamique Excel. 

Bien entendu, son offre s’est largement étendue et structurée depuis, avec le développement de ce nouveau marché. 
Il  est  à  noter  tout  de  même  que  Microsoft  a  largement  contribué  à  démocratiser  le  recours  à  l’informatique 
décisionnelle dans les sociétés de taille moyenne, ainsi que dans les PME. 

Sur le fond, l’offre Microsoft BI est structurée autour des trois promesses du décisionnel : 

● Améliorer l’accès et la qualité des données : on y retrouve tous les outils destinés à concevoir un entrepôt de 
données bien modélisé, performant et contenant des données fiabilisées. 

● Gagner en finesse d’analyse et de compréhension de données : on y retrouve tous les outils qui permettent 
aux utilisateurs finaux d’analyser et de naviguer dans leurs données en toute autonomie, sans avoir à recourir 
au service informatique. 

● Gérer  les  performances  de  l’organisation  et  de  ses  politiques  :  on  y  retrouve  tous  les  outils  destinés  à 
partager, à communiquer et à organiser les performances de l’organisation tels que les outils de tableaux de 
bord et les outils d’intranet. 

Sur la forme, l’offre Microsoft BI est structurée au sein de trois licences. Chacune de ces licences contient de nombreux 
outils à usage décisionnel correspondant aux tâches énoncées plus haut : 

● SQL Server 2008 R2 : Integration Services, Master Data Services, Analysis Services, Reporting Services. 

● Office 2010 : Excel 2010, PowerPivot 

● SharePoint Server 2010 : Excel Services, PerformancePoint Services. 

Si  les  outils  de  la  gamme  SQL  Server  2008  R2  sont  plutôt  des  produits  techniques  destinés,  à  l’usage,  au  service 
informatique, les outils des gammes Office 2010 et SharePoint 2010 sont plus spécifiquement destinés aux utilisateurs 
finaux. 
Dans  la  suite  de  cette  partie,  nous  allons  étudier  le  contenu,  l’utilisation  et  le  positionnement  de  chacune  de  ces 
solutions. 
Néanmoins,  dans  cet  ouvrage  nous  n’étudierons  pas  en  détail  les  outils  de  la  gamme  SharePoint  Server  2010.  Les 
chapitres  qui  suivent  se  concentreront  sur  le  bon  usage  des  produits  de  la  gamme  SQL  Server  2008  R2,  ainsi  que 
d’Excel  2010.  Pourtant  nécessaire  et  très  complémentaire,  l’étude  de  l’utilisation  de  Sharepoint  est  un  sujet  en  soi, 
qu’il faudra étudier et travailler par ailleurs. 

© ENI Editions - All rigths reserved - educ algeria - 1-


L’utilisation des licences Microsoft suivant les profils utilisateurs 

2. SQL Server 2008 R2 

Si  à  l’origine,  la  licence  SQL  Server  correspond  uniquement  à  une  base  de  données  relationnelle  (OLTP),  assez 
rapidement  la  licence  s’étoffe  pour  couvrir  l’ensemble  des  outils  dédiés  au  stockage  et  au  traitement  de  données. 
Dans le langage courant, SQL Server évoque la base de données relationnelle. Il existe néanmoins d’autres outils ou 
services  couverts  par  cette  même  licence,  dont  la  plupart  trouve  un  usage  dans  le  cadre  de  la  mise  en  œ uvre d’un 
système décisionnel. 
Nous ne nous attarderons donc pas sur le service de base de données relationnelle, qui a maintenant fait ses preuves 
face  à  la  concurrence.  La  base  de  données  est  fiable,  performante  et  hautement  disponible.  Le  service  de  base  de 
données  est  parfaitement  indiqué  pour  accueillir  un  entrepôt  de  données.  On  retrouve  d’ailleurs  des  entrepôts  de 
données  sous  SQL  Server  Database  Services  dans  de  grandes  banques  nationales,  dans  de  grands  consortiums 
hospitaliers, dans la grande distribution, dans des sociétés de télécom et de téléphonie… SQL Server se retrouve dans 
les sociétés et organisations de toutes les tailles et dans tous les domaines d’activité. 
Nous avons vu précédemment que la construction d’un système décisionnel ne se limite pas à l’utilisation d’une base 
de  données  relationnelle.  Avec  la  licence  SQL  Server,  Microsoft  nous  livre  toute  la  panoplie  d’outils  dont  un  service 
informatique a besoin pour bâtir un système décisionnel dans les règles de l’art. 
Pour bâtir notre système d’aide à la décision, nous aurons besoin de : 

● SQL Server Integration Services : l’ETL. 

● SQL Server Master Data Services : le gestionnaire de données de référence. 

● SQL Server Analysis Services : la base de données multidimensionnelle (OLAP) et le méta modèle. 

● SQL Server Reporting Services : l’outil de reporting opérationnel et de reporting de masse. 

Dans les parties qui suivent, nous allons présenter plus en détail chacun de ces outils. 

a. SQL Server Integration Services 

Nous  avons  expliqué  précédemment  que  les  concepts  du  décisionnel  prennent  racine  dans  le  fait  de  bénéficier 
d’entrepôt de données contenant et croisant des données provenant de systèmes sources très hétérogènes. 
Si la grande valeur ajoutée du décisionnel est d’accéder confortablement aux données contenues dans l’entrepôt de 
données,  il  n’en  reste  pas  moins  que  la  majeure  partie  d’un  projet  décisionnel  se  situe  dans  l’alimentation  de 
l’entrepôt de données. 

En effet, l’alimentation d’un entrepôt de données représente généralement près de 80 % de la charge du projet. De 
prime  à  bord,  beaucoup  de  services  informatiques  qui  découvrent  le  décisionnel  ont  largement  tendance  à  sous­

- 2- © ENI Editions - All rigths reserved - educ algeria


estimer le temps nécessaire à récupérer l’information, mais aussi à la croiser. 
Pour  nous  aider  dans  cette  tâche,  Microsoft  met  à  notre  disposition,  dans  la  licence  SQL  Server  2008  R2,  un  outil 
d’ETL (Extract Transform Load) : SQL Server Integration Services (SSIS). 

Déroulement d’un flux ETL sous SSIS 

Même s’il n’est pas considéré comme le meilleur ETL du marché, il n’en reste pas moins que SSIS est un véritable outil 
d’ETL, fiable, performant, et qu’il remplit parfaitement le rôle pour lequel il est destiné. SSIS est d’ailleurs maintenant 
largement déployé et employé dans de très nombreuses entreprises françaises et étrangères. 

Je  ne  vous  conseille  pas  d’acheter  la  licence  SQL  Server  2008  R2  pour  bénéficier  spécifiquement  de  SSIS, 
surtout, si vous travaillez sur un décisionnel en environnement Linux avec des technologies Open Source... 
En  revanche,  si  vous  avez  pour  projet  de  bâtir  un  système  décisionnel  en  environnement  Microsoft,  le  rapport 
qualité­prix de l’outil est véritablement imbattable. 

Le  point  fort  de  SSIS  est  que  c’est d’une  part  un  bon  ETL  et  qu’il est d’autre  part  disponible  sans  surcoût 
avec la licence SQL Server. Une licence que la plupart des entreprises disposent déjà afin de bénéficier de la 
base de données relationnelle. 

Plus  que  l’outil,  c’est  la  manière  dont  il  est  employé  qui  est  très  importante.  À  ce  propos,  le  chapitre  Alimenter 
l’entrepôt de données avec SSIS, reviendra assez largement sur le sujet afin de vous donner les bonnes pratiques 
d’usage. Je vous invite donc à consulter ce chapitre, à la fois pour découvrir les bonnes pratiques de l’ETL  et  pour 
apprendre à vous familiariser avec SSIS. 

Généralement on attend d’un outil d’ETL : 

● Qu’il accélère le travail de développement des flux de données : SSIS est un ETL assez simple d’utilisation. 
Sa prise en main est rapide. SSIS, comme les grands ETL, permet de découper un flux d’alimentation en une 
multitude de petites tâches de transformation de données distinctes et ordonnancées. L’amélioration de la 
productivité vient du fait qu’il est plus facile de traiter une multitude de problèmes très simples, plutôt que de 
traiter un grand problème très compliqué. SSIS permet aussi de suivre très précisément le déroulement du 
flux de données. Entre chaque tâche de transformation de données, il est possible de visualiser les valeurs, 
ainsi que les transformations qui leur ont été appliquées. 

● Qu’il offre une vision claire et maintenable des flux réalisés : SSIS, comme tout bon ETL, permet d’obtenir une 
visualisation graphique, logique et simple des flux réalisés. Les règles de transformation pouvant être parfois 
très  compliquées,  il  est  important  qu’elles  puissent  être  représentées  simplement  afin  que  n’importe  quel 
informaticien, disposant d’une formation ETL, puisse lire et comprendre le déroulement d’un flux de données. 
Chaque tâche de transformation est représentée par une boîte que le développeur a la liberté de nommer 

© ENI Editions - All rigths reserved - educ algeria - 3-


ou plutôt de décrire. Développer un flux ETL avec SSIS ne nécessite pas de notions de développement objet 
ni même d’un grand savoir­faire SQL. Un flux SSIS correctement développé et respectant la logique ETL est 
un flux vraiment très lisible et facilement maintenable. 

● Qu’il  puisse  se  connecter  et  travailler  avec  de  nombreuses  sources  hétérogènes  :  le  propre  d’un  ETL  est 
d’être  ouvert  et  de  pouvoir  disposer  d’une certaine universalité de connexion. SSIS ne déroge pas à cette 
règle, il permet entre autres de se connecter nativement à : 

● de nombreuses bases relationnelles par OLEDB : SQL Server, Oracle, DB2… 

● des fichiers : fichier plat csv, fichier xml, fichier Excel 

● des sources en ligne : services web, service ftp, 

● etc. 

La  liste  est  bien  entendu  loin  d’être  exhaustive.  Les  connecteurs  sont  cependant  de  qualité  très  inégale,  mais 
comme tous les produits Microsoft, le produit est ouvert et la communauté de développeurs est assez efficace. Vous 
trouverez  sur  le  marché  de  nombreux  autres  composants,  connecteurs  ou  tâches,  et  vous  disposerez  de  la 
possibilité de créer le vôtre en .net si vraiment cela s’avère nécessaire. Ce qui est en définitive assez rare toutefois. 

Au  cours  de  mes  projets,  nous  avons  eu  par  exemple  à  développer  une  tâche  récupérant  les  fichiers  en 
pièces jointes des mails d’une boîte aux lettres électronique. Le besoin est peu banal mais la réalisation a 
été simple. 

● Qu’il soit performant : un ETL dispose souvent de fenêtres de traitement très courtes pour se connecter à un 
système source et pour charger l’entrepôt  de  données.  Il  faut  alors  que  l’outil traite de très gros volumes, 
très  rapidement.  Le  secret  de  la  performance  des  outils  d’ETL  réside  généralement  dans  leur  capacité  à 
travailler  et  faire  les  transformations  sur  les  données  en  mémoire  vive.  C’est  le  cas  de  SSIS,  qui  dispose 
d’ailleurs de nombreuses possibilités de gestion et d’optimisation du cache. 

● Qu’il dispose de nombreuses fonctionnalités de transformation de données : en ce qui concerne la lettre T de 
ETL, SSIS est plutôt bien fourni et propose de nombreuses tâches de transformation : calcul, contrôle, mise 
en  cohérence  des  données,  conversion,  pivotement,  union,  jointure,  nettoyage,  regroupement, 
échantillonnage…  SSIS  intègre  de  plus  en  plus  de  tâches  de  transformation  avancées  issues  de  la 
statistique, pour vous permettre de mieux nettoyer vos données ou contrôler leurs contenus. 

● Qu’il puisse se déployer facilement : SSIS gère parfaitement les problématiques de multi­environnements et 
de déploiement sur un environnement de production. Tout se passe au sein de fichiers de configuration qui 
peuvent être de natures diverses (XML, base de données…). Les flux se lancent et se planifient, soit par le 
biais de l’agent SQL fourni et intégré à SQL Server, soit par le biais d’une ligne de commande exécutable, si 
vous disposez de votre propre ordonnanceur d’entreprise. 

Enfin  SSIS  permet  de  mettre  en  œ uvre  pleinement  les  concepts  du  métier  :  audit  de  données,  historisation  des 
dimensions (SCD), traitement des erreurs et des rejets... En ce qui concerne la gestion d’erreur, SSIS gère l’erreur au 
niveau de chacune de ses tâches et potentiellement au niveau de chacune des lignes chargées. SSIS vous permet 
ainsi  de  mettre  en  place  des  systèmes  d’audit  de  flux  et  de  données  performants  et  entièrement  personnalisés  à 
votre activité et à votre problématique. Cependant, ce genre de système n’est pas quelque chose de standard inclus 
magiquement  dans  un  outil,  il  vous  faudra  le  mettre  en  place.  Je  vous  incite  à  consulter  sur  ce  sujet  le  chapitre 
Alimenter l’entrepôt de données avec SSIS ­ Audit des flux ETL. 

b. SQL Server Master Data Services 

SQL  Server  Master  Data  Services  (MDS)  est  une  nouveauté  de  SQL  Server  2008  R2.  Ce  nouveau  service  est  une 
solution de MDM (Master Data Management) ou Management des données de référence. 

La  gestion  des  données  de  référence  n’est  pas  exclusive  au  système  décisionnel.  Il  s’agit  plutôt  d’une  pratique 
d’urbanisation des systèmes d’information qui contribue sensiblement à la qualité de l’information dans l’entreprise. 

Les données de référence sont les données transversales de l’entreprise. Ce sont les éléments clés qui décrivent et 
définissent un domaine de l’entreprise : clients, produits, fournisseurs, sites, organisations, services, employés… 

Gérer  ces  données  de  référence  devient  primordial  pour  la  plupart  des  organisations  qui  ont  une  organisation 
cloisonnée des données. 

Une société multinationale qui dispose d’un ERP, d’une GPAO ou d’un CRM pour chacune de ses filiales, est forcément 

- 4- © ENI Editions - All rigths reserved - educ algeria


confrontée à un moment ou un autre à des problèmes de redondance ou d’incohérence de données. Le risque est le 
même,  chaque  fois  qu’une  organisation  fait  le  choix  de  déployer  une  solution  spécialisée  pour  gérer  une  activité 
spécifique de son activité : déployer un CRM pour les commerciaux, une GPAO pour la production, une GMAO pour les 
services maintenance… Lors de chaque déploiement, les données de référence sont alors dupliquées. Si l’on n’y fait 
pas attention, il devient après plusieurs années extrêmement complexe de rapprocher les données de ces différents 
systèmes. 
Le MDM regroupe les pratiques et les outils permettant de rassembler, gérer et partager les données pour lesquelles 
il est primordial qu’il ne subsiste aucune erreur. Le rôle du MDM est de fournir aux différents systèmes des données 
de référence exactes, complètes et actualisées. 

Le MDM crée une ressource centralisée, indépendante des applications et des processus métier, qui gère le cycle de 
vie des données de référence. 
Avec la mise en place d’une telle pratique impliquant les services fonctionnels et le service informatique, la cohérence 
des  données  dans  les  divers  systèmes  de  transactions  et  d’analyses  est  ainsi  garantie.  Ainsi,  les  problèmes  de 
qualité des données peuvent être résolus de manière proactive, plutôt qu’après coup, dans l’entrepôt de données. 

Microsoft  fournit  donc  à  travers  MDS,  une  solution  informatique  appuyant  et  permettant  la  mise  en  œ uvre  d’une 
démarche  de  MDM  dans  votre  organisation.  Le  MDM  n’est  pas  l’objet  de  l’ouvrage,  mais  comprenez  l’intérêt  d’une 
telle solution lors du déploiement de votre système décisionnel. Le rapprochement des données entre les différents 
systèmes  est  l’un  des  principaux  enjeux  de  l’ETL,  mais  aussi  l’une  des  raisons  majeures  des  délais  de 
développement ETL. 

Interface d’administration de MDS 

c. SQL Server Analysis Services 

SQL  Server  Analysis  Services  (SSAS)  est  la  base  multidimensionnelle  (OLAP)  de  la  licence  SQL  Server.  On  présente 
souvent  SSAS  comme  étant  la  solution  de  cubes  de  Microsoft.  SSAS  est  une  solution  parfaitement  fiable  et  très 
robuste, leader de son marché. 

© ENI Editions - All rigths reserved - educ algeria - 5-


Interface de conception Analysis Services 

Avec l’augmentation des volumes de données, les bases de données OLAP s’imposent progressivement comme des 
solutions  incontournables  pour  représenter  les  données  contenues  dans  l’entrepôt  de  données.  À  l’opposé  des 
bases OLTP, plus les requêtes utilisateurs portent sur des données globales et agrégées, plus la réponse est rapide. 
À l’inverse, plus la requête porte sur les données de détail, moins la requête est performante. Il ne faut donc pas 
considérer  Analysis  Services  comme  une  base  de  données  permettant  des  extractions  de  données.  Les  modèles 
Analysis Services doivent être conçus pour fournir la finalité de l’analyse attendue par l’utilisateur. 

Exemple d’interface d’exploration de cube 

Les  données  détaillées  de  l’entrepôt  de  données  sont  contenues  dans  la  base  relationnelle,  mais  c’est  Analysis 
Services qui les agrège et les présente aux utilisateurs finaux. Étant la partie émergée de l’entrepôt de données, il 
offre ainsi la possibilité de gérer véritablement de très grands volumes de données avec des temps de réponse de 
l’ordre de la seconde. Les résultats sont souvent assez bluffants pour des utilisateurs habitués à travailler avec des 
bases de données OLTP. SSAS ne craint pas les gros volumes de données, il est taillé pour cela. Attention toutefois à 
conserver  une  modélisation  appropriée,  car  la  performance  de  son  moteur  OLAP  est  directement  liée  à  la 
modélisation de la base de données sous­jacente. 
Je  ne  saurais  que  trop  insister  tout  au  long  de  l’ouvrage  sur  l’importance  de  la  modélisation  de  l’entrepôt  de 
données.  Je  vous  suggère  à  ce  sujet  les  chapitres  Réaliser  son  premier  système  décisionnel,  puis  La  modélisation 
dimensionnelle, pour vous apprendre à concevoir des modèles d’analyse cohérents et performants. 
Les  données  de  l’entrepôt  de  données  étant  manipulées  directement  et  exclusivement  par  le  biais  d’Analysis 
Services,  celui­ci  offre  aux  utilisateurs  une  interface  simplifiée  et  intuitive  d’accès  aux  données.  Dans  les  faits,  les 

- 6- © ENI Editions - All rigths reserved - educ algeria


utilisateurs  n’accèdent  pas  directement  à  Analysis  Services.  Ce  sont  les  outils  de  restitution  qui  proposent  et 
consomment  les  données  du  cube.  Il  est  donc  indispensable  lorsque  vous  mettez  en  place  SSAS  de  proposer 
parallèlement aux utilisateurs des outils de restitution adaptés (par exemple Excel). 

Analysis Services est l’interface entre l’entrepôt de données et les outils de restitution 

d. SQL Server Reporting Services 

Enfin, la suite SQL Server dispose d’un serveur de rapports permettant d’afficher et de diffuser des informations. 
Reporting  Services  est  avant  tout  un  produit  destiné  à  un  public  d’informaticiens.  Sa  parfaite  intégration  avec 
l’environnement .net, sa capacité de mise en page, ses possibilités de diffusion en font un excellent outil de reporting 
opérationnel. Reporting Services est l’outil parfait pour mettre en page une facture, un bon de livraison, un suivi de 
commande, un inventaire, un catalogue produit, la liste des clients à relancer… Tous les états, dont une application 
de gestion a besoin, sont parfaitement réalisables avec Reporting Services. 
En  ce  qui  concerne  le  besoin  décisionnel,  Reporting  Services  a  été  survendu  par  Microsoft  depuis  la  sortie  de  SQL 
Server  2005.  Reporting  Services  n’est  pas  un  outil  d’analyse  destiné  à  des  utilisateurs  finaux.  En  revanche,  il  a 
totalement sa place dans la diffusion de rapports de masse, c’est­à­dire dans les rapports décisionnels destinés à de 
nombreux décideurs opérationnels. 

Par  exemple,  la  diffusion  par  mail  au  format  PDF,  du  rapport  mensuel  de  suivi  des  ventes  à  tous  les  commerciaux  de 
l’entreprise. 

Nous reviendrons largement sur ce sujet dans le chapitre Restituer les données décisionnelles ­ Reporting Services. 
Nous  aborderons  alors  plus  en  détail  la  différence  entre  rapport  opérationnel  et  rapport  décisionnel,  puis  nous 
apprendrons à faire bon usage de Reporting Services. 

© ENI Editions - All rigths reserved - educ algeria - 7-


Exemple de rapport réalisé avec Reporting Services 

3. Office 2010 

Microsoft  Excel  est  sûrement  et  de  loin,  le  premier  outil  décisionnel  dans  le  monde  et  ce,  depuis  de  nombreuses 
années. Il répond aux besoins d’analyse de tous les services, de toutes les organisations et sert à toutes les tâches : 
stockage de données, traitement de l’information et restitution. 
Si  Microsoft  Excel  seul  répond  assez  bien  à  des  problématiques  sectorielles  (pour  le  service  Marketing  ou  pour  le 
service contrôle de gestion uniquement), il atteint toutefois ses limites lorsque : 

● Il s’agit de croiser les données de référence de plusieurs applications : les fichiers Excel deviennent alors de 
véritables usines à gaz très difficiles à maintenir. 

● Il s’agit de réduire les délais de production des tableaux de bord : il est difficile d’automatiser le traitement de 
données dans Excel. On peut toujours y arriver par le biais de macro, mais on augmente alors sensiblement la 
difficulté de maintenance des rapports. 

● Les données à traiter deviennent trop importantes : Excel 2003 gère quelque 65000 lignes, Excel 2007 jusqu’à 
un  peu  plus  de  1  million.  Mais  les  systèmes  produisent  toujours  plus  de  données  et  les  demandes  des 
décideurs ont aussi tendance à se complexifier. 

● Il s’agit de sécurité : un fichier Excel diffusé par mail contient l’intégralité des données détaillées qu’il affiche et 
ses données sont potentiellement modifiables. 

● Il s’agit d’automatiser la diffusion des rapports : les fichiers sont de plus en plus volumineux. La limite admise 
par le serveur de messagerie est parfois atteinte. 

Pour toutes ces raisons et bien d’autres encore, Excel a besoin de s’adosser à un système décisionnel. Les utilisateurs 
continuent  toutefois  de  plébisciter  l’utilisation  d’Excel  dans  leur  quotidien.  Microsoft  a  compris  l’avantage substantiel 
qu’il peut tirer de cette position privilégiée. 

Au sein de la solution BI Microsoft, Excel est l’outil d’analyse des utilisateurs finaux. Toutefois, Excel n’est utilisé que 
pour  accéder,  manipuler  et  naviguer  dans  les  données  d’Analysis  Services.  Les  données  ne  sont  plus  contenues 
directement dans le fichier, mais sur un serveur. Et ces données ne sont plus traitées directement par les utilisateurs 
fonctionnels  mais  par  le  service  informatique  par  le  biais  de  l’ETL.  Excel  conserve  toutefois  toutes  ses  capacités  de 
représentation graphique, de mise en page et de personnalisation à l’aide de formules. 

- 8- © ENI Editions - All rigths reserved - educ algeria


Le tableau croisé dynamique d’Excel 

Dans  sa  version  2010,  Excel  dispose  d’un  nouvel  outil  :  le  PowerPivot.  Un  outil  puissant  mais  qu’il  faut  bien 
comprendre et repositionner dans la solution Microsoft BI. 

Nous étudierons en détail, dans le chapitre Restituer les données décisionnelles ­ Excel, l’utilisation d’Excel adossée à 
la solution décisionnelle Microsoft, mais aussi l’utilisation du PowerPivot. Vous apprendrez ainsi à mieux comprendre et 
à cerner l’utilisation de ces outils. 

4. SharePoint 2010 

SharePoint  2010  est  une  plate­forme  de  services  de  portail.  SharePoint  est  notamment  utilisé  pour  réaliser  des 
portails Intranet/Extranet et des plates­formes d’espaces collaboratifs et documentaires. 
SharePoint est une solution très vaste regroupant de très nombreux services, tels que : 

● le moteur de recherche de l’entreprise ; 

● la gestion documentaire ; 

● la gestion des processus métier par le biais des flux de travail (workflows) ; 

● la gestion de contenus (Content Management Services ou CMS) ; 

● l’affichage des données applicatives. 

SharePoint, comme son nom l’indique, se veut être le point de convergence de tous les contenus de l’entreprise. Les 
informations décisionnelles font bien évidemment partie de ces contenus. 
Comme  nous  l’avons  vu  plus  haut  dans  ce  chapitre,  le  décisionnel  a  pour  objectif  de  mettre  à  disposition  des 
décideurs, tous les éléments nécessaires à la prise de décision. Les contenus nécessaires à la prise de décision sont 
très  vastes  et  ne  se  limitent  pas  uniquement  aux  informations  quantitatives  mises  à  disposition  par  l’entrepôt  de 
données. L’intranet, c’est­à­dire SharePoint dans la solution Microsoft, est le relais idéal du système décisionnel pour 
toucher les décideurs et concevoir des espaces de décision complets, contenant : 

● rapports et analyses chiffrées ; 

© ENI Editions - All rigths reserved - educ algeria - 9-


● commentaires et analyses des analystes métier ; 

● remarques des confrères ; 

● bibliothèques de documents Word et Excel ; 

● lien direct pour contacter un collaborateur et engager une action ; 

● lien  direct  vers  le  moteur  de  recherche  pour  une  ouverture  sur  des  informations  internes  ou  externes  à 
l’organisation, etc. 

Sharepoint est véritablement l’outil idéal pour s’adresser aux décideurs de l’entreprise. 

Pour aller plus loin dans les données de l’entrepôt de données et réaliser de véritables tableaux de bord, Sharepoint 
dispose de deux solutions : 

● Excel Services 

● PerformancePoint Services 
 

Ces services nécessitent la version et la licence Enterprise de SharePoint.

Ces  solutions  et  leurs  mises  en  place  nécessitent  une  attention  et  une  perception  qui  dépassent  l’objectif  de  cet 
ouvrage. Bien qu’essentielles, elles ne seront donc pas abordées. 

a. Excel Services 

Le service Excel est un serveur offrant la possibilité de transformer tout ou partie du contenu d’une feuille Excel en 
une page web au format HTML. La grande force des services Excel est de rendre dynamique ce contenu. Cela signifie 
que l’utilisateur qui publie sur SharePoint un tableau croisé dynamique basé sur Analysis Services verra le contenu 
de  celui­ci,  sur  son  portail  Sharepoint,  actualisé  pour  afficher  dynamiquement  les  toutes  dernières  données.  Le 
tableau  croisé  dynamique  publié  conserve  aussi  ses  capacités  de  navigation  et  de  filtre  comme  le  tableau  croisé 
dynamique du fichier Excel originel. 
Avec  les  Services  Excel,  les  contenus  et  analyses  d’Excel  conçus  par  les  utilisateurs  finaux  deviennent  alors  très 
facilement diffusables et partageables à l’ensemble de l’organisation. 
Le fonctionnement est assez simple : l’utilisateur conçoit ses analyses sous Excel 2010. Puis, il publie le fichier sur 
une liste SharePoint (un répertoire virtuel en quelque sorte). Le contenu de ce fichier publié est alors calculé par le 
serveur Excel pour être restitué à l’aide d’une webpart Sharepoint. 
Dans le chapitre Restituer les données décisionnelles ­ Excel nous évoquerons un peu le sujet sans toutefois entrer 
dans les détails spécifiquement propres à SharePoint. 

- 10 - © ENI Editions - All rigths reserved - educ algeria


Tableau croisé dynamique Excel Service dans SharePoint 2010 

b. PerformancePoint Services 

Le dernier service dont dispose SharePoint 2010, est PerformancePoint. Ce dernier service, destiné à des utilisateurs 
métier  (type  contrôleurs  de  gestion),  est  un  outil  destiné  à  élaborer  et  à  gérer  la  performance  de  l’entreprise.  Ce 
service  s’inscrit  totalement  dans  une  approche  de  Management  de  la  performance,  appelée  aussi  Business 
Performance Management (BPM) ou Corporate Performance Management (CPM). 

Le service PerformancePoint permet, à la solution BI de Microsoft, de répondre à la dernière attente de l’informatique 
décisionnelle : 

● Gérer les performances de l’organisation et de ses politiques. 

Le  service  PerformancePoint  est  une  des  toutes  meilleures  solutions  sur  ce  sujet  et  il  est  aussi  le  seul  outil  de  la 
suite Microsoft à s’ouvrir sur cette démarche. 
Le management de la Performance a pour objectif l’alignement et la mise en cohérence des objectifs des décideurs 
tactiques et opérationnels sur les objectifs stratégiques de l’organisation. Cette démarche favorise l’émergence de 
tableaux de bord pensés et construits autour d’indicateurs clés (ou KPI pour Key Performance Indicator). 

Nous n’irons pas plus loin dans l’explication et la compréhension du Management de la Performance. Sans être citée, 
cette démarche est de plus en plus présente dans les organisations tant privées que publiques (la LOLF menée par 
le  gouvernement  français  en  est  un  bon  exemple).  De  plus  en  plus,  vous  entendrez  parler  de  tableaux  de  bord, 
d’indicateurs, d’objectifs… Tous ces termes relèvent d’une démarche de Management de la Performance. 
Le  service  PerformancePoint  est  alors  un  complément  pour  accompagner  cette  démarche,  pour  répondre  aux 
exigences  des  décideurs  de  votre  organisation  et  pour  maîtriser  la  communication  officielle  sur  la  performance  de 
l’organisation. 

Le service PerformancePoint offre aux utilisateurs métier non­informaticiens la possibilité de : 

● Créer et gérer des espaces de décision complets. 

● Créer et gérer de tableaux de bord dynamiques constitués d’indicateurs clés. 

● Créer et gérer des indicateurs clés, modifier les seuils d’atteinte ainsi que les visuels de météo (feux vert en 
cas d’atteinte d’un objectif par exemple, flèche rouge vers le bas lors de tendance à la baisse, etc.). 

● Créer des analyses de données plus dynamiques que ne le permettent les services d’Excel. C’est en ce sens 

© ENI Editions - All rigths reserved - educ algeria - 11 -


un bon complément au service Excel. 

● Référencer  et  gérer  les  ressources  officielles  complémentaires  aux  tableaux  de  bord  :  tableau  croisé 
dynamique Excel Services, graphique d’analyse en mode web, commentaires, ressources documentaires… 

La  finalité  de  ce  service  est  de  délivrer  aux  décideurs  des  espaces  de  décision  en  mode  web,  complets,  riches  et 
dynamiques, comme le montrent les copies d’écran ci­dessous : 

Tableau de bord intégré à l’espace portail 

- 12 - © ENI Editions - All rigths reserved - educ algeria


Espace de décision avec tableau de bord et analyse 

© ENI Editions - All rigths reserved - educ algeria - 13 -


Notre étude de cas : Distrisys 
La société Distrisys est une société virtuelle européenne que nous prendrons en exemple dans notre ouvrage. 
Distrisys est un grossiste de grands et petits appareils d’électroménager. La société est distributeur officiel et exclusif 
d’appareils  qu’elle  fait  fabriquer,  importe  puis  vend  sous  ses  propres  marques :  Lagon,  Cuccina  et  Pierre­Michel.  La 
société ne fabrique donc pas elle­même, elle a une activité importante d’importation. 
Distrisys  ne  vend  pas  ses  produits  en  direct  aux  consommateurs.  La  société  dispose  d’un  réseau  de  revendeurs  et 
distributeurs  agréés.  Son  réseau  est  de  plusieurs  types  :  réseau  de  distribution  généraliste,  réseau  de  magasins 
spécialisés et enfin réseau de sites marchands. 

Distrisys  est  issue  historiquement  de  plusieurs  sociétés  acquises  par  croissance  externe.  La  société  dispose  de  cinq 
sites géographiques : 

● Trois en France : le siège à Paris, Aix­En­Provence et Bordeaux. 

● Deux à l’étranger : Barcelone et Munich. 

Chaque  site  dispose  de  son  propre  PGI  (Progiciel  de  Gestion  Intégrée  ou  ERP  en  anglais),  qui  a  été  toutefois 
homogénéisé pour en faciliter la gestion et la maintenance. 

La direction de Distrisys est depuis très longtemps confrontée à des problèmes de qualité de données et souhaite se 
doter  d’outils  permettant  d’appréhender  leurs  données  de  manière  globale.  Si  la  direction  n’engage  pas  encore  de 
démarches de Management de la Performance, elle y pense très sérieusement. 

C’est dans ce contexte que le service informatique, en liaison avec la direction financière, amorce un projet de mise en 
œ uvre d’un système décisionnel. 

L’équipe informatique a mené une étude de choix d’outils et a porté son dévolu sur la solution BI Microsoft. Disposant 
déjà des licences SQL Server 2008 R2 et d’un portail intranet SharePoint 2010. La solution en plus d’être cohérente, 
très complète et compétitive techniquement, dispose d’un formidable rapport qualité­prix. 

Tout  au  long  de  l’ouvrage,  nous  allons  étudier  et  traiter  le  cas  de  la  société  Distrisys.  Nous  allons  suivre  toutes  les 
étapes de mise en œ uvre de la solution décisionnelle au sein de la société. Afin de suivre le déroulement du projet et 
faire  les  manipulations  pour  bâtir  en  parallèle  le  système  décisionnel,  vous  n’aurez  besoin  que  d’une  installation  de 
SQL Server. La version 2008 R2 développer ou Enterprise ferait idéalement l’affaire, mais si vous disposez de la version 
2005 ou 2008 vous pourrez aussi parfaitement suivre de votre côté le déroulement du projet. 

Les  versions  SQL  Server  2005,  2008  et  2008  R2  sont  assez  proches  les  unes  des  autres.  De  plus,  vous 
comprendrez  assez  vite  qu’au­delà  des  outils  et  des  versions,  ce  sont  les  concepts  qui  sont  vraiment 
importants. 

L’exploitation de la solution décisionnelle nécessitera, quant à elle, une version d’Excel, idéalement Excel 2010. Mais je 
vous engage à faire des tests avec toutes les versions d’Excel disponibles et déployées dans votre entreprise afin d’en 
apprécier les différences. 

Des  versions  d’évaluation de ces produits sont disponibles en téléchargement sur le site Technet Evaluation 


Center à l’adresse http://technet.microsoft.com/fr­fr/evalcenter/ 

© ENI Editions - All rigths reserved - educ algeria - 1-


Le choix des licences 
La réalisation d’un système décisionnel avec la suite Microsoft BI (Business Intelligence) demande généralement moins 
d’investissement  que  les  solutions  concurrentes,  mais  demande  toutefois  de  disposer  des  bonnes  éditions  et  si 
possible de la totalité de la suite. La mise en place d’un système décisionnel avec Microsoft n’est pas gratuite. 
Nous avons vu au chapitre précédent, que la mise en place globale de la solution décisionnelle Microsoft nécessite trois 
licences distinctes. Dans leurs versions les plus récentes, ces licences sont : 

● SQL Server 2008 R2 

● Office 2010 

● SharePoint 2010 

Voyons dans le détail quelles sont les éditions nécessaires. 

Nous  n’entrerons  pas  dans  les  considérations  de  tarifs.  Sur  ce  sujet,  prenez  contact  directement  avec  votre 
revendeur ou avec votre commercial Microsoft pour une estimation précise. 

1. SQL Server 2008 R2 

Le discours et les plaquettes commerciales de Microsoft vantent la disponibilité des outils décisionnels de la suite SQL 
Server dès l’édition Standard. 

Dans la réalité, mettre en place une solution décisionnelle avec SQL Server réclame obligatoirement de disposer de 
l’édition Enterprise, et la différence de coût entre l’édition Standard et Enterprise est vraiment substantielle. 

L’édition Enterprise est impérative, car au­delà des considérations de haute disponibilité ou montée en charges, cette 
édition  dispose  de  fonctionnalités  décrites  de  manière  assez  obscure  dans  les  plaquettes  commerciales  ou  de 
comparaison de version, mais qui se révèlent essentielles. 

Nous  verrons  notamment  au  chapitre  La  modélisation  dimensionnelle,  que  pour  modéliser  correctement  notre 
entrepôt de données, nous aurons besoin de deux fonctionnalités incontournables : 

● La semi­additivité : entre autres raisons, sans cette fonctionnalité, votre entrepôt de données sera amputé 
de toutes les tables de faits de type photo. Il existe trois types de tables de faits et ce dernier type est celui 
qui  apporte  la  plus  grande  valeur  ajoutée  par  rapport  à  des  systèmes  opérationnels  classiques.  La  semi­
additivité  vous  permet  aussi  de  gérer  des  faits  de  type  température  ou  pression,  qui  sont  des  faits  qui  ne 
s’additionnent pas. 

● Les  perspectives  :  il  s’agit de la fonctionnalité permettant de réaliser un entrepôt de données conforme en 


toute  sérénité.  La  perspective  décrit  des  contextes  cohérents  d’analyse  de  données.  Sans  cette 
fonctionnalité, le principe de l’entrepôt de données, exposé au travers d’Analysis Services, est mis à mal. 

Une dernière fonctionnalité est essentielle pour assurer la pérennité de votre système décisionnel : 

● L’intelligence  financière  :  nous  ne  l’aborderons  pas  dans  cet  ouvrage,  mais  l’intelligence  financière  est  la 
fonctionnalité  ouvrant  Analysis  Services  au  Management  de  la  Performance  et  à  toutes  les  problématiques 
des services financiers et de contrôle de gestion. L’ultime finalité du décisionnel est tout de même de donner 
les moyens de gérer la performance. Il serait dommage de se priver des moyens techniques. 

En  fait,  la  différence  entre  l’édition  Standard  et  Enterprise  se  fait  sur  ces  nombreux  petits  détails.  Les  quelques 
éléments  donnés  en  exemple  ci­dessus ne concernent que Analysis Services. La différence de fonctionnalités entre 
les versions touche bien évidemment aussi Integration Services et Reporting Services. 

En  conclusion,  sauf  après  étude  et  contexte  spécifique,  la  mise  en  œ uvre  de  la  solution  BI  Microsoft  nécessite 
toujours SQL Server édition Enterprise. 

2. Office 2010 

© ENI Editions - All rigths reserved - educ algeria - 1-


Par la licence Office 2010, le décisionnel s’intéresse surtout à Excel. Dans toutes les éditions d’Excel, vous aurez la 
possibilité de faire des tableaux croisés dynamiques nativement et d’exploiter le contenu des cubes Analysis Services. 
Néanmoins, si vous souhaitez lier votre décisionnel à SharePoint, préférez alors l’édition Professional Plus aux autres 
éditions.  Pour  vous  faire  une  idée  de  cette  fonctionnalité,  le  chapitre  Restituer  les  données  décisionnelles  ­  Excel 
aborde succinctement la publication de contenu Excel dans Sharepoint (les services Excel). 

3. SharePoint 2010 

L’étude  de  SharePoint  n’est  pas  abordée  dans  cet  ouvrage.  Il  n’en  reste  pas  moins  que  la  solution  est  nécessaire 
pour bénéficier de la suite décisionnelle complète. Même si vous pensez vous passer de SharePoint dans un premier 
temps, je vous conseille vivement de l’intégrer dans vos estimations de coûts prévisionnels. 
SharePoint  est  livré  gratuitement  avec  Windows  Server  sous  le  nom  de  SharePoint  Fundation  2010  (anciennement 
Windows  SharePoint  Services  ­  WSS).  Cette  édition  vous  permettra  de  commencer  à  travailler  avec  un  portail  et 
d’exposer vos rapports Reporting Services. 
Toutefois,  pour  bénéficier  des  fonctionnalités  décisionnelles  de  SharePoint,  il  vous  faudra  acquérir  la  version 
payante  :  SharePoint  Server  2010  (anciennement  Microsoft  Office  Sharepoint  Server  ­  MOSS  en  version  2007)  en 
édition Enterprise. L’édition Standard de SharePoint Server 2010 étant dépourvue des fonctionnalités décisionnelles 
que sont Excel Services et PerformancePoint Services. 

- 2- © ENI Editions - All rigths reserved - educ algeria


Architecture serveur 
Le choix de l’architecture serveur est un préalable nécessaire au projet pour plusieurs raisons : 

● Estimer le coût des machines et du matériel nécessaire. 

● Estimer le coût des licences. 

● Laisser le temps à l’équipe exploitation de s’organiser, de se former et d’installer les environnements. 

La  mise  en  place  d’un  projet  décisionnel  nécessite,  en  fait,  plusieurs  environnements  de  travail.  On  dénombre 
généralement : 

● Un  environnement  de  développement  :  c’est  sur  cet  environnement  que  seront  réalisés  notamment  les 
développements ETL. Ce type de développement est assez gourmand en ressources machine, il s’agit alors de 
le désolidariser de l’environnement de travail des utilisateurs. 

● Un  environnement  de  recette  :  l’environnement  de  recette  et  d’intégration  est  souvent  le  même. 
L’environnement de recette ou de pré­production, est l’environnement de travail sur lequel on évalue la qualité 
du travail réalisé en développement. La recette est très importante et peut parfois prendre du temps, il est donc 
important que cet environnement soit distinct du développement et de la production afin de ne perturber ni les 
développeurs, ni les utilisateurs. 

● Un environnement d’intégration : l’environnement d’intégration est quant à lui un laboratoire sur lequel l’équipe 
exploitation peut tester, s’entrainer et préparer les travaux de maintenance ou de mises à jour applicatives. 

Par  exemple,  si  vous  partez  tout  d’abord  sur  SharePoint  Fundation  2010,  puis  que  vous  souhaitez  passer  sous  SharePoint 
Server  2010,  l’environnement  d’intégration  permettra  à  l’équipe  exploitation  de  réaliser  une  étude  d’impact  et  d’écrire  les 
procédures permettant d’éviter les écueils et de réduire les perturbations sur l’environnement de production. 

● Un environnement de production : c’est  l’environnement de travail des utilisateurs. De fait, cet environnement 
doit  avoir  le  moins  possible  d’interruptions  de  services  tout  en  offrant  avec  constance  les  meilleures 
performances. 

Généralement, nous constatons trois environnements : l’environnement de recette et d’intégration étant le même. En 
début  de  projet  décisionnel,  deux  environnements  peuvent  suffire  :  l’environnement  de  production,  jouant  dans  un 
premier temps aussi le rôle d’environnement de recette. Toutefois, une fois que le projet est lancé et que le premier lot 
projet est en production, il est vraiment important de se doter au moins d’un environnement recette/intégration. 

1. L’environnement de production 

La performance d’un environnement de production est évaluée suivant deux axes : 

● Sa  capacité  à  monter  en  charge  pour  répondre  efficacement  à  toutes  les  demandes  utilisateurs.  Rappelons 
que le système décisionnel doit présenter des chiffres dans des délais de l’ordre de la seconde. Un décideur 
n’attendra certainement pas plusieurs minutes que son tableau veuille bien s’afficher. 

● Sa  haute  disponibilité.  Par  haute  disponibilité,  on  entend  sa  capacité  à  offrir  un  service  chaque  fois  qu’un 
utilisateur  en  a  besoin.  Un  service  qui  est  régulièrement  indisponible  fera  fuir  les  utilisateurs.  De  plus,  si  le 
décisionnel devient l’outil de pilotage de l’entreprise, cela peut devenir catastrophique si celui­ci ne fonctionne 
pas lorsqu’on a besoin de lui pour prendre une décision importante. 

Les critères entrant en jeu lors de la définition de l’environnement de production sont : 

● La volumétrie : le volume de données influe bien évidemment sur la taille des machines et des disques. 

Lorsque l’on parle d’estimation du volume de données, il faut sous­entendre l’ordre de grandeur de l’entrepôt 
de  données  :  parle­t­on  de  Mo,  de  Go,  de  centaine  de  GO  ou  de  To  ?  Il  ne  faut  pas  chercher  à  faire  une 
estimation  exacte.  Généralement,  pour  estimer  l’ordre  de  grandeur  d’un  entrepôt  de  données,  on  se  base  sur 
l’estimation  de  la  volumétrie  des  tables  de  faits  qui  seront  susceptibles  d’être  les  plus  volumineuses.  Cette 

© ENI Editions - All rigths reserved - educ algeria - 1-


estimation devra être réalisée à partir d’hypothèses précises, chiffrées et validées. 

Par  volumétrie,  il  est  aussi  vraiment  très  important  de  prendre  en  considération  le  volume  des  données  de 
référence. Si vous disposez d’une donnée de référence de plusieurs millions de membres (les abonnés d’une 
société de télécom ou les produits d’un grand supermarché par exemple), ce volume de données aura forcément un 
impact un jour ou l’autre sur le cache nécessaire au niveau de l’ETL (mémoire RAM) ou sur la probable émergence 
d’une table de type photo gigantesque. 

● Le  nombre  d’utilisateurs  au  total  et  le  nombre  d’analystes  :  vous  comprendrez  aisément  l’importance  de  ce 
critère  si  vous  réalisez  un  suivi  commercial  de  votre  réseau  de  plusieurs  milliers  d’agents…  Le  nombre 
d’analystes  est  quant  à  lui  important,  car  ces  utilisateurs  ont  un  mode  de  consommation  du  système 
décisionnel qui pèsera beaucoup plus sur ses performances qu’un utilisateur lambda qui va recevoir une fois 
par mois un rapport dans sa boîte mails. 

● Les prévisions d’évolution et de montée en charge du système : l’architecture devra bien évidemment prendre 
en compte la croissance prévisionnelle du périmètre fonctionnel de l’entrepôt de données. Une augmentation 
du  périmètre  fonctionnel  ayant  forcément  un  impact  sur  le  nombre  d’utilisateurs  et  sur  la  volumétrie  du 
système. 

● La haute disponibilité : parmi tous les critères, l’exigence en haute disponibilité est surement le critère le plus 
contraignant et celui qui a le plus d’impact dans l’élaboration de l’environnement de production. On mesure la 
disponibilité avec des taux de disponibilité composés de 9 : 

● Un taux de disponibilité de 99% correspondant à un arrêt de service de 3.65 jours dans l’année. 

● Un taux de 99,9% à un arrêt de 8,75 heures par an. 

● Un taux de 99,99% à un arrêt de 52 minutes par an... et ainsi de suite. 

La  contrainte  de  haute  disponibilité  étant  généralement  présente,  de  ce  fait,  la  typologie  de  l’environnement  de 
production est bien souvent celle présentée ci­dessous : 

Typologie de l’architecture de production en haute disponibilité 

Cette architecture nécessite : 

● 2 serveurs Back­End en cluster : qui devront être deux grosses machines physiques. 

● 2 serveurs Front End en load balancing (ou équilibrage de charges) : qui peuvent être deux petites machines 

- 2- © ENI Editions - All rigths reserved - educ algeria


virtuelles. 

● 1  serveur  Active  Directory  :  il  s’agira  vraisemblablement  d’un  serveur  existant.  Sachez  cependant  que  le 
service Active Directory sera nécessaire pour installer et configurer correctement la solution BI Microsoft. 

● Une baie SAN : l’optimisation d’une architecture serveur passe nécessairement par un plan de découpage et 
d’isolement des bases et des partitions sur des disques physiques distincts : 

● Il  s’agit  tout  d’abord  de  séparer  les  fichiers  Data,  Logs  et  Temp  du  service  SQL  Server  Database 
Services sur des disques distincts. 

● Il s’agit ensuite qu’au sein d’un même flux, le disque contenant la base ou la table source soit distinct 
de  celui  contenant  la  base  ou  la  table  de  destination.  Et  ce,  afin  d’éviter  qu’un  disque  physique 
travaille à la fois en lecture et en écriture au cours de l’exécution d’un flux. 

Si vous ne disposez pas de SAN et que vous ne souhaitez pas investir, prévoyez un maximum de disques durs. 
Cet  ouvrage  n’a  pas  vocation  à  être  un  livre  blanc  sur  l’installation  de  la  solution  BI.  Toutefois,  voilà  quelques 
remarques ou points d’attention : 

● Tous les services applicatifs seront installés sur les serveurs Front­End mais auront leur base de données de 
référence installée sur le cluster des serveurs de Back­End. 

● Installez au moins deux instances SQL Server Database Services : l’une pour accueillir les bases décisionnelles 
(DW  et  SA  ­ cf chapitre suivant) et l’autre  pour  accueillir  les  bases  de  données  de  référence  des  applicatifs, 
telles que Reporting Services ou SharePoint. 

● Tous les services seront installés sans exception avec des comptes de service qui seront exclusivement des 
comptes de domaines. Avoir deux comptes est vivement conseillé : un pour l’installation de tous les services 
de  Back­End,  un  autre  pour  tous  les  services  de  Front­End.  D’autres  comptes  pourront  être  indispensables 
notamment en ce qui concerne la configuration de SharePoint. 

● Enfin, cette architecture étant distribuée, elle requerra forcément la configuration de la délégation de sécurité 
Kerberos.  Il  s’agit  en  fait  de  la  difficulté  de  l’installation.  Je  vous  engage  alors  à  contacter  d’une  part  votre 
équipe exploitation et d’autre part l’éditeur ou un prestataire spécialisé pour vous faire accompagner dans la 
mise en place de Kerberos. 

Enfin, pour être concret, je vous propose ci­dessous deux configurations types : 

● La configuration de production intégrant la haute disponibilité : 

Exemple de configuration pour un environnement de production en haute disponibilité 

© ENI Editions - All rigths reserved - educ algeria - 3-


● La configuration de production sans haute disponibilité : 

Exemple de configuration de production sans haute disponibilité 

Attention toutefois de bien comprendre qu’une interruption de service de plus de 24 heures est envisageable 
avec une configuration n’intégrant pas la haute disponibilité. 

La taille des machines devra bien évidemment être adaptée à votre contexte (volumétrie, utilisateurs, budget…) et aux 
prix  pratiqués  par  le  marché.  Discutez  et  échangez  autour  de  de  la  configuration  avec  votre  équipe  informatique 
chargée de l’exploitation. 

Si vous disposez d’une licence SharePoint 2007, les serveurs Front End doivent être installés en 32 bits afin 
de  pouvoir  installer  la  totalité  de  la  suite  Microsoft  BI  et  notamment  la  solution  Proclarity  Analytics  Server. 
Cette dernière solution n’est plus obligatoire avec la licence SharePoint Server 2010. 

2. L’environnement de développement 

L’environnement  de  développement  n’est  pas  soumis  aux  contraintes  de  haute  disponibilité.  Il  s’agit  toutefois  de 
réaliser  un  environnement  robuste  et  performant  afin  que  l’équipe  de  développement  puisse  travailler  avec  tout  le 
confort nécessaire. 
Afin d’améliorer la productivité de vos équipes, je vous engage à investir dans un outil de contrôle de code source. Cet 
outil  vous  permettra  de  partager  vos  projets,  historiser  les  changements,  tracer  les  modifications  et  permettre  de 
réaliser une sauvegarde régulière et quotidienne de l’ensemble. 

Dans la solution Microsoft, le serveur et l’outil de contrôle de code source est Team Fundation Server et Visual 
Studio Team System. 

En  terme  d’architecture  serveur,  une  architecture  tout­en­un,  comprenant  l’ensemble  des  serveurs  présents  en 
production est suffisante. Prévoyez tout simplement une bonne machine. 
À titre d’exemple, je vous propose cette configuration, qui devra elle aussi être adaptée à votre contexte (au nombre 
de développeurs, au nombre de projets…) : 

- 4- © ENI Editions - All rigths reserved - educ algeria


Exemple de configuration pour un environnement de développement 

3. L’environnement de recette et d’intégration 

En  terme  de  configuration,  l’environnement  de  recette  n’a  pas  de  contrainte  particulière  et  peut  ressembler  par 
exemple à l’environnement de développement. 
L’environnement  d’intégration  quant  à  lui  devra  si  possible  ressembler  autant  que  possible  à  l’environnement  de 
production pour y intégrer les mêmes contraintes. 
En  terme  de  budget,  cela  peut  revenir  bien  évidemment  très  cher.  Un  compromis  moyen  peut  être  trouvé  en 
considérant  au  moins  un  environnement  de  recette/intégration  avec  une  architecture  de  production  sans  la  haute 
disponibilité. 
Tout est affaire de budget et de négociation avec l’équipe chargée de l’exploitation de vos machines. 

© ENI Editions - All rigths reserved - educ algeria - 5-


Découverte des outils SQL Server 
Avant de vous lancer dans les chapitres pratiques qui vont suivre, je vous propose une petite découverte des outils 
SQL Server que vous allez avoir à utiliser. 

Pour l’ensemble des outils, SQL Server dispose de deux consoles de gestion principales : 

● La  console  SQL  Server  Management  Studio  (ou  SSMS)  est  la  console  destinée  aux  administrateurs.  Vous 
pourrez y créer des bases de données relationnelles, programmer vos sauvegardes, y faire vos restaurations… 

● La  console  Business  Intelligence  Developpement  Studio  (ou  BIDS)  est  la  console  destinée  aux  développeurs. 
Vous pourrez y développer des flux ETL, des rapports ou des cubes. 

1. SQL Server Management Studio 

a. Connexion à des serveurs SQL Server 

Ouvrons  SQL  Server  Management  Studio  (SSMS)  afin  de  prendre  connaissance  de  la  console  d’administration  et 
aborder quelques sujets dont vous aurez sûrement besoin dans les chapitres suivants. 

■ Dans  le  menu  Démarrer,  ouvrez  le  répertoire  Microsoft  SQL  Server  2008  R2,  puis  cliquez  sur  SQL  Server 
Management Studio. 

Une fenêtre de connexion s’ouvre : 

Cette fenêtre vous permet de vous connecter à un serveur, quel que soit son type : 

● Moteur de base de données 

● Analysis Services 

● Reporting Services 

● Integration Services 

L’administration  de  tous  les  outils  décisionnels  SQL  Server  a  été  centralisée  pour  plus  de  facilité  dans  un  seul  et 
unique environnement. 

■ Pour vous connecter à votre serveur de base de données, saisissez le nom de votre serveur puis cliquez sur Se 

© ENI Editions - All rigths reserved - educ algeria - 1-


conn. 

Le nom de votre serveur est généralement de la forme NomMachine\Instance. Vous verrez d’ailleurs sur la 
copie d’écran, que dans mon cas, mon serveur de base de données est accessible sur le serveur Server1
\r2. Server1 étant le nom de la machine et r2 le nom de l’instance SQL Server. 

Une fois la connexion établie, la fenêtre Explorateur de solutions affiche les objets d’administration du serveur de 
bases de données sur lequel vous êtes connecté : 

L’explorateur d’objets de SSMS 

SQL  Server  Management  Studio  vous  offre  la  possibilité  de  vous  connecter,  soit  à  un  autre  serveur  de  base  de 
données relationnelle, soit à d’autres types de serveur. 

Nous allons par exemple nous connecter au serveur Analysis Services. Pour cela : 

■ Dans l’Explorateur d’objets, cliquez sur Se connecter, puis sur Analysis Services. 

■ Dans la fenêtre de connexion, saisissez le nom de votre serveur Analysis Services. 

Le  nom  d’un  serveur  Analysis  Services  se  compose  de  la  même  manière  que  le  serveur  de  base 
relationnelle : NomMachine\Instance. 

Une fois la connexion établie les objets d’administration de votre serveur Analysis Services s’affichent en dessous 
de votre connexion précédente : 

b. Modification des options de l’interface graphique 

Pour la suite des manipulations, nous avons besoin de modifier une option de configuration de l’interface de SSMS. 

■ Pour modifier les options de l’interface, cliquez dans la barre de menu sur Outils, puis sur Options. 

Nous  allons  désactiver  une  option,  qui  est  activée  par  défaut  après  l’installation  de  SQL  Server.  Cette  option 
empêche  de  modifier  une  table  ou  tout  autre  objet  de  base  de  données  à  l’aide  de  l’interface  graphique.  Cette 
protection n’étant pas très pratique pour la suite des manipulations, nous allons la désactiver. Pour cela : 

- 2- © ENI Editions - All rigths reserved - educ algeria


■ Cliquez sur l’onglet Designers. 

■ Puis décochez l’option Empêcher l’enregistrement de modifications qui nécessitent une recréation de table. 

■ Cliquez enfin sur OK pour valider la modification. 

c. Restauration d’une base de données 

En suivant l’ordre chronologique des chapitres, vous allez être amené à créer ex nihilo une base de données. 
Toutefois,  il  vous  sera  nécessaire  de  restaurer  une  base  de  données  pour  les  besoins  du  chapitre  Alimenter 
l’entrepôt de données avec SSIS. Vous aurez aussi besoin de restaurer une base de données, si vous souhaitez lire 
les chapitres par ordre d’intérêt, plutôt que par ordre chronologique. 

Pour restaurer une base de données, procédez ainsi : 

■ Au niveau de la connexion de votre moteur de base de données, faites un clic droit sur Base  de  données, puis 


dans le menu contextuel, sélectionnez Restaurer. 

La fenêtre Restaurer une base de données s’affiche. Pour restaurer par exemple la base de données DistrisysSA, 
dont vous aurez besoin au chapitre Alimenter l’entrepôt de données avec SSIS, procédez ainsi : 

■ Téléchargez sur le site des Éditions ENI, dans le répertoire 5 ­ Alimenter votre entrepôt de données avec SSIS, le 
fichier DistrisysSA.bak. 

■ Saisissez  dans  le  champ Vers  la  base  de  données  le  nom  de  la  base  de  données  à  restaurer.  Dans  notre  cas 
DistrisysSA. 

■ Cochez l’option À partir de l’unité. 

■ Parcourez votre disque à la recherche du fichier DistrisysSA.bak préalablement téléchargé. 

■ Un fichier de sauvegarde peut contenir plusieurs jeux de sauvegarde, cochez le jeu le plus récent. 

© ENI Editions - All rigths reserved - educ algeria - 3-


Interface de restauration d’une base de données 

■ Enfin cliquez sur OK pour lancer la restauration. 

2. Business Intelligence Developpement Studio 

Enfin, ouvrons l’interface de développement : Business Intelligence Developpement Studio (BIDS). 

■ Dans  le  menu  Démarrer,  ouvrez  le  répertoire  Microsoft  SQL  Server  2008  R2,  puis  cliquez  sur  Business 
Intelligence Developpement Studio. 

L’interface  de  développement  BIDS  n’est  autre  en  fait  que  Visual  Studio  2008.  L’interface  de  développement 
décisionnel bénéficie donc de la richesse de tous les compléments et outils de productivité complémentaires existants 
sur le marché pour Visual Studio 2008. 

- 4- © ENI Editions - All rigths reserved - educ algeria


L’interface Business Intelligence Developpement Studio 

Pour voir les projets décisionnels que vous pouvez créer : 

■ Dans la barre de menu, cliquez sur Fichier, puis sélectionnez Nouveau et enfin cliquez sur Projet. 

Tous les projets de développement décisionnel seront gérés par BIDS 

BIDS étant une version allégée de Visual Studio 2008, vous ne bénéficiez pas de la possibilité de créer des projets de 
développement .Net. En revanche, il vous est offert la possibilité de créer des projets : 

● Analysis  Services,  pour  créer  des  bases  multidimensionnelles  :  nous  aborderons  ce  sujet  dès  le  prochain 

© ENI Editions - All rigths reserved - educ algeria - 5-


chapitre : Réaliser son premier système décisionnel. 

● Integration  Services,  pour  réaliser  les  flux  d’alimentation  ETL  :  nous  aborderons  ce  sujet  dans  le  chapitre 
Alimenter l’entrepôt de données avec SSIS. 

● Reporting  Services,  pour  créer  des  rapports  :  nous  aborderons  ce  sujet  dans  le  chapitre  Restituer  les 
données décisionnelles. 

Maintenant que vous savez comment accéder à SSMS et à BIDS, nous allons commencer dès le prochain chapitre à 
entrer  dans  le  vif  du  sujet.  Nous  allons  créer  un  entrepôt  de  données  et  faire  connaissance  avec  les  premiers 
concepts décisionnels. 

- 6- © ENI Editions - All rigths reserved - educ algeria


Introduction 
Lors  de  ce  chapitre,  nous  utiliserons  les  outils  SQL  Server  pour  réaliser  la  première  brique  de  notre  système 
décisionnel. 

Nous  commencerons  par  mettre  en  œ uvre  le  système  d’analyse  des  factures  qui  permettra  à  la  société  Distrisys, 
d’analyser son chiffre d’affaires (CA), ses marges et ses coûts. 
Dans  une  entreprise  commerciale,  commencer  par  mettre  en œ uvre  l’analyse  des  factures  est  généralement  un  bon 
choix, pour deux raisons : 

● Raison technique : généralement le système de facturation est assez bien maitrisé par le service informatique 
et les données sont structurées, présentes et accessibles dans le système d’informations de l’entreprise. 

● Raison métier : les données de facturation intéressent la plupart des services tels que la direction générale, la 
direction des ventes, la finance, le marketing... et la mise à disposition d’un système d’analyse des factures est 
souvent assez riche en informations et donc en valeur ajoutée. 

Les données de facturation seront analysables par les utilisateurs suivant quatre axes principaux : 

● L’axe produit 

● L’axe client 

● L’axe site, qui permettra de connaître le site à l’origine de la vente 

● L’axe temps 

Lors de ce chapitre nous emploierons la méthode de travail suivante : 

● Nous modéliserons la solution finale en construisant l’entrepôt de données, puis le cube. 

● Nous générerons des données de test afin de nous assurer que le modèle répond à nos attentes. 

● Puis  dans  une  étape  ultérieure,  nous  nous  intéresserons  à  remonter  les  données  de  vos  systèmes  sources 
dans l’entrepôt de données, que nous aurons précédemment modélisé. 

Il est important de commencer à modéliser la solution avant de l’alimenter. Toute autre démarche consistant à partir de 
vos données sources pour construire un entrepôt de données serait vouée, à terme, à l’échec. 
Mettons­nous dès à présent au travail ! 

© ENI Editions - All rigths reserved - educ algeria - 1-


Création des tables de faits et de dimension 

1. Création de l’entrepôt de données 

Nous allons commencer par créer l’entrepôt de données. Nous appellerons cette base de données : DistrisysDW. 

Pour information les deux lettres DW sont le sigle de Data Warehouse, traduction anglaise d’Entrepôt de données. 
Pour créer cette base de données il nous faut utiliser l’outil SQL Server Management Studio (SSMS). 

■ Ouvrez la console SQL Server Management Studio. 

■ Créez une nouvelle base de données DistrisysDW avec le modèle de recouvrement Simple. En effet, une base de 
données décisionnelle ne doit pas enregistrer les logs de transaction. D’une part parce que les logs seraient trop 
volumineux, d’autre part parce que le système de recouvrement au quotidien sera géré par le système d’audit. Pour 
plus de détails sur ce sujet, reportez vous au chapitre Alimenter l’entrepôt de données avec SSIS ­ L’audit des flux 
ETL. 

■ Assurez­vous que le compte de service de votre serveur SQL Server a les droits en lecture sur DistrisysDW. Si vous 
ne savez pas comment vous y prendre, vous avez à votre disposition un complément téléchargeable sur le site des 
Éditions ENI. 

Vous venez de créer un entrepôt de données et de vous assurer que le compte de service a bien les droits d’accès sur 
cette nouvelle base de données. Dans les prochaines étapes, nous allons nous atteler à la création de la table de faits 
et des dimensions. 

2. Création d’une table de faits 

D’abord quelques explications sur la construction d’une table de faits. Chaque table de faits sera construite en trois 
blocs. 

Le premier bloc détaille les liaisons avec les tables de dimension : 

Les quatre axes pour analyser les factures sont les suivants : 

● DateFacturation_FK permettra d’identifier la date de facturation et fera la liaison avec la dimension Temps. 

● Site_FK permettra d’identifier le site de facturation et fera la liaison avec la dimension Site. 

● Produit_FK permettra d’identifier le produit facturé et fera la liaison avec la dimension Produit. 

● Client_FK permettra d’identifier le client facturé et fera la liaison avec la dimension Client. 

Ces champs définissent la granularité de notre table de faits. 
Dans notre cas, la granularité de la table de faits FactFacture correspond à une ligne : par jour (date de facturation), 
par  site  de  facturation,  par  produit  et  par  client.  Cela  signifie  que,  potentiellement,  nous  pourrons  regrouper  et 
sommer en une seule ligne, les lignes de facture ayant les mêmes critères. 
Ce regroupement est appelé un agrégat. 
 
Veuillez noter que chaque champ de liaison ne tolère pas de champ null.

© ENI Editions - All rigths reserved - educ algeria - 1-


Ces champs de liaison seront des clés étrangères. Une table de faits n’a pas de clé primaire, c’est une de ses 
caractéristiques. 

Le second bloc détaille les mesures de la table de faits : 

Ces mesures sont issues d’un travail conjoint avec le service contrôle de gestion de Distrisys. La facture est l’occasion 
de  redéfinir  les  termes  et  le  découpage  des  différents  montants.  Suite  à  l’atelier  nous  avons  posé  les  relations 
suivantes entre ces différentes mesures : 

● Prix Catalogue = CA TTC + Remise 

● CA TTC = CA HT + TVA 

● CA HT = Coût Indirect + Coût Direct Main d’œ uvre + Coût Direct Matière + Marge 

Les  mesures  de  la  table  des  faits  sont  tous  de  type  numeric(9,2)  afin  de  gérer  les  nombres  réels  compris  entre  ­
1 000 000,00 et 1 000 000,00. 
La  précision  de  9,  représentant  le  nombre  de  chiffres  total  et  2,  le  nombre  de  chiffres  après  la  virgule.  Pour  mieux 
comprendre le fonctionnement du type numérique, veuillez­vous reporter au tableau ci­dessous : 

Mini  Maxi  Coût en octets 

Numeric(9,1)  ­10 000 000,0  10 000 000,0  5 

Numeric(9,2)  ­1 000 000,00  1 000 000,00  5 

Numeric(9,3)  ­100 000,000  100 000,000  5 

Le type  numeric (9,x) coute donc 5 octets. Ce type de données représente le stockage de la valeur réelle, le moins 
couteux en octets. 
Les mesures de la table de faits ne doivent pas accepter de valeur null 

Le troisième bloc liste des champs dits de dimensions dégénérées : 

Ces  champs  n’ont  pas  d’utilité  dans  l’analyse.  Ils  représentent  généralement  une  référence  au  grain  de  la  table  de 
faits. Ces champs permettront de faire le lien entre le système décisionnel et le système source. 

En effet, nous n’analyserons jamais nos factures par le numéro de facture. En revanche, nos utilisateurs souhaiteront 
peut être connaître la liste des numéros de factures qui compose les ventes du mois d’un produit, pour un client et 
pour  un  site  en  particulier.  Nous  verrons  l’usage  concret  des  dimensions  dégénérées  au  chapitre  La  modélisation 
dimensionnelle ­ Facturation et commande client. 

Attention, ces champs sont assez coûteux en espace, car ils sont généralement en type varchar : 1 octet par 
caractère.  Un  varchar(6)  coûte  donc  jusqu’à  6  octets  par  ligne  dans  la  table  de  faits.  Il  ne  faut  donc  pas 
tomber dans l’excès. La création d’un tel champ doit être pesée. 

Nous allons maintenant nous atteler à la création d’une table de faits : FactFacture. 

■ Créez la table de faits des factures de la manière suivante : 

- 2- © ENI Editions - All rigths reserved - educ algeria


 

■ Enregistrez la table et nommez­la : FactFacture. 

Toutes  les  tables  de  faits  de  l’entrepôt  de  données  seront  préfixées  par  Fact  afin  de  les  identifier  comme 
telles. 

La table doit apparaître comme ci­dessous : 

3. Création des tables de type dimension 

Maintenant que nous avons créé la table de faits des factures, nous allons nous atteler à construire les tables de type 
dimension utilisées dans l’analyse des factures. De même que les tables de faits sont préfixées par Fact, les tables de 
type dimension seront préfixées par Dim. 

Nous allons donc créer les tables de type dimension suivantes : 

● DimProduit, pour la dimension produit 

● DimSite, pour la dimension site 

● DimClient, pour la dimension client 

© ENI Editions - All rigths reserved - educ algeria - 3-


Commençons par la création de la table dimension Produit. 
Comme pour la table de faits, quelques explications s’imposent quant à la construction d’une table de type dimension. 
La table de dimension Produit est construite en deux blocs. Ces deux blocs devront se retrouver dans chacune de nos 
tables de type dimension. 

Le premier bloc, identifie le champ de clé technique de la table de dimension Produit. 

Cette  clé  technique  ne  doit  pas  être  issue  de  votre  système  source.  Elle  ne  doit  pas  non  plus  être  une  codification 
métier. Il est important que votre entrepôt de données utilise et gère ses propres identifiants de table de dimension. 
Nous  aurons  donc  pour  chacune  de  nos  tables  de  dimension,  une  clé  technique  de  type  int,  en  incrémentation 
automatique. 
Le deuxième bloc de colonnes liste les attributs de la dimension Produit 

Nous remarquons que les attributs sont tous de type varchar, pour supporter une valeur sous forme de chaînes de 
caractères. Le nombre spécifié entre parenthèses correspondant au nombre de caractères maximum du champ. 
La dimension Produit se décomposera en trois niveaux : 

● le niveau Famille ; 

● le niveau Sous Famille ; 

● le niveau Produit. 

Chacun des attributs Famille, Sous Famille et Produit est décomposé en deux champs au sein de la table de dimension 
de l’entrepôt de données. 

Le champ suffixé Code (ProduitCode par exemple) servira de clé d’identification unique de l’attribut, tandis que l’autre 
champ (Produit par exemple) correspondra à sa désignation : la valeur affichée pour l’utilisateur. 

Par exemple, pour le champ ProduitCode LL1100, le champ Produit correspondant est LAGON LL 1100. 

Cette  façon  de  procéder  est  nécessaire  dans  le  cas  des  attributs  disposant  déjà  d’une  codification  ou  des 
attributs  générant  de  nombreuses  valeurs  comme  les  produits,  les  clients,  les  fournisseurs,  les  actions 
commerciales… 

Créez la table de dimension Produit : 

■ Créez les colonnes de table comme ci­dessous : 

- 4- © ENI Editions - All rigths reserved - educ algeria


■ Enregistrez la table en la nommant DimProduit. 

La table DimProduit est créée : 

■ Positionnez une clé primaire sur la première colonne Produit_PK et enregistrez les modifications : 

 
 
Pensez à enregistrer chacune de vos modifications.

■ Éditez le contenu de la table DimProduit : 

La table est actuellement vide. 

■ Saisissez directement dans l’interface les 10 nouvelles lignes comme ci­dessous : 

© ENI Editions - All rigths reserved - educ algeria - 5-


 

Vous trouverez en téléchargement sur le site des Éditions ENI, un script SQL permettant de générer ces lignes. 

Pour  les  besoins  de  notre  cas,  nous  venons  de  saisir  manuellement  la  valeur  des  données  de Produit_PK. 
Néanmoins, il est préférable de laisser SQL Server gérer et générer la valeur de ce champ. Pour ce faire, il faut 
activer la propriété d’incrémentation automatique. Une fois en incrémentation automatique, vous ne pourrez plus 
saisir  manuellement  la  valeur  de  ce  champ.  Pour  les  besoins  de  notre  cas,  nous  activerons  l’incrémentation 
automatique  seulement  après  la  saisie  des  données,  pour  nous  assurer  que  les  clés  techniques  aient  bien  les 
valeurs figurant dans les exemples proposés. 

■ Créez  une  identité  avec  incrémentation  automatique.  Pour  cela,  changez  la  propriété  (Est  d’identité)  à  Oui  en 
utilisant la liste déroulante. 

Un peu de vocabulaire : 
La  valeur  unique  que  prend  chaque  attribut  est  appelée  un  membre.  Ainsi  dans  notre  exemple,  l’attribut  Produit 
dispose  de  dix  membres.  De  même  l’attribut  Famille  dispose  de  deux  membres :  Gros  Ménager  et  Petit  Ménager.  Le 
nombre de lignes de la dimension est appelé la cardinalité de la dimension. Dans notre exemple, la dimension Produit a 
une cardinalité de 10. 

Vous savez maintenant créer une table et vous comprenez la composition d’une dimension. 

■ Créez la table de dimension DimSite : 

- 6- © ENI Editions - All rigths reserved - educ algeria


 

Vous devrez alors avoir : 

Vous pouvez constater que la dimension DimSite est composée de trois blocs de colonnes distincts. Nous retrouvons 
les deux blocs obligatoires : 

Le premier référence la clé technique : 

Le second bloc référence les attributs de dimension : 

Mais il existe un troisième bloc, qui liste les liaisons avec d’autres dimensions : 

Un  peu  à  la  manière  de  la  table  des  faits,  GeographieSite_FK  est  une  clé  étrangère  qui  fera  la  liaison  avec  une 
dimension Geographie et permettra de localiser le site sur un axe géographique : pays, département, ville… 

Pourquoi  faire  la  liaison  avec  une  table  de  dimension  distincte ?  Pourquoi  ne  pas  créer  les  attributs  Pays, 
Département  et  Ville  directement  dans  cette  dimension  Site ?  Tout  simplement,  parce  que  la  dimension 
géographie est un axe qui sera partagé par d’autres dimensions autres que Site. L’axe Geographie au sein de la 
dimension Client nous permettra de localiser les clients de Distrisys. Nous créerons donc une table DimGeographie 
qui centralisera toutes les informations concernant la localisation géographique. 

■ Créez la table de dimension DimGeographie : 

Notre dimension Geographie dispose donc des attributs nécessaires pour réaliser des analyses par pays, département 
et ville. 

Dans la réalité, je vous conseillerais vivement d’apporter une attention particulière à cette dimension, en y intégrant la 

© ENI Editions - All rigths reserved - educ algeria - 7-


région  et  de  descendre  jusqu’au  code  INSEE.  Cette  dimension  est  importante  car  c’est  la  clé  qui  vous  permettra 
d’analyser vos données à l’aide d’outils de cartographie. 

■ Éditez le contenu de la table DimGeographie (11 lignes) : 

■ Éditez le contenu de la table DimSite (5 lignes) : 

Pour faciliter la saisie, vous trouverez le script de création des données en exemple, en le téléchargeant sur le site du 
livre. 

Au vue de ces exemples, il faut donc lire que l’agence Sud se situe à Aix­en­Provence. En effet, l’agence Sud fait référence à 
GeographieSite_FK qui est égal à 8. Et la table DimGeographie nous apprend que l’identifiant 8 fait référence à la ville d’Aix­
en­Provence. 

Finissons enfin par la création de la dimension client. 

■ Créez la table de dimension DimClient : 

Les attributs TypeClient et SegmentationClient ne comprendront que très peu de valeurs et ne disposeront 
pas de codification métier. C’est pour cela que l’attribut avec le suffixe Code n’est pas nécessaire. 

■ Éditez le contenu de la table DimClient (10 lignes) : 

- 8- © ENI Editions - All rigths reserved - educ algeria


 

Au final, au sein de Management Studio, vous devriez avoir : 

N’oubliez pas de spécifier l’incrémentation automatique des tables DimSite, DimClient et DimGeographie. 
Notre  entrepôt  de  données  se  dessine  lentement.  Malgré  tout,  il  nous  reste  une  dernière  dimension  essentielle  à 
créer. Il s’agit de la dimension Temps. L’importance est telle que nous y consacrerons la partie suivante. 

© ENI Editions - All rigths reserved - educ algeria - 9-


La dimension temps 
Dans  un  système  décisionnel,  la  dimension  Temps  revêt  une  importance  particulière  et  doit  faire  l’objet  de  la  plus 
grande  attention.  La  table  Temps  est  unique  et  sa  présence  est  obligatoire  dans  toute  table  de  faits,  quelle  qu’elle 
soit. La présence de la dimension Temps dans une table de faits est une des caractéristiques d’un système décisionnel 
par rapport à un système transactionnel. 
La table de dimension Temps a une granularité au jour. 

● Dans certains cas, vous aurez besoin de faire des analyses à l’heure :  il  s’agira alors de créer une dimension 


Heure. Nous n’intégrerons jamais les heures au sein de la dimension Temps. 

● Dans d’autres cas, vous aurez une table de faits à la granularité mois : il s’agira alors de considérer le premier 
jour du mois, comme étant représentatif du mois. Nous aborderons ce cas­là ultérieurement, dans le chapitre 
La modélisation dimensionnelle ­ Facturation et commande client. 

Le premier réflexe est de construire une table de dimension Temps assez simple, comme ci­dessous : 

Ne  créez  pas  cette  table  car  cette  construction  se  révèlera  vite  très  insuffisante.  Il  faudrait  la  compléter  par 
bon nombre d’attributs supplémentaires. 

L’expérience  vous  apprendra  qu’une  table  de  dimension  bien  construite  permettra  d’anticiper  bon  nombre  de 
complications ultérieures. 

Au  cours  des  pages  suivantes,  nous  allons  créer  la  table  Temps,  saisir  son  contenu,  puis  la  peaufiner  pour  qu’elle 
corresponde à nos attentes. Néanmoins, la table DimTemps finale est disponible en téléchargement au format csv sur 
l’espace de téléchargement du livre. 
L’intérêt  de  la  procédure  qui  suit  est  de  vous  permettre  de  vous  constituer  votre  propre  DimTemps  qui  reflétera  les 
spécificités de votre organisation. 

Pour  commencer,  nous  allons  nous  servir  d’un  assistant  de  projet  SSAS,  afin  de  générer  une  première  version  de  la 
table DimTemps. La création de la table de dimension Temps va nous permettre d’avoir un premier contact avec l’outil 
de création de cubes de Microsoft : BIDS (SQL Server Business Intelligence Developpement Studio). Nous reviendrons, 
plus tard dans le chapitre et plus en détails, sur l’environnement de création de cube. 

■ Ouvrez l’outil BIDS et créez un nouveau projet. 

■ Sélectionnez un projet de type Projet Analysis Services : 

© ENI Editions - All rigths reserved - educ algeria - 1-


 

■ Créez une nouvelle source de données : 

Nous allons suivre l’assistant de création d’une nouvelle source de données : 

■ L’assistant s’ouvre sur un écran d’accueil, cliquez sur le bouton Suivant. 

■ Aucune référence à une source de données n’étant encore définie, cliquez sur le bouton Nouveau pour en créer une 
nouvelle. 

- 2- © ENI Editions - All rigths reserved - educ algeria


 

■ Saisissez le nom de votre instance SQL Server, ainsi que le nom de l’entrepôt de données, puis cliquez sur Tester la 
connexion pour vérifier que les paramètres sont corrects. 

© ENI Editions - All rigths reserved - educ algeria - 3-


 

■ Cliquez sur Suivant pour continuer la configuration de la source de données. 

- 4- © ENI Editions - All rigths reserved - educ algeria


 

■ Sélectionnez Utiliser le compte de service pour vous connecter à la base de données. 

■ Cliquez sur Terminer. 

© ENI Editions - All rigths reserved - educ algeria - 5-


 

Maintenant  que  la  source  de  données  est  créée,  nous  allons  créer  une  dimension  Temps  dans  le  projet  Analysis 
Services. 

■ Créez  une  nouvelle  dimension.  Pour  cela,  dans  l’Explorateur  de  solutions,  faites  un  clic  droit  sur Dimension  puis, 
dans le menu contextuel, cliquez sur Nouvelle dimension. 

■ Un  nouvel  assistant  s’ouvre.  Dans  la  fenêtre  Sélectionner  la  méthode  de  création,  sélectionnez  l’option  Générer 
une table de temps dans la source de données. 

- 6- © ENI Editions - All rigths reserved - educ algeria


 

■ Sélectionnez la période qui vous intéresse : dans notre cas, nous souhaitons une plage allant du 1 e r janvier 2006 au 


31 décembre 2013. 

■ Sélectionnez le ou les types de calendrier qui sont supportés par votre axe temps. 

© ENI Editions - All rigths reserved - educ algeria - 7-


Dans notre cas, nous n’aurons besoin que du calendrier régulier. Dans la réalité, il est très probable que des 
services  tels  que  le  service  financier,  les  ventes  ou  les  services  production  et  logistique  aient  chacun  leur 
propre  calendrier  qui  diffère  du  calendrier  standard.  Le  calendrier  standard  commence  le  1e r  janvier  et  finit  le  31 
décembre. Le calendrier fiscal d’une entreprise peut par exemple commencer le 1e r septembre et terminer le 31 août 
de l’année suivante. 

■ Cochez  l’option  Créer  le  schéma  maintenant  afin  que  l’assistant  crée  non  seulement  la  structure,  mais  génère 
également  les  données  et  changez  le  nom  de  la  nouvelle  dimension  en  DimTemps.  Enfin  cliquez  sur  le  bouton 
Terminer. 

- 8- © ENI Editions - All rigths reserved - educ algeria


 

■ À l’affichage de l’assistant de génération de schéma, cliquez sur Suivant. 

■ Sélectionnez l’option Créer une nouvelle vue de source de données nommée arbitrairement SSAStemps. 

Nous  reviendrons  plus  en  détail  sur  ces  aspects  du  projet  Analysis  Services.  Notre  projet  n’a  pas  d’autre vocation 
que de générer la dimension temps. 

© ENI Editions - All rigths reserved - educ algeria - 9-


■ Sélectionnez l’option Remplir afin de générer les données de la table DimTemps : 

■ L’assistant affiche un écran de paramétrage des conventions de nommage. À l’option Séparateur, spécifiez la valeur 
Aucun : 

- 10 - © ENI Editions - All rigths reserved - educ algeria


■ Achevez l’assistant en cliquant sur le bouton Terminer. 

■ À la fin du processus de génération du schéma, cliquez sur Fermer. 

© ENI Editions - All rigths reserved - educ algeria - 11 -


 

L’assistant est terminé, la dimension est créée. Vous pouvez quitter le projet. 

Dans l’outil SQL Server Management Studio, vous pouvez constater que la table DimTemps vient d’être ajoutée : 

La structure de la table DimTemps générée est la suivante : 

- 12 - © ENI Editions - All rigths reserved - educ algeria


 

Et vous pouvez vérifier que les lignes de la table DimTemps ont bien été saisies : 

Nous  disposons  maintenant  d’une  table  de  dimension  temps,  beaucoup  plus  conforme  à  nos  attentes.  Néanmoins, 
nous allons continuer d’apporter manuellement quelques améliorations qui nous seront profitables par la suite. 

Par expérience, je vous recommanderais d’utiliser  une  clé Temps_PK de type int au format aaaammjj. Cette 


clé  vous  évitera  de  nombreux  écueils  lors  du  chargement  de  vos  données.  Les  champs  de  type  Date  étant 
souvent  sources  de  problème  d’alimentation.  D’autre  part,  ce  type  de  clé  vous  permettra  d’obtenir  de  meilleures 
performances. 

Cette  codification  au  format  aaaammjj  devra  être  généralisée  à  tous  les  niveaux  de  notre  axe  temps :  année, 
semestre, trimestre, mois, semaine… 

Je  vous  suggère  donc  que  chaque  niveau  (année,  semestre,  trimestre,  mois,  semaine,  jour)  soit  composé  de  trois 
attributs distincts : 

● Code 

● Date 

● Nom 

Par exemple, le mois devra être composé des attributs suivants : 

© ENI Editions - All rigths reserved - educ algeria - 13 -


Attribut  Type  Valeur exemple  Commentaire 

MoisCode  Int  20091101  Format aaaammjj, par défaut doit toujours 


se référer à la 1 ère  date de la période  

MoisDate  SmallDateTime  2009­11­01 00:00:00  Format date 

MoisNom  Varchar(50)  Novembre 2009  Valeur au format affichée 

Les valeurs des attributs Code devront être déduites à partir des valeurs attributs Date, à l’aide d’un script SQL de mise 
à jour (requête UPDATE). 
Afin de finaliser l’axe temps, nous vous conseillons d’exécuter le script  FinalisationDimTemps.sql, téléchargeable sur le 
site du livre. 
Ce script réalise les opérations suivantes : 

● Il renomme un certain nombre de colonnes. 

● Il modifie des types de données DateTime en SmallDateTime. 

● Il modifie des types de données nvarchar en varchar. 

● Il  crée  la  clé  Temps_PK  ainsi  que  les  colonnes  AnneeCode,  SemestreCode,  TrimestreCode,  MoisCode  et 
SemaineCode. 

● Il remplit les valeurs pour les champs créés précédemment. 

● Il modifie les colonnes pour interdire la valeur null. 

● Il repositionne la clé primaire sur Temps_PK. 

Au final, après exécution du script, la table DimTemps devra avoir ce formalisme : 

Le  champ  Temps_PK  devra  bien  entendu  être  une  clé  primaire.  En  revanche,  exceptionnellement,  n’activez  pas 
l’incrémentation automatique pour cette table. 

■ Vérifiez que la table DimTemps est bien remplie : 

- 14 - © ENI Editions - All rigths reserved - educ algeria


 

Conservez précieusement la table  DimTemps ainsi que ses données. En effet, la table DimTemps, que vous 
venez  de  créer,  est  parfaitement  standard  et  réutilisable,  quels  que  soient  vos  futurs  projets  d’entrepôt  de 
données. 

© ENI Editions - All rigths reserved - educ algeria - 15 -


Création des étoiles 
Dans les chapitres précédents, nous avons créé une table de faits et les tables de dimensions associées. Au cours de 
ce chapitre, nous allons achever la modélisation de notre entrepôt de données en assemblant ces tables en étoile. 

Pourquoi en étoile ? Tout simplement parce que la table de faits est au centre d’un réseau de tables de dimension, le 
tout faisant penser à une étoile. 

Représentation schématique d’une étoile 

Vous entendrez aussi parler de schéma en flocon. Tout simplement parce que les tables de dimension, peuvent être 
liées à d’autres dimensions. Le schéma global faisant penser alors à un flocon de neige. 

Représentation schématique d’un flocon 

La manière de nommer ces schémas étoile ou flocon n’a que peu d’importance. Il est surtout important de noter que 
les liaisons du centre vers l’extérieur se matérialisent uniquement par des relations de clé étrangère à clé primaire. De 
ce fait, dans une modélisation correcte : 

© ENI Editions - All rigths reserved - educ algeria - 1-


● Une table de faits ne devra jamais contenir de clé primaire. 

● Une table de dimension contient toujours une clé primaire unique et parfois des clés étrangères (pour obtenir 
un flocon). 

Dans notre cas, voyons à quoi devrait ressembler notre étoile : 

Schéma en étoile FactFacture 

La table de dimension DimGeographie est partagée par deux autres tables de dimension DimSite et DimClient. Mais cela 
ne gêne en rien la conformité de notre modèle. Notre schéma reste conforme, car le sens des flèches va bien du centre 
vers l’extérieur. 

Utilisons maintenant SQL Server Management Studio pour intégrer cette étoile à notre entrepôt de données. 

■ Faites un clic droit sur Schéma de base de données, puis cliquez sur Nouveau schéma de base de données : 

■ Cliquez sur Oui : 

■ Ajoutez toutes les tables au schéma de base de données, puis fermez. 

- 2- © ENI Editions - All rigths reserved - educ algeria


 

■ Arrangez les tables afin de toutes les faire apparaître à l’écran : 

■ Par contrôle visuel, assurez­vous que tous les champs en _PK soient bien des clés primaires. Les clés primaires étant 
identifiées par le symbole  . 

■ Enregistrez le schéma et nommez­le Facture Etoile, du nom de la table de faits concernée : 

Vérifiez que le schéma est créé : 

© ENI Editions - All rigths reserved - educ algeria - 3-


 

Maintenant revenons à notre schéma, afin de créer les relations entre les tables. 

■ Sélectionnez le symbole  du champ Produit_PK de la table DimProduit, puis maintenez la sélection enfoncée. Un 
lien  en  pointillés  apparaît  et  votre  curseur  change  d’apparence.  Nous  allons  faire  un  glissé­posé  sur  le  champ 
Produit_FK de la table FactFacture. 

Une fois au­dessus du champ Produit_FK, relâchez la souris : deux nouvelles fenêtres apparaissent, vous proposant de 
confirmer la relation entre Produit_PK de DimProduit avec Produit_FK de FactFacture. 

■ Pour la première fenêtre, cliquez sur OK : 

- 4- © ENI Editions - All rigths reserved - educ algeria


 

■ À la seconde fenêtre, cliquez également sur OK : 

La liaison a été créée : 

© ENI Editions - All rigths reserved - educ algeria - 5-


 

En  revanche,  les  modifications  n’ont  pas  encore  été  appliquées,  les  petites  étoiles  sont  là  pour  vous  le 
rappeler : 

■ Enregistrez de nouveau votre schéma. Je vous conseille de l’enregistrer après chaque manipulation. 

■ Maintenant que vous savez créer une relation entre deux tables, je vous suggère de créer les relations suivantes : 

● Temps_PK (DimTemps) avec DateFacturation_FK (FactFacture) 

● Site_PK (DimSite) avec Site_FK (FactFacture) 

● Client_PK (DimClient) avec Client_FK (FactFacture) 

● Geographie_PK (DimGeographie) avec GeographieSite_FK (DimSite) 

● Geographie_PK (DimGeographie) avec GeographieClient_FK (DimClient) 

Vous devriez maintenant avoir le diagramme suivant : 

- 6- © ENI Editions - All rigths reserved - educ algeria


 

■ Vérifions par un contrôle visuel la conformité de notre étoile : les clés étrangères sont au centre de l’étoile et toutes 
les dimensions ont une clé primaire. 

Nous venons ainsi de construire notre premier schéma en étoile Facture Etoile. 

© ENI Editions - All rigths reserved - educ algeria - 7-


Génération du jeu de test 
Dans le chapitre précédent, nous avons achevé la modélisation de notre entrepôt de données. Néanmoins pour tester 
et appréhender le modèle, il nous faut des données concrètes. 
Lors  de  la  phase  de  conception,  même  si  je  vous  engage  à  vérifier  la  disponibilité  des  informations  sources,  je  vous 
incite  vivement  à  ne  pas  chercher  à  travailler  avec  les  données  réelles  mais  avec  un  jeu  de  test.  Et  ce,  jusqu’à  une 
validation de la modélisation. 

Nous allons voir dans ce chapitre comment générer et travailler avec un jeu de test. Cette phase peut sembler lointaine 
des  préoccupations  du  concepteur,  elle  reste  cependant  capitale  pour  la  validation  et  la  réussite  de  cette  phase  de 
modélisation.  En  effet,  lors  des  phases  de  conception,  il  est  important  de  faire  des  itérations  très  rapides  avec  les 
utilisateurs métier, et surtout d’être capable de leur faire voir et leur faire manipuler le fruit des décisions des dernières 
délibérations. 

À l’issue de ce chapitre, c’est­à­dire après la création du cube, dans notre étude de cas Distrisys, nous devrions réaliser 
une  démonstration  et  un  atelier.  Cela  permettra  aux  utilisateurs,  qui  ont  participé  à  sa  conception,  de  manipuler  le 
modèle, ce afin de le leur faire valider. L’objectif étant qu’une fois le modèle validé à l’aide de données de test nous le 
mettrons de côté. Nous pourrons alors nous intéresser exclusivement au chargement des données réelles : une phase 
qui peut se révéler très longue. 

C’est justement parce que le chargement des données réelles est souvent long et fastidieux, qu’il faut : 

● S’assurer que le modèle final est validé et stable. 

● Générer  et  travailler  avec  des  données  de  test,  pour  permettre  aux  utilisateurs  clés  de  visualiser  le 
comportement de leur cube, et ce jusqu’à validation. 

Revenons à notre étude de cas. Pour générer nos données de test, nous procéderons ainsi : 

● Nous allons tout d’abord saisir des données manuellement dans toutes les dimensions. 

● Nous utiliserons Excel pour générer le jeu de données des faits. 

● Nous intègrerons les données Excel précédemment créées dans la table de faits SQL Server. Cette intégration 
se fera à l’aide de l’outil en ligne de commande BCP. 

Ce processus, une fois acquis, est assez simple et rapidement reproductible à chaque modification du modèle. 
Pour rappel, précédemment, nous avons saisi le contenu des tables suivantes : 

● DimProduit : 10 lignes. 

● DimSite : 5 lignes. 

● DimClient : 10 lignes. 

Maintenant, nous allons nous atteler à générer les données de la table de faits FactFacture. 
Pour cela, nous allons : 

● Saisir une ligne de la table FactFacture. 

● Exporter sous Excel le contenu et la structure de la table par l’outil BCP. 

● Générer les données avec Excel. 

● Importer le contenu du fichier Excel dans la table FactFacture avec l’outil BCP. 

■ Commençons donc par saisir au moins une ligne dans la table de faits FactFacture : 

© ENI Editions - All rigths reserved - educ algeria - 1-


 

■ Ouvrez l’Invite de commande : 

■ Positionnez­vous à la racine de votre disque C. Pour cela, tapez dans l’invite de commande l’instruction suivante : 

cd\

■ Tapez la ligne de commande suivante, puis appuyez sur la touche [Entrée] : 

bcp DistrisysDW.dbo.FactFacture out "FactFacture.csv" -T -c -t";"


-S"Serveur\Instance"
 
L’option ­S encadre le nom de votre serveur et instance SQL Server.

- 2- © ENI Editions - All rigths reserved - educ algeria


 

L’exportation s’est déroulée avec succès. 

■ Explorez le disque C : 

Le fichier FactFacture.csv a été généré. 

■ Ouvrez ce fichier avec Excel : 

© ENI Editions - All rigths reserved - educ algeria - 3-


 

Vous pouvez constater que l’on retrouve la ligne préalablement insérée manuellement dans la table FactFacture. 
Nous  allons  maintenant  utiliser  les  fonctions  tirer  et  aléatoire  de  Excel  afin  de  créer  un  jeu  de  test,  que  nous 
réintégrerons dans la table FactFacture. 

● Après modification manuelle de la colonne A de mon fichier Excel j’obtiens ceci : 

● La  colonne  A  représentant  la  table  de  dimension  Temps,  nous  saisissons  les  mois  que  nous  souhaitons  voir 
apparaitre dans notre cube. 

Dans cet exemple, je saisis 24 mois, du 1er janvier 2009 à décembre 2010. Les mois étant tous représentés par le 1er jour 

- 4- © ENI Editions - All rigths reserved - educ algeria


du mois. Dans mon exemple, je considère que détailler les ventes par jour n’a que peu d’intérêt. Ça ne sera pas toujours le 
cas. Dans certains cas, par exemple, afin de démontrer que vous savez calculer une moyenne des 30 derniers jours, il vous 
faudra forcément générer des données détaillées au jour. 

● La colonne B représente le site de la ligne de fait. La dimension Site dispose de 5 membres avec un identifiant 
allant de 1 à 5. Nous utilisons alors une fonction d’Excel générant une valeur aléatoire entre 1 et 5 : 

=ALEA.ENTRE.BORNES(1;5)

● La  colonne  C  représente  le  produit  de  la  ligne  de  fait.  La  dimension Produit  dispose  de  10  membres  avec  un 
identifiant  allant  de  1  à  10.  Nous  utilisons  alors  la  même  astuce  que  précédemment  mais  avec  une  valeur 
aléatoire entre 1 et 10 : 

● La  colonne  D  représente  le  client  de  la  ligne  de  fait.  La  dimension  Client  dispose  de  10  membres  avec  un 
identifiant de 1 à 10. 

■ Nous générerons donc un nombre aléatoire entre 1 et 10 : 

© ENI Editions - All rigths reserved - educ algeria - 5-


 

● Les  colonnes  E  à  L  représentent  les  mesures.  Nous  pouvons  utiliser  la  même  fonction  aléatoire  et  bien 
évidemment, toutes les fonctions dont dispose Excel, afin de générer des valeurs les plus cohérentes possibles 
pour le cas à traiter. 

■ Nous  commençons  donc  par  générer  la  quantité  de  produits  vendus :  un  nombre  aléatoire  entre  1  et  100  (valeurs 
totalement arbitraires) : 

■ Puis nous définissons la valeur prix de vente de la ligne de fait : on considère ici que nos produits sont vendus en prix 
catalogue entre 1 et 150 euros. Nous multiplions cette valeur par la quantité de produit vendus. 

■ Ensuite, nous définissons la remise de la ligne de fait : on considère ici que la remise se situe entre 2 % et 30 %. 

Pour éviter toute erreur lors de l’utilisation  avec  le  BCP,  on  arrondit  la  valeur  afin  qu’il n’y ait pas de valeurs après la 
virgule. 

- 6- © ENI Editions - All rigths reserved - educ algeria


 

■ La colonne G est le CA, il est donc égal au prix de vente auquel on retranche la remise : 

Et nous procédons ainsi de suite pour l’ensemble des autres mesures. Ce travail est plus ou moins détaillé. L’objectif 
étant surtout que les chiffres affichés n’entravent pas la compréhension de votre modèle 

Par exemple, une marge supérieure au CA, serait incomprise par les utilisateurs qui rejetteraient alors aussitôt le modèle que 
vous leur proposerez. 

■ Une  fois  les  règles  de  calcul  aléatoires  fixées  pour  chaque  colonne,  il  vous  suffit  alors  de  tirer  ces  formules  sur 
l’ensemble des mois : 

© ENI Editions - All rigths reserved - educ algeria - 7-


 

■ Afin  de  rendre  le  plus  réaliste  possible  notre  document,  vous  devez  obtenir  un  nombre  de  lignes  suffisamment 
important. Démultipliez alors ces 24 lignes par copier­coller jusqu’à obtenir le nombre de lignes souhaitées. 

■ Pour  finir,  enregistrez  le  document  sous  format  Excel  afin  de  conserver  vos  formules.  Puis,  enregistrez  ce  fichier 
également  au  format  CSV  (séparateur  point­virgule)  à  son  emplacement  originel  (remplacez  le  fichier  précédent). 
Enfin, fermez Excel. 

Le fichier Excel de démonstration et le fichier CSV en résultant sont téléchargeables sur le site des Éditions ENI. 

■ À  l’Invite  de  commande,  tapez  la  commande  qui  permet  d’intégrer  les  données  du  fichier  CSV  dans  la  table 
FactFacture : 

bcp DistrisysDW.dbo.FactFacture in "FactFacture.csv" -T -c -t";"


-S"Serveur\Instance"

La commande s’est exécutée avec succès. Nous venons de réintégrer 1908 lignes à notre table de faits FactFacture : 

- 8- © ENI Editions - All rigths reserved - educ algeria


 

La  réexécution  de  la  commande  BCP  n’écrase  pas  le  contenu  de  la  table,  mais  ajoute  d’autres  lignes  aux  lignes  déjà 
existantes. Cela vous permet ainsi de créer des jeux de tests de plusieurs millions de lignes, si nécessaire. 
Suite à ce chapitre vous devrez donc être en mesure de créer vos propres jeux de test parfaitement personnalisés à 
votre problématique et vous permettant ainsi de vous assurer la validité de votre modélisation. 
Dans le prochain chapitre nous allons apprendre à construire un cube. Le cube va nous permettre d’explorer facilement 
les données que nous venons de charger. 

© ENI Editions - All rigths reserved - educ algeria - 9-


Créer et utiliser simplement un cube brut 
Dans les chapitres précédents, nous avons construit l’entrepôt de données sous SQL Server, puis nous avons chargé 
un jeu de test cohérent. 

À  présent,  nous  allons  nous  atteler  à  rendre  l’information  contenue  dans  l’entrepôt  de  données  de  manière  simple, 
présentable et rapide. 
Simple  et  présentable  :  cela  signifie  que  l’utilisateur  qui  accède  à  l’information  ne  doit  pas  voir  la  complexité  du 
traitement  de  l’information. Le fait que l’information provienne de multiples sources doit être totalement transparent. 
Le  fait  que  la  restitution  de  l’information  suggère  de  nombreuses  règles  de  gestion  métier  doit  lui  aussi  être 
transparent. Un modèle réussi est un modèle que l’on peut donner à l’utilisateur sans avoir crainte qu’il ne se trompe, 
qu’il interprète mal les résultats ou qu’il se perde dans l’étendue de l’information. 

Rapide  signifie  qu’un  utilisateur,  qui  accède  à  des  informations  mises  à  disposition,  doit  avoir  un  temps  d’attente de 
l’ordre de la seconde. Attendre 10 secondes peut déjà être considéré comme long. 

La base de données Analysis Services et sa technologie multidimensionnelle peut nous aider à répondre à ces 
trois critères. Néanmoins la solution n’est pas magique. Ce n’est  pas  le  fait  d’employer la technologie qui va 
faire que l’information va être simple, rapide et présentable. L’outil va simplement nous donner les moyens de nos 
ambitions. 

La  modélisation  que  nous  venons  de  mettre  en  œ uvre  dans  les  chapitres  précédents  en  est  l’illustration.  La  bonne 
modélisation est la clé de l’utilisation optimale d’Analysis Services. 
Nous allons voir dans ce chapitre, qu’un entrepôt de données bien modélisé, c’est 80 % du travail accompli. Les 20 % 
restants relèvent de la finition. 

SQL  Services  Analysis  Services  (SSAS)  est  le  service  de  bases  de  données  multidimensionnelles.  Attention, 
Analysis  Services  n’est  pas  un  outil  de  restitution  de  données  mais  une  base  de  données  orientée  vers 
l’utilisateur. 

Dans les chapitres qui vont suivre, quand nous évoquerons SSAS, la base OLAP, la base multidimensionnelle, le cube 
ou le modèle, nous sous­entendrons toujours la base de données Analysis Services. 

La construction du cube Analysis Services se réalise avec l’outil SQL Server Business Intelligence Developpement Studio 
(ou BIDS) alors que la gestion et l’administration des modèles se réalisent avec l’outil SQL Server Management Studio 
(ou SSMS) 
Pour  commencer,  nous  allons  créer  un  nouveau  projet  Analysis  Services  sous  SQL  Server  Business  Intelligence 
Developpement Studio. 

■ Ouvrez BIDS. 

■ Créez un nouveau projet Analysis Services : 

© ENI Editions - All rigths reserved - educ algeria - 1-


 

Un projet Analysis Services se présente ainsi : 

Lorsque l’entrepôt de données est créé et bien modélisé, créer un cube d’entreprise est assez simple. Cela se fait en 
trois étapes : 

1. Création de la source de données 

2. Création de la vue de source de données (DSV) 

3. Création du cube 

Dans des conceptions avec BIDS nous réaliserons surtout des cubes d’entreprise et dans ce cas précis nous 
retrouverons  surtout  un  seul  et  grand  cube.  Les  cubes  d’entreprise  sont  des  modèles  reposant  sur  un 
entrepôt de données modélisé avec une approche définie par Ralph Kimball. Les cubes financiers ou de pilotage sont 
des cas particuliers nécéssitant une approche et des outils de conception différents et complémentaires à l’approche 
évoquée par ce livre. 

Dans un environnement sain, les choses sont simples : 

● Il n’y a qu’une seule source de données, il s’agit de l’entrepôt de données. 

● Il n’y  a  qu’une seule vue de source de données et celle­ci est, autant que possible, le reflet de l’entrepôt de 
données. 

Nous  rappelons  que  le  modèle  de  l’entrepôt  de  données  doit  être  pensé,  réfléchi  et  doit  avoir  une  modélisation 
conforme. Toutes les transformations et manipulations de données devront être réalisées en amont lors de la phase 
d’ETL. La vue de sources de données ne doit pas être basée sur des vues ou basée sur des requêtes SQL, même si 
l’outil  en  donne  la  possibilité.  Toutes  vues  ou  requêtes  SQL,  présentes  dans  un  DSV,  sont  des  symptômes  d’une 
modélisation non conforme. Le DSV a une utilité dans des cas très précis qui relèvent de l’exception. Un de ces usages 
très particulier est illustré dans le chapitre La modélisation dimensionnelle ­ Facturation et commande client. 

- 2- © ENI Editions - All rigths reserved - educ algeria


■ Créez la source de données : 

■ Sélectionnez l’entrepôt de données DistrisysDW, créé précédemment, puis cliquez sur Suivant : 

■ À la fenêtre de l’Assistant Sources de données, sélectionnez Utiliser le compte de service : 

La source de données est créée : 

© ENI Editions - All rigths reserved - educ algeria - 3-


Maintenant créons la vue de sources de données : 

■ Sélectionnez la source de données précédemment créée : 

■ Sélectionnez toutes les tables préfixées Dim et Fact : 

- 4- © ENI Editions - All rigths reserved - educ algeria


 

■ En fin d’assistant, cliquez sur Terminer. 

La vue de sources de données est créée : 

Les tables et leurs relations sont conservées : 

© ENI Editions - All rigths reserved - educ algeria - 5-


 

Le  diagramme  présenté  est  assez  simple  car  nous  n’avons  qu’une  seule  table  de  faits  et  donc  qu’une  étoile.  Pour 
prendre de bonnes habitudes, nous allons alors créer un nouveau diagramme Facture Etoile. 

■ Effectuez un clic droit sur le diagramme par défaut pour créer un Nouveau diagramme : 

- 6- © ENI Editions - All rigths reserved - educ algeria


 

■ Renommez le nouveau diagramme Facture Etoile. 

■ Glissez la table de fait FactFacture dans l’espace de travail au centre, puis avec un clic droit sur la table, sélectionnez 
Afficher les tables associées : 

■ Pour compléter l’étoile, glissez DimGeographie dans l’espace de travail et recréez l’étoile en vous assurant bien des 
liaisons entre les tables : 

© ENI Editions - All rigths reserved - educ algeria - 7-


 

Pour  rappel,  les  diagrammes  n’ont  pas  d’autre  utilité,  que  de  vous  permettre  de  bien  vous  assurer  de  la 
conformité de la modélisation. 

■ Enregistrez le projet. 

■ Créez le cube : 

■ Un  assistant  de  création  de  cube  s’ouvre.  Dans  la  fenêtre  Sélectionner  la  méthode  de  création,  sélectionnez 
l’option Utiliser des tables existantes, puis cliquez sur le bouton Suivant. 

- 8- © ENI Editions - All rigths reserved - educ algeria


 

■ Cliquez sur Suggérer. 

L’assistant doit pouvoir trouver tout seul les tables de faits. Dans le cas contraire, je ne saurais que vous conseiller de 
reprendre votre étoile et de vous assurer la cohérence du modèle : 

Dans l’écran suivant, l’assistant sélectionne, de lui­même, uniquement les mesures : 

© ENI Editions - All rigths reserved - educ algeria - 9-


 

■ Renommez le groupe de mesure Fact Facture en Facture et désélectionnez le compteur Fact Facture Nombre. En effet, 
compter le nombre de lignes de la facture n’est pas une mesure pertinente dans notre cas. 

Les dimensions sont automatiquement détectées : 

- 10 - © ENI Editions - All rigths reserved - educ algeria


 

Veuillez  noter  que  la  table  de  dimension  Geographie  n’est  pas  une  dimension  en  tant  que  telle.  Les 
informations de la tables seront disponibles au travers de la dimension Client et Site. 

■ Renommez les dimensions pour les rendre plus compréhensibles à un non­informaticien : 

© ENI Editions - All rigths reserved - educ algeria - 11 -


■ Renommez le cube si nécessaire : 

■ En cliquant sur Terminer, l’assistant va donc créer un cube Distrisys, comportant : 

● Un groupe de mesures : Facture disposant des mesures CA, Prix Catalogue, remise, marge... 

● Quatre dimensions : Temps, Site, Client et Produit 

L’assistant est terminé, le cube est créé : 

- 12 - © ENI Editions - All rigths reserved - educ algeria


 

Dans  cette  interface  concepteur,  le  contenu  central,  émanant  de  la  vue  de  source  de  données,  n’a  que  très  peu 
d’intérêt. 

Dans cette première interface, nous avons accès aux mesures regroupées par groupe de mesures (table de faits) : 

Ainsi qu’à la gestion des dimensions : 

Avant de déployer le cube, nous allons nous assurer de le déployer sur le bon serveur Analysis Services. 

■ Dans la fenêtre Explorateur de solutions, faites un clic droit sur DistrisysOLAP puis cliquez sur Propriétés. 

■ Dans l’onglet Déploiement, au niveau du champ Serveur, entrez le nom et l’instance du serveur Analysis Services. 
Puis validez en cliquant sur OK. 

© ENI Editions - All rigths reserved - educ algeria - 13 -


 
 

■ Visualisons sans plus tarder notre cube. Pour cela traitez le cube en cliquant sur l’icône  .

■ Au premier déploiement du cube ou à chaque modification de structure, le message ci­dessous apparaîtra, choisissez 
Oui : 

Concrètement, le déploiement crée la structure de données. 

■ Après le déploiement du cube, la fenêtre de traitement apparaît, cliquez sur Exécuter : 

- 14 - © ENI Editions - All rigths reserved - educ algeria


 

Concrètement,  traiter  le  cube  revient  à  alimenter  et  à  calculer  les  agrégats  dans  la  structure  déployée  à 
l’étape précédente. Plus vous aurez de données, plus le temps de traitement va s’allonger. Ce n’est pas une 
tâche anodine, son optimisation relève du travail de l’administrateur Analysis Services. Étant donné que dans notre 
cas, nous travaillons sur des données de test, le problème ne se pose pas et le traitement devrait se réaliser dans 
des délais assez courts. 

© ENI Editions - All rigths reserved - educ algeria - 15 -


 

Le traitement s’est terminé avec succès nous allons donc pouvoir manipuler le contenu du cube. 

■ Fermez toutes les fenêtres de traitement du cube. 

■ Cliquez sur l’onglet Navigateur du projet Analysis Services : 

Le projet Analysis Services embarque un explorateur de cube afin de visualiser les modifications que vous effectuez. 
L’explorateur  de  cube  le  plus  couramment  employé  est  le  tableau  croisé  dynamique.  C’est  l’interface  qui  vous  est 
proposée ici. 

■ Glissez une mesure du cube dans l’espace central : 

- 16 - © ENI Editions - All rigths reserved - educ algeria


 

Les  mesures  se  glissent  uniquement  dans  l’espace  central  d’un  tableau  croisé  dynamique.  En  effet,  les  mesures 
correspondent  aux  chiffres  analysés.  Elles  se  retrouveront  donc  toujours  au  centre  du  tableau  croisé  dynamique, 
contrairement aux attributs de dimension qui se retrouvent toujours soit en ligne, soit en colonne ou soit en filtre. 

■ Puis glissez une dimension ou un de ses attributs en ligne, en colonne ou en filtre du tableau croisé dynamique : 

Votre cube est bien créé et vous avez la possibilité de l’explorer. Néanmoins, les dimensions ne sont accessibles que 
par leurs clés primaires. 

Le même navigateur est disponible avec l’outil SQL Server Management Studio : 

■ Ouvrez SSMS et connectez­vous à un serveur Analysis Services : 

■ Ouvrez  la  base  de  données,  puis  le  cube.  À  l’aide d’un clic droit sur  Parcourir, vous avez accès à l’explorateur de 

© ENI Editions - All rigths reserved - educ algeria - 17 -


cube : 

Vous pouvez là encore accéder aux informations contenues dans votre cube : 

Maintenant que vous savez créer un cube, au cours de la prochaine étape, nous allons apprendre à le peaufiner. Nous 
allons  notamment  travailler  la  présentation  des  dimensions  et  apprendre  à  créer  des  mesures  complémentaires  à 
celles présentes dans les tables de faits. 

- 18 - © ENI Editions - All rigths reserved - educ algeria


Peaufiner le cube 

1. Dimensions : hiérarchies et attributs 

Nous avons créé dans la section précédente un cube basé sur l’entrepôt  de  données DistrisysDW. La création et la 


génération  du  cube  a  été  rapide.  Mais  il  est  apparu  clairement  que  quelques  finitions  étaient  nécessaires  pour  le 
rendre accessible aux utilisateurs. Une des finitions les plus évidentes est la nécessité de retravailler les dimensions. 

Dans notre travail de finition, pour chaque dimension, nous allons devoir identifier les atttributs à afficher et quand 
c’est possible chercher à les organiser en hiérarchie. 

Voyons  un  peu  comment  procéder.  Dans  le  premier  onglet  cube  du  projet  Analysis  Services,  identifiez  la  zone  de 
gestion des dimensions, en bas à gauche. Dépliez la dimension Temps et cliquez sur Modifier Temps : 

Un  nouvel  onglet  spécifique  à  la  gestion  de  la  dimension  Temps  s’ouvre.  Vous  pouvez  revenir  si  nécessaire  à  la 
gestion générale du cube en cliquant sur l’onglet Distrisys.cube [design] : 

La zone Attributs la plus à gauche, vous permet de visualiser la liste des attributs de la dimension Temps. 
 
Vous noterez que le seul attribut disponible est, par défaut, la clé technique.

© ENI Editions - All rigths reserved - educ algeria - 1-


 

La zone Hiérarchie centrale vous permettra de construire les hiérarchies. 
La  zone  Vue  de  sources  de  données,  la  plus  à  droite,  vous  permet  de  visualiser  les  tables  concernées  par  la 
dimension. 

Pour  commencer,  nous  allons  modifier  l’attribut  de  clé  Temps  PK,  afin  que  ce  soit  un  attribut  qui  affiche  le  jour  de 
l’année à l’utilisateur, plutôt qu’une clé technique. 

■ Affichez les Propriétés de Temps PK : 

La barre de propriétés de l’attribut Temps PK s’affiche : 

- 2- © ENI Editions - All rigths reserved - educ algeria


 
 
■ Sélectionnez la propriété NameColumn et cliquez sur 

■ Sélectionnez le champ Jour de la table DimTemps : 

Vous devriez avoir : 

© ENI Editions - All rigths reserved - educ algeria - 3-


 

■ Renommez l’attribut Temps_PK en Jour : 

Nous  venons  de  créer  l’attribut  Jour.  Cet  attribut  est  l’attribut  de  clé  car  il  s’agit  de  l’attribut  le  plus  fin  de  la 
dimension.  Cet  attribut  a  pour  clé  Temps_PK,  mais  l’affichage  présentera  à  l’utilisateur  la  valeur  correspondant  au 
champ Jour. 
 

■ Observons le résultat. Traitez la dimension en cliquant sur l’icône  .

■ Puis cliquez sur l’onglet Navigateur : 

Vous pouvez constater que le nom des membres affichés de l’attribut Jour est une date comprise par l’utilisateur. De 
plus, vous pouvez noter que ces membres sont triés dans le bon ordre, celui de la clé Temps_PK. 
Nous procéderons ainsi pour créer les attributs d’une dimension. Quand cela est possible, le champ technique servira 
de clé du membre et le champ, compréhensible par l’utilisateur, servira de nom du membre. 
Créons ainsi un nouvel attribut Année : 

■ Glissez à partir de la vue de sources de données le champ AnneeCode dans la zone Attribut : 

■ Renommez AnneeCode en Année. 

■ Dans les propriétés de l’attribut Année, sélectionnez comme nom de membre le champ AnneeNom : 

- 4- © ENI Editions - All rigths reserved - educ algeria


 

■ Dans les propriétés de l’attribut Année, spécifiez bien le tri par la clé à l’aide de la propriété OrderBy : 

■ Après traitement de la dimension, allez sur l’onglet Navigateur, cliquez sur Reconnectez­vous : 

■ En sélectionnant l’attribut Année, vous devriez obtenir ceci : 

■ Faites de même pour les attributs suivants : 

● Mois 

● Trimestre 

© ENI Editions - All rigths reserved - educ algeria - 5-


● Semestre 

● Semaine 

La procédure à suivre est la suivante : 

■ Vous glissez d’abord le champ _code dans la zone attribut et vous modifiez le nom de l’attribut. 

■ Puis vous changez la propriété de nom de membre de l’attribut en sélectionnant le champ présentable _nom. 

■ Enfin, vous vous assurez que le tri des membres s’effectue bien par la clé. 

Vous devriez avoir les attributs suivants : 

Après traitement de la dimension, vous devriez avoir le résultat suivant pour la liste des membres Semaine : 

■ Vérifiez bien que les membres de chacun de vos attributs s’affichent correctement. 

Vous venez de créer les attributs de la dimension Temps. 
Nous allons maintenant créer les hiérarchies de la dimension Temps. 
Il y a plusieurs façons d’accéder aux attributs de la dimension Temps, par exemple : 

● Année ­ Semestre ­ Trimestre ­ Mois ­ Jour 

● Année ­ Mois ­ Jour 

● Année ­ Semaine ­ Jour 

● Année ­ Trimestre ­ Mois ­ Jour 

- 6- © ENI Editions - All rigths reserved - educ algeria


● Année ­ Semestre ­ Mois ­ Jour 

● Année ­ Mois 

● Année ­ Semaine 

● Etc. 

La  manière  dont  vous  allez  proposer  l’accès  aux  attributs,  est  une  hiérarchie.  L’idée  n’est  pas  de  créer  toutes  les 
hiérarchies possibles, mais seulement les hiérarchies pertinentes dans votre organisation. 
Pour créer la hiérarchie Année ­ Mois ­ Jour, procédez de la manière suivante : 

■ Glissez l’attribut Année dans la zone Hiérarchies : 

■ Glissez ensuite les attributs Mois et Jour sous l’attribut Année : 

■ Renommez la hiérarchie en Année ­ Mois ­ Jour : 

■ Faites de même en créant les hiérarchies suivantes : 

● Année ­ Semestre ­ Trimestre ­ Mois ­ Jour 

● Année ­ Semaine ­ Jour 

Vous devriez obtenir : 

© ENI Editions - All rigths reserved - educ algeria - 7-


 

Vous allez constater qu’un avertissement entache la création de vos hiérarchies. En fait, SQL Server 2008 inclut des 
outils d’audit permettant d’alerter le concepteur sur des défauts d’optimisation ou de conception. 

■ Pour corriger le problème, cliquez sur l’onglet Relations d’attributs : 

Cette interface va nous permettre de contrôler la manière dont va être réalisée l’agrégation de la dimension 
Temps, et ainsi optimiser la performance du cube durant le traitement et à l’affichage. 

- 8- © ENI Editions - All rigths reserved - educ algeria


■ Créez une Nouvelle relation d’attribut en faisant un clic droit sur l’attribut Semaine : 

■ Spécifiez les paramètres de la relation d’attribut entre Semaine et Annee, comme ci­dessous : 

■ Visualisez la relation d’attribut nouvellement créée. 

© ENI Editions - All rigths reserved - educ algeria - 9-


 

Nous devons créer cette relation, car l’attribut Semaine s’agrège uniquement par l’attribut Année. 

■ Faites de même pour obtenir les relations suivantes : 

L’agrégation  de  l’attribut  Jour  peut  se  faire  soit  par  Semaine,  soit  par  Mois.  L’attribut  Mois  peut  s’agréger  par 
Trimestre, qui lui­même peut s’agréger par Semestre, qui lui­même peut aussi s’agréger par Année. 
Après traitement, vous devriez obtenir dans le Navigateur : 

- 10 - © ENI Editions - All rigths reserved - educ algeria


 

Généralement, une fois un attribut disponible dans une hiérarchie, on masque cet attribut à l’utilisateur, pour rendre 
la dimension plus simple et donc plus présentable. 

■ Pour masquer les attributs, sélectionnez­les et affichez les Propriétés : 

■ Modifiez la propriété AttributeHierarchyVisible à False pour rendre ces attributs invisibles à l’utilisateur : 

Vous venez de terminer le travail de finition sur la dimension Temps. 

© ENI Editions - All rigths reserved - educ algeria - 11 -


■ Traitez de nouveau le cube complet, puis accédez à l’onglet Navigateur du cube. 

■ Au  besoin,  cliquez  sur  le  bouton  Reconnexion pour  reconnecter  le  tableau  croisé  dynamique  au  cube 
nouvellement traité. 

■ Réalisez le tableau dynamique ci­dessous : 

Les  hiérarchies  de  la  dimension  Temps  sont  maintenant  accessibles.  Au  niveau  du  tableau  croisé  dynamique,  vous 
accédez aux données de vos mesures, en naviguant suivant les hiérarchies que vous venez de prédéfinir. 

■ Vous pouvez maintenant modifier la dimension Produit pour obtenir au final l’interface suivante : 

La clé Produit_PK a été renommée Produit. Le nom de membre à l’affichage correspond au champ Produit : 

■ Définissez  la  propriété  de  tri  (OrderBy)  des  attributs  par  Name  (nom  de  membre),  permettant  ainsi  d’avoir  un 
classement des membres par ordre alphabétique : 

- 12 - © ENI Editions - All rigths reserved - educ algeria


 

■ Définissez les relations d’attributs de la manière suivante : 

Vous devriez alors pouvoir naviguer dans la Hiérarchie Famille ­ SousFamille ­ Produit : 

■ Rendez invisibles les attributs Famille, SousFamille et Produit. 

■ Faites de même avec la dimension Site. 

Au final, l’interface devra ressembler à la copie d’écran ci­dessous : 

© ENI Editions - All rigths reserved - educ algeria - 13 -


 

Attribut Site : 

■ Supprimez  l’attribut  Geographie_PK  (visible  par  défaut  dans  la  colonne  des  attributs).  Puis,  glissez  ce  même 
attribut  de  la  vue  de  source  de  données  dans  la  colonne  attribut.  Enfin,  renommez  l’attribut  Geographie_PK  en 
Attribut Ville. 

Le nom de membre à l’affichage correspond au champ Ville. 

■ Masquez tous les attributs et définissez les relations d’attribut comme ci­dessous : 

- 14 - © ENI Editions - All rigths reserved - educ algeria


La hiérarchie Pays ­ Site devrait apparaître ainsi : 

■ Pour  finir,  faites  de  même  pour  la  dimension  Client.  L’interface  finale  devrait  ressembler  à  la  copie  écran  ci­
dessous : 

Les  attributs  Segmentation  Client  et  Type  Client  ne  disposant  pas  de  _code,  c’est  le  champ  unique  qui 
définit alors la clé du membre. Lorsque le nom du membre n’est pas spécifié, le nom du membre correspond à 
sa clé. 

■ Définissez les relations d’attributs comme ci­dessous : 

© ENI Editions - All rigths reserved - educ algeria - 15 -


 

■ Lorsque les finitions sur les dimensions sont terminées, traitez le cube et regardez le résultat dans le navigateur : 

Vous disposez maintenant d’un modèle propre et parfaitement manipulable par les utilisateurs. Vous pouvez explorer 
vos données suivant tous les axes et vous disposez de la capacité de croiser ces axes entre eux. 

2. Mise en forme des mesures 

Dans la section précédente nous avons réalisé des finitions au niveau des dimensions. Nous allons nous consacrer 
dans cette section à apporter quelques finitions au niveau des mesures. 

Découvrons plus en détail la zone de gestion des mesures. 

- 16 - © ENI Editions - All rigths reserved - educ algeria


 

■ Sélectionnez la mesure CA et affichez ses propriétés. Pour chacune des mesures nous disposons de la possibilité 
de contrôler son format d’affichage par le biais de la propriété FormatString. 

Dans la majorité des cas, nous aurons à utiliser les formats standards suivants : 

● Currency : pour afficher les mesures de type monétaire (ex : CA, Remise, Marge…) 

● Percent : pour afficher les mesures exprimant un pourcentage (ex : % Marge, % Remise…) 

● Standard : pour afficher les mesures quantitatives (ex : quantité). 

Ces formats standards s’affichent de différentes manières suivant le contexte de langue. Ainsi si vous aviez 
une  version  américaine  de  SQL  Server  installée,  les  valeurs  monétaires  s’afficheraient  alors  en  $,  alors 
qu’une version française afficherait les valeurs en €. Si vous avez une version US de SQL Server installée, mais que 
vous  souhaitez  bénéficiez  d’un  contexte  de  langue  français,  l’astuce  consiste  à  utiliser  la  commande  suivante 
placée sous l’onglet calcul de votre projet SSAS : Language(This) = 1036;. 

© ENI Editions - All rigths reserved - educ algeria - 17 -


Si ces mises en forme par défaut ne vous conviennent toujours pas, il vous est toujours possible de recourir à des 
mises en forme personnalisées. Vous trouverez ci­dessous des exemples récurrents : 

Format personnalisé  Exemple de valeur  Remarque 

Quantité  ### ### ##0;­###  1 234 567 


### ##0 

Quantité (avec chiffre  ### ### ##0.00;­###  1 234 567,00  Identique à Standard 


après la virgule)  ### ##0.00  dans un contexte français 

Monétaire  ### ### ##0.00 €;­ 1 234 567,00 €  Identique à Currency 


### ### ##0.00 €  dans un contexte français 

Durée en jours  ### ### ##0 " j";­###  1 234 567 j 


### ##0 "j" 

Je  vous  engage  donc,  dès  à  présent,  à  effectuer  les  modifications  de  la  propriété  FormatString  pour  chacune  des 
mesures du cube. 

3. Organisation des mesures 

Dans  le  cube  actuel,  nous  disposons  d’un  nombre  limité  de  mesures.  Mais  lorsque  vous  mettrez  en  œ uvre  votre 
solution,  vous  éprouverez  surement  le  besoin  d’organiser  la  présentation  de  vos  mesures.  En  effet,  pour  un 
utilisateur final, la qualité de la présentation de l’information est tout aussi importante que la qualité de l’information. 
La propriété DisplayFolder nous offre la possibilité de ranger les mesures dans des sous­répertoires. 

Je vous propose donc de ranger les mesures Cout Direct Matière, Cout Direct Main d’œuvre et Cout Indirect dans 
un sous­répertoire Cout. 

■ Pour cela, définissez Cout comme valeur de la propriété DisplayFolder de chacune de ces mesures. 

- 18 - © ENI Editions - All rigths reserved - educ algeria


 

■ Après traitement du cube, vous devriez obtenir la présentation suivante : 

Ce que nous venons d’apprendre, à propos de la mise en forme et l’organisation des mesures, s’applique aussi aux 
mesures calculées. 

4. Mesures calculées 

Au niveau de notre entrepôt de données et de notre table de faits, nous avons défini des mesures. J’aime alors les 
identifier comme étant les mesures agrégées. 
En effet, ces mesures et leurs valeurs sont définies au niveau de la base de données et agrégées lors du traitement 
du  cube.  Néanmoins  certaines  mesures  relatives,  comme  un  calcul  de  poids  (pourcentage)  ou  de  rang,  ne  peuvent 
être stockées en base de données au sein de la table de faits. Ces mesures devront être déduites (ou calculées) en 
fonction du contexte de présentation. On parle alors de mesures calculées. 
Les  mesures  calculées  vont  nous  permettre  d’effectuer  toutes  sortes  de  calculs  arithmétiques  entre  mesures 
(addition,  soustraction,  division,  multiplication…)  ou  d’utiliser  des  fonctions  proposées  en  standard  par  Analysis 
Services. On parle alors de fonction MDX. Nous reviendrons plus en détails sur ces mesures calculées et plus évoluées 
au  chapitre  La  modélisation  dimensionnelle  ­  Facturation  et  commande  client.  Nous  ferons  alors  une  introduction 
pratique au langage MDX. 
Pour l’heure, nous avons besoin dans le cadre de Distrisys, de créer les mesures calculées suivantes : 

Mesures calculées  Règles de calcul 

% Marge  Marge / CA 

% Remise  Remise / Prix Catalogue 

Cout total  Cout Direct Matière + Cout Direct Main d’œ uvre + Cout Indirect 

Prix de vente moyen  CA / Quantité 

© ENI Editions - All rigths reserved - educ algeria - 19 -


■ Afin d’afficher l’interface de gestion des mesures calculées, cliquez sur l’onglet Calculs de l’interface BIDS. 

 
 

■ Pour créer une nouvelle mesure calculée, cliquez sur l’icône  .

■ Modifiez le nom de la mesure calculée en [% Marge]. Conservez bien les crochets [ ]. 

■ Dans  la  zone  Expression,  vous  allez  définir  la  règle  de  calcul  de  cette  mesure  calculée.  Le  [%  Marge]  étant 
CA/Marge, il vous faut faire appel à deux mesures existantes CA et Marge. Pour faire appel à une mesure existante 
(agrégée ou calculée) l’astuce consiste à sélectionner la mesure CA dans la zone de navigation du cube en bas à 
gauche, puis de la glisser dans la zone expression. Faites de même pour la mesure Marge. 

■ Définissez  la  propriété Chaine de format  (FormatString) à Percent pour un affichage en pourcentage et associez 


cette nouvelle mesure calculée au groupe de mesures Facture, afin que le % Marge apparaisse dans ce groupe. 

Vous devriez alors avoir l’interface suivante : 

■ Afin  de  valider  votre  nouvelle  mesure,  vous  avez  juste  besoin  de  déployer  vos  modifications  en  cliquant  sur  le 
 
bouton  . Vous n’avez pas besoin de traiter le cube pour autant.

■ Pour  visualiser  la  nouvelle  mesure  dans  la  zone  de  navigation  du  cube  en  bas  à  gauche,  il  vous  suffit  alors  de 
 
cliquer sur le bouton  . La mesure % Marge devrait alors s’afficher :

- 20 - © ENI Editions - All rigths reserved - educ algeria


 

■ Pour achever la construction de notre cube, créez les trois autres mesures calculées comme indiquées ci­dessous : 

Mesures calculées  Expression 

[% Marge]  [Measures].[Marge]/[Measures].[CA] 

[% Remise]  [Measures].[Remise]/[Measures].[Prix Catalogue] 

[Cout Total]  [Measures].[Cout Direct Main Oeuvre] + [Measures].[Cout Direct Matiere] + 
[Measures].[Cout Indirect] 

[Prix de vente moyen]  [Measures].[CA]/[Measures].[Quantite] 

L’organisation des mesures calculées au sein des groupes de mesures se gère à partir d’une interface disponible en 
cliquant sur le bouton  . 

■ Organisez les mesures comme indiquées sur l’écran ci­dessous : 

Au final, vous devriez avoir : 

© ENI Editions - All rigths reserved - educ algeria - 21 -


 

Une fois dans le navigateur vous devriez être capable d’afficher le tableau croisé dynamique suivant : 

Vous  êtes  ainsi  capable  d’afficher  le  taux  de  Marge,  le  taux  de  remise  ou  le  prix  moyen  de  vente  suivant  les  axes 
produit, client ou site géographique. 

Les formats d’affichage sont clairs et l’accès au cube pour un débutant est facilité par la clarté de l’organisation des 
attributs dans les dimensions et des mesures. 

- 22 - © ENI Editions - All rigths reserved - educ algeria


Le cube et la matrice dimensionnelle 
Nous venons d’achever la construction de notre cube reposant sur un entrepôt de données. 

Pour finir le chapitre et préparer le suivant, nous allons découvrir le concept de matrice dimensionnelle. 

■ Dans le projet du cube, sélectionnez l’onglet Utilisation de la dimension : 

La  matrice  qui  est  proposée  est  le  véritable  cœ ur  du  cube.  Nous  appellerons  cette  représentation :  matrice 
dimensionnelle. 
La matrice dimensionnelle est la manière la plus efficace de modéliser et de représenter un entrepôt de données. Dans 
la matrice, les lignes sont les dimensions et les colonnes les Tables de faits. L’intersection d’une dimension avec la table 
de faits spécifie si les mesures de la table de faits sont analysables par cette dimension. 
La  matrice  dimensionnelle  de  l’entrepôt  de  données  définie  dans  ce  chapitre  peut  être  représentée  de  la  façon 
suivante : 

Dans ce tableau, les croix (x) indiquent que les mesures de la table de Faits Facture sont analysables par les attributs 
des dimensions Temps, Produit, Site et Client. 
Une  autre  représentation  possible  de  la  matrice  dimensionnelle,  plus  complète,  est  de  représenter  les  intersections 
(remplaçant  ainsi  les  croix)  par  le  grain  définissant  l’intersection.  Dans  notre  cas,  la  représentation  complète  de  la 
matrice dimensionnelle est la suivante : 

© ENI Editions - All rigths reserved - educ algeria - 1-


Cela signifie par exemple que : 

● Le croisement entre la table de faits des factures et la dimension Temps se fait au jour. 

● Le croisement entre la table de faits des factures et la dimension produit se fait au détail produit. 

● Etc. 

Le grain n’est pas toujours forcément au niveau le plus élémentaire : 

Un budget peut être défini au mois et par famille de produit. 

De  même,  une  dimension  ne  croise  pas  toujours  toutes  les  tables  de  faits.  Par  exemple,  la  table  de  faits  des  factures 
fournisseurs s’analyse par la dimension Fournisseur, mais ne s’analyse pas par la dimension Client. Dans les faits, seule la 
dimension Temps aura au moins une intersection avec toutes les tables de faits, parfois même plusieurs. 

La  matrice  dimensionnelle  a  de  très  nombreux  intérêts,  l’un  étant  d’être  le  meilleur  outil  pour  déterminer  la 
modélisation physique des tables de l’entrepôt de données. 

Un autre intérêt, peut­être moins conceptuel mais plus pragmatique, est que BIDS est un concepteur de cube, 
intégrant parfaitement la théorie de la matrice dimensionnelle : plus vous vous y conformerez, plus l’utilisation 
de l’interface et des assistants vous rendront la tâche facile. 

Je ne saurais que trop insister sur la nécessité de disposer d’une modélisation dimensionnelle conforme. Ainsi, afin de 
vous  aider  à  bien  modéliser,  nous  allons  utiliser  dans  le  prochain  chapitre  l’outil  n°1  du  concepteur  décisionnel :  la 
matrice dimensionnelle. 
Le cube et la base DistrisysDW finaux de cette fin de chapitre sont téléchargeables sous le chapitre Réaliser son premier 
système décisionnel. 

- 2- © ENI Editions - All rigths reserved - educ algeria


La matrice dimensionnelle de Distrisys 
Au  chapitre  Réaliser  son  premier  système  décisionnel,  vous  avez  découvert  les  rudiments  pour  commencer  à  créer 
l’entrepôt  de  données  de  Distrisys.  Ce  dernier  chapitre  est  un  préalable  nécessaire  au  chapitre  que  nous  allons  à 
présent aborder, notamment si vous n’êtes pas un utilisateur aguerri d’Analysis Services ou un concepteur décisionnel 
averti. 
Lors  de  ce  chapitre,  nous  verrons  la  mise  en  place  de  l’entrepôt  de  données  Distrisys  par  rapport  aux  domaines 
fonctionnels : vente, stock et achat. 
Nous porterons notre attention en particulier sur ces trois domaines car il s’agit de domaines fonctionnels classiques et 
assez  standards  pour  la  plupart  des  entreprises.  Nous  profiterons  de  ces  domaines  fonctionnels  pour  aborder  des 
concepts décisionnels et des fonctions avancées d’Analysis Services. 

Même  si  le  périmètre  fonctionnel  proposé  dans  cette  étude  de  cas  est  assez  éloigné  d’un  organisme  public, 
d’une banque ou d’une association, les concepts qui seront mis en œ uvre vous permettront tout de même de 
relever le défi de création de votre propre entrepôt de données. 

Pour commencer à modéliser un entrepôt de données, il faut d’abord  s’attacher à établir la matrice dimensionnelle de 
l’organisation. 

La  matrice  dimensionnelle  décrit  les  processus  stratégiques  ou  du  moins  les  plus  importants  de  l’organisation.  Ces 
descriptions de processus apparaissent en colonnes dans la matrice dimensionnelle sous forme de groupes de mesures 
(ou tables de faits). 

Nous verrons au cours du chapitre qu’il existe trois types de tables de faits : 

● Les tables de faits de type transaction : il s’agit de décrire en détail l’étape d’un processus (l’évènement). 

● Les  tables  de  faits  de  type  bilan  :  il  s’agit  de  faire  le  récapitulatif  de  certaines  étapes  du  déroulement  d’un 
processus. 

● Les tables de faits de type photo : il s’agit de faire l’état des lieux d’un processus en un instant T (l’inventaire). 

Prenons l’exemple d’une situation de la vie quotidienne, comme l’acte d’achat d’un article sur Internet. Le client navigue sur 
un site Internet, il détecte le produit qui lui plairait, il commande cet article. Trois jours plus tard, n’ayant toujours pas reçu le 
colis, il contacte le support qui le rassure. Le lendemain, en effet, le client reçoit son colis, il signe un bon de réception. Son 
colis est accompagné de la facture et d’un bon de livraison. 

Voyons maintenant du côté de l’entrepôt de données de l’entreprise comment serait traduite cette situation : 

Tout  d’abord,  chacune  des  pages  vues  du  site  Internet  pourrait  faire  l’objet  d’une  ligne  (de  faits)  dans  la  table  de  faits  de 
Navigation du Site Internet (transaction). 

En  fin  de  session  Internet,  une  ligne  de  faits,  dans  la  table  de  faits  Session  Site  Internet,  pourrait  faire  le  bilan  du  temps 
passé par l’internaute. Elle pourrait également comptabiliser le nombre de pages totales vues, le nombre d’articles consultés 
et pourrait noter si le client potentiel a acheté… Il s’agit alors d’une table de faits de type Bilan. 

La commande de l’article par le client ajouterait une ligne de faits à la table de faits Commande (transaction). 

Au sein de l’entreprise, la commande serait préparée, la facture éditée (transaction), l’article serait sorti du stock (transaction) 
et, au moment du départ vers le livreur, le bon de livraison serait édité (transaction). 

Pendant ce temps, le client appelle le support de l’entreprise : ajout d’une ligne de faits dans la table des appels entrants du 
support (transaction). 

Puis, le livreur fait signer au client un bon de réception électronique, acte qui permet d’ajouter une ligne de faits dans la table 
de faits des réceptions (transaction). 

À la réception du colis, une nouvelle ligne de faits est ajoutée à la table de faits de bilan de commande, permettant de savoir 
comment s’est déroulé le processus de vente : délai écoulé, retard, nombre d’incidents, temps passé avec le support, coûts 
additionnels… (Bilan). 

En  fin  de  mois,  un  inventaire  des  stocks  est  réalisé  tant  en  quantité  qu’en  valeur  (Photo).  Une  photo  des  clients  est 
également faite afin de comptabiliser leur nombre sous différents aspects : segmentation, comportement d’achat, localisation 
géographique… Il s’agit là aussi d’une table de faits de type photo. 

© ENI Editions - All rigths reserved - educ algeria - 1-


Tout  élément  d’un  processus  peut  être  sujet  à  mesure,  et  dans  une  entreprise,  les  processus  peuvent  être  très 
nombreux. 
C’est  pour  cela  que  chez  Distrisys,  nous  avons  entrepris  d’interviewer  les  membres  du  comité  de  direction.  En  effet, 
nous  souhaitons  une  vision  globale  du  projet  mais  également  obtenir  les  grandes  orientations  de  l’entreprise  afin  de 
nous concentrer sur les processus les plus stratégiques. Des documents complémentaires tels que le plan stratégique 
ou la cartographie des processus de l’entreprise sont des documents majeurs pour nous aider lors de cette étape. 

Cette vision globale est très importante car elle permet : 

● De  se  concentrer  sur  les  processus  les  plus  importants  et  donc  d’aider  à  prioriser  la  réalisation  du  projet.  En 
effet, si la modélisation doit être globale, la réalisation de l’entrepôt de données doit se faire étape par étape. 

● D’établir la matrice dimensionnelle et ainsi d’avoir une vision exhaustive des dimensions qui doivent croiser un 
processus. 

Un  processus  n’est  pas  la  propriété  d’une  activité.  L’évaluation  des  stocks  intéresse  autant  le  service  de 
gestion  des  stocks,  que  le  service  financier,  de  vente,  d’achat,  de  production...  même  s’il est presque certain 
que  ces  différents  services  n’analyseront  pas  les  stocks  avec  le  même  angle  de  vue.  Néanmoins,  pour  la  bonne 
marche de l’entreprise, aucun de ces services ne peut avoir une vision prépondérante sur ces voisins. 

Par  exemple,  il  n’est  pas  rare  de  voir  des  responsables  marketing,  production,  achat  ou  de  service  financier  parler  d’un axe 
produit  qui  n’a  de  commun,  au  premier  abord,  que  le  nom…  Une  des  grandes  tâches  du  projet  sera  alors  de  travailler  de 
concert, afin que la remontée d’un même processus puisse permettre à tous les services de faire les analyses spécifiques de 
leur activité, tout en retrouvant et comprenant les analyses de l’activité voisine. 

● D’établir la matrice dimensionnelle et ainsi de mettre en exergue les difficultés à venir au niveau des dimensions. 

Contrairement  à  ce  que  l’on  peut  croire,  la  difficulté  de  réalisation  d’un  bon  entrepôt  de  données  vient  de  la 
volonté  de  vouloir  croiser  un  axe  d’analyse  avec  deux  processus  parfaitement  distincts  et  pris  en  charge  par 
deux services à la vision et à la culture opposée. Il est là, le vrai challenge de l’entrepôt de données. 

Le fait de s’assurer un appui de la direction générale vous aidera assurément à relever ces challenges. 

Certains lecteurs s’étonneront sûrement sur le fait que je n’ai pas abordé l’étude des systèmes sources. Cela 
est normal, car le système source qu’il soit grand ERP, ERP modeste, système propriétaire ou réseau de fichier 
Excel, n’impacte pas la modélisation de votre entrepôt de données. Le seul intérêt de l’étude des systèmes sources, 
à ce stade, serait d’appréhender la disponibilité de l’information. 

Après ce travail de synthèse, dressons la matrice dimensionnelle de Distrisys, disponible ci­dessous : 

Matrice dimensionnelle de Distrisys 

La matrice dimensionnelle ci­dessus couvre les domaines fonctionnels suivants : 

● Activité commerciale : Facture Entête, Facture, Budget Vente, Bilan Commande Client. 

- 2- © ENI Editions - All rigths reserved - educ algeria


● Les stocks : Stock photo et Stock Mouvement. 

● Le  service  achat :  Facture  fournisseur,  Bilan  Commande  Achat,  Commande  Achat  en  transit  et  Retour 
Fournisseur. 

L’intérêt  d’une  telle  démarche  est  d’ores  et  déjà  d’annoncer  que  les  principaux  axes  Temps,  Produit,  Site,  Client  et 
Fournisseur, permettront une analyse commune de processus parfois très éloignés ou difficiles à rapprocher. 
Au cours de ce chapitre nous allons mettre en œ uvre, ensemble et progressivement, cette matrice dimensionnelle afin 
qu’elle devienne un entrepôt de données, puis un cube. 

© ENI Editions - All rigths reserved - educ algeria - 3-


Facturation et commande client 

1. Modélisation et schéma en étoile 

Pour commencer, nous allons nous intéresser aux tables de faits et aux dimensions relevant de l’activité commerciale. 
Ce domaine fonctionnel peut s’illustrer par la matrice dimensionnelle ci­dessous : 

Matrice dimensionnelle du périmètre des ventes 

Quelques explications s’imposent quant aux nouvelles tables de faits : 

● Facture, que l’on aurait pu nommer FactureLigne pour la distinguer de Facture Entête, est la table de faits que 
nous avons mise en œ uvre au chapitre Réaliser son premier système décisionnel. Cette table, qui enregistre 
une ligne de facture par fait, nous a permis de mesurer le CA, la marge, la remise et de détailler les différents 
coûts au niveau produit. 

● Facture Entete est la table de faits identifiant une facture par fait. Étant donné qu’une facture peut comporter 
plusieurs produits, nous sommes dans l’incapacité, avec la seule table de faits FactFacture, de pouvoir compter 
le nombre de factures émises. Utilisée pour elle­même, la mesure Nombre de factures n’est pas une mesure 
très intéressante. En revanche, elle le devient si elle permet la création de mesures calculées, telles que Prix 
moyen facturé ou Nombre d’articles moyen par facture. 

● Budget Vente est la table de faits qui va porter les mesures : CA Budget et Marge Budget. Attention, le budget 
est seulement saisi par mois, par produit et par site. Cette table de faits permet une projection de l’activité à 
moyen et long terme. 

● Bilan  Commande  Client  est  une  table  de  faits  de  bilan.  Dans  notre  cas,  la  table  de  faits  Bilan  Commande 
Client couvre les processus de la demande initiale du client à sa livraison. Les mesures de la table de faits vont 
surtout être temporelles : Délai prévisionnel (entre la date de demande et la date prévisionnelle de livraison) 
et  Délai  réel  (entre  la  date  de  demande  et  la  date  réelle  de  livraison).  Deux  autres  mesures  viendront 
compléter la table de faits pour compter le nombre de commandes en retard et pour évaluer le délai de retard. 

2. Les factures 

Pour  commencer,  nous  allons  ajouter  à  l’entrepôt  de  données  DistrisysDW,  puis  au  cube,  la  table  de  faits 
FactureEntete afin d’illustrer le processus de mise à jour. 
La table de faits FactFactureEntete comprend une seule et unique mesure : Nombre Article facture. La mesure Nombre 
Facture sera déduite au niveau du cube. Nous le verrons plus loin. 

■ Ouvrez  SQL  Server  Management  Studio  (SSMS),  afin  de  créer  la  table  FactFactureEntete  suivant  ces 
caractéristiques : 

© ENI Editions - All rigths reserved - educ algeria - 1-


 

Les  colonnes  DateFacturation_FK,  Site_FK  et  Client_FK  correspondent  aux  liaisons  avec  les  tables  de  dimension 
DimTemps,  DimSite  et  DimClient  aux  grains  spécifiés  par  la  matrice  dimensionnelle.  Son  schéma  en  étoile  est  le 
suivant : 

■ Vous allez donc créer dans SSMS, le schéma Facture Entete Etoile correspondant, en prenant bien soin de créer les 
relations entre la table de faits et ses dimensions. 

Rappelez­vous  :  pour  créer  un  schéma,  glissez  la  table  de  fait  que  vous  venez  de  créer,  ainsi  que  les 
dimensions relatives à cette table. Par exemple, pour le schéma Facture Entete Etoile, les dimensions à glisser 
sont DimTemps, DimClient et DimSite (DimGeographie étant intimement liée aux deux dernières dimensions), car sur 
FactFactureEntete, on peut lire DateFacturation_FK, Site_FK et Client_FK. 

Vous devriez obtenir le schéma ci­dessous : 

- 2- © ENI Editions - All rigths reserved - educ algeria


■ Maintenant, ouvrez dans BIDS le projet Analysis Services, créé au chapitre précédent. Puis double cliquez sur la vue 
de source de données Distrisys DW.dsv. 

■ Une fois dans la vue de sources de données, créez un nouveau schéma Facture Entete Etoile. 

■ Puis cliquez sur le bouton Ajouter/supprimer des objets, afin d’ajouter au schéma la table FactFactureEntete. 

■ Au  final,  après  avoir  glissé  les  tables  de  dimensions DimSite,  DimClient, DimTemps  et DimGeographie,  vous  devriez 
avoir le schéma suivant : 

En cas de difficulté, n’hésitez pas à reprendre le chapitre Réaliser son premier système décisionnel ­ Créer et utiliser 
simplement un cube brut. 

Maintenant, nous allons déclarer cette table de faits comme un nouveau groupe de mesures du cube. 
 

■ Pour cela, dans le projet de cube, cliquez sur le bouton  Nouveau groupe de mesures.

■ Puis sélectionnez la table FactFactureEntete. Un nouveau groupe de mesures devrait se créer. 

■ Pour  finir,  renommez  le  groupe  de  mesures  Fact  Facture  Entete  en  Facture  Entete,  et  la  mesure  Fact  Facture 
Entete Nombre en Nb Facture. 

© ENI Editions - All rigths reserved - educ algeria - 3-


À ce sujet, vous avez pu remarquer que la mesure de comptage du nombre de lignes de faits s’ajoute par défaut à 
toute création de groupe de mesures. 

■ Au final, après traitement du cube et en allant sur l’onglet Navigateur, vous pouvez constater que les mesures de la 
table de faits sont disponibles au niveau du cube. 

Si  vous  souhaitez  y  adjoindre  des  données  de  test,  vous  pouvez  soit  reprendre  le  chapitre  Réaliser  son  premier 
système décisionnel ­ Générer un jeu de test, soit partir du jeu de test téléchargeable sur le site du livre. 

Au  final,  l’intérêt  est  de  pouvoir  analyser  des  mesures  de  deux  tables  de  faits  différentes  au  travers  des  mêmes 
dimensions. 
La modélisation dimensionnelle des factures se fait généralement toujours comme ceci avec la création de deux tables 
de faits. La première table de faits sert à enregistrer les factures (FactFactureEntete), la seconde permet d’enregistrer 
les faits au niveau de la ligne de produit (FactFacture). 

■ Vous pouvez achever votre cube au niveau de la facturation, en créant deux nouvelles mesures calculées : Panier 
Moyen et le Nombre Moyen Article Facture. 

Expression 

[Panier Moyen]  [Measures].[CA]/[Measures].[Nb Facture] 

[Nombre Moyen Article Facture]  [Measures].[Nb Article Facture]/[Measures].[Nb Facture] 

Ainsi, vous pouvez constater avec la mesure calculée Panier Moyen, que les mesures calculées peuvent être issues de 
deux mesures provenant chacune, de deux tables de faits distinctes. 

3. Le bilan de commande client 

Maintenant que vous savez ajouter une table de faits au cube existant, nous allons nous intéresser à la table de faits 
suivante : Bilan Commande Client. 

Jusqu’à présent, nous avons travaillé avec deux tables de faits de type Transaction, c’est­à­dire que chaque nouvelle 
facture  dans  le  système  source  de  Distrisys  ajoute  le  lendemain  une  ou  plusieurs  lignes  dans  les  tables  de  faits 
FactFactureEntete et FactFacture. 
C’est  ce  même  type  de  tables  de  faits  qui  permet  la  modélisation  de  processus  à  la  transaction  comme  un  bon  de 
livraison, un bon de réception, une signature contrat, une opportunité commerciale, une édition de devis… Les tables 
de faits de type Transaction permettent une étude détaillée d’un processus. 
La  table  de  faits  Bilan  Commande  Client  est  une  table  de  faits  de  type  Bilan.  Ce  type  de  tables  de  faits  couvre 
normalement  un  certain  nombre  de  transactions  pour  en  faire  un  bilan,  à  l’achèvement  de  la  dernière  transaction. 
Concrètement,  une  ligne  de  fait  de  notre  table FactBilanCommandeClient  s’ajoutera  à  chaque  fois  qu’une  commande 
sera actée comme livrée à son destinataire. Cette table fera alors un récapitulatif du processus, entre le moment de la 
demande du client et sa réception réelle. Dans notre cas Distrisys, nous avons souhaité nous concentrer uniquement 
sur un bilan en termes de délai. Nous aurions aussi pu faire un bilan financier de la commande, en incluant les frais de 
support  (temps  passé  des  opérateurs  à  traiter  cette  commande…)  et  autres  frais  qui  surviennent  parfois  lors  de 
l’exécution d’une commande. 

- 4- © ENI Editions - All rigths reserved - educ algeria


La table de faits FactBilanCommandeClient comprendra donc les mesures suivantes : 

● Délai  prévu :  différence  entre  la  date  de  demande  du  client  et  la  date  prévisionnelle  de  livraison  de  la 
commande 

● Délai réel : différence entre la date de demande et la date réelle de livraison de la commande 

● Nb Retard : identifiera par un 1, chaque commande dont le délai réel est supérieur au Délai prévu. Sinon 0. 

● Délai retard : Différence entre Délai réel et Délai prévu si la commande est en retard, sinon 0. 

Cette  table  de  faits  nous  permettra  ainsi  de  mesurer  les  engagements  de  délai  que  nous  prenons  vis­à­vis  de  nos 
clients. 

En reprenant la matrice dimensionnelle, nous pouvons en déduire les relations que FactBilanCommandeClient aura avec 
les tables de dimension : 

● DateDemande_FK : permet d’identifier la date de la demande client et fera la liaison avec Temps_PK de la table 
DimTemps. 

● DateLivraisonPrevue_FK :  permet  d’identifier  la  date  de  livraison  annoncée  au  client  et  fera  la  liaison  avec  la 
dimension Temps. 

● DateLivraisonReelle_FK :  permet  d’identifier  la  date  effective  de  livraison  au  client  et  fera  la  liaison  avec  la 
dimension Temps. 

● Site_FK : permet d’identifier le site de facturation et fera la liaison avec la dimension Site. 

● Client_FK : permet d’identifier le client et fera la liaison avec la dimension Client. 

Vous constaterez que FactBilanCommandeClient dispose de trois relations distinctes avec la table DimTemps. C’est une 
caractéristique des tables de faits de type Bilan. On dit alors que la dimension Temps joue plusieurs rôles. Voyons un 
peu comment mettre en œ uvre cette spécificité au niveau de l’entrepôt de données et du cube Analysis Services. 

■ Tout d’abord, commencez par créer avec SSMS, la table FactBilanCommandeClient : 

Pour  rappel  du  chapitre  Réaliser  son  premier  système  décisionnel  ­  Création  des  tables  de  faits  et  de  dimension,  le 
champ  NumCommande  est  un  attribut  de  dimension  dégénérée.  Ce  champ  facultatif  n’entre  pas  en  compte  lors  de 
l’analyse, mais permettra d’identifier la ligne en cas d’audit. Dans notre cas, on y fera figurer le numéro de commande. 
La représentation schématique de l’étoile de cette table de faits est la suivante : 

© ENI Editions - All rigths reserved - educ algeria - 5-


 

Date demande, Date Livraison prévue et Date Livraison réelle ne sont que des rôles de la dimension Temps. Ce ne sont 
pas de nouvelles entités. 

■ Toujours  dans  SSMS,  créez  le  schéma  Bilan  Commande  Client  Etoile  comme  ci­dessous  en  liant  Temps_PK  à 
DateDemande_FK, à DateLivraisonPrevue_FK et à DateLivraisonReelle_FK : 

■ Générez un jeu de test pour cette nouvelle table de faits FactBilanCommandeClient. Vous pouvez utiliser le jeu de 
test en téléchargement sur le site du livre. 

■ Dans le projet Analysis Services de BIDS, créez un nouveau schéma : 

■ Puis ajoutez un nouveau groupe de mesures Bilan Commande Client. 

- 6- © ENI Editions - All rigths reserved - educ algeria


■ Renommez la mesure de comptage Fact Bilan Commande Client Nombre en Nb Commande livree. 

■ Modifiez la propriété Visible à False des mesures Delai Prevu En Jour, Delai Reel En Jour et Délai Retard En Jour. 
En effet, afficher la somme des délais prévus, réels ou de retard n’a que peu d’intérêt pour l’utilisateur. En revanche, 
nous  allons  créer  trois  nouvelles  mesures  calculées  Délai  Prevu  Moyen,  Délai  Reel  Moyen  et  Délai  Retard  Moyen  qui 
seront des mesures bien plus pertinentes : 

Expression 

[Délai Prévu Moyen]  [Measures].[Delai Prevu En Jour]/[Measures].[Nb Commande livree] 

[Délai Réel Moyen]  [Measures].[Delai Reel En Jour]/[Measures].[Nb Commande livree] 

[Délai Retard Moyen]  [Measures].[Delai Retard En Jour]/[Measures].[Nb Commande livree] 

[% Commande en retard]  [Measures].[Nb Commande en Retard]/[Measures].[Nb Commande livree] 

■ Modifiez  les  propriétés  FormatString  des  nouvelles  mesures  si  vous  le  souhaitez.  Pour  rappel,  reportez­vous  au 
chapitre Réaliser son premier système décisionnel ­ Peaufiner le cube. 

■ Puis, après traitement, allez sur le Navigateur : 

Première constatation 

La modélisation a permis à BIDS de générer les rôles de la dimension Temps. BIDS a créé trois nouvelles dimensions 
ayant les mêmes propriétés (membres, attributs et hiérarchies) que la dimension Temps originale. 

Deuxième constatation 

© ENI Editions - All rigths reserved - educ algeria - 7-


 

Lorsqu’on  glisse  la  dimension  Temps  en  ligne  dans  le  tableau  croisé  dynamique,  on  remarque  que  la  mesure  Nb 
Commande livree affiche uniquement la valeur de total : cela signifie que le groupe de mesures Bilan Commande Client 
n’est pas analysable par l’axe Temps. 

■ Jetons un coup d’œ il à l’onglet Utilisation de la dimension : 

On  constate  que  dans  la  matrice  actuelle,  le  groupe  de  mesures Bilan  Commande  Client n’est  pas  analysable  par  la 
dimension Temps. Nous pouvons constater qu’à l’écran, aucune donnée (rectangle grisé) n’apparait à l’intersection du 
groupe de mesures et de la dimension cités ci­dessus. 
Pour avoir une conformité avec la matrice dimensionnelle souhaitée, en début de chapitre, il nous faut déclarer à BIDS 
que  le  groupe  de  mesure  Bilan  Commande  Client  s’analyse  par  la  dimension  Temps  au  travers  de  la  Date  de 
livraison réelle.  C’est­à­dire que lorsque nous afficherons la dimension Temps  avec  une  mesure  de Bilan Commande 
Client, nous analyserons cette mesure suivant l’axe Date Livraison Relle. 

■ Pour  réaliser  cette  manipulation,  cliquez  sur  le  bouton  à  l’intersection de  Temps et  Bilan  Commande  Client. 
Puis saisissez les informations comme ci­dessous : 

- 8- © ENI Editions - All rigths reserved - educ algeria


 

■ Identifiez et validez la relation entre la dimension Temps et la table de faits Bilan Commande Client, par la relation 
régulière entre Temps_PK et DateLivraisonReelle_FK. 

Analysis Services gère plusieurs types de relations, dont les plus communes sont les relations : Normale, Plusieurs à 
plusieurs  et  Référencé.  Ces  relations  sont  définies  par  les  relations  physiques  entre  les  tables.  Le  schéma 
synthétique en étoile vous aide à identifier la relation à mettre en œ uvre. Néanmoins, dans ce livre nous n’aborderons 
que les relations normales. 
Après votre manipulation, vous devriez alors obtenir la matrice dimensionnelle suivante : 

Cette  matrice  dimensionnelle  est  en  conformité  avec  celle  que  nous  souhaitions  mettre  en  œ uvre  en  début  de 
chapitre. 

■ En  allant  sur  l’onglet  Navigateur,  vous  constaterez  que  maintenant  la  dimension  Temps  permet  l’analyse  des 
mesures de Bilan Commande Client : 

© ENI Editions - All rigths reserved - educ algeria - 9-


 

4. Le budget des ventes 

Traitons maintenant la dernière table de faits du périmètre des ventes : Budget Vente. 
À  noter  que  l’entrepôt  de  données  n’est  pas  le  meilleur  endroit  pour  stocker  et  traiter  les  budgets.  En  effet,  les 
budgets, prévisions ou autres objectifs par essence sont assez changeants et fluctuants : ils se révisent, ils ne sont 
pas  toujours  reportés  à  l’identique  d’une  année  sur  l’autre.  Certains  objectifs  sont  parfois  même  créés  lors 
d’apparition d’évènements modifiant le contexte et l’environnement immédiat de l’organisation. Pour être plus réactif 
et  plus  souple,  il  est  nécessaire  d’employer  des  outils  et  une  modélisation  plus  proche  d’une  vision  métier,  rendant 
autonome  les  services  fonctionnels  concernés.  Ces  solutions  logicielles  sont  communément  connues  sous  le  nom 
d’outils  de  planification  et  d’élaboration  budgétaire.  Pour  être  mises  en  œ uvre  efficacement  et  sereinement,  ces 
solutions nécessitent néanmoins de reposer sur un entrepôt de données solidement constitué. 
Toutefois, les organisations qui sont en cours de construction ou de refonte de leur entrepôt de données, ou n’ayant 
pas  amorcé  de  démarche  d’entreprise  de  management  de  la  performance,  n’ont  généralement  pas  la  maturité  pour 
investir sur de telles solutions. 
C’est  parce  que  ce  dernier  cas  est  assez  fréquent,  voire  majoritaire  dans  les  entreprises  de  taille  moyenne,  que  je 
vous propose par réalisme d’intégrer le budget des ventes au sein de l’entrepôt de données. 
À  noter  néanmoins  qu’Analysis  Services  supporte  la  modélisation  dimensionnelle  métier  (ou  modélisation  financière) 
préalable à ce type d’approche. La base multidimensionnelle de Microsoft est aussi le pivot de nombreuses solutions 
de planification budgétaire du marché. Ce pan du décisionnel ne sera pas abordé dans ce livre. Il devra être abordé 
dans  une  phase  ultérieure  de  progression  de  votre  système  décisionnel  que  je  qualifie  de  Management  de  la 
Performance. Pour plus de détail reportez­vous à la conclusion de l’ouvrage. 
Dans  cette  partie,  nous  allons  apprendre  à  traiter  chaque  budget  comme  une  table  de  faits.  Nous  verrons  alors 
comment dans ce contexte, les objectifs s’intègrent et se traitent au sein de l’entrepôt de données et du cube qui y 
est associé. 

Les objectifs des ventes de Distrisys portent uniquement sur le CA et sur la marge, et sont déterminés par mois, par 
produit et par site de vente. 

■ Créez la table FactBudgetVente avec la structure suivante : 

■ Dans SSMS, créez le schéma Budget Vente Etoile, comme vous avez appris à le faire : 

- 10 - © ENI Editions - All rigths reserved - educ algeria


 

Le budget des ventes sera saisi par mois, néanmoins au niveau des données, le grain reste au jour. 
Les  saisies  mensuelles  seront  affectées  au  premier  jour  du  mois  correspondant.  Par  exemple,  cela  signifie  que  les 
lignes budgétaires du mois de mai 2010 seront en réalité affectées au 1er mai 2010. Les niveaux Jour et Semaine ne 
doivent pas être, de ce fait, accessibles à l’utilisateur,  car  le  budget  est  défini  au  mois,  au  niveau  le  plus  bas.  Vous 
verrez  plus  tard,  avec  les  perspectives,  comment  bien  présenter  les  données  à  l’utilisateur,  afin  de  l’empêcher 
d’afficher les données au jour. 

■ Vous allez maintenant, à partir de BIDS, créer le schéma Budget Vente Etoile correspondant. 

■ Toujours dans BIDS, dans le projet de cube, au niveau de l’onglet Structure de cube, ajoutez le nouveau groupe de 
mesures Fact Budget Vente, que vous renommerez Budget Vente. 

■ Supprimez ensuite la mesure qui se crée par défaut : Fact Budget Vente Nombre. 

■ Renommez les mesures CA ­ Fact Budget Vente en CA ­ Budget Vente et Marge ­ Fact Budget Vente en Marge ­ 
Budget Vente. Modifiez leur propriété FormatString. 

■ Créez enfin les mesures calculées suivantes : 

Mesures calculées  Expression  Description 

[% Marge ­ Budget Vente]  [Measures].[Marge ­ Budget Vente]/ Affiche le taux de marge 


[Measures].[CA ­ Budget Vente]  budgétée. 

[% CA vs Budget Vente]  [Measures].[CA]/ [Measures].[CA ­ Budget  Affiche le taux d’atteinte de 


Vente]  l’objectif en CA. 

[Ecart Marge vs Budget Vente]  [Measures].[% Marge]­[Measures].[%  Affiche l’écart entre le taux de 


Marge ­ Budget Vente]  marge réel et le taux de 
marge budgété. 

Vous  pouvez,  si  vous  le  souhaitez,  charger  des  données  à  partir  d’un  jeu  de  test  (cf.  chapitre  Réaliser  son  premier 
système décisionnel ­ Génération du jeu de test) ou télécharger le jeu de test proposé en téléchargement sur le site 
du livre. 

■ Après  traitement,  allez  sur  l’onglet  Navigateur.  Vous  devrez  pouvoir  visualiser  le  tableau  croisé  dynamique  ci­
dessous : 

© ENI Editions - All rigths reserved - educ algeria - 11 -


 

■ Pour  finir,  éditez  la  dimension  Temps et créez une nouvelle hiérarchie  Année ­  Mois.  Si  besoin,  reportez­vous au 
chapitre Réaliser son premier système décisionnel ­ Peaufiner le cube. 

L’utilisation de cette hiérarchie ne permettra pas à l’utilisateur de descendre au niveau de la journée. En revanche, en 
l’état actuel du cube, l’utilisateur a la possibilité de faire une erreur et de sélectionner une hiérarchie descendant au 
jour. 

Pour remédier à ce problème, nous allons créer une perspective. 

5. Les perspectives 

La  perspective  est  simplement  une  vue  simplifiée  de  la  matrice  dimensionnelle  :  une  vue  cohérente  pour  un  sujet 
d’analyse donné. 

Dans le cas de la mise en œ uvre du budget, nous pourrions réaliser deux perspectives : 

● Suivi des ventes par site : la première perspective serait alors celle­ci : 

- 12 - © ENI Editions - All rigths reserved - educ algeria


Matrice dimensionnelle de la perspective Suivi Vente par site 

● Suivi des ventes par produit : la seconde perspective serait alors celle­là : 

Matrice dimensionnelle de la perspective Suivi Vente par produit 

L’idée  d’une  perspective  est  de  donner  aux  utilisateurs  finaux  une  vue  cohérente  entre  groupes  de  mesures  et 
dimensions, et donc entre mesures et attributs. 
Toutes  les  tables  de  faits  et  de  dimensions  ne  se  croisent  pas.  De  nombreuses  intersections  se  retrouvent  vides. 
L’idée d’une perspective est de montrer une vue orientée métier.   

■ Pour  mettre  en  œ uvre  ces  deux  perspectives,  allez  dans  le  projet  de  cube  de  BIDS  et  cliquez  sur  l’onglet 
Perspective. 
 
■ Cliquez ensuite sur le bouton  Nouvelle perspective :

© ENI Editions - All rigths reserved - educ algeria - 13 -


 

■ Créez deux nouvelles perspectives : Suivi Vente par Site et Suivi Vente par produit, comme indiqué ci­dessous : 

En  fait,  il  s’agit  de  cocher  uniquement  les  éléments  que  nous  souhaitons  conserver  dans  la  perspective.  Au  besoin, 
conférez­vous aux matrices dimensionnelles des perspectives correspondantes. 

■ Dépliez la dimension Temps, et conservez cochée uniquement la hiérarchie Année ­ Mois : 

- 14 - © ENI Editions - All rigths reserved - educ algeria


 

■ Dépliez l’élément  Calculs et gardez sélectionnées uniquement les mesures calculées qui ont une cohérence et un 
sens avec la perspective considérée : 

Les  mesures  calculées  Panier  Moyen  et  Nb  Moyen  Article  Facturé  sont  en  lien  direct  avec  le  groupe  de  mesures 
Facture  Entete  qui  ne  fait  pas  partie  de  la  perspective  Suivi  Vente  par  produit.  C’est  pour  cela  qu’elles  sont 
décochées. C’est le même raisonnement qui nous a conduits à désélectionner les mesures calculées en relation avec 
le groupe de mesures Bilan Commande Client. 

■ Après  traitement,  allez  dans  l’onglet  Navigateur,  puis  sélectionnez  avec  la  liste  déroulante  Perspective,  Suivi 
Vente par Site : 

© ENI Editions - All rigths reserved - educ algeria - 15 -


 

Le navigateur de cube se rafraichit alors pour mettre à disposition uniquement les éléments de groupes de mesures et 
de dimensions disponibles dans la perspective. 
Vous constaterez aussi que la seule hiérarchie disponible dans la dimension Temps est la hiérarchie Année ­ Mois. 
Les perspectives se travaillent et s’affinent en contact des utilisateurs de votre cube. Attention, il ne s’agit pas d’un 
élément  de  sécurité  permettant  de  restreindre  l’accès  à  des  informations  cruciales  à  certains  utilisateurs.  Il  s’agit 
seulement  d’un  élément  de  confort  d’utilisation  fort  utile.  L’importance  de  la  perspective  va  croissant  avec  le 
développement du périmètre fonctionnel de l’entrepôt de données. 

6. Les actions 

Toujours  dans  un  esprit  de  finalisation  du  périmètre  des  ventes,  nous  allons  maintenant  mettre  en  œ uvre  une 
fonctionnalité vraiment très appréciée des utilisateurs : la fonctionnalité d’audit. 
Au  sein  de  SSAS,  l’audit  de  données  se  traduit  par  la  possibilité  donnée  à  l’utilisateur,  à  tout  moment,  d’obtenir  un 
extrait des lignes qui compose une cellule d’un tableau croisé dynamique. Nous allons le mettre en œ uvre rapidement 
et simplement afin que vous compreniez l’utilisation de la fonction, puis dans un second temps nous la compléterons. 

■ Dans BIDS, dans le projet de cube, cliquez sur l’onglet Actions. 
 

■ Cliquez sur le bouton  Nouvelle action d’extraction.

■ Nommez l’action Extraction Facture et configurez­la comme ci­dessous : 

- 16 - © ENI Editions - All rigths reserved - educ algeria


 

■ Enregistrez vos modifications, traitez le cube, puis allez dans l’onglet Navigateur. 

■ Réalisez un tableau croisé dynamique avec CA en colonne et la hiérarchie Pays ­ Site en ligne. 

■ Sélectionnez la cellule du tableau croisé dynamique correspondant au CA réalisé en Espagne, puis faites un clic droit 
pour afficher le menu contextuel. 

■ Cliquez dans le menu contextuel sur Extraction Facture : 

© ENI Editions - All rigths reserved - educ algeria - 17 -


 

La visionneuse de données s’affiche pour vous donner un extrait des 1000 premières lignes correspondant à l’agrégat 
sélectionné. 

Ici, il s’agit des 2 706 744 € réalisés auprès des clients espagnols en 2010. 

Attention, il ne s’agit pas de transformer le cube en extracteur de données, mais juste d’auditer les lignes et 
de  donner  la  possibilité  aux  utilisateurs  de  faire  la  passerelle  entre  les  données  du  système  décisionnel  et 
celles du système opérationnel (source). 

Afin d’aller au bout de cette idée, nous allons maintenant offrir la possibilité aux utilisateurs de visualiser le numéro de 
facture des lignes remontées par l’extraction. 

Rappelez­vous,  à  la  création  de  certaines  tables  de  faits,  nous  avons  ajouté  une  ligne  dite  de  dimension 
dégénérée. C’est cette donnée que nous allons offrir en visualisation par le biais de l’action d’extraction. 

Maintenant que vous êtes familiarisé avec l’interface, suivez la procédure ci­dessous : 

■ Par le biais de l’Explorateur de solution, allez dans la vue de source de données Distrisys DW.dsv. 

■ Sélectionnez le diagramme Facture Etoile. 

■ Cliquez sur le bouton Nouvelle requête nommée. 

■ Nommez la requête Audit Facture et tapez la requête SQL suivante : 

SELECT DISTINCT(NumFacture) FROM FactFacture 

■ Liez le champ NumFacture de la table FactFacture au champ NumFacture de la requête nommée AuditFacture. 

■ Un message doit vous demander de définir le champ NumFacture comme clé primaire logique. Cliquez sur Oui. Puis 
enregistrez. 

■ Dans l’Explorateur de solution, faites un clic droit sur Dimension pour afficher le menu contextuel. Sélectionnez et 
cliquez sur Nouvelle Dimension. 

- 18 - © ENI Editions - All rigths reserved - educ algeria


■ L’Assistant  Dimension  démarre.  À  l’écran  Sélectionner  la  méthode  de  création,  choisissez  Utiliser  une  table 
existante. 

■ À l’écran Spécifier des informations sur la source, sélectionnez comme table principale AuditFacture. 

■ Cliquez sur Suivant à l’écran suivant, puis cliquez sur Terminer pour créer la dimension. 

■ Dans le projet de cube, sur le premier onglet Structure  de  cube, cliquez sur le bouton  Ajouter une dimension de 


cube. 

■ Sélectionnez AuditFacture. Cliquez sur OK. 

■ La  dimension Auditfacture  doit  s’afficher  dans  le  panneau  Dimensions  en  bas  à  gauche  de  l’onglet  Structure de 
cube. Sélectionnez la nouvelle dimension AuditFacture, Allez dans ses propriétés pour spécifier la propriété Visible 
à  False.  AuditFacture n’est  pas  véritablement  une  dimension  d’analyse.  Il  ne  faut  pas  que  les  dimensions  d’audit 
soient disponibles aux utilisateurs. 

■ Dans le projet de cube, cliquez sur l’onglet Actions. 

■ Ajoutez dans les colonnes d’extraction AuditFacture et en colonne de retour NumFacture. 

■ Enregistrez  et  traitez  le  cube.  Dans  l’onglet  Navigateur,  à  l’affichage  de  l’action  Extraction  Facture  vous  devriez 
maintenant  voir  s’afficher  le  numéro  de  facture  de  chaque  ligne  constituant  l’extrait,  comme  le  montre  la  copie 
d’écran ci­dessous : 

Cette  procédure  n’est  pas  à  généraliser  systématiquement  pour  toutes  les  tables  de  faits.  C’est  une  procédure  à 
réaliser  sur  demande  d’un  service  ou  d’un  utilisateur,  notamment  au  moment  de  la  recette  des  données.  Il  reste 
nécessaire,  au  moment  de  la  modélisation  de  la  table  de  faits,  de  réfléchir  à  la  mise  à  disposition  d’une  dimension 
dégénérée. 

7. Introduction au MDX 

© ENI Editions - All rigths reserved - educ algeria - 19 -


a. La requête MDX 

Avant d’en terminer avec le périmètre des ventes, nous allons aborder quelques notions de MDX. 

Au même titre que le SQL est le langage de requêtes d’une base de données relationnelle, le MDX est le langage 
permettant de faire des requêtes sur un cube, 

Pour  rappel,  ce  que  nous  appelons  communément  un  cube,  n’est  autre  qu’une  base  de  données 
multidimensionnelle. 

Le langage MDX est, par certains côtés, proche du SQL. Il n’est ni plus simple, ni plus compliqué : il est simplement 
différent, moins connu et moins usité que le SQL. Rappelons aussi que vos requêtes MDX seront d’autant plus faciles 
à réaliser si votre base est bien modélisée et bien préparée. 

Cette préparation, vous l’avez faite tout au long du chapitre Réaliser son premier système décisionnel, notamment 
avec un vrai travail de fond sur la dimension Temps. 

Au cours de ce chapitre, nous allons essayer d’acquérir quelques bases : 

● Où trouver un requêteur MDX et comment faire une requête MDX classique. 

Puis nous verrons quelques exemples concrets et basiques que vous retrouverez sur tous vos projets : 

● Comment  créer  en  MDX  des  mesures  calculées  de  type  cumul  annuel,  moyenne  mobile  et  valeur  d’une 
période précédente. 

Commençons par écrire une requête simple. 
 
■ Dans SSMS, cliquez sur le bouton  Requête MDX Analysis Services :

Le requêteur MDX de SSMS est composé de deux zones : 

● La première zone, la plus à droite, est la zone de travail. 

● La seconde zone, la plus à gauche, est le navigateur de cube. 

Les  éléments  de  mesures,  de  dimension,  d’attributs,  de  hiérarchie  et  même  de  membres  se  glissent  par  glisser­
déposer directement dans la zone de travail. Faites quelques essais pour comprendre comment s’utilise l’interface. 

■ Maintenant,  écrivez  dans  la  zone  de  travail,  la  requête  suivante  en  vous  aidant  bien  entendu  du  navigateur  du 
cube : 

SELECT
[Measures].[CA] ON COLUMNS
FROM [Distrisys]

■ Puis cliquez sur le bouton Exécuter pour lancer la requête : 

- 20 - © ENI Editions - All rigths reserved - educ algeria


 

Dans  la  fenêtre  Résultats,  nous  pouvons  visualiser  le  résultat  de  la  requête.  Cette  requête  demande  tout 
simplement d’afficher en colonne la mesure CA du cube Distrisys. 

■ Modifions maintenant la requête pour afficher le CA en 2010 : l’année 2010 devant apparaître en ligne. Pour cela, 
tapez la requête suivante : 

SELECT
[Measures].[CA] ON COLUMNS,
[Temps].[Année - Mois - Jour].[Année].&[20100101] ON ROWS
FROM [Distrisys]

■ Exécutez la requête. Vous devriez avoir le résultat suivant : 

© ENI Editions - All rigths reserved - educ algeria - 21 -


 

La  syntaxe  [Measures].[CA]  ou  [Temps].[Année  ­  Mois  ­  Jour].[Année].&[20100101]  est  appelée 


UniqueName.  C’est  en  quelque  sorte  la  référence  unique  à  un  membre  d’une  dimension.  Notez  que  le 
UniqueName fait appel à la clé du membre. 

■ Modifions encore une fois la requête pour obtenir le CA en 2010 des sites français. Tapez la requête suivante : 

SELECT
[Measures].[CA] ON COLUMNS,
[Temps].[Année - Mois - Jour].[Année].&[20100101] ON ROWS
FROM [Distrisys]
WHERE
(
[Site].[Pays - Site].[Pays].&[Fr]
)

■ Exécutez la requête, vous devriez avoir le résultat suivant : 

Tous  les  composants  de  la  requête  MDX  sont  présents  dans  cette  requête.  À  la  manière  d’un  tableau  croisé 
dynamique, la requête MDX est constituée d’éléments en colonne, en ligne et en filtre. 

- 22 - © ENI Editions - All rigths reserved - educ algeria


À l’usage, on prend l’habitude de simplifier l’écriture en substituant le mot clé COLUMNS par 0, et le mot clé ROWS 
par 1. La requête suivante donne exactement le même résultat que précédemment : 

SELECT
[Measures].[CA] ON 0,
[Temps].[Année - Mois - Jour].[Année].&[20100101] ON 1
FROM [Distrisys]
WHERE
(
[Site].[Pays - Site].[Pays].&[Fr]
)

Maintenant,  si  l’on  souhaite  afficher  plusieurs  membres  d’une  même  hiérarchie,  sur  un  même  axe,  on  utilise  les 
accolades { }. On dit alors qu’il s’agit d’un jeu de membres. 

■ Ajoutons par exemple en colonne la mesure % Marge, tapez la requête suivante : 

SELECT
{[Measures].[CA], [Measures].[% Marge]} ON 0,
[Temps].[Année - Mois - Jour].[Année].&[20100101] ON 1
FROM [Distrisys]
WHERE ( [Site].[Pays - Site].[Pays].&[Fr] )

Le jeu de membres fonctionne autant en colonne, qu’en ligne ou qu’en filtre. Il fonctionne autant pour les mesures 
que pour les membres de dimensions. 
Maintenant,  nous  souhaitons  afficher  le CA  et  le % Marge  des  sites  français,  pour  tous  les  mois  de  l’année 2010. 
Deux solutions s’offrent à nous : 

● Soit nous pouvons faire appel aux accolades et à un jeu de membre comprenant les douze mois de l’année. 

● Soit  nous  faisons  appel  à  une  fonction  de  navigation  dans  la  hiérarchie,  qui  va  nous  faire  l’économie  de 
beaucoup de script. 

Utilisons  par  exemple  la  fonction  .Children.  Cette  fonction  affiche  tous  les  enfants  d’un  membre  d’une  hiérarchie. 
Comprenez par­là que les enfants de Année 2010, dans la hierarchie [Année ­ Mois ­ Jour], seront les mois de 2010. Mais 
que par contre, les enfants de Année 2010 dans la hiérarchie [Année ­ Semestre ­ Trimestre ­  Mois ­ Jour] seront les deux 
semestres de 2010. 

■ Tapez la requête suivante : 

SELECT
{[Measures].[CA], [Measures].[% Marge]} ON 0,
[Temps].[Année - Mois - Jour].[Année].&[20100101].children ON 1
FROM [Distrisys]
WHERE ( [Site].[Pays - Site].[Pays].&[Fr] )

© ENI Editions - All rigths reserved - educ algeria - 23 -


 

Il existe de nombreuses fonctions de navigation, de mathématiques, de statistiques... Pour les découvrir, cliquez sur 
l’onglet Fonctions dans la zone de navigation du cube : 

Cet  ouvrage  n’ayant  pas  pour  but  d’être  un  guide  de  référence  du  MDX,  veuillez  vous  référer  à  la 
documentation technique de Microsoft pour les découvrir plus en détail. 

Nous souhaitons maintenant créer une nouvelle mesure, CA Espagne qui, quelle que soit la dimension Site, affiche 
toujours  le  CA  réalisé  par  les  sites  espagnols.  Cette  nouvelle  mesure  devra  s’afficher  en  colonne  au  côté  de  la 
mesure CA. 
Tapez la requête ci­dessous : 

WITH
MEMBER [CA Espagne] AS
(
([Measures].[CA], [Site].[Pays - Site].[Pays].&[ES])
)
SELECT
{[Measures].[CA], [CA Espagne]} ON 0,
[Temps].[Année - Mois - Jour].[Année].&[20100101].children ON 1
FROM [Distrisys]

Pour information, si vous souhaitez mettre des bouts de code en commentaire, vous pouvez : soit utiliser les 

- 24 - © ENI Editions - All rigths reserved - educ algeria


doubles tirets pour mettre en commentaire une ligne, soit encadrer le code à mettre en commentaire par  /* 
et */ s’il s’agit de plusieurs lignes. 

Cette  syntaxe  entre  parenthèses,  couplant  plusieurs  membres  de  dimensions  différentes,  est  appelée  un 
tuple. 

La clause WITH MEMBER reproduit le comportement d’une mesure calculée. 

■ Pour rendre disponible cette mesure CA Espagne, comme mesure calculée au niveau du cube, copiez la syntaxe 
du tuple (il s’agit du contenu pris entre les parenthèses du mot clé AS). 

([Measures].[CA], [Site].[Pays - Site].[Pays].&[ES])

■ Allez dans BIDS, dans le projet de cube, cliquez sur l’onglet Calculs, puis sur le bouton Nouveau membre calculé. 

■ Nommez la nouvelle mesure calculée CA Espagne, et collez le contenu du presse­papier dans la zone Expression. 

■ Déployez le cube, puis retournez soit dans SSMS, soit dans l’onglet Navigateur pour tester votre nouvelle mesure 
calculée. 

Maintenant que vous êtes un peu familiarisé avec les requêtes MDX et que vous savez comment tester la syntaxe 
d’une future mesure calculée, nous allons créer des mesures calculées couramment utilisées et les mettre en œ uvre 
dans le cube Distrisys. 

b. Comparaison de valeurs à date 

Une  des  premières  demandes  que  vous  aurez  en  mettant  en  place  un  cube,  est  de  pouvoir  comparer  les  valeurs 
mensuelles par exemple, avec le mois précédent ou avec le même mois de l’année précédente. 

Pour réaliser cette comparaison, nous allons créer une mesure calculée utilisant la fonction ParallelPeriod. 

■ Dans le requêteur MDX de SSMS, tapez la requête suivante : 

WITH
MEMBER [CA Mois-1] AS
(
[Measures].[CA],
ParallelPeriod(
[Temps].[Année - Mois - Jour].[Mois],
1,
[Temps].[Année - Mois - Jour].CurrentMember
)
),FORMAT_STRING="Currency"
MEMBER [CA Mois Année-1] AS
(
[Measures].[CA],
ParallelPeriod(
[Temps].[Année - Mois - Jour].[Annee],
1,

© ENI Editions - All rigths reserved - educ algeria - 25 -


[Temps].[Année - Mois - Jour].CurrentMember
)
),FORMAT_STRING="Currency"
SELECT
{[Measures].[CA], [CA Mois-1], [CA Mois Année-1]} ON 0,
[Temps].[Année - Mois - Jour].[Annee].&[20100101].children ON 1
FROM [Distrisys]

Les  deux  nouvelles  mesures  sont  en  fait  un  tuple  formé  du  couple  entre  le  CA  et  une  fonction ParallelPeriod.  La 
fonction ParallelPeriod permet de retourner un membre de la dimension Temps. Le membre retourné est fonction du 
niveau spécifié, d’un nombre d’occurrences et d’un membre de référence. 
Dans  le  cas  de  la  mesure  CA  Mois­1,  le  niveau  spécifié  est  le  niveau  Mois.  Le  Nombre  d’occurrences  est  1  et  le 
membre de référence est le membre courant. Dans les faits cela se traduit par ramener pour le membre actuel de la 
dimension Temps, l’occurrence précédente (1) du niveau mois : soit obtenir le mois précédent de chaque mois affiché. 
Dans le cas de la mesure CA Année Mois­1, le niveau spécifié est le niveau Année. Le nombre d’occurrences est 1 et 
le membre de référence est le membre courant. Dans les faits cela se traduit par ramener pour le membre actuel de 
la dimension Temps, l’occurrence précédente (1) au niveau annuel : soit obtenir le même mois de l’année précédente 
de chaque mois affiché. 

Par exemple, nous sommes au mois d’avril 2010 et nous souhaitons comparer le CA actuel avec celui du mois précédent 
(c’est­à­dire le mois de mars 2010) ou bien encore, nous souhaitons toujours comparer ce fameux chiffre d’affaires mais 
d’une  année  sur  l’autre,  c’est­à­dire  comparer  avril  2009  par  rapport  à  avril  2010  :  c’est  grâce  à  cette  fonction 
ParallelPeriod que nous serons en mesure de le faire. 

Nous sommes donc en mesure de créer quatre nouvelles mesures calculées : 

Mesures calculées  Expression 

CA Mois­1  ( 
[Measures].[CA], 

ParallelPeriod( 
[Temps].[Année ­ Mois ­ Jour].[Mois], 

1, 

[Temps].[Année ­ Mois ­ Jour].CurrentMember 

CA Mois Année­1  ( 

[Measures].[CA], 
ParallelPeriod( 

[Temps].[Année ­ Mois ­ Jour].[Annee], 
1, 

- 26 - © ENI Editions - All rigths reserved - educ algeria


[Temps].[Année ­ Mois ­ Jour].CurrentMember 

% Evol CA Mois­1  [Measures].[CA]/ [Measures].[CA Mois­1]­1 

% Evol CA Mois Année­1  [Measures].[CA]/ [Measures].[CA Mois Année­1]­1 

■ Après traitement, vous devriez pouvoir consulter le tableau croisé dynamique dans l’onglet Navigateur : 

Dans les faits, on se doit de pousser l’intelligence de la règle de calcul plus loin pour conditionner l’affichage 
de la mesure. Par exemple, dans le cas précédent, les règles ne doivent s’appliquer qu’au niveau Mois. Vous 
noterez ainsi des imperfections lors de l’affichage d’un niveau différent de celui­ci. Téléchargez les scripts de ces 
mesures  calculées  sur  le  site  du  livre  et  étudiez  les  attentivements.  Les  scripts  y  apparaissent  plus  complets  et 
permettent de corriger notamment ces imperfections. 

c. La somme cumulée 

Une des demandes récurrentes et incontournables des utilisateurs est de pouvoir afficher leurs données en cumulé 
et notamment en cumulé annuel. 
Pour ce faire, nous allons donc devoir utiliser une seconde fonction PeriodsToDate. 

■ Pour commencer, tapez le script suivant dans le requêteur MDX : 

WITH
MEMBER [CA Cumul] AS
Sum(
PeriodsToDate
(
[Temps].[Année - Mois - Jour].[Annee],
[Temps].[Année - Mois - Jour].CurrentMember
),
[Measures].[CA]
),FORMAT_STRING="Currency"

SELECT
{[Measures].[CA], [CA Cumul]} ON 0,
[Temps].[Année - Mois - Jour].[Annee].&[20100101].children ON 1
FROM [Distrisys]

© ENI Editions - All rigths reserved - educ algeria - 27 -


 

Dans notre cas, la fonction PeriodsToDate retourne la liste des membres du même niveau que le membre courant et qui 
ont en commun le même parent du niveau Année. 

À ce propos, nous pouvons aussi obtenir de fait le cumul annuel de l’année précédente à la même période. Pour cela 
il nous suffit de cumuler la mesure calculée précédemment créée : CA Mois Année­1. 
Tapez le script suivant dans le requêteur MDX : 

WITH
MEMBER [CA Cumul] AS
Sum(
PeriodsToDate
(
[Temps].[Année - Mois - Jour].[Annee],
[Temps].[Année - Mois - Jour].CurrentMember
),
[Measures].[CA]
),FORMAT_STRING="Currency"

MEMBER [CA Cumul Année-1] AS


SUM(
PeriodsToDate
(
[Temps].[Année - Mois - Jour].[Annee],
[Temps].[Année - Mois - Jour].CurrentMember
),
[Measures].[CA Mois Année-1]
),FORMAT_STRING="Currency"

SELECT
{[Measures].[CA], [CA Cumul], [CA Cumul Année-1]} ON 0,
[Temps].[Année - Mois - Jour].[Annee].&[20100101].children
ON 1
FROM [Distrisys]

- 28 - © ENI Editions - All rigths reserved - educ algeria


 

■ Nous sommes donc en mesure de créer trois nouvelles mesures calculées : 

Mesures calculées  Expression 

CA Cumul  Sum( 
PeriodsToDate 

[Temps].[Année ­ Mois ­ Jour].[Annee], 
[Temps].[Année ­ Mois ­ Jour].CurrentMember 
), 
[Measures].[CA] 

CA Cumul Année­1  Sum( 
PeriodsToDate 

[Temps].[Année ­ Mois ­ Jour].[Annee], 
[Temps].[Année ­ Mois ­ Jour].CurrentMember 

), 
[Measures].[CA Mois Année­1] 

% Evol CA Cumul Année­1  [Measures].[CA Cumul]/ [Measures].[CA Cumul Année­1]­1 

© ENI Editions - All rigths reserved - educ algeria - 29 -


Des  scripts  plus  complets  de  ces  mesures  calculées  sont  disponibles  en  téléchargement  sur  le  site  des 
Éditions ENI. 

En  complément  du  livre,  vous  trouverez  en  téléchargement  un  script  permettant  la  création  de  mesures 
calculées utilisant les notions de moyenne mobile et de somme mobile. 

Vous venez de terminer un entrepôt de données et un cube traitant le périmètre des ventes. 

Au cours de ce chapitre, nous avons appris à : 

● mettre à jour l’entrepôt de données et le cube associé ; 

● modéliser le processus de facturation ; 

● mettre en œ uvre une table de type bilan au travers de l’exemple du bilan de commande ; 

● intégrer un budget pour permettre le comparatif réalisé/budgété. 

Dans la prochaine section, vous allez apprendre à modéliser le périmètre des stocks. 

- 30 - © ENI Editions - All rigths reserved - educ algeria


Les stocks 

1. Modélisation 

Mettons­nous dans la situation : la société Distrisys souhaite suivre et gérer ses stocks à l’aide du cube d’entreprise. 
La  mise  en  œ uvre  de  ce  projet  soulève  beaucoup  d’espoir  dans  de  nombreux  services  de  la  société.  Ces  services 
espèrent bénéficier d’une valorisation plus régulière du stock et conserver un historique de cette valorisation. 

La modélisation des stocks est particulière car comme nous allons le voir, elle va nécessiter la mise en œ uvre d’une 
table de faits de type photo. Néanmoins, la modélisation des stocks, quelle que soit l’entreprise, est assez constante. 

Si la problématique de gestion des stocks vous concerne, la modélisation qui va être proposée devrait donc être assez 
largement transposable à votre organisation. 
La matrice dimensionnelle de la gestion des stocks apparait de la manière suivante : 

La gestion des stocks se modélise en deux tables de faits distinctes. Nous verrons dans la prochaine section en quoi 
consiste  la  table  Stock  Mouvement.  Nous  l’étudierons  et  la  mettrons  en  œ uvre.  Nous  enchaînerons  ensuite  sur  la 
table de faits Stock Photo. 

2. Les mouvements de stock 

La  première  table  de  faits  que  nous  allons  mettre  en œ uvre est la table de faits des mouvements de stock : Stock 
Mouvement. 
Cette table de faits va enregistrer toutes les transactions d’entrées et de sorties modifiant le niveau du stock. 
Les mouvements seront enregistrés par produit, par site et par heure. Dans notre cas Distrisys, la traçabilité suivant 
la dimension Employé a été étudiée puis rejetée : l’analyse par employé n’a pas été jugée utile. En revanche, pour des 
problématiques propres à Distrisys, il a été réclamé de pouvoir faire l’analyse par heure. Ce n’est pas quelque chose 
qui  est  courant  dans  la  plupart  des  entreprises,  mais  cela  nous  permettra  néanmoins  de  voir  comment  se  traite 
l’analyse à l’heure. 
Le  service  gestion  des  stocks  a  aussi  noté  sa  volonté  de  pouvoir  faire  des  analyses  assez  classiques par  sens  du 
mouvement  (entrée  ou  sortie)  et  par  type  de  mouvement  (sur  inventaire,  livraison  client,  réception  fournisseur, 
retour  client…). Il  a  été  ajouté  que  vis­à­vis  de  problématique  interne,  il  serait  bien  également  de  pouvoir  faire  des 
études sur les mouvements de stock  manuels ou automatiques,  et  sur  les  mouvements  de  stocks  ayant  fait  l’objet 
d’un contrôle qualité ou non. 

Après  étude  détaillée,  l’équipe  décisionnelle  a  souhaité  revoir  la  matrice  dimensionnelle,  la  proposition  ci­dessous  a 
été présentée : 

© ENI Editions - All rigths reserved - educ algeria - 1-


 

Faisons quelques remarques : 

● La  dimension Heure  est  bien  une  dimension  distincte  de  la  dimension  Temps.  Ne  cherchez  pas  à  étendre  la 
dimension Temps au niveau horaire, ça ne vous serait pas profitable, autant en terme de gestion qu’en terme 
de performance. 

● La  proposition  de  l’équipe  décisionnelle  est  cohérente.  Néanmoins,  les  dimensions  Sens  Mouvement,  Type 
Mouvement, Manuel Automatique et Contrôle qualité sont des dimensions qui sont propres à l’unique groupe 
de  mesures Stock  Mouvement.  Les  modéliser  ainsi  demanderait  de  créer  autant  de  dimensions  qu’il  y  a  de 
propriétés susceptibles d’être analysées. En fait, l’expérience nous montre que dans ce genre de situation, il 
faut éviter autant que possible de démultiplier le nombre de dimensions propres à une seule table de faits, et 
ce, pour des raisons de performance, mais aussi pour des raisons d’évolutivité. 

Nous  regrouperons  ces  dimensions  isolées  dans  une  seule  et  même  dimension  Stock  Mouvement.  Ce  genre  de 
dimension  est  appelée dimension  fourre­ tout, traduction anglaise de junk  dimension. Les différentes dimensions 
Sens Mouvement, Type Mouvement, Manuel Automatique et Contrôle qualité deviendraient alors autant d’attributs 
d’une dimension unique. 
Cette forme de modélisation a cependant un inconvénient : elle démultiplie le nombre de membres. 

Exemple : 

● Sens Mouvement dispose d’une cardinalité de 2 (2 possibilités seulement : entrée et sortie) 

● Type Mouvement dispose d’une cardinalité de 11 

● Manuel Automatique dispose d’une cardinalité de 2 (manuel, automatique) 

● Contrôle qualité dispose d’une cardinalité de 2 (Avec contrôle qualité, Sans contrôle qualité) 

Dans ce cas, la cardinalité de cette dimension fourre­tout serait de : 2 x 11 x 2 x 2 soit 88 membres… L’augmentation de la 
dimension  fourre­ tout  croît  exponentiellement  avec  le  nombre  de  propriétés  et  de  leur  cardinalité.  Une  étude  est  donc 
nécessaire à ce stade du projet. 

Attention il y une règle majeure à respecter en modélisation dimensionnelle : une dimension doit avoir autant 
que possible moins de 300 000 membres. Ce nombre fixé arbitrairement est un bon compromis, pour ne pas 
obtenir des dimensions tellement géantes que les performances en seraient alors affectées. 

En  cas  d’atteinte  de  cette  limite  de  300  000  membres,  il  suffit  alors  de  ne  pas  créer  une,  mais  deux 
dimensions fourre­tout. Et ainsi de suite jusqu’à trouver un bon compromis entre le nombre de dimensions et 
la taille de ces dimensions. On dit alors que l’on crée des mini­dimensions. 

Après concertation avec l’équipe, nous adoptons le principe de la dimension fourre­tout Stock Mouvement. 

La matrice dimensionnelle est bien celle d’origine. Nous la détaillons un peu plus ci­dessous : 

- 2- © ENI Editions - All rigths reserved - educ algeria


 

La représentation schématique de Stock Mouvement Etoile est la suivante : 

La  gestion  ETL  de  ce  genre  de  table  de  dimension  n’étant  pas  ordinaire,  prenez  l’habitude  de  préfixer  la 
dimension fourre­tout DimJunk. 

On  constate  aussi  que  les  quatre  propriétés  d’analyse,  propres  à  cette  table  de  faits,  n’apparaissent  pas 
dans ce schéma car elles sont considérées comme des attributs. 

Voyons  maintenant  la  mise  en  œ uvre  de  cette  modélisation,  et  commençons  dès  à  présent  par  la  création  des 
dimensions manquantes : DimHeure et DimJunkStockMouvement. 

■ Allez dans SSMS. 

■ Créez la table dimension DimHeure avec la structure suivante : 

■ Remplissez cette nouvelle table DimHeure avec les données suivantes : 

© ENI Editions - All rigths reserved - educ algeria - 3-


 

Un fichier csv avec la commande bcp associée est disponible sur le site du livre pour vous aider à charger ces 
données 

■ Créez maintenant la table dimension DimJunkStockMouvement avec la structure suivante : 

■ Remplissez cette nouvelle table DimJunkStockMouvement avec les données suivantes : 

- 4- © ENI Editions - All rigths reserved - educ algeria


 

Un fichier csv avec la commande bcp associée est disponible sur le site du livre pour vous aider à charger ces 
données. 

■ Créez la table de faits FactStockMouvement : 

La  mesure  QuantiteMouvemente  est  la  quantité  d’articles  concernés  par  le  mouvement  de  stock.  La  quantité  est 
positive lorsqu’il s’agit d’une entrée, négative pour une sortie. 

La  mesure  ValeurMouvemente  est  facultative.  Elle  entre  en  compte  uniquement  si  vous  comptez  sur  l’entrepôt  de 
données et le module d’ETL pour calculer la valorisation des stocks au PMP (Prix Moyen Pondéré) ou au dernier prix 
d’achat. Dans ce cas­là, la Valeur Mouvementée correspondra en entrée, à la valeur enregistrée (celle calculée à partir 
de la facture fournisseur par exemple) et en sortie, à la valeur valorisée suivant la méthode adoptée : PMP, dernier 
prix d’achat, FIFO/LIFO... 

NumLotProduit  est  la  dimension  dégénérée  qui  vous  permettra  d’obtenir  une  traçabilité  et  de  pouvoir  faire  la 
passerelle avec votre application de gestion des stocks. 

■ Créez le schéma Stock Mouvement Etoile : 

© ENI Editions - All rigths reserved - educ algeria - 5-


 

■ Remplissez la table FactStockMouvement avec un jeu de test. 

Un fichier csv avec la commande bcp associée est disponible sur le site du livre pour vous aider à charger les 
données de FactStockMouvement. 

■ Puis dans BIDS, au niveau de la vue de source de données Distrisys DW.dsv, créez un nouveau diagramme Stock 
Mouvement Etoile. 

■ Toujours  dans  BIDS,  au  niveau  du  projet  de  cube,  allez  dans  l’onglet  Structure  de  cube  et  cliquez  sur  le  bouton 
Nouveau groupe de mesures pour ajouter FactStockMouvement au cube. 

■ Renommez le groupe de mesures Fact Stock Mouvement en Stock Mouvement. 

■ Renommez la mesure Fact Stock Mouvement Nombre en Nb Mouvement. 

Étape Ajouter une dimension au cube : 

■ Pour  ajouter  les  nouvelles  dimensions,  allez  dans  l’Explorateur  de  solutions,  sélectionnez  l’élément  Dimensions, 
puis faites un clic droit pour faire apparaître le menu contextuel. Sélectionnez alors Nouvelle Dimension. 

■ Dans  l’Assistant  Dimension,  à  l’écran  Sélectionner  la  méthode  de  création,  cliquez  sur  Utiliser  une  table 
existante, puis sur Suivant. 

■ Dans  l’écran  Spécifier  des  informations  sur  la  source,  au  niveau  de  la  liste  déroulante  Table  Principale, 
sélectionnez DimJunkStockMouvement. 

■ À  l’écran  Sélectionner  les  attributs  de  dimension,  cochez  les  éléments  :  Sens  Mouvement,  Type  Mouvement, 
Manuel Automatique et Contrôle Qualité. Puis cliquez sur Suivant. 

■ Renommez la dimension Stock Mouvement, puis cliquez sur Terminer. 

■ Dans  l’éditeur  de  dimension  Stock  Mouvement,  créez  une  hiérarchie  Mouvement  composée  des  attributs  Sens 
Mouvement, puis de Type Mouvement. 

■ Dans l’onglet Relation d’attributs, établissez la relation suivante : 

- 6- © ENI Editions - All rigths reserved - educ algeria


 

■ Dans  l’onglet Structure  de  dimension,  rendez  invisibles  les  attributs Stock  Mouvement  PK,  Type Mouvement  et 
Sens Mouvement, en modifiant leur propriété AttributeHierarchyVisible à False. 

■ Traitez le cube et assurez­vous dans l’onglet Navigateur que les hiérarchies soient conformes à nos attentes. 

■ Retournez au projet de cube, puis au niveau de l’onglet Utilisation des dimensions, cliquez sur le bouton Ajouter 
une dimension de cube. Sélectionnez la dimension Stock Mouvement. 

■ Pour ajouter la dimension Heure, reprenez la procédure ci­dessus à l’étape Ajouter une dimension au cube. 

En fin de procédure, vous devriez pouvoir réaliser le tableau croisé dynamique suivant : 

Dans la section suivante, nous allons mettre en œ uvre la seconde table de faits des stocks : Stock Photo. 

3. La photo de stock 

La seconde table de faits que nous allons mettre en œ uvre est la table de faits Stock Photo. 

Cette table de faits est de type photo. Cela signifie que nous allons prendre périodiquement une photo de l’état des 
stocks. L’inventaire en quelque sorte n’est qu’une photo annuelle ou semestrielle des stocks. La table FactStockPhoto 
est une table qui va capturer, stocker et historiser cette instantanée. 

Le grand intérêt de cette table de faits est de pouvoir fournir une évaluation plus régulière et historisée de l’état des 
stocks. 

La matrice dimensionnelle est la suivante : 

© ENI Editions - All rigths reserved - educ algeria - 7-


 

Le croisement avec la dimension Temps sera concrétisé par la date de prise de la photo. 

On pourra par exemple dire : au 1er octobre 2010, sur le site de l’Agence Sud, mon stock était de 100 pour le produit Lagon 
LL 1200.Il était de 90 au 1er septembre 2010. 

Le problème des photos, c’est que les tables de faits peuvent potentiellement devenir gigantesques si l’on prend des 
photos quotidiennement et que l’on ne fait jamais le tri par la suite. Les tables de faits de type photo impliquent une 
gestion fine. 

Si on a décidé de prendre une photo quotidienne, on doit faire des choix concernant celles que l’on gardera : on pourra garder 
par exemple uniquement les cinq dernières photos quotidiennes, puis une seule photo mensuelle d’historique. 

Mais on peut arriver à des plans de compromis beaucoup plus élaborés : une photo quotidienne sur les dix derniers 
jours,  puis  une  photo  hebdomadaire  pour  les  sept  semaines  suivantes  et  enfin  une  photo  mensuelle  pour  tous  les 
mois d’historique. 

Plan d’historisation d’une table de faits de type photo 

La  stratégie  de  gestion  de  photo  est  un  compromis  à  élaborer  entre  équipe  fonctionnelle,  technique  et 
responsable projet en début de projet, car les conséquences ne sont pas neutres. Plus on prend de photos, 
plus le volume de données à stocker est important. Cela implique également forcément des coûts d’architecture et 
de dimensionnement serveur à prendre en compte au plus tôt dans le projet. 

La représentation schématique de Stock Photo Etoile est la suivante : 

Mettons en œ uvre dès à présent cette modélisation. 

- 8- © ENI Editions - All rigths reserved - educ algeria


■ Allez dans SSMS et créez la table de faits FactStockPhoto : 

■ Créez le schéma Stock Photo Etoile, comme indiqué ci­dessous : 

■ Remplissez la table FactStockPhoto avec un jeu de test. 

Un fichier csv avec la commande bcp associée est disponible sur le site de l’éditeur pour vous aider à charger 
les données de FactStockPhoto. 

■ Dans BIDS, au niveau de la vue de source de donnée Distrisys DW.dsv, créez un nouveau diagramme Stock Photo 
Etoile. 

■ Toujours  dans  BIDS,  au  niveau  du  projet  de  cube,  allez  dans  l’onglet  Structure  de  cube  et  cliquez  sur  le  bouton 
Nouveau groupe de mesures pour ajouter FactStockPhoto au cube. 

■ Renommez le groupe de mesures Fact Stock Photo en Stock Photo. 

■ Supprimez la mesure Fact Stock Photo Nombre. 

Les mesures de la table de faits Stock Photo peuvent se sommer sur les dimensions Produit et Site, mais elles n’ont 
pas vocation à être sommée sur la dimension Temps. En effet, voyons l’exemple suivant : 

Au mois d’octobre 2010, nous avons pris 3 photos de stock le 2, le 15 et le 25 octobre 2010. En 2010, nous avons pris trois 
photos en octobre, en novembre et en décembre : 

© ENI Editions - All rigths reserved - educ algeria - 9-


 

Le niveau de stock d’octobre 2010 est égal au niveau de stock de la dernière photo d’octobre 2010, soit à celle du 25 octobre 
2010. 

Le niveau de stock de 2010 est égal au niveau de stock de la dernière photo de 2010, soit au niveau de stock de la dernière 
photo prise en décembre 2010. 

En revanche, le niveau de stock se somme normalement sur la dimension Site. Ce comportement d’agrégation est un 
comportement d’une mesure semi­additive. Contrairement aux mesures additives qui se somment sur tous les axes, 
les mesures semi­additives se somment sur toutes les dimensions, sauf sur la dimension Temps. 
Dans le cas de la table de faits Stock Photo, toutes les mesures sont semi­additives. 

■ Dans  les  propriétés  des  mesures  Quantité  Stock  Réel,  Quantité  Stock  Actif,  Quantité  En  Attente  Livraison, 
Quantité  En  Attente  réception,  Valorisation  Stock,  affichez  les  valeurs  proposées  par  la  liste  déroulante  de  la 
propriété AggregateFunction : 

■ Sélectionnez dans la liste la valeur LastNonEmpty. Cette propriété signifie que le cube va afficher la dernière valeur 
non  nulle.  Par  conséquence,  la  mesure  aura  le  comportement  attendu.  LastNonEmpty  est  une  des  nombreuses 
fonctions d’agrégation gérant la semi­additivité proposées par Analysis Service. 

- 10 - © ENI Editions - All rigths reserved - educ algeria


LastNonEmpty  et  AverageOfChildren  sont  les  fonctions  de  semi­additivité  les  plus  courantes.  Vous 
retrouverez aussi très largement l’agrégation  AverageOfChildren, si vous avez à traiter des tables de faits 
contenant des mesures de températures ou de pressions. 

■ Après  avoir  changé  la  fonction  d’agrégation  des  mesures  de  niveau  de  stock,  vous  constaterez  que  BIDS  vous 
signale une alerte : Une mesure semi­additive requiert une dimension Temps. 

Comme expliqué précédemment, la mesure semi­additive se somme sur tous les axes, sauf sur la dimension Temps. Or 
il faut expliquer à Analysis Services quel est cet axe Temps. Faisons­le dès à présent : 

■ Dans BIDS, dans l’Explorateur de solution, double cliquez sur la dimension Temps afin de pouvoir la modifier. 

■ Dans  la  zone  la  plus  à  gauche  nommée  Attributs,  sélectionnez  l’élément  Temps  représentant  la  dimension  et 
affichez ses propriétés. 

■ Au niveau de la propriété Type, sélectionnez la valeur Time. Cette valeur implique qu’Analysis Services reconnaitra 
cette dimension comme étant la dimension Temps. 

■ Pour aller plus loin, sélectionnez l’attribut Jour et affichez ses propriétés. 

■ Au  niveau  de  la  propriété  Type,  sélectionnez,  dans  la  liste,  le  type  Date  comme  le  montre  la  copie  d’écran  ci­
dessous : 

© ENI Editions - All rigths reserved - educ algeria - 11 -


 

■ Faites de même pour les autres attributs, aidez­vous si besoin du tableau ci­dessous : 

Attribut  Type 

Année  Years 

Mois  Months 

Semaine  Weeks 

Semestre  HalfYears 

Trimestre  Quarters 

Afin de bénéficier de toutes les fonctions d’assistance d’Analysis Service, il est nécessaire de lui faire savoir à 
quoi  correspondent  les  dimensions.  Si  cette  tâche  est  facultative  pour  beaucoup  de  dimensions,  elle  est 
essentielle pour d’autres. C’est le cas de la dimension Temps, devise monétaire, indicateur et géographie... 

■ Vous pouvez maintenant traiter le cube et voir le comportement des mesures du groupe de mesures Stock Photo 
dans l’onglet Navigateur : 

- 12 - © ENI Editions - All rigths reserved - educ algeria


 

Vous venez de mettre en place la table de faits Stock Photo. 

© ENI Editions - All rigths reserved - educ algeria - 13 -


Les achats 
Essayons toujours d’imaginer la situation : la société Distrisys souhaite suivre et mesurer la qualité de son processus 
Achat. 
Avec le savoir que nous avons acquis dans les sections précédentes, modéliser les achats n’est qu’une formalité. Dans 
les  faits,  un  processus  d’achat,  comme  le  pratique  la  société  Distrisys,  contient  les  mêmes  mouvements  que  le 
processus de vente. 

L’acheteur  passe  commande,  les  commandes  sont  en  attentes  de  livraison,  puis  elles  sont  livrées.  L’acheteur  mesure  la 
fiabilité de ses fournisseurs notamment en tenant compte de la tenue des délais. C’est alors que les articles livrés passent un 
contrôle qualité. En cas de défaut produit ou de défaut de commande, les articles sont retournés au fournisseur. L’acheteur 
reçoit alors une facture fournisseur actant le prix et les coûts de sa commande. 

Vous constaterez que dans ce genre d’activité assez courant, nous retrouvons les mêmes processus à l’achat  qu’à la 
vente, à une exception près cependant : les mesures sont adaptées et le processus concerne un fournisseur au lieu de 
concerner un client. 

Nous sommes donc en mesure d’en dresser la matrice dimensionnelle suivante : 

Matrice dimensionnelle du périmètre Achat 

À  noter  que  vous  devez  bien  évidemment  adapter  la  matrice  dimensionnelle  des  achats  aux  processus  de  votre 
organisation. 
Cette matrice dimensionnelle requiert la mise en œ uvre de deux tables de faits de type transaction et de deux tables de 
type  bilan.  Avec  le  savoir­faire  accumulé  au  cours  de  ce  chapitre,  vous  êtes  probablement  à  même  de  les  mettre  en 
œ uvre. En effet, la mise en œ uvre de ce périmètre achat ne soulève aucune difficulté supplémentaire que nous n’ayons 
déjà traitée. Au besoin, n’hésitez pas à reprendre tout ou partie du chapitre Modélisation dimensionnelle ­ Facturation 
et commande client pour vous aider. 

© ENI Editions - All rigths reserved - educ algeria - 1-


Découverte de SSIS 
Au  cours  des  chapitres  précédents,  vous  avez  appris  à  modéliser  un  entrepôt  de  données.  L’idée  était  de  faire 
abstraction des sources de données disponibles dans votre société. Au cours de ce chapitre, vous allez apprendre et 
comprendre  comment  va  se  réaliser  la  remontée  des  données  du  système  source  vers  un  entrepôt  de  données.  La 
principale difficulté est que celui­ci  dispose  d’une modélisation dimensionnelle conforme, très éloignée de la structure 
de vos données actuelles. 

Dans  la  gamme  SQL  Server,  l’outil  qui  va  permettre  de  réaliser  le  chargement  de  ces  données  est  SQL  Server 
Integration Services (SSIS). 

SSIS a deux aspects : 

● Un aspect classique avec une logique de flux de tâches, organisées par des règles de précédence. Cet aspect 
est appelé Flux de contrôles. 

● Un  aspect  plus  spécifique  au  décisionnel,  avec  une  logique  purement  E­T­L.  Cet  aspect  est  appelé  Flux  de 
données. 

On peut utiliser SSIS sans pour autant faire de l’ETL. Par exemple, vous pouvez vous servir de SSIS pour exécuter des 
tâches de maintenance de bases de données, pour lancer une suite de batch un peu complexe ou pour réaliser de la 
réplication de données. 
Toutefois, SSIS est aussi un ETL. Le monde de l’ETL a ses codes et ses règles issues de ces quinze dernières années. 
L’objectif du chapitre, au­delà de la compréhension de ce qu’est l’outil SSIS, est de vous faire découvrir certaines de 
ces pratiques bien spécifiques au monde du décisionnel. Des pratiques auxquelles SSIS est assez bien adapté. 

Un peu comme pour toute la gamme SQL Server, le développement des flux se fera sous SQL Server BI Developpment 
Studio (BIDS). On utilisera en revanche SQL Server Management Studio pour l’administration et l’exploitation. 
Découvrons ensemble dès à présent l’interface de développement : 

■ Ouvrez BIDS. 

■ Cliquez dans la barre de menu sur Fichier ­ Nouveau ­ Projet. 

■ Dans la fenêtre Nouveau Projet, sélectionnez Projet Integration Services, puis saisissez le nom et l’emplacement 
du projet comme ci­dessous : 

© ENI Editions - All rigths reserved - educ algeria - 1-


 

Le projet s’ouvre par défaut sur l’onglet flux de contrôle d’un package vide. Un package est un fichier au format XML à 
l’extension .dtsx 

■ Sur le côté gauche, ouvrez la boîte à outils pour découvrir les éléments de flux de contrôle ainsi que les tâches du 
plan de maintenance disponibles. 

Les  tâches  disponibles  donnent  une  assez  bonne  idée  du  rôle  que  l’on  pourrait  faire  jouer  à  SSIS  et  de  ses 
possibilités : connexion à un service web, exécution de requête SQL, exécution d’application, écriture et exécution de 
scripts, connexion à un serveur FTP, tâche de traitement de SSAS, tâche de sauvegarde de la base de données… 
Dans un flux décisionnel, les tâches de flux de contrôle vont avoir des fonctions de support et d’orchestration, mais ce 
ne sont pas ces tâches qui vont faire à proprement dit le chargement des données. 

Attention, dans le monde du décisionnel, un entrepôt de données ne se charge pas avec de simples requêtes 
SQL. Vous verrez que les exigences de traçabilité et de maintenance de tels flux sont trop élevées pour que 
des requêtes SQL remplissent ce rôle correctement. 

- 2- © ENI Editions - All rigths reserved - educ algeria


Le chargement de données va se réaliser avec la tâche de flux de données. Découvrons cet aspect du produit : 

■ Glissez et posez la tâche de flux de données dans la zone de travail centrale. 

■ Puis double cliquez sur la tâche de flux de données pour accéder à l’onglet Flux de données. 

Vous noterez que la barre d’outils propose maintenant de nouvelles tâches organisées autour de trois thématiques : 

● Sources de flux de données 

● Transformations du flux de données 

● Destinations du flux de données 

La boîte à outils de l’interface de flux de données de SSIS 

En  glissant  la  tâche  de  flux  de  données,  vous  avez  basculé  l’interface  en  mode  véritablement  ETL.  L’acronyme  ETL 
signifie que le flux va être organisé en trois grandes phases : 

● La phase E signifie qu’une tâche va se connecter à une source, pour en Extraire des lignes de données. 

● La  phase T  signifie  que  ces  lignes  vont  passer  par  des  tâches  de  Transformation  pour  subir  des  tests,  des 
validations ou des modifications. 

● La  phase  L  signifie  que  ces  lignes,  une  fois  traitées  et  transformées,  vont  être  chargées  (Load  en  anglais) 
dans la base de données destination. 

Représentation schématique du déroulement d’un flux ETL 

L’ensemble  de  ces  phases  va  se  dérouler  uniquement  en  mémoire,  d’où  des  gains  de  performance  qui  peuvent  être 

© ENI Editions - All rigths reserved - educ algeria - 3-


substantiels par rapport au SQL, si on exploite correctement l’outil. 
La barre d’outils à gauche organise les tâches disponibles dans SSIS par ces trois grandes phases ETL. 
Dans la partie suivante, nous réaliserons un premier flux ETL pour comprendre le fonctionnement de SSIS. 

- 4- © ENI Editions - All rigths reserved - educ algeria


Réaliser son premier flux SSIS 

1. Réaliser le chargement du budget d’un seul site. 

Pour continuer à découvrir l’outil SSIS, nous allons réaliser le flux qui va permettre de charger les budgets de vente 
dans l’entrepôt de données. 
Chez  Distrisys,  les  budgets  des  ventes  sont  saisis  par  chaque  site  directement  dans  Excel,  puis  déposés  dans  un 
répertoire accessible par l’équipe informatique. 
Ces fichiers budgets de ventes sont disponibles en téléchargement sur le site de l’ouvrage. 

■ Téléchargez les fichiers et déposez­les dans un répertoire sur votre disque dur. Vous devriez alors disposer de cinq 
fichiers au format .csv et portant chacun le nom du code du site auquel leurs prévisions sont destinées. 

■ Dans SSIS, au niveau de l’onglet flux de données, glissez cinq nouvelles tâches : 

● E : Source de fichier Plat à renommer Extraction Fichier Budget par Site. 

● T : Colonne dérivée afin d’obtenir le SiteCode à renommer Obtenir SiteCode. 

● T : Recherche afin d’obtenir le Site_FK à renommer Recherche Site_ID. 

● T : Recherche afin d’obtenir le Produit_FK à renommer Recherche Produit_ID. 

● L : Destination OLE DB à renommer Charger FactBudgetVente. 

Nous allons ensuite configurer chacune de ces tâches une à une : 

■ Double cliquez sur la tâche Extraction Fichier Budget par Site afin d’entrer dans le configurateur de la tâche. 

■ Au niveau du Gestionnaire de connexions de fichiers plats, cliquez sur le bouton Nouveau. 

■ L’Editeur du gestionnaire de connexions de fichiers plats s’ouvre. Nommez la connexion FichierPlatBudget. 

■ Au  niveau  de  Nom  de  fichier,  à  l’aide  du  bouton  Parcourir,  sélectionnez  le  fichier  D001.csv.  Le  fichier  source 
contenant  une  ligne  d’entité,  cliquez  sur  l’option  Noms  de  colonne  dans  la  première  ligne  de  données.  Puis 
continuez la configuration comme l’indique la copie d’écran ci­dessous : 

© ENI Editions - All rigths reserved - educ algeria - 1-


Écran de configuration de la connexion à un fichier plat 

Une  alerte  apparaît.  N’y  faites  pas  attention  car  elle  disparaîtra  lorsque  vous  aurez  entièrement  effectué 
toute la procédure qui suit. 

■ Toujours  dans  l’éditeur,  cliquez  sur  l’onglet  Colonnes.  Au  niveau  du  champ  Séparateur  de  lignes,  sélectionnez 
{CR}{LF}. Au niveau du champ Séparateur de colonnes, sélectionnez Point Virgule {;}. 

■ Toujours  dans  l’éditeur,  cliquez  sur  l’onglet  Avancé.  Pour  chaque  colonne,  configurez  la  propriété  DataType 
correspondant au type de champ. Configurez les colonnes de la manière suivante : 

● Date en Entier Signé (4bits) [DT_I4] 

● Produit en chaine [DT_STR] 

● CA en Entier Signé (4bits) [DT_I4] 

● Marge en Entier Signé (4bits) [DT_I4] 

SSIS utilise des types de champs universels ne correspondant pas exactement à ceux de SQL Server. La configuration 
de ces types de champs est extrêmement importante dans SSIS, celui­ci y étant très sensible. 

Le tableau suivant vous donne un aperçu non exhaustif des correspondances les plus courantes : 

Type SQL Server  Type SSIS 

- 2- © ENI Editions - All rigths reserved - educ algeria


Int  [DT_I4] 

Numeric(9,2)  [DT_NUMERIC] 

Varchar  [DT_STR] (page de code 1252) 

SmallDateTime  [DT_DATE] 

■ Terminez la configuration de la connexion fichiers plats en cliquant sur OK. 

■ Vous  devez  alors  revenir  à  la  configuration  de  la  tâche Extraction  Fichier  Budget  par  Site.  Cliquez  sur  l’onglet 
Colonnes, pour sélectionnez et renommez les colonnes de sortie Date en Date_ID et Produit en ProduitCode : 

■ Puis  cliquez  sur  OK.  Vous  venez  de  configurer  la  première  tâche  :  Extraction  Fichier  Budget  par  Site.  L’alerte 
d’avertissement rouge devrait disparaître. 

■ Tirez le bout de la flèche verte vers la tâche suivante Obtenir SiteCode. 

La flèche verte est la flèche des succès et la flèche rouge, celle des échecs. En glissant la flèche verte vers une autre 
tâche, vous indiquez où déverser les lignes de données en succès. 

■ Double cliquez sur la tâche Obtenir SiteCode pour ouvrir l’éditeur de configuration de la tâche. 

La colonne dérivée est une des tâches les plus courantes du Flux de données. Cette tâche permet de modifier une 
colonne à l’aide d’une expression ou d’ajouter une nouvelle colonne au flux. 

La  zone  en  haut  à  gauche  vous  permet  de  sélectionner  une  colonne  du  flux  courant  ou  une  variable.  Cette  notion 
sera abordée plus loin dans le chapitre. 

© ENI Editions - All rigths reserved - educ algeria - 3-


La  zone  en  haut  à  droite  liste  l’ensemble  des  fonctions  disponibles  au  niveau  de  cette  tâche.  Vous  y  trouverez  les 
fonctions  les  plus  courantes  :  conversion  de  données,  fonctions  mathématiques,  opérateurs  d’opérations  et  de 
conditions, fonctions de chaîne de caractères, de date et du traitement de la valeur Null. 

Nous  allons  créer  une  règle  qui  génère  une  nouvelle  colonne  SiteCode  et  lui  affecte  manuellement  la  valeur 
"D001" (correspondant au SiteCode du siège social de Distrisys). 

■ Configurez la tâche comme ci­dessous : 

Vous  avez  dû  remarquer  que  le  type  de  données  d’une  chaîne  de  caractères  est  par  défaut  un  type 
[DT_WSTR],  équivalent  au  type  SQL  Server  nvarchar.  Or,  dans  la  table  DimSite,  SiteCode  est  de  type 
varchar, équivalent au type [DT_STR] de SSIS. 

■ Pour  convertir  SiteCode  en  [DT_STR],  glissez  à  partir  des  fonctions  de  conversion  Cast  de  types  la  fonction 
(DT_STR, <<Lenght>>, <<code_page>>) dans Expression. En remplaçant <<Lenght>> par une valeur vous spécifiez 
la  longueur  de  la  chaîne  de  caractère.  En  remplaçant <<Code_page>>  par  1252,  vous  spécifiez  la  page  de  code 
1252 (ANSI­Latin I). 

Au final, vous devriez avoir dans la colonne Expression : 

(DT_STR,10,1252)"D001"

■ En sortie de l’éditeur  de  tâche,  l’alerte d’avertissement rouge devrait disparaître. Tirez le bout de la flèche verte 


vers la tâche suivante Recherche Site ID. 

Maintenant, nous allons nous atteler à configurer la prochaine tâche : la tâche de Recherche. 
La tâche de Recherche (ou Lookup en anglais) est une tâche essentielle et très caractéristique des processus ETL. 
Cette  tâche  va  établir  une  correspondance  entre  un  ou  plusieurs  champs  du  flux  courant  avec  des  champs  d’une 
table de référence. En sortie, nous pourrons en déduire un ou plusieurs champs de cette même table de référence . 
Pour configurer les dernières tâches de Recherche et de chargement de données, nous avons besoin de créer une 
connexion à DistrisysDW. 

■ Pour cela, faites un clic droit dans la zone du Gestionnaire  de  connexions, situé en bas de l’écran. Sélectionnez 


Nouvelle connexion OLE DB. 

■ Cliquez sur Nouveau. Configurez la connexion pour se connecter à votre entrepôt de données, comme le montre la 
copie d’écran  ci­dessous. Au niveau du champ Nom  du  serveur spécifiez le nom de votre instance SQL Server et 
dans Sélectionner ou entrer un nom de base de données, sélectionnez dans le menu déroulant DistrisysDW : 

- 4- © ENI Editions - All rigths reserved - educ algeria


 

■ Cliquez sur OK. 

■ Renommez cette nouvelle connexion DistrisysDW. 

Cette phase préparatoire terminée, nous allons pouvoir poursuivre la réalisation de notre flux. 

■ Double cliquez maintenant sur la tâche Recherche Site ID pour afficher l’éditeur de Transformation de Recherche. 

Dans l’exemple suivant, nous allons établir la correspondance entre le SiteCode du flux courant avec le DimSite de la 
table DimProduit. En sortie, nous pourrons récupérer l’identifiant technique Site_PK. 

■ Pour cela, cliquez sur l’onglet Connexion. 

■ Sélectionnez DistrisysDW comme Gestionnaire de connexions OLE DB. 

■ Ensuite, spécifiez pour le champ Utiliser une table ou une vue, la table DimSite. 

■ Puis, cliquez sur l’onglet Colonnes. Mappez SiteCode des Colonnes d’entrées disponibles avec le champ SiteCode 
des  Colonnes  de  recherche  disponibles  (table  de  référence).  Pour  cela,  faites  un  clic  droit  sur  SiteCode  de 
Colonnes d’entrée disponibles et sélectionnez modifier les mappages. 

© ENI Editions - All rigths reserved - educ algeria - 5-


 

■ Ensuite,  cliquez  sur  le  champ  Site_PK  de  la  table  de  référence  pour  ajouter  cette  colonne  au  flux  de  données. 
Renommez ce champ Site_ID au niveau de la colonne Alias de sortie. Puis cliquez sur OK pour sortir et valider les 
modifications effectuées dans l’éditeur de tâche. 

■ L’alerte  d’avertissement  rouge  devrait  disparaître.  Tirez  alors  le  bout  de  la  flèche  verte  vers  la  tâche  suivante 
Recherche Produit ID. Sélectionnez la sortie avec correspondance. 

■ Comme réalisé précédemment, configurez la tâche Recherche  Produit  ID. Pour cela, sélectionnez DimProduit en 


table  de  référence.  Puis  faites  le  lien  entre  ProduitCode  du  flux  d’entrée  avec  ProduitCode  de  DimProduit  et 
cliquez sur Produit_PK. Renommez la colonne en sortie Produit_ID. 

■ Tirez  le  bout  de  la  flèche  verte  vers  la  tâche  suivante  Charger  FactBudgetVente.  Sélectionnez  la  sortie  avec 
correspondance. 

■ Éditez maintenant la tâche Charger FactBudgetVente. 

Cette tâche a pour objectif de réaliser l’insertion des lignes dans la table FactBudgetVente de l’entrepôt de données. 

■ Puis continuez la configuration de la tâche comme ci­dessous : 

- 6- © ENI Editions - All rigths reserved - educ algeria


 

En  ce  qui  concerne  le  chargement  d’une  table  de  faits,  le  mode  d’accès  aux  données  doit  toujours  être  en 
chargement  rapide.  De  même,  pour  obtenir  de  meilleures  performances,  l’option Vérifier  les  contraintes  doit  être 
décochée.  Normalement,  lors  du  chargement  d’une  table  de  faits,  les  tâches  de  type  Recherche  devraient  vous 
assurer de l’existence des clés techniques pour chaque identifiant de liaison aux tables de dimension. 

Pour finir, dans l’onglet Mappages, réalisez les correspondances suivantes : 

● Date_ID avec DateBudget_FK. 

● Produit_ID avec Produit_FK. 

● Site_ID avec Site_FK. 

Il n’y a plus d’alerte rouge au niveau des tâches du flux. Au final, vous devriez obtenir le flux de données ci­dessous : 

© ENI Editions - All rigths reserved - educ algeria - 7-


 

■ Dans l’Explorateur de solutions, renommez votre package DW_BudgetVente.dtsx. 

■ Pour exécuter le flux, faites un clic droit n’importe où dans la zone de travail et cliquez sur Exécuter la tâche. 

Si tout se passe bien, les tâches s’allument en vert et le nombre de lignes transférées à chaque étape s’affiche. Dans 
notre cas 120 lignes apparaissent. 

■ Pour  sortir  du  mode  exécution,  cliquez  sur  le  bouton  Arrêter  le  mode  débogage  dans  la  barre  d’outils  de 
débogage. 

Un simple traitement du cube vous permet de rendre ces données disponibles. 

■ Dans SSMS, connectez­vous à Analysis Services. Traitez le cube et réalisez un tableau croisé dynamique avec les 
données nouvellement insérées. 

Vous venez de réaliser votre premier flux ETL avec SSIS. Dans la prochaine partie, nous allons charger l’ensemble des 
budgets pour illustrer l’utilisation de l’onglet Flux de Contrôle. 

2. Charger les données de budget à partir de plusieurs fichiers Excel 

Dans cette partie, nous allons compléter le flux précédent afin d’illustrer l’utilisation de l’onglet et des tâches de flux 
de contrôle, et ainsi bien différencier l’utilisation de ces deux onglets. 
Tout d’abord, afin de pour lancer le flux plusieurs fois lors du développement, nous allons ajouter une tâche de flux 
de contrôle qui efface, avant chaque exécution, toutes les lignes de l’année 2011 de la table FactBudgetVente. 

■ Pour  cela,  dans  SSIS,  allez  sur  l’onglet  Flux  de  contrôle  et  glissez  la  tâche  d’Exécution  de  requêtes  SQL. 
Renommez la tâche Efface les données de budget de 2011. 

■ Éditez la tâche. Au niveau de la propriété  Connection, sélectionnez DistrisysDW. Au niveau de la propriété SQL 
Statement, tapez la requête suivante : 

DELETE FROM FactBudgetVente WHERE DateBudget_FK>=20110101

■ Tirez la flèche verte vers la tâche de flux de données que vous renommerez : Chargement du budget d’un Site. 

- 8- © ENI Editions - All rigths reserved - educ algeria


■ Exécutez le flux en faisant un clic droit sur le package au niveau de l’explorateur de solutions. 

Actuellement,  le  flux  ne  charge  que  le  budget  du  site  D001  (Siège  social).  La  finalité  serait  que  le  flux  parcourt  le 
répertoire, où sont déposés les fichiers de budget, puis de charger ces fichiers les uns après les autres. Pour réaliser 
cela, nous allons utiliser la tâche Conteneur de boucle Foreach. 

■ Glissez la tâche Conteneur de boucle Foreach, puis renommez­la : Lire les fichiers Site dans un répertoire. 

■ Supprimez le lien entre les tâches Efface les données de budget de 2011 et Chargement du budget d’un Site. 

■ Glissez la tâche Chargement du budget d’un Site dans le périmètre du For Each. 

■ Entrez dans le configurateur de la tâche de conteneur de boucle For Each. 

■ Configurez les propriétés de l’onglet Collection : 

● Énumérateur : Enumérateur Foreach File. 

● Dossier : spécifiez le répertoire où sont stockés vos fichiers CSV. 

● Fichiers : D*.csv, afin de récupérer uniquement les fichiers de site au format .csv. 

● Récupérez le nom de fichier : Complet, afin de récupérer le chemin complet d’accès aux fichiers. 

Configuration de la boucle Foreach dans le cas du parcours de fichiers dans un répertoire 

© ENI Editions - All rigths reserved - educ algeria - 9-


■ Dans  l’onglet  Mappage  de  variables,  créez  une  nouvelle  variable  CheminCompletFichier  avec  les  propriétés 
suivantes : 

● Conteneur : BudgetVente 

● Nom : CheminCompletFichier 

● Espace de noms : User 

● Type de valeur : string 

● Valeur : c:\SSIS\D001.csv (spécifiez le chemin complet de votre fichier csv afin d’initialiser le contenu de la 
variable) 

■ Puis mappez cette variable sur l’index 0, comme ci­dessous : 

À chaque itération de la boucle, la variable User::CheminCompletFichier va prendre la valeur du chemin d’accès au 
fichier de budget (nom du fichier avec extension incluse). 

Nous allons donc dynamiser la valeur du chemin d’accès de la connexion FichierPlatBudget à l’aide de cette nouvelle 
variable. 

■ Pour  cela,  dans  le  gestionnaire  de  connexions  en  bas  de  la  zone  de  travail  de  SSIS,  faites  un  clic  droit  sur 
FichierPlatBudget afin d’afficher les propriétés de la connexion. 

■ Dans les propriétés, cherchez la propriété Expressions puis cliquez sur le bouton pour afficher l’éditeur. 

- 10 - © ENI Editions - All rigths reserved - educ algeria


■ Dans  l’éditeur  d’expressions  de  la  propriété,  affectez  la  variable  User::CheminCompletFichier  à  la  propriété 
ConnectionString, comme ci­dessous : 

Ainsi  la  propriété  ConnectionString  de  la  connexion  FichierPlatBudget  va  prendre  la  valeur  de  la  variable 
User::CheminCompletFichier à chaque itération de la boucle. 

Pour afficher la liste des variables et pour pouvoir les modifier ou en créer d’autres, cliquez dans la barre de 
menu sur SSIS>>variables. 

Pour finir, il nous faut récupérer le SiteCode contenu dans le nom du fichier, et donc dans le nom de la variable. 

■ Basculez dans l’onglet Flux de données et modifiez la tâche Obtenir SiteCode, pour affecter à la colonne SiteCode 
l’expression suivante : 

(DT_STR,10,1252)SUBSTRING(RIGHT(@[User::CheminCompletFichier],8),1,4)

Le flux de contrôle au final devrait ressembler à ceci : 

■ Exécutez  le  flux  pour  vérifier  que  tout  fonctionne  correctement.  La  tâche  de  flux  de  chargement  du  budget  va 
s’exécuter autant de fois qu’il y aura de fichiers csv de budget. 

Cet exemple concret de l’utilisation de SSIS vous a permis de comprendre la différence d’utilisation des deux facettes 
de SSIS. En utilisation décisionnelle : 

● Le  flux  de  contrôle  permet  de  piloter  l’exécution  d’un  flux  de  données  et  doit,  autant  que  possible,  ne  pas 
avoir d’influence directe sur les données. 

© ENI Editions - All rigths reserved - educ algeria - 11 -


● Le flux de données réalise l’extraction, le traitement et le chargement. Il n’a d’influence que sur les données 
elles­mêmes. 

- 12 - © ENI Editions - All rigths reserved - educ algeria


Développer des flux ETL pour le décisionnel 

1. Déroulement de l’exécution d’un processus ETL 

Dans cette partie, nous allons vous présenter les différents types de flux, que vous serez en mesure de rencontrer 
pour alimenter votre entrepôt de données. 
Dans les faits, les données ne vont pas transiter directement des systèmes sources vers l’entrepôt de données. Les 
données  vont  transiter  par  au  moins  un  palier  :  le  sas  de  données.  Dans  notre  cas,  nous  appellerons  cette  base 
DistrisysSA (SA en anglais signifiant Staging Area). 

Le chargement va se faire suivant ce schéma de principe : 

Architecture de chargement de données 

Il est à noter que la base SQL MDS fait référence aux bases de données de référentiel du produit SQL Server 
Master  Data  Services.  Nous  ne  traiterons  pas  dans  cet  ouvrage  de  MDS.  Cet  outil,  inclus  dans  la  suite  SQL 
Server depuis la version 2008 R2, permet de centraliser la gestion des données de référence de l’organisation. Dans 
une  organisation  efficiente,  ces  données  de  référence  sont  la  source  de  vos  principales  tables  de  dimensions  : 
client, produit, fournisseur, organisation... 

Le SA a plusieurs rôles : 

● Rapatrier  les  informations  émanant  de  sources  multiples,  en  garantissant  qu’il  n’y  ait  pas  de  pertes  de 
données lors de ce processus. 

● Faire  une  zone  mémoire  tampon  d’un  état  brut  de  la  source  à  un  instant  passé  et  ainsi,  faciliter  la  mise  en 
œ uvre d’un processus de reprise de données, que nous verrons dans ce chapitre à la section L’audit des flux 
ETL. 

La mise en place d’un SA est une étape indispensable à la bonne mise en œ uvre de vos flux ETL. 

Nous répartirons les rôles de la manière suivante : 

● Les flux entre les systèmes sources et le SA seront des flux de copie de données (EL). Nous éviterons donc, 
dans le SA, toute contrainte d’intégrité, et dans les flux, toute règle de gestion et autre requête avec jointure 
interne, qui peut provoquer une déperdition de données sources. Les tables du SA ne sont pas soumises à 
une modélisation. Le SA est simplement à but pratique afin de simplifier la seconde étape. 

● Les flux entre le SA et le DW seront de véritables flux ETL. Nous utiliserons alors pleinement l’onglet Flux de 
données de SSIS ainsi que les tâches de transformation. C’est à cette étape­ci, que nous réaliserons un audit 
précis de nos flux. 

Le déroulement du flux décisionnel va donc se dérouler ainsi : 

© ENI Editions - All rigths reserved - educ algeria - 1-


Déroulement de l’exécution des flux décisionnels 

En décisionnel, il existe donc trois sortes de flux différents : 

● Les flux de copie des données sources vers le SA. 

● Les flux de gestion et de mise à jour des dimensions du DW. 

● Les flux de chargement des tables de faits du DW. 

Dans les parties qui vont suivre, nous allons illustrer la réalisation de chacun de ces flux. 

2. Réaliser un flux pour charger le sas de données 

Lors de cette partie, nous allons étudier un flux permettant de copier des données de facturation vers une base de 
données DistrisysSA. 
Dans  notre  étude  de  cas,  Distrisys  dispose  d’un  système  de  gestion  par  site.  Pour  réaliser  une  copie  complète  des 
données, notre flux devra donc se connecter successivement à chacun de ces sites. 

■ Afin de réaliser, de suivre et d’exécuter le flux présenté dans ce chapitre, téléchargez sur le site des Éditions ENI, 
les éléments suivants : 

Les fichiers de sauvegarde de base de données : 

● DistrisysERP_SiegeSocial.bak 

● DistrisysERP_AgenceSud.bak 

● DistrisysERP_AgenceOuest.bak 

● DistrisysSA.bak 

Le package SSIS : 

● SA_Facture.dtxs 

■ Restaurez les trois bases de données. 

- 2- © ENI Editions - All rigths reserved - educ algeria


Dans SSMS, vous devriez alors avoir les cinq bases de données suivantes : 

La base de données DistrisysSA contient les trois tables suivantes : 

● Facture : le contenu des tables sources, concernant les données de facturation, sera copié dans cette table. 

● Produit : le contenu des tables sources, contenant les données concernant les produits, sera copié dans cette 
table. 

● ListeSystemeSource  :  cette  table  liste  les  sites  auxquels  nous  souhaitons  nous  connecter,  ainsi  que  les 
chaînes de connexion de chacune des bases de données de ces sites. 

Par  défaut,  les  chaînes  de  connexion  existantes  font  référence  à  un  serveur  et  une  instance  SQL  Server.  Pensez  à 
remplacer ces valeurs par le nom de votre instance SQL Server. 

Nous allons maintenant ouvrir le package contenant le flux à étudier. 

■ Dans SSIS, au niveau de l’Explorateur de solutions, faites un clic droit sur l’élément Package SSIS, puis cliquez sur 
Ajouter le package existant. 

■ Dans  la  fenêtre  qui  s’ouvre,  sélectionnez  pour  Emplacement  du  package,  Système  de  fichier.  Parcourez  votre 

© ENI Editions - All rigths reserved - educ algeria - 3-


disque pour sélectionner le fichier précédemment téléchargé SA_Facture.dtsx, puis cliquez sur OK. 

L’onglet Flux de contrôle du package SA_Facture.dtsx se présente ainsi : 

Flux de contrôle du flux SA_Facture.dtsx 

Ce package dispose des variables suivantes : 

Liste des variables du flux SA_Facture.dtsx 

Le flux fonctionne ainsi : 
1. La première tâche réinitialise la table Facture de la base de données DistrisysSA. 
2.  La  seconde  tâche,  Lire  la  Table  DistrisysAuditListeSystemeSource,  affecte  le  contenu  de  la  table 
ListeSystemeSource dans la variable de type Objet du même nom. 

Pour faire cela, la tâche Exécution SQL est configurée ainsi : 

- 4- © ENI Editions - All rigths reserved - educ algeria


 

La requête exécutée est la suivante : 

SELECT [Site],[SiteCode],[ConnexionSource] FROM


[ListeSystemeSource] Where Valide=’O’

3.  La  troisième  tâche  Pour  chaque  Site,  de  type  Conteneur  de  boucle  Foreach,  parcourt  la  variable  récupérée 
précédemment, pour lancer à chaque itération le flux de données Copie de Facture de la source. 
La tâche Pour chaque Site est configurée ainsi : 

© ENI Editions - All rigths reserved - educ algeria - 5-


 

À  chaque  itération,  les  variables  User::SiteNom,  User::SiteCode  et  User::ChaineConnexionSource  viennent 


récupérer les valeurs des champs de la ligne courante, parcourues par la boucle. 

- 6- © ENI Editions - All rigths reserved - educ algeria


 

4. Enfin, la tâche de flux de données effectue la copie des données de facturation du système source courant vers la 
table Facture de DistrisysSA. 

Le flux de données est très simple, on évite autant que possible toute modification de données. La colonne dérivée 

© ENI Editions - All rigths reserved - educ algeria - 7-


Obtenir SiteCode ajoute simplement au flux, le contenu de la variable User::SiteCode identifiant le site courant. 
La  connexion  à  la  source  de  données  se  fait  par  la  configuration  de  la  connexion  DistrisysERP.  À  chaque  itération, 
DistrisysERP  récupère  la  valeur  de  la  chaîne  de  connexion  de  la  variable  User::ChaineConnexionSource.  Cette 
configuration est du même ordre que celui réalisé dans le flux de chargement du budget. 

■ Pour que le flux fonctionne, modifiez les chaînes de connexions spécifiées dans la table ListeSystemeSource, ainsi 
que celles de DistrisysSA, pour les adapter à votre environnement serveur. 

■ Exécutez le flux pour suivre et observer le comportement du package. 

Ce flux n’est  qu’une illustration de flux de récupération de données. Ce type de flux peut prendre des formes assez 
diverses.  À  l’opposé,  les  flux  de  chargement  des  dimensions  et  des  tables  de  faits  sont  des  flux  très  stéréotypés. 
Leurs formes sont assez transposables d’une table à une autre, et d’un système à l’autre. 

3. Réaliser un flux pour charger une dimension 

a. Cas d’une dimension standard 

Nous  allons  à  présent  étudier  un  flux  de  chargement  et  de  mise  à  jour  de  la  table  de  dimension  Produit.  Sauf 
exception, tous les flux de chargement et de mise à jour des dimensions sont réalisés sur le modèle standard qui va 
suivre ou sur celui proposé dans la partie suivante. 
Nous  considérerons  que  le  flux  qui  charge  la  table  Produit,  à  partir  des  systèmes  sources  ou  de  SQL  Master  Data 
Services,  a  été  réalisé.  Nous  disposons  alors  des  données  Produit  courantes  dans  la  table  Produit  de  la  base  de 
données DistrisysSA. 
Le  flux  que  nous  allons  étudier  va  récupérer  les  données  de  cette  table  Produit  de  DistrisysSA.  Puis  il  va  venir 
comparer ces données avec le contenu de DimProduit de DistrisysDW. 
Dans la plupart des cas, les flux de dimensions doivent vérifier : 

● S’il y a un nouveau membre à ajouter dans la dimension. 

● S’il  y  a  eu  une  modification  dans  une  des  propriétés  d’un  élément  de  la  dimension.  Si  c’est  le  cas,  le  flux 
effectue la mise à jour. 

● Dans le cas de modification ou d’ajout d’un nouveau membre, le flux doit émettre une alerte. Nous verrons 
cela dans ce chapitre à la section L’audit des flux ETL. 

Commençons la procédure. 

■ Téléchargez sur le site de l’ouvrage, le package DW_Dimproduit.dtsx. 

■ Dans SSIS, au niveau de l’Explorateur de solutions, ajoutez ce package à votre projet. 

■ Ouvrez le package DW_Dimproduit.dtsx. 

■ Le contrôle Flow ne contient qu’une tâche de flux de données. Cliquez sur l’onglet Flux de données. 

- 8- © ENI Editions - All rigths reserved - educ algeria


Flux ETL de mise à jour de la dimension produit 

Ce flux comprend la connexion à deux sources de données : 

● Celle de la table Produit de DistrisysSA. 

● Celle de la table DimProduit de DistrisysDW. 

La tâche de colonne dérivée Epurer les chaines de caractères n’est là que pour nettoyer les chaînes de caractères 
de tout caractère d’espacement à droite et à gauche, pouvant altérer la transformation qui va suivre. 

L’idée  du  flux  est  de  venir  comparer  ces  deux  sources  de  données,  en  réalisant  une  jointure  externe  gauche  en 
faveur des données de DistrisysSA, à la manière d’un LEFT OUTER JOIN en SQL. 

Les  tâches  de  tri  en  entrée  de  la  tâche  de  fusion  sont  nécessaires,  d’une  part  pour  des  considérations  de 
performance, d’autre part parce que c’est l’ordre de tri qui détermine la clé de jointure de la tâche de fusion. 

Nous récupérons en sortie de la tâche de fusion les champs des deux sources de données. 
La tâche Jointure de fusion externe à gauche est configurée ainsi : 

© ENI Editions - All rigths reserved - educ algeria - 9-


 

En  sortie  de  fusion,  la  tâche  Fractionnement  conditionnel, nommée  Identification  des  nouveaux  produits  et  des 
produits à mettre à jour, permet par des tests simples d’identifier les lignes en ajout, les lignes à modifier, les lignes 
pour lesquelles aucun traitement n’est nécessaire. 

- 10 - © ENI Editions - All rigths reserved - educ algeria


 

S’il s’agit d’une nouvelle ligne, une tâche de Destination OLE DB se charge de faire l’ajout dans la table DimProduit 
de DistrisysDW. 

Il  est  important  de  laisser  la  clé  produit_PK  être  gérée  par  SQL  Server,  en  vérifiant  bien  qu’elle  soit  en 
incrémentation automatique 

S’il  s’agit d’une  modification,  les  lignes  sont  mises  à  jour  à  l’aide d’une  tâche Commande  OLE  DB.  La  requête  est 
paramétrée.  C’est­à­dire qu’elle  est  fonction  de  paramètres  (identifié  par  un  ?),  que  nous  venons  mapper  sur  des 
champs disponibles dans le flux. 
La requête exécutée est la suivante : 

UPDATE [DimProduit]
SET [Produit] = ?,[SousFamilleCode] = ?,[SousFamille] =
?,[FamilleCode] = ?,[Famille] = ?
WHERE [ProduitCode] = ?

■ Le  mappage  des  paramètres  de  la  requête  peut  être  visualisé  en  double  cliquant  sur  la  tâche  Mise  à  jour  des 
produits modifiés puis sur l’onglet Mappage de colonnes : 

© ENI Editions - All rigths reserved - educ algeria - 11 -


 

À noter que l’ordre des paramètres est fonction de leur apparition dans la requête SQL. 
Réalisons la procédure suivante afin de tester le fonctionnement du flux : 

■ Modifiez les connexions DistrisysSA et DistrisysDW afin de les adapter à votre environnement. 

■ Lancez  le  flux  en  cliquant  sur  Exécuter  le  package.  Assurez­vous  qu’au  premier  lancement,  le  flux  ajoute  une 
nouvelle ligne et met à jour une seconde ligne. 

■ Servez­vous de SSMS, afin de constater les modifications dans la table DimProduit avant et après l’exécution du 
flux. 

■ Avec SSMS, faites des modifications manuelles dans la table Produit DistrisysSA et relancez le flux. Vérifiez que 
vos modifications sont bien prises en compte. 

Nous venons de voir comment réaliser un flux ETL de mise à jour de dimensions. Ce flux est typique; c’est­à­dire que 
la plupart des flux ETL de mise à jour des dimensions auront ce formalisme. Néanmoins, il existe des cas particuliers. 
C’est ce que nous verrons dans la partie suivante. 

b. Cas d’une dimension en SCD 

Dans certains cas, la modification des données est trop brutale pour l’utilisateur. Il faut alors gérer les modifications 
dans la dimension de manière plus fine. 

Prenons  un  exemple,  chez  Distrisys,  la  vente  de  cafetières  bat  des  records  en  prenant  une  part  de  plus  en  plus 
conséquente dans le CA de la société. 

La  stratégie  de  l’entreprise  est  donc  de  développer  la  vente  de  cafetières.  Une  nouvelle  organisation  commerciale  est 
décidée et un chef produit va être nommé à cet effet. 

- 12 - © ENI Editions - All rigths reserved - educ algeria


Cafetière  est  aujourd’hui  une  sous­famille  de  l’activité Petit Ménager.  Distrisys  souhaite  que Cafetière  devienne  une 
famille Produit au même titre que Grand Ménager et Petit Ménager. 

Seulement,  la  direction  souhaite  que  cette  nouvelle  organisation  ne  prenne  effet  qu’à partir du mois de mai. D’ici  là,  les 
ventes de cafetières continueront à être affectées à la famille Petit Ménager. De ce fait, les ventes de cafetières, à partir du 
mois de mai, devront être affectées à la nouvelle famille, mais l’historique des ventes continuera à être affecté, comme elle 
est aujourd’hui, à la famille Petit Ménager. 

Si en mars, l’équipe décisionnelle procède comme le fait le flux précédent, à l’écrasement du code famille Petit Ménager par 
un nouveau code Cafetière, nous ne répondons pas au besoin de la direction. Nous perdons la vision de l’historique. Nous 
entrons alors dans un cas de configuration dit de la dimension à évolution lente. 

Le concept de dimension à variation lente ou SCD (Slowly Changing Dimension) a été défini par Ralph Kimball, le père 
fondateur de l’entrepôt de données. 
Ralph Kimball identifie plusieurs types de modifications au niveau de chaque champ de données de la dimension : 

● Le  type  0  (attribut  fixe)  :  le  champ  ne  peut  être  modifié.  Dans  notre  cas,  il  s’agit  du  ProduitCode  ou  du 
Produit_PK par exemple. 

● Le type 1 (modification d’attribut) : le champ peut être modifié. En cas de modifications, l’ancienne valeur est 
simplement écrasée par la nouvelle valeur. C’est le cas que nous avons mis en œ uvre au flux précédent avec 
les champs Produit, SousFamilleCode, Sous Famille, FamilleCode et Famille. 

● Enfin,  il  existe  le  type  2  (attribut  d’historique)  qui  suggère  que  les  modifications  du  champ  considéré 
n’impactent pas les valeurs passées mais seulement les valeurs futures. 

Concrètement, les lignes de faits déjà chargées continueront à être affectées à l’ancien membre de la dimension. Les 
futures  lignes  de  faits  seront  affectées  à  un  nouveau  membre  de  la  dimension  comportant  les  mêmes 
caractéristiques que le précédent, à l’exception près du champ de type 2 modifié. 
Prenons un exemple de notre dimension DimProduit actuelle : 

Nous ajoutons une colonne valide. La valeur 1 signifie que le produit est en activité. Une valeur à 0, signifie qu’il n’est 
plus en activité. 
Les ventes de cafetières, dans la table de faits des factures, vont être affectées à la clé technique Produit_PK 8, 10 
ou 11. 

Imaginons que nous sommes le 1er mai. La création de la nouvelle Famille Cafetière a lieu. Le champ FamilleCode étant de 
type 2, nous devrons avoir la nouvelle table DimProduit suivante : 

© ENI Editions - All rigths reserved - educ algeria - 13 -


 

Les lignes, avec les anciennes clés techniques identifiant les cafetières, les Produit_PK 8,10 et 11 ont été invalidées. 
En revanche, trois nouvelles lignes sont créées en remplacement des trois précédentes : il s’agit des lignes 12, 13 et 
14, et ces nouvelles lignes sont valides et contiennent le même ProduitCode que les anciennes lignes. 
Ainsi, les ventes de cafetières, à compter de cette date, vont être affectées dans la table de faits des factures aux 
nouvelles clés Produit_PK 12, 13 et 14. 
Les valeurs passées de la table de faits n’ont de ce fait pas été affectées par ce changement. 
SSIS nous aide à mettre en œ uvre le SCD. Pour cela, nous disposons d’une tâche d’assistance, la tâche Dimension à 
variation lente. Réalisons maintenant le flux de chargement des produits utilisant le SCD. 

Si  vous  ne  souhaitez  pas  le  réaliser  vous­même,  le  package  DW_DimProduit_Avec_SCD.dtsx  est 
disponible en téléchargement sur le site du livre. 

■ Avant  toute  chose,  dans  SSMS, modifiez  la  structure  de  la  table  DimProduit en ajoutant une nouvelle colonne 
Valide de type bit. 

■ Spécifiez une valeur par défaut de valide à True. 

■ Modifiez toutes les lignes de DimProduit pour que le champ Valide soit à True. 

- 14 - © ENI Editions - All rigths reserved - educ algeria


 

■ Dans le projet SSIS, créez un nouveau Package DW_DimProduit_avec_SCD.dtsx. 

■ Créez les deux connexions sources à DistrisysSA et à DistrisysDW. 

■ Dans le flux de contrôle, glissez une tâche de flux de données. 

■ Puis, dans Flux de données, glissez une tâche Source OLE DB se connectant à DistrisysSA et à la table Produit. 

■ Vous pouvez également glisser une tâche Colonne dérivée, pour faire le nettoyage des champs de type chaînes 
de caractères (cela est facultatif). 

■ Glissez ensuite la tâche Dimension à variation lente. 

■ Connectez la tâche de colonne dérivée à la tâche Dimension à variation lente. 

Vous devriez alors avoir les trois tâches suivantes : 

■ Puis double cliquez pour modifier la tâche Dimension à variation lente. Un assistant s’ouvre, cliquez sur Suivant. 

■ Identifiez  à  l’écran  Sélectionner  une  table  et  des  clés  de  dimension,  la  connexion  DistrisysDW,  la  table 
DimProduit et sélectionnez ProduitCode comme étant la clé d’entreprise à l’aide du menu déroulant. 

© ENI Editions - All rigths reserved - educ algeria - 15 -


■ Dans la  Colonnes d’entrée, sélectionnez les mêmes noms que ceux apparaissant dans Colonnes  de  dimension. 
Puis cliquez sur le bouton Suivant. 

Le SCD fait apparaître avec évidence la nécessité d’identifier  des  clés  techniques  différentes  des  clés  d’entreprise. 


Dans notre cas, Produit_PK est une clé technique et ProduitCode est la clé d’entreprise. 
Au niveau de l’interface, Colonne de dimensions à variation lente, sélectionnez le type d’attribut et procédez comme 
ce qui est indiqué ci­dessous. 

- 16 - © ENI Editions - All rigths reserved - educ algeria


 

Dans notre cas, nous spécifions les champs SousFamilleCode, SousFamille, Famille et Produit en attribut de type 
1 : Modification d’attribut. 

En revanche, le champ FamilleCode est en type 2 : attribut d’historique. 

■ À l’écran Options des attributs fixes et variables, cliquez sur Suivant. 

■ À  l’écran  Options  des  attributs  d’historique,  sélectionnez  l’option  Utiliser  une  seule  colonne  pour  afficher  les 
enregistrements actifs et expirés, puis configurez les champs comme ci­dessous : 

© ENI Editions - All rigths reserved - educ algeria - 17 -


 

SSIS  intègre  plusieurs  modes  de  gestion  des  lignes  valides  et  obsolètes  :  soit  la  gestion  par  un  champ  unique  (le 
champ Valide dans notre cas), soit la gestion par encadrement de dates. Un champ identifie alors la date de début 
de validité et un autre la date de fin de validité. 

■ Sur l’écran Membres de la dimension inférés, décochez la case Activer la prise en charge des membres inférés. 

La gestion des membres inconnus ou des membres n/a est une gestion que je vous conseille de prendre en 
charge vous­même au sein de votre flux. C’est un aspect pris en charge dans la gestion d’audit. 

■ Sur l’écran Fin de l’assistant Dimension à variation lente, cliquez sur Terminer. 

En fin d’assistant, SSIS génère alors les tâches correspondantes au comportement attendu par le SCD. 

■ Pour tester, faites des modifications avec SSMS dans la table Produit de DistrisysSA. 

Par exemple affectez les produits de type cafetière à une nouvelle FamilleCode C et Famille Cafetière. 

■ Puis exécutez le flux. 

- 18 - © ENI Editions - All rigths reserved - educ algeria


Fin d’exécution d’un flux de mise à jour d’une dimension à variation lente 

Table DimProduit, avant exécution du SCD : 

Table DimProduit, après exécution du SCD : 

© ENI Editions - All rigths reserved - educ algeria - 19 -


Nous  obtenons  exactement  le  comportement  attendu  initialement.  Le  SCD  a  fonctionné  en  créant  trois  nouveaux 
membres valides, et en invalidant les trois membres remplacés. 

Attention,  dans  la  réalité  la  tâche  SCD  doit  être  réfléchie  au  moment  de  la  conception  de  l’entrepôt  de 
données et de la conception des flux. Le SCD doit être mis en œ uvre uniquement dans le cas de dimension 
de  taille  raisonnable,  soit  environ  moins  de  20000  lignes  et  uniquement  dans  le  cas  de  champs  ne  variant  pas 
beaucoup ou du moins lentement. Dans le cas de dimensions larges ou de dimensions à variation rapide, comme 
par  exemple  la  dimension  Abonné  d’un  opérateur  téléphonique  ou  la  dimension  Produit  en  grande  distribution, 
nous utiliserons plutôt le flux précédent et gérerons l’historisation avec un autre procédé qui affecte directement la 
modélisation du DW : le principe de mini­dimension. 

 
Nous rappelons que ce flux est incomplet sans la mise en œ uvre de l’audit.

4. Réaliser un flux pour charger une table de faits 

Nous  allons  à  présent  réaliser  le  flux  de  chargement  des  tables  de  faits  FactFacture  et  FactFactureEntete  de 
l’entrepôt de données DistrisysDW. 

Dans tous les cas, un flux de chargement de tables de faits a les caractéristiques suivantes : 

● Il fait suite au chargement et à la mise à jour de toutes les tables de dimension. 

● Il doit s’assurer, avant l’insertion, des contraintes d’intégrité entre la table de faits et ses dimensions. 

● Il se charge uniquement en insertion rapide. 

● Il possède toutes les caractéristiques d’un flux ETL : Extraction simple d’une source (pas de grandes requêtes 
SQL),  puis  passage  par  des  tâches  de  transformations  et  d’évaluation  des  données,  et  enfin  chargement 
rapide des données. 

Nous  ne  ferons  jamais  de  mise  à  jour  de  données  par  requête  SQL  update  sur  une  table  de  faits.  Si  vous 
devez en arriver à de telles pratiques, révisez la stratégie ou la conception de vos flux, il y a forcément une 
meilleure solution. 

Décrivons maintenant le flux de chargement des tables de faits FactFacture et FactFactureEntete. 
Le package Dw_FactFacture.dtsx, illustrant ce processus et détaillé dans cette partie, est disponible en télchargement 
sur le site du livre. Reportez­vous y pour obtenir des détails complémentaires. 

Attention, ce flux est brut, c’est­à­dire qu’il n’intègre pas encore la gestion des erreurs et des audits. Ce flux 
est donc incomplet mais suffisant pour en comprendre son essence. 

Tout d’abord, ces deux tables de faits disposent en réalité d’une source unique : la table Facture du sas de données 
DistrisysSA. Le chargement de ses tables se fera alors à partir de la même extraction de données. 

- 20 - © ENI Editions - All rigths reserved - educ algeria


 

La  tâche Nettoyage  des  chaînes  de  caractères,  de  type  colonne  dérivée,  s’assure  que  des  espaces,  à  droite  ou  à 
gauche  de  la  chaîne  de  caractères  identifiant  notamment  un  code,  ne  viennent  pas  polluer  la  compréhension  de  la 
donnée. 

Ensuite, le flux va enchaîner une chaîne de tâches  Recherche, visant à traduire la date de facturation ainsi que les 
codes produit, client et site en clé technique. 
Cette  succession  de  tâches  Recherche  constitue  la  meilleure  vérification  des  contraintes  d’intégrité  entre  tables  de 
faits et de dimensions. 

© ENI Editions - All rigths reserved - educ algeria - 21 -


 

Au niveau de la tâche Recherche DateFacturation_FK, la configuration est la suivante : 

● La table de référence est DimTemps. 

● Le mapping est réalisé entre le champ DateFacturation en provenance de la source de données et le champ 
Date de la table de dimension DimTemps. 

● Le champ Temps_PK, renommé Datefacturation_FK est en sortie de correspondance. 

- 22 - © ENI Editions - All rigths reserved - educ algeria


 

Ensuite, le flux se divise en deux : 

● Un premier flux va charger la table FactFacture. 

● Un second flux va charger la table FactFactureEntete. 

La division du flux sans condition est assurée par la tâche Multidiffusion. 

Avant  de  charger  FactFacture,  une  dernière  tâche  de  type  Colonne  dérivée  Calculer  la  Marge  et  le  PrixCatalogue, 
assure la création de deux champs manquants : 

© ENI Editions - All rigths reserved - educ algeria - 23 -


Puis la tâche effectue le chargement rapide vers la destination : 

● L’option Vérifier les contraintes est désactivée, puisque les tâches de Recherche s’en sont déjà assurées. Le 
chargement n’en sera que plus rapide. 

La  disponibilité  d’un  grand  nombre  de  disques  durs  est  assez  primordiale  dans  une  architecture  physique 
décisionnelle. Si les filegroup des tables Factfacture et FactFactureEntete étaient sur des disques physiques 
différents, le chargement n’en serait que moins risqué et plus rapide. Tout dépend ensuite du volume de données et 
du temps consenti au chargement ETL... 

Le deuxième flux s’oriente vers une tâche de type  Agrégation  qui  joue  en  fait  le  rôle  d’un Group  By en SQL. Cette 
tâche va regrouper les données suivant les colonnes DateFacturation_FK, Site_FK et Client_FK et compter le nombre 
de lignes distinctes Produit_PK, pour en déduire le nombre d’articles différents que comprend la facture. 

- 24 - © ENI Editions - All rigths reserved - educ algeria


 

La dernière tâche de type Destination OLE DB procède au chargement de FactFactureEntete sur les mêmes bases de 
configuration que FactFacture : chargement rapide et pas de vérifications des contraintes d’intégrité. 
Nous venons de réaliser le flux de chargement de nos tables de faits FactFacture et FactFactureEntete. Mais ces flux 
ne sont pas achevés sans une gestion fine des erreurs et un audit du déroulement du flux. 
À la prochaine étape, vous allez découvrir les quelques concepts liés à l’audit des flux ETL. 

© ENI Editions - All rigths reserved - educ algeria - 25 -


L’audit des flux ETL 

1. Les objectifs de l’audit de flux ETL 

Les exemples qui ont été présentés précédemment sont des flux inachevés, dans le sens où ses flux n’intègrent pas 
la gestion d’erreurs et l’audit du déroulement du flux. 

Par expérience, l’audit de processus ETL, souvent appelé à tort gestion des rejets, génère soit beaucoup de 
fausses croyances, soit beaucoup de faux espoirs. Dans la plupart des cas, elle est même mise de côté. Une 
des principales idées reçues consiste à faire croire qu’un logiciel ou qu’un package miracle permet de mieux gérer la 
qualité des données. Dans les faits, l’audit des processus ETL est un travail de finesse du concepteur ETL, traitant 
un cas ou un contexte particulier. Si un cas peut difficilement être retranscrit à l’identique pour un autre cas, il en 
reste néanmoins des bonnes pratiques. C’est ce que nous allons voir au cours de cette partie. 

Tout d’abord, nous allons nous poser les questions suivantes : qu’est donc l’audit de flux ETL ? Quel est son objectif ? 
En fait, l’audit de processus ETL poursuit des objectifs multiples et permet de répondre à de nombreuses questions. 
Cela signifie que suivant le contexte, on va rendre plus performant l’audit sur certains points plutôt que sur d’autres. 
Les objectifs poursuivis par l’audit des processus ETL sont : 

● L’audit de flux ETL permet d’informer du déroulement du processus ETL : 

Le processus ETL a­t­il eu lieu ? Est­il terminé ? A­t­il terminé avec succès ? Quelle a été sa durée ? 

● L’audit de flux ETL permet de traiter et d’alerter sur les erreurs rencontrées : 

Quelle  est  la  nature  des  erreurs  rencontrées  ?  Combien  y  en  a­t­il  ?  Quelles  sont­elles  ?  Quelles  sont  les  origines  des 
problèmes ? Combien dénombre­t­on  d’origines différentes ? Quelles sont les lignes concernées ? Combien de lignes sont 
concernées ? 

● L’audit de flux ETL permet de suivre l’évolution de la performance du processus ETL : 

Mon  flux  se  fiabilise­t­il  ?  Génère­t­il  de  moins  en  moins  d’erreurs  ?  Comment  les  durées  d’exécution  des  différents  flux 
évoluent­elles ? 

● En  cas  d’erreur  à  rebours,  sur  une  exécution  de  flux,  l’audit  de  flux  ETL  doit  permettre  d’identifier  les  lignes 
concernées. 

Un bon processus d’audit doit pouvoir répondre à toutes ces questions et peut­être même à d’autres plus spécifiques 
à votre organisation. 
Les maîtres mots de l’audit ETL sont traçabilité et communication : 

● Traçabilité,  vous  l’aurez  compris,  pour  répondre  aux  questions  d’enquêtes  classiques  de  type  Qui  ?  Quoi  ? 
Où ? Quand ? Comment ? Pourquoi ? 

● Communication, car l’audit de processus ETL est intimement lié aux problématiques décisionnelles et donc aux 
prises de décision. 

La délivrance de l’information ne vaut que si on est capable d’en estimer ou d’en évaluer son niveau de fiabilité. 

Le système d’audit va être cette source d’informations. Les indicateurs issus du système d’audit ont la même valeur 
que les indicateurs métier. Et ces données présentées aux décideurs vont participer directement à la prise de décision. 

2. Conception d’un système d’audit de flux 

Avant de réaliser le système d’audit de flux, il est nécessaire de penser la stratégie de gestion d’erreurs. 

Mon  expérience  m’a  montré  qu’il  existe  trois  grandes  stratégies  ou  scénarios  de  gestion  d’erreurs,  qui  impliquent 
chacun des conceptions et des approches complètement différentes. 

© ENI Editions - All rigths reserved - educ algeria - 1-


Ces stratégies sont les suivantes : 

La publication garantie des données

La stratégie de chargement de 100 % des données, 100 % fiables. 
Cette  stratégie  suggère  que  nous  présentons  des  données  aux  utilisateurs  qui  sont  complètes  et  qui  sont 
complètement  vérifiées,  sans  codification  inconnue.  Cette  stratégie  idéale  implique  que  les  informations  fournies  ne 
sont  plus  forcément  de  première  fraîcheur.  C’est  la  stratégie  que  retiennent  le  plus  souvent  les  services  pilotage 
lorsqu’ils  réalisent  une  publication  mensuelle  des  données  d’activité  des  mois  écoulés  ;  la  publication  étant  réalisée 
plusieurs jours après la fin du mois. 

L’utilisation d’une base de rejets

La stratégie de chargement de x % des données, 100% fiables. 

Cette stratégie suggère le rejet des lignes en erreurs et leur rechargement par l’équipe informatique après correction. 
C’est  la  stratégie  préférée  mise  en œ uvre  dans  les  systèmes  jeunes.  Mais  c’est  aussi  celle  qui,  au  final,  est  la  plus 
difficile à entretenir à moyen et long terme, car elle implique deux choses : d’une part, que le système ne rejette que 
les  lignes  ayant  un  problème  technique,  ce  qui  est  loin  d’être  la  totalité  des  problèmes  rencontrés  et  d’autre  part 
parce qu’avec la croissance du système décisionnel, le temps passé par l’équipe informatique à la lecture des rejets, à 
leurs corrections et à leur rechargement prend trop de temps et d’énergie. Au final, elle est très peu utilisée dans les 
systèmes matures. 

Système avec reprise automatique d’erreurs

La stratégie de chargement de 100 % des données, x % fiable. 
Cette stratégie suggère que nous chargions l’ensemble des données, sans rejets, mais que nous acceptions et nous 
communiquions en conséquence sur la fiabilité des données qui ont été chargées. Pour être efficace, ce système doit 
communiquer suffisamment pour rendre les utilisateurs acteurs de la correction de leurs données. Dans ce système, 
l’équipe  informatique  doit  déléguer  autant  que  possible  cette  tâche  de  correction  d’erreurs.  Leur  tâche  doit  se 
cantonner  à  rendre  le  système  suffisamment  lisible  pour  que  ce  soit  les  utilisateurs  eux­mêmes  qui  apportent  les 
corrections  nécessaires.  Enfin  le  système  doit  être  suffisamment  intelligent  pour  se  reprendre  de  lui­même  :  il  doit 
pouvoir revenir sur les flux précédemment exécutés et donc sur les données précédemment chargées avec erreurs. En 
espérant  que  les  données  ont  bien  évidemment  été  corrigées  dans  les  systèmes  opérationnels  ou  dans  les 
référentiels de données. 
Nous pouvons faire la synthèse de ces différentes stratégies dans le tableau ci­dessous : 

Stratégie de  Données  Fiabilité  Avantages  Inconvénients  Usages 


gestion  du DW  des 
d’erreurs  données du 
DW 

Publication  100 %  100 %  Très bonne visibilité  Données qui ne sont  Usage réservé 


garantie des  (complètes)  (garanties)  pour le décideur  généralement pas  généralement à des 
données  final qui peut s’y fier.  très fraîches. De  services métier dans 
quelques jours au  le cadre de 
mieux.  l’utilisation de 
magasins de 
données (hors du 
périmètre de 
l’ouvrage). 

Utilisation d’une  x %  100 %  Fraîcheur des  Aucune évaluation  Pour une mise en 


base de rejets  (partielles)  (garanties  données.  de la qualité des  œ uvre rapide, une 
sans  données. Les  démonstration. 
erreurs  données sont 
techniques)  potentiellement 
fausses. 

Stratégie de  100 %  x %  Fraîcheur des  Système à penser et  Usage préféré à 


reprise  (complètes)  (partielles)  données. la plupart  à concevoir à la  mettre en place 
automatique  des données en  base. Pour être  dans le cadre d’un 
d’erreurs  erreur sont visibles,  efficace le système  entrepôt de 
car marqué d’un  doit être  données. 
membre inconnu. Ce  communiquant et 
sont les utilisateurs  offrir réellement la 
qui corrigent leurs  possibilité aux 
données et le  utilisateurs de 
système se reprend  corriger leurs 
de lui­même.  données. 

- 2- © ENI Editions - All rigths reserved - educ algeria


Dans notre cas, nous allons opter pour la stratégie de reprise automatique d’erreurs. Nous allons voir dans la suite du 
chapitre comment mettre en œ uvre une telle stratégie. 
Concrètement, le système d’audit va être organisé autour de deux tables principales : 

● AuditFlux : cette table va faire le bilan de l’exécution d’un flux en particulier. 

● AuditEvenement : cette table va enregistrer les différents évènements survenant lors de l’exécution du flux. 

Le système de reprise de données va être le suivant : 

● À chaque début de flux de chargement de tables de faits, le flux va parcourir la table AuditFlux pour identifier 
les flux à reprendre. 

● Pour chaque flux à reprendre, il va supprimer les lignes, ajoutées précédemment par ce flux, et va rejouer le 
flux sur la même plage de dates, en espérant que les données d’erreurs précédemment remontées auront été 
alors corrigées. 

● Une fois tous les flux rejoués, il va ajouter et initialiser une nouvelle ligne dans la table AuditFlux. 

● Puis le flux du jour va s’exécuter normalement en chargeant les données de la plage de dates du jour. 

● Lors  de  l’exécution  du  flux  des  évènements  vont  s’ajouter  dans  la  table  AuditEvenement  :  des  évènements 
d’informations  (nb  de  lignes  extraites…)  et des évènements d’erreurs  (code  non  trouvé,  valeur  impossible…) 
qui nécessiteront alors peut­être une reprise du flux. 

● En fin d’exécution du flux, la ligne identifiant le flux sera mise à jour pour faire le bilan de l’exécution du flux. 

● Si le flux est identifié comme étant à reprendre, il sera alors repris à la prochaine exécution. 

Attention, le système de reprise de données n’est valable que pour les flux de chargement de tables de faits. 
Ce système ne sera donc pas employé dans un flux de chargement d’une table de dimension pour lequel le 
processus de mise à jour est parfaitement acceptable. 

Il  s’agit  d’une  proposition  sur  la  façon  de  procéder  pour  réaliser  une  reprise  de  données.  Il  existe  bien 
d’autres possibilités... 

Un bon système d’audit doit être adapté à votre contexte. Il doit être ni trop lourd, ni trop compliqué à mettre 
en place. Mais il doit cependant délivrer suffisamment d’informations. 

Dans l’exemple qui va suivre, nous allons compléter le système par une table AuditTraitement, qui va nous permettre 
de suivre l’ensemble des exécutions de flux, flux de reprise inclus. 
Les tables d’audit seront internes à l’entrepôt de données DistrisysDW. 

■ Dans  la  base  de  données  DistrisysDW,  créez  la  table  AuditFlux  avec  la  structure  ci­dessous,  activez 
l’incrémentation automatique sur le champ AuditFlux_PK : 

© ENI Editions - All rigths reserved - educ algeria - 3-


 

Les  champs  DateDebutPlageDonnees  et  DateFinPlageDonnees  encadreront  l’extraction  des  données  source  et 
fixeront donc le périmètre du flux. 
Les champs DateDebutFlux1ereExecution et DateFinFlux1ereExecution déterminent la date de début et de fin lors 
de la première exécution. On pourra ainsi en déduire la durée du flux. 
Le  flux  pouvant  se  reprendre,  les  champs  DateDebutFluxDerniereExecution  et  DateFinFluxDerniereExecution 
déterminent la date de début et de fin lors de la dernière exécution du flux. 
Le champ NbErreurTechnique fait le bilan du nombre d’erreurs techniques survenues lors de la dernière exécution du 
flux. 
Le champ NbAvertissement fait le bilan du nombre d’avertissements survenus lors de la dernière exécution du flux. Un 
avertissement identifiant un évènement de vigilance que le flux a su gérer. 
En fin d’exécution du flux, au moment du bilan, c’est le champ FluxAreprendre qui déterminera si ce flux sera rejoué 
lors  de  la  prochaine  exécution.  La  valeur  de  ce  champ  sera  déterminée  par  les  évènements  générés  dans  la  table 
AuditEvenement, au cours de l’exécution du flux. 
Le champ NbExecution indiquera le nombre de fois que le flux a été joué. Les flux pouvant se reprendre, un même flux 
peut donc être exécuté plusieurs fois. L’administrateur exploitant SSIS pourra se baser sur la valeur de ce champ pour 
déterminer si c’est encore utile de rejouer encore et encore le flux sur cette même plage de données. 

Par  exemple,  un  flux  identifiant  des  avertissements  depuis  plus  de  14  mois  et  joué  plus  de  40  fois  mérite­t­il  d’être  de 
nouveau rejoué ? Dans ce cas, peut­être que les fonctionnels, n’ayant pas pris la peine de corriger le problème, considèrent 
que  le  problème  n’en  vaut  pas  la  peine...  Dans  tous  les  cas  un  flux  ne  pourra  pas  être  repris  indéfiniment,  soit  il  faudra 
corriger le problème, soit le problème sera considéré comme mineur et l’avertissement ignoré. 

■ Puis  créez  la  table AuditEvenement  avec  la  structure  ci­dessous  et  activez l’incrémentation  automatique  sur  le 
champ AuditEvenement_PK : 

- 4- © ENI Editions - All rigths reserved - educ algeria


 

Les  évènements  vont  ponctuer  le  déroulement  du  flux  pour  réaliser  la  remontée  d’informations.  En  fait,  il  y  a  trois 
catégories d’évènements : 

● Les  évènements  de  type  comptage.  Ils  comptabilisent  le  nombre  de  lignes.  On  comptera  notamment  le 
nombre de lignes extraites et le nombre de lignes chargées. 

● Les évènements de type erreur technique. Ils remontent le code et la description technique de l’erreur due à 
une défaillance du flux. 

● Les évènements de type avertissement. Ils correspondent aux alertes remontées par les points de vigilance. 
Les  points  de  vigilance  sont  mis  en  œ uvre  au  moment  du  développement  du  flux.  Ces  points  de  vigilance 
peuvent  être  techniques  (non­correspondance  d’un  code),  mais  aussi  fonctionnels  (le  CA  facturé  ne 
correspondant pas à celui de la comptabilité, la quantité en stock est négative, le coût est supérieur au prix de 
vente…) 

Les champs principaux sont : 

● Evènement  :  nom  de  l’évènement.  Ce  nom  est  spécifique  au  flux.  Dans  notre  cas,  il  s’agit  de  Nb  Lignes 
Chargées FactFacture, Client Inconnu, Produit Inconnu… 

● Evènement  Type  :  ce  sera  au  concepteur  SSIS  de  faire  la  liste  des  types  d’évènements  qu’il  souhaite 
référencer.  Dans  notre  cas  il  s’agit  de  Nb  Lignes  Source,  Nb  Lignes  Destination,  Avertissement  et  Erreur 
Technique. 

● Tâche concernée : nom de la tâche sur lequel est intervenu l’évènement. 

● Champ concerné : en cas d’avertissement, il s’agit du champ concerné par l’alerte. 

● Valeur en erreur : en cas d’avertissement, il s’agit de la valeur du champ qui a généré l’alerte. 

● Code erreur : correspond au message d’erreur technique généré par SSIS en cas de plantage. 

● Erreur Technique : O pour oui et N pour Non. Permet d’identifier l’évènement comme une erreur technique. 

● Avertissement : O pour oui et N pour Non. Permet d’identifier l’évènement comme un avertissement. 

● Flux à reprendre : O pour oui et N pour Non. Permet d’identifier si l’évènement généré nécessitera une reprise 
du flux courant sur la même plage de donnée. 

● Nb  Lignes  Comptabilisées  :  spécifie  le  nombre  de  lignes  comptées  (uniquement  en  cas  d’évènement  de 
comptage). 

© ENI Editions - All rigths reserved - educ algeria - 5-


La comptabilisation des lignes en entrée et en sortie est considérée comme un évènement. En effet dans un 
flux  il  y  a  potentiellement  plusieurs  sources  de  données,  mais  aussi  potentiellement  plusieurs  destinations. 
C’est pour cela que ces champs ne peuvent être spécifiés au niveau de la table AuditFlux. 

■ Créez enfin la table AuditTraitement  avec  la  structure  ci­dessous et  activez l’incrémentation automatique  sur  le 


champ AuditTraitement_PK : 

Cette table fera simplement le bilan de toutes les exécutions de flux. 
Enfin,  pour  mettre  en  place  notre  système  d’audit,  il  est  nécessaire  de  mettre  à  jour  les  tables  de  faits  et  de 
dimensions alimentées par un flux. 

Au niveau de chaque table de dimension, ajoutez deux nouvelles colonnes d’audit : 

● AuditFluxAjout_FK : pour identifier le flux qui a ajouté la ligne. 

● AuditFluxModification_FK : pour identifier le flux qui a modifié la ligne pour la dernière fois. 

Par exemple, pour DimProduit vous devriez avoir la structure suivante : 

De  même,  au  niveau  de  chaque  table  de  faits,  ajoutez  une  nouvelle  colonne  d’audit  :  AuditFluxAjout_FK,  pour 
identifier le flux qui a ajouté la ligne. 

■ Ajoutez le champ AuditFluxAjout_FK aux tables FactFacture et FactFactureEntete. 

■ Créez les contraintes d’intégrité au niveau de FactFacture comme ci­dessous en créant les liens suivants : 

● entre AuditFlux AuditFlux_PK  et FactFacture AuditFluxAjout_FK. 

● entre AuditTraitement AuditTraitement_PK et AuditFlux AuditTraitement_FK. 

- 6- © ENI Editions - All rigths reserved - educ algeria


● entre AuditFlux AuditFlux_PK et AuditEvenement AuditFluxt_FK. 

■ Créez ensuite les contraintes d’intégrité suivantes pour DimProduit : 

● entre AuditFlux AuditFlux_PK et DimProduit AuditFluxAjout_FK. 

● entre AuditFlux AuditFlux_PK et DimProduit AuditFluxModification_FK. 

Enfin,  nous  ajouterons  un  membre  inconnu  dans  chaque  dimension.  Idéalement,  il  faudrait  que  la  clé  technique  soit 
toujours la même pour en faciliter la gestion. 
Dans notre cas, la clé technique du membre inconnu sera 0. 

■ Ajoutez une nouvelle ligne dans chaque dimension avec pour clé technique 0 et comme nom inconnu. 

Par exemple au niveau de la table DimClient : 

En  fait,  le  système  ne  rejette  aucune  ligne.  Or,  il  arrive  régulièrement  qu’un  code  client,  notamment,  ne  soit  pas 
identifié par le système : soit à cause d’une mauvaise saisie, soit parce que la réplication des bases du CRM a eu une 

© ENI Editions - All rigths reserved - educ algeria - 7-


défaillance l’avant­veille... 
Toujours est­il que même si ce code est inconnu par notre système, il faudra tout de même qu’il accepte la ligne. Pour 
cela nous utiliserons le schéma de principe de l’erreur contrôlée : 

Schéma de principe de l’erreur contrôlée 

La tâche 1 de type Recherche redirige les non­correspondances de code vers la tache 2. 
La tâche 2 est un ensemble de tâches qui va : 

● Ajouter une nouvelle ligne dans la table AuditEvenement identifiant le champ et la valeur en erreur. 

Par exemple, le champ peut être ClientCode et la valeur sans correspondance C11. 

● Attribuer par défaut la clé 0 (membre inconnu) aux lignes avec code sans correspondance. 

La tâche 3, d’union, va réconcilier les lignes avec correspondance et les lignes avec membre inconnu. 
Dans la partie suivante nous allons étudier le flux de chargement intégrant cette fois­ci le système d’audit. 

3. Exemple de flux avec audit 

Le  flux  de  chargement  des  factures  a  été  amélioré  afin  d’intégrer  le  système  d’audit.  Le  package 
DW_FactFacture_Avec_Audit.dtsx,  présenté  dans  ce  chapitre  est  disponible  en  téléchargement  sur  le  site  des 
Éditions ENI. 

Étudions tout d’abord le flux de contrôle ci­dessous : 

- 8- © ENI Editions - All rigths reserved - educ algeria


Exemple de flux intégrant l’audit de flux 

Ce flux de contrôle s’accompagne de la création de nouvelles variables : 

La tâche Initialisation AuditTraitement va insérer une nouvelle ligne dans la table AuditTraitement et va récupérer la 
valeur AuditTraitement_FK de la ligne générée dans la variable du même nom. 
Pour obtenir ce comportement, configurez la propriété SQL Statment comme ci­dessous : 

INSERT INTO [AuditTraitement]([NomFlux],[DateDebutTraitement])


VALUES(?,GETDATE())
SELECT cast(SCOPE_IDENTITY() as int) AS AuditTraitementID

Le ResultSet doit être positionné sur Ligne Unique 
Dans l’onglet Mappage des paramètres, la variable User::NomFlux de direction Input et de type Varchar, est mappé 
avec le nom de paramètre 0. 
Dans  l’onglet  Ensemble  de  résultats,  la  variable  User::AuditTraitement_FK  est  mappée  avec  le  Nom  de  résultats 
AuditTraitementID; en référence au nom de la colonne ramenée par la clause SELECT de la requête. 
La tâche Initialisation AuditFlux va simplement insérer une nouvelle ligne dans la table AuditFlux. 

Sa propriété SQL Statment est la suivante : 

INSERT INTO [AuditFlux]

([NomFlux],[AuditTraitement_FK],[DateDebutFlux1ereExecution],
[DateDebutFluxDerniereExecution]
,[DateDebutPlageDonnees],[DateFinPlageDonnees],[FluxAreprendre],
[NbExecution])
VALUES
(?,?,GETDATE(),GETDATE(),(SELECT

© ENI Editions - All rigths reserved - educ algeria - 9-


MAX([DateFinPlageDonnees]) FROM [AuditFlux] WHERE
[NomFlux]=’DW_Chargement Facture’)
,GetDate(),’O’,0)

Cette nouvelle ligne a, comme date de début de plage de donnée, la valeur maximum de la plage de données de fin 
des  flux  de  même  nom  et  comme  date  de  fin  de  plage  de  données,  la  date  actuelle.  Bien  entendu,  tout  ceci  se 
configure et s’affine suivant les situations. 

Comme nous l’avons déjà vu, lors du flux de chargement du SA, la tâche ObtenirListeDesFluxAReprendre lit la table 
AuditFlux  pour  récupérer  la  liste  des  flux  à  reprendre.  Cette  liste  est  récupérée  dans  la  variable 
ListeDesFluxAreprendre. 
C’est cette même variable qui est parcourue par la tâche Pour chaque AuditFlux. 

À chaque itération, les variables AuditFlux_FK, DateDebutPlageDonnees et DateFinPlageDonnees sont réinitialisées 
pour prendre la valeur du flux courant. 

De ce fait, pour chaque flux parcouru par la boucle, deux tâches vont supprimer les faits et les lignes AuditEvenement 
précédemment chargés. 

Puis la tâche de flux de données va lancer l’extraction des données de DistrisysSA, pour effectuer le chargement dans 
DistrisysDW. 
Enfin, les tâches Bilan AuditFlux et Bilan AuditTraitement font une requête d’update dans leur table respective, afin de 
faire le récapitulatif de l’exécution du processus : 

● Bilan AuditFlux fait le bilan à partir des données de la table AuditEvenement. 

● Bilan AuditTraitement fait le bilan à partir des données de la table AuditFlux. 

Au final, voici le contenu de la table AuditTraitement : 

Et celui de la table AuditFlux : 

Étudions maintenant le contenu du flux de données. 

Nous  avons  simplement  ajouté  de  nombreux  points  de  vigilance,  afin  de  faire  des  remontées  d’informations  dans  la 
table AuditEvenement. 
La comptabilisation des lignes extraites va se faire avec les tâches ci­dessous : 

- 10 - © ENI Editions - All rigths reserved - educ algeria


 

Le schéma de principe de l’erreur contrôlée est mis en pratique par les tâches ci­dessous : 

Enfin, la comptabilisation des lignes chargées dans la table FactFacture est réalisée par les tâches ci­dessous : 

La table AuditEvenement ainsi chargée est la suivante : 

Nous  venons  ainsi  de  réaliser  un  flux  de  chargement  des  factures  intégrant  un  système  d’audit  et  de  reprise  de 
données en automatique. 
Malgré  le  système  d’audit,  il  est  conseillé  d’activer  la  gestion  des  logs  de  SSIS.  Si  le  système  d’audit  vous  fournit 
énormément d’informations structurées, la gestion de logs SSIS peut vous fournir des informations complémentaires 
plus techniques. 

© ENI Editions - All rigths reserved - educ algeria - 11 -


■ Pour activer la gestion des logs, cliquez sur SSIS dans la barre de menu, puis sur Enregistrement. 

■ Dans  le  type  de  fournisseurs,  sélectionnez  Mode  fournisseur  d’informations  pour  SQL  Server  puis  cliquez  sur 
Ajouter,  afin  d’écrire  les  logs  directement  dans  une  table.  L’information  sera  ainsi  plus  simple  à  retraiter  et  à 
exploiter. 

■ Puis, dans la colonne Configuration sélectionnez la connexion DistrisysDW. 

■ Sélectionnez  tous  les  conteneurs  en  cochant  DW_FactFacture_avec_audit  dans  la  fenêtre  Conteneurs  et  dans 
l’onglet Détails, sélectionnez tous les types d’évènements. 

■ Enfin, dans Sélectionner les journaux à utiliser pour le conteneur, cochez la case module fournisseur. 

■ Puis terminez en cliquant sur OK. 

Écran de configuration des journaux SSIS 

Une nouvelle table sysssislogs, identifiée comme table système, s’ajoute à la base de données DistrisysDW. 

Ses principaux champs enregistrés par les logs sont les suivants : 

● Event  :  référence  le  type  d’évènement  à  l’origine  de  l’entrée  de  log  (OnPreValidate,  OnInformation, 
OnProgress…). 

● Computer : le nom du serveur qui a exécuté le flux. 

● Operator : le compte de service qui a exécuté le flux. 

● Source : nom de la tâche à l’origine de la ligne de log. 

● SourceId : Identifiant technique SSIS de la tâche à l’origine de la ligne de log. 

● ExecutionId : Identifiant technique du traitement. 

- 12 - © ENI Editions - All rigths reserved - educ algeria


● StartTime : date de début de l’évènement. 

● EndTime : date de fin de l’évènement. 

● Message : décrit le résultat de l’évènement et affiche notamment en détail un message d’erreur. 

La  traçabilité  de  nos  flux  est  ainsi  complète.  Néanmoins,  nous  n’avons  fait  que  la  moitié  du  travail.  Il  vous  sera 
nécessaire,  par  la  suite,  de  créer  les  rapports  d’audit,  mais  aussi  potentiellement  les  mesures  et  indicateurs  de  la 
performance de votre processus ETL, à présenter à vos utilisateurs. Le chapitre Restituer les données décisionnelles ­ 
Reporting Services traite de la réalisation de tels rapports, je vous suggère de vous y reporter pour plus de détail. 
De plus, la réussite de ce système ne vaut que si les utilisateurs s’emploient au quotidien à corriger les erreurs que 
vous leur présentez. La qualité des rapports et des indicateurs que vous leur fournirez et leurs disponibilités au côté 
des données décisionnelles sont donc essentielles. 

© ENI Editions - All rigths reserved - educ algeria - 13 -


Gestion des paramètres de flux et mise en production 
Dans les parties précédentes, vous avez appris à faire des flux pour charger une dimension, une table de faits ou bien 
des fichiers plats. À l’état actuel, vos flux fonctionnent bien tant que vous travaillez en local et seul. 
Dans cette partie, nous allons aborder le paramétrage et la portabilité de vos flux sur des environnements différents 
(environnement de recette, de production…). 
Actuellement,  les  connexions  du  Gestionnaire  de  connexion  sont  configurées  en  dur.  Nous  allons  les  configurer,  afin 
que leurs chaînes de connexion soient issues d’un fichier de configuration. 
Ainsi, en créant un fichier de configuration pour chacun de vos environnements, vous faciliterez la portabilité de vos flux. 

■ Tout d’abord, créez une variable pour chacune de vos sources de données : 

● ChaineConnexionSA de type string contiendra la chaine de connexion à la base DistrisysSA. 

● ChaineConnexionDW de type string contiendra la chaine de connexion à la base DistrisysDW. 

Si vous prévoyez l’exécution de vos flux de production avec l’agent SQL Server, vos flux seront exécutés avec le compte 
de service de l’agent SQL Server. Prévoyez donc de donner les droits d’accès en lecture et en écritures aux bases de 
données auxquelles ce compte devra accéder. 
Si  par  contre  vos  flux  doivent  être  exécutés  par  un  ordonnanceur  autre  que  l’agent  SQL,  il  vous  faudra  intégrer  à  la 
chaîne de connexion un login et mot de passe d’un compte SQL Server. 

■ Créez donc ce compte et attribuez­lui les droits d’accès aux bases de données auxquelles il devra accéder. Attention 
toutefois de ne pas lui attribuer plus de droits que le compte n’en a besoin. 

Dans mon cas, j’ai choisi de créer un nouveau compte SQL Server SvcSSIS. Ce compte a les droits en lecture et en écriture 
sur mes bases de données DistriysSA et DistrisysDW. 

■ Modifiez la connexion DistrisysSA de votre flux si besoin : 

© ENI Editions - All rigths reserved - educ algeria - 1-


 

■ Récupérez la chaîne de connexion ainsi créée dans la propriété ConnectionString. Copiez le contenu de cette chaîne 
de connexion dans la valeur de la variable ChaineConnexionSA. 

■ Puis ajoutez manuellement le mot de passe à la chaîne de connexion de la variable, comme indiqué ci­dessous : 

■ Faites de même pour la connexion et la variable de connexion à DistrsysDW. 

■ Puis, dans les propriétés de la connexion DistrisysSA, sélectionnez la propriété Expressions pour mapper la propriété 
ConnexionString avec la variable ChaineConnexionSA, comme la copie d’écran ci­dessous : 

- 2- © ENI Editions - All rigths reserved - educ algeria


 

■ Faites  de  même  avec  la  connexion  DistrisysDW.  Mappez  sa  propriété  ConnexionString  avec  la  variable 
ChaineConnexionDW. 

À ce stade, vos connexions sont pilotées par le contenu des variables ChaineConnexionSA et ChaineConnexionDW. 

■ Testez de nouveau votre flux pour vous assurer qu’il continue à bien fonctionner. 

Nous allons maintenant créer un fichier de configuration. C’est le fichier de configuration qui attribuera les valeurs aux 
variables du flux ChaineConnexionSA et ChaineConnexionDW. 

■ Dans la barre de menu, sélectionnez l’onglet SSIS, puis cliquez sur Configuration de package. 

■ Une  boîte  de  dialogue  Bibliothèque  des  configurations  de  package  s’ouvre.  Cochez  l’option  Activer  les 
configurations du package. 

■ Puis cliquez sur le bouton Ajouter. 

■ L’assistant de configuration de package s’ouvre. Cliquez sur Suivant. 

Plusieurs  types  de  configurations  sont  possibles  pour  y  stocker  votre  configuration  :  fichier  XML,  variables 
d’environnement, entrée de registre, SQL Server… Nous opterons pour le stockage des variables sous forme de fichier 
XML. 

■ Sélectionnez Fichier de configuration XML. 

■ Puis, à l’aide du bouton Parcourir, sélectionnez un répertoire partagé, précédemment créé, et nommez votre fichier 
de configuration ConfigurationDeveloppement.XML. 

■ Cliquez sur Suivant pour poursuivre l’assistant. 

■ À  la  page  Sélectionner  les  propriétés  à  exporter,  sélectionnez  les  propriétés  Value  des  deux  variables 
ChaineConnexionSA et ChaineConnexionDW. 

© ENI Editions - All rigths reserved - educ algeria - 3-


 

■ Cliquez sur Suivant. Renommez votre configuration ConfigurationDeveloppement. Puis cliquez sur Terminer. 

■ Fermez la fenêtre Bibliothèque des configurations de package. 

■ Assurez­vous que le fichier dtsconfig est bien créé dans le répertoire indiqué. 

■ Pour finir, allez dans les propriétés du package. À la propriété ProtectionLevel indiquez Don’t Save Sensitive. 

■ Assurez­vous que le package fonctionne à nouveau. 

Vous venez de configurer la portabilité de votre package afin qu’il puisse s’exécuter sur des machines différentes de la 
vôtre, en production, ou sur celles de vos collègues de travail. 
Enfin pour finir, vous pouvez lancer ce flux de manière programmée à l’aide de l’agent SQL Server. 

Si votre organisation dispose d’un ordonnanceur d’entreprise, renseignez­vous auprès de son administrateur et 
préférerez son usage à celui de l’agent SQL Server. 

■ Dans le cas de la mise en production de vos flux avec l’agent SQL, allez dans SSMS. 

■ Faites un clic droit sur l’élément Travail et sélectionnez Nouveau Travail. 

■ Spécifiez un nom, par exemple Chargement des factures. 

■ Puis sélectionnez l’onglet Etapes. 

■ Cliquez sur le bouton Nouveau pour créer une nouvelle étape. 

■ Nommez l’étape Chargement des factures. 

■ Dans le type de package, sélectionnez Package SQL Server Integration Services. 

- 4- © ENI Editions - All rigths reserved - educ algeria


■ Dans l’onglet General, dans source de package, sélectionnez Système de fichier, puis parcourez votre disque dur à 
la recherche du package SSIS à exécuter. 

■ Cliquez sur OK, puis allez sur l’onglet Planifications pour paramétrer son lancement. 

■ Définissez ainsi les étapes, la configuration et la planification du lancement de vos flux. 

Au cours de ce chapitre, vous avez donc appris à configurer la portabilité d’un package et à programmer son lancement 
à l’aide de l’agent SQL Server. 

Ce chapitre étant clos, vous devriez posséder les pré­requis pour traiter du chargement de données. Vous devrez alors 
être à même de créer vos propres flux et de penser votre système d’audit. 

La  base  de  données  DistrisysDW  finale,  ainsi  que  les  packages  SSIS  abordés  lors  de  ce  chapitre,  sont 
disponibles  en  téléchargement  sur  le  site  du  livre.  N’hésitez  pas  à  vous  y  reporter  et  à  vous  inspirer  des 
développements réalisés. 

© ENI Editions - All rigths reserved - educ algeria - 5-


Introduction 
Au  cours  de  ce  chapitre,  nous  allons  étudier  différentes  manières  d’exploiter  les  données.  Microsoft  dispose  de  très 
nombreux  outils  et  solutions  de  restitution  de  données.  Cette  multitude  d’outils,  dédiés  à  répondre  au  plus  grand 
nombre et aux plus exigeants, dessert parfois l’éditeur en donnant une impression de complexité. 
Pour  mieux  comprendre  le  positionnement  et  l’usage  de  chacun  des  outils  de  la  gamme,  reportez­vous  au  chapitre 
Introduction ­ La solution Microsoft BI. 

La gamme étant assez complète, nous allons étudier au cours de ce chapitre uniquement les outils de restitution de la 
gamme Microsoft Office Excel et Microsoft SQL Server. Puis nous offrirons un simple aperçu de l’interaction de ces outils 
avec SharePoint Server 2010. 
La restitution décisionnelle au sein du portail SharePoint 2010 est un sujet à part entière, qui mérite beaucoup plus 
qu’un simple chapitre. 
Nous allons donc nous attarder sur deux outils : Excel 2010 et SQL Server Reporting Services 2008 R2. 
Au  cours  de  ce  chapitre,  nous  réaliserons  des  manipulations  sur  les  données  du  cube  réalisé  dans  les  chapitres 
précédents. Si vous n’avez  pas  effectué  les  manipulations  précédentes,  vous  pourrez  toutefois  suivre  ce  chapitre  en 
restaurant  les  bases  de  données  de  l’entrepôt  de  données  et  du  cube  associé.  Ces  bases  sont  disponibles  en 
téléchargement sur le site des Éditions ENI. 

© ENI Editions - All rigths reserved - educ algeria - 1-


Excel 
Les utilisateurs fonctionnels qui manipulent et analysent les données sont vraiment attachés à Excel. Microsoft a bien 
compris  l’avantage  qu’il  pouvait  en  tirer.  Avec  la  nouvelle  génération  2010,  l’éditeur  a  encore  recentré  son  offre  BI 
autour d’Excel. 

Le point d’entrée de l’offre BI sur le poste de travail est Excel et l’outil d’un point de vue décisionnel est assez complet, 
c’est­à­dire qu’Excel permet de se connecter à un cube et d’explorer ses données. Nous verrons aussi que la nouvelle 
fonction  PowerPivot  permet  à  Excel  de  traiter  les  données  qui  ne  sont  pas  encore  contenues  dans  l’entrepôt  de 
données. L’utilisateur, via une fonction de publication, peut quant à lui aussi déposer son rapport dans SharePoint afin 
d’en afficher son contenu dans le portail. 

Excel est, dans la gamme Microsoft BI, l’outil le plus adapté pour l’analyse et la manipulation des données. Son usage 
est destiné à une population d’analystes ou de responsables fonctionnels. 

1. Manipuler le cube avec Excel 2010 

Depuis la version 2000, Excel a la capacité de créer des tableaux croisés dynamiques à partir d’un cube. 
Beaucoup d’entre vous connaissent ou utilisent déjà la fonction de tableau croisé dynamique. Cette fonction, dans sa 
version de base, permet à partir des tables de données contenues dans Excel, d’agréger ces données et de ventiler 
les résultats par colonnes ou par lignes comme le montre l’exemple ci­dessous : 

Exemple de tableau croisé dynamique dans Excel 

Lorsque  vous  disposez  d’un  cube  Analysis  Services,  les  tables  de  données  ne  sont  plus  contenues  dans  le  fichier 
Excel. Le tableau croisé dynamique va être bâti à partir des données et des règles de gestion contenues et spécifiées 
dans le cube. 

Bâtir des tableaux croisés dynamiques à partir d’un cube a beaucoup d’avantages : 

● Le  fichier  Excel  ne  contient  pas  les  données.  C’est  donc  d’une  part  plus  sécurisant  pour  l’organisation,  et 
d’autre part les fichiers sont moins lourds à manipuler. 

● Les données sont centralisées. Elles sont donc utilisées par plusieurs services réduisant ainsi les risques liés 
au recoupement de données. 

● Les  données  sont  fiabilisées.  Lorsqu’un  entrepôt  de  données  est  correctement  bâti,  les  utilisateurs  passent 
beaucoup  moins  de  temps  à  la  récupération  et  au  traitement  de  l’information  et  recentrent  leurs  efforts  à 
l’analyse des données. 

● Les données sont historisées. Sans le cube, les utilisateurs sont obligés de stocker plusieurs versions, à date, 
de leurs données et de leurs analyses. Croiser et comparer ces données n’est pas toujours très évident. 

© ENI Editions - All rigths reserved - educ algeria - 1-


a. Utiliser Excel pour exploiter les données de son cube. 

Nous allons donc nous connecter au cube Distrisys à partir d’Excel 2010 et créer un tableau croisé dynamique. 

■ Pour vous connecter au cube Distrisys, dans le ruban, cliquez sur l’onglet Données. 

■ Au  niveau  du  bouton  Données  Externes,  choisissez  À  partir  d’autres  sources,  puis  cliquez  sur  Provenance  : 
Analysis Services. 

Se connecter à un cube à partir d’Excel 2010 

■ La fenêtre  Assistant  de  connexion  de  données s’ouvre.  Entrez  le  nom  de  votre  serveur  et  instance  SQL  Server 
Analysis Services. Par défaut cochez utiliser l’authentification Windows pour vous connecter au cube avec votre 
compte Windows. 

■ Puis  l’assistant  vous  demande  de  sélectionner  la  base  de  données.  Spécifiez  la  base  multidimensionnelle 
DistrisysOLAP. 

L’assistant vous propose alors les cubes et perspectives disponibles. Si vous souhaitez vous rappeler comment créer 
une perspective reportez­vous au chapitre La modélisation dimensionnelle ­ Facturation et commande client. 

■ Sélectionnez la perspective Suivi Vente par produit. 

- 2- © ENI Editions - All rigths reserved - educ algeria


 

■ Renommez le nom de la connexion Distrisys Suivi Vente par produit, puis cliquez sur Terminer. 

■ La  fenêtre  Importation  de  données  s’affiche  et  vous  propose  de  choisir  l’emplacement  du  tableau  croisé 
dynamique. Par défaut, laissez sélectionnée la cellule A1, la plus en haut à gauche. 

Vous pouvez constater que la liste de champs de tableau croisé dynamique affiche la structure de la perspective. On 
y retrouve les groupes de mesures Facture et Budget Vente, ainsi que les dimensions Temps, Site et Produit. 
Pour créer un tableau croisé dynamique, il vous suffit alors de sélectionner une ou plusieurs mesures, puis de glisser 
les hiérarchies et attributs dans les zones Étiquettes de lignes, Étiquettes de colonnes et/ou Filtres du rapport. 

Le tableau croisé dynamique Excel 2010 sur un cube 

Pour obtenir le tableau croisé dynamique ci­dessus : 

■ À partir de la Liste de champs de tableau croisé dynamique, cochez les mesures CA sous le groupe de mesures 
Facture, puis CA ­ Budget Vente sous le groupe de mesures Budget Vente. 

© ENI Editions - All rigths reserved - educ algeria - 3-


■ Puis  glissez  la  hiérarchie  Famille­SousFamille­Produit  dans  la  zone  Étiquettes  de  ligne  pour  un  affichage  des 
produits en ligne. 

■ Glissez la hiérarchie Année ­ Mois de la dimension Temps, dans la zone Filtre du rapport. 

■ Glissez la hiérarchie Pays ­ Site de la dimension Site, dans la zone Filtre du rapport. 

■ Puis dans le tableau croisé dynamique, sélectionnez dans la liste déroulante de la hiérarchie Temps.Annee ­ Mois 
le membre Calendrier 2010, afin de restreindre les données du tableau croisé dynamique aux valeurs de l’année 
2010. 

■ Pour  finir,  sélectionnez  dans  la  liste  déroulante  de  la  hiérarchie  Pays  ­  Site,  le  membre  Agence  Sud  afin  de 
restreindre l’affichage aux ventes réalisées par les agences commerciales françaises. 

Si vous n’êtes pas à l’aise avec les termes Hiérarchie, Membre, Dimension ou Groupe de mesure, n’hésitez 
pas à vous conférer au chapitre Réaliser son premier système décisionnel ­ Création des tables de faits et 
de dimension. 

La constitution du tableau croisé dynamique d’Excel 2010, à partir d’un cube, est vraiment simple et intuitive. À l’aide 
des boutons plus et moins, vous avez la possibilité de descendre et de monter dans la hiérarchie. À noter que pour 
un  cube  bien  modélisé,  les  performances  du  tableau  croisé  dynamique  sur  un  cube  sont  généralement  assez 
exceptionnelles  surtout  au  regard  du  nombre  de  données  brassées.  Le  délai  d’affichage  d’un  tableau  croisé 
dynamique est de l’ordre de la seconde généralement. 
Le  tableau  croisé  dynamique  d’Excel  2010  constitue  ainsi  un  bon  moyen  d’exploiter  rapidement  vos  données  :  en 
modifiant  les  axes  pour  changer  l’angle  de  vue,  en  filtrant  les  données,  puis  en  descendant  si  besoin  dans  les 
hiérarchies en lignes ou en colonnes. 
Depuis la version Excel 2007, en plus de l’amélioration significative de la navigation dans le cube, Microsoft a fait de 
nombreux efforts sur la présentation des données. Partant du constat que les utilisateurs des services fonctionnels 
passaient  un  temps  non  négligeable  sur  la  présentation  des  données,  Excel  2007  et  Excel  2010  ont  commencé  à 
proposer des fonctions de mise en forme automatique. 

Excel propose ainsi de nombreux modèles de mise en forme visuelle pour enrichir rapidement la représentation de 
vos données. 

b. Mettre en forme les données de son cube sous Excel 

■ Pour en bénéficier, cliquez dans le ruban sur Accueil, puis sur Mettre sous forme de tableau. 

■ Puis passez tout simplement la souris sur les différents modèles pour voir se mettre en forme votre tableau croisé 
dynamique. 

- 4- © ENI Editions - All rigths reserved - educ algeria


La mise en forme rapide des tableaux croisés dynamiques 

D’autres  fonctions  complémentaires  incluses  sous  le  menu  Mise  en  forme  conditionnelle  viennent  enrichir 
visuellement le rendu et la comparaison des données : valeurs supérieures à la moyenne, 10 % des valeurs les plus 
importantes, mini barres représentant l’importance des valeurs dans les cellules, jeux d’icônes pour représenter des 
atteintes d’objectifs ou des tendances... 

■ Pour tester les règles prédéfinies ou créer les vôtres, dans le ruban cliquez sur l’onglet Accueil, puis sélectionnez 
le menu Mise en forme conditionnelle. Sélectionnez les éléments que vous voulez mettre en évidence. 

■ Pour  obtenir  l’exemple  ci­dessous,  passez  la  souris  sur  Barre  de  données,  puis  sélectionnez  une  couleur  de 
diagramme en barre en dégradé. 

© ENI Editions - All rigths reserved - educ algeria - 5-


La mise en forme conditionnelle des cellules de données 

Excel 2010 propose aussi de représenter vos données issues du tableau croisé dynamique sous forme de graphique. 
La  palette  des  représentations  graphiques  proposées  est  assez  large  :  histogramme,  courbes,  secteurs,  barres, 
aires, nuage de points, représentations boursières, surface, anneau, bulles, radar… Les graphiques peuvent être en 
2D ou en 3D et de nombreuses options sont proposées. 

Les représentations graphiques proposées par Excel 2010 

- 6- © ENI Editions - All rigths reserved - educ algeria


■ Pour  réaliser  un  graphique  à  partir  du  tableau  croisé  dynamique,  sélectionnez  une  cellule  du  tableau  croisé 
dynamique pour faire afficher des onglets spécifiques dans le ruban. 

■ Sous  le  grand  onglet  Outils  de  Tableau  croisé  dynamique,  sélectionnez  l’onglet  Options,  puis  Outils  et  enfin 
cliquez sur Graphique croisé dynamique. 

La fenêtre Insérer un graphique s’ouvre et vous invite à choisir une représentation graphique. 

■ Sélectionnez un diagramme en histogramme, puis cliquez sur OK. 

Votre tableau croisé dynamique s’affiche alors sous forme de diagramme. Néanmoins il reste dynamique : des invités 
vous  permettent  de  filtrer  les  données  du  graphique  suivant  la  dimension  temps  et  la  dimension  Site.  Et  l’invité 
Famille ­ SousFamille ­ Produit vous invite à restreindre la liste des produits affichés sur l’axe des abscisses. 

Un graphique croisé dynamique sur un cube 

c. Mettre en valeur des éléments précis 

En  terme  d’affichage  graphique,  un  nouvel  élément  de  navigation  très  pratique  fait  son  apparition  avec  la  version 
Excel 2010 : le slicer (ou segment). 
Le slicer est une autre façon assez visuelle de filtrer les données. Il permet l’affichage de fenêtre flottante affichant 
sous forme de bouton des options de filtre du tableau croisé dynamique. Le slicer permet ainsi des mises en page de 
données plus accessibles et orientées tableau de bord. 

■ Pour  créer  un  slicer,  sélectionnez  une  cellule  du  tableau  croisé  dynamique  pour  faire  afficher  des  onglets 
spécifiques dans le ruban. 

■ Sous le grand onglet Outils de Tableau croisé dynamique, cliquez sur Insérer un slicer. 

Une  fenêtre  Insérer  un  slicer  s’ouvre  et  vous  propose  les  hiérarchies  ou  attributs  à  représenter  sous  forme  de 
slicer. 

■ Sélectionnez sous la dimension Site et la hiérarchie Pays ­ Site, l’attribut Site. Cliquez sur OK. 

Le slicer ainsi créé vous permet de sélectionner un ou plusieurs sites de Distrisys. 

■ Cliquez sur un site pour modifier l’affichage des données du tableau et du graphique croisé dynamique. 

© ENI Editions - All rigths reserved - educ algeria - 7-


Utilisation du slicer sous Excel 2010 

d. Extraire des données de détail 

Au chapitre La modélisation dimensionnelle ­ Facturation et commande client, nous avons mis en œ uvre une action 
sur  le  cube.  Celle­ci  offrait  la  possibilité  d’extraire  les  lignes  de  données  avec  le  numéro  de  facture  constituant  un 
agrégat.  C’est  une  fonction  très  pratique  afin  d’auditer  vos  données  et  de  faire  le  lien  avec  les  systèmes 
opérationnels (logiciel de gestion, ERP, CRM…). 
Cette fonction permet par exemple d’afficher en détail les lignes avec le numéro de facture, constituant les 41 993 € 
de ventes de Réfrigérateurs sur l’agence Ouest. 

■ Pour ce faire, sélectionnez la cellule comportant les 41 993 € de CA de réfrigérateurs en 2010 sur l’agence ouest. 

■ Faites  un  clic  droit  pour  afficher  le  menu  contextuel,  sélectionnez  Actions  supplémentaires,  puis  Extraction 
Facture. 

- 8- © ENI Editions - All rigths reserved - educ algeria


 

L’action  d’extraction  crée  une  nouvelle  feuille  contenant  la  liste  des  lignes  constituant  l’agrégat  sélectionné  et 
affichant le numéro de facture correspondant. 
L’action  est  une  fonction  SSAS  parfaitement  gérée  par  Excel.  C’est  le  meilleur  moyen  donné  à  l’utilisateur  pour  lui 
laisser la possibilité d’auditer ses données. 

Feuille de données issue d’une action d’extraction 

Les actions d’extractions sont des fonctionnalités importantes à envisager au moment de la modélisation de 
l’entrepôt  de  données  et  de  la  conception  de  votre  cube.  N’hésitez  pas  à  vous  référer  au  chapitre  La 
modélisation dimensionnelle ­ Facturation et commandes client pour apprendre à les mettre en œ uvre. 

e. Le mode Formule 

© ENI Editions - All rigths reserved - educ algeria - 9-


Enfin,  sans  faire  la  liste  exhaustive  des  fonctionnalités  d’Excel  2010,  il  est  important  de  connaître  une  dernière 
fonction assez méconnue : le mode formule. 
L’affichage  du  tableau  croisé  dynamique  en  mode  formule  permet  d’individualiser  chacune  des  cellules  du  tableau 
croisé dynamique courant. Dans ce mode formule, vous perdez les fonctionnalités de navigation et de manipulation 
de données. En revanche, vous gagnez en richesse de représentations de vos données. 
Chacune des cellules constitutives de votre tableau croisé dynamique devenant indépendantes, vous avez donc la 
possibilité d’en supprimer une partie, d’en déplacer une autre, ou bien de n’en conserver que quelques­unes. Libre à 
vous de faire la mise en page qui vous convient. Par contre, faites attention, car vous n’aurez alors plus la possibilité 
de revenir en mode tableau croisé dynamique standard. 
Dans  notre  feuille  Excel  courante,  nous  allons  créer  un  nouveau  tableau  croisé  dynamique  affichant  le  CA  et  le  % 
Marge sur les mois de l’année 2010. Puis, nous allons convertir ce tableau croisé dynamique en mode formule. 

■ Cliquez sur la Feuil2. 

Nous allons créer un nouveau tableau croisé dynamique réutilisant la connexion au cube précédemment créée. 

■ Dans le ruban, cliquez sur l’onglet Données, puis sélectionnez Connexions existantes. 

■ À l’affichage de la fenêtre Connexions existantes, sélectionnez sous Connexion de ce classeur sur la connexion 
Distrisys Suivi vente par produit. Cliquez sur Ouvrir. 

■ La fenêtre importation de données s’affiche, cliquez sur OK. 

■ Réalisez  un  tableau  croisé  dynamique  comme  ci­dessous,  affichant  CA  et  %  Marge  en  colonne,  la  dimension 
Temps en ligne et les dimensions Site et Produit en filtre. 

■ Pour  passer  du  mode  tableau  croisé  dynamique  en  mode  formule,  sélectionnez  une  cellule  du  tableau  croisé 
dynamique pour faire apparaître l’onglet Outils de tableau croisé dynamique. 

■ Dans l’onglet Options, cliquez sur Outils, puis sur Outils OLAP et enfin sur Convertir en formules. 

Un  message  d’avertissement  vous  alerte  sur  le  fait  que  vous  ne  pourrez  plus  revenir  en  mode  tableau  croisé 
dynamique une fois la conversion effectuée. 

■ Confirmez la conversion en cliquant sur le bouton Convertir. 

- 10 - © ENI Editions - All rigths reserved - educ algeria


Le  tableau  perd  sa  mise  en  forme.  En  revanche,  les  filtres  continuent  de  fonctionner  et  chaque  cellule  est 
indépendante l’une de l’autre. 
Un  clic  sur  une  cellule  vous  permet  de  constater  que  chaque  cellule  fait  appel  à  la  fonction  Excel  VALEURCUBE.  En 
mode  formule,  chaque  cellule,  au  travers  de  la  fonction  VALEURCUBE,  génère  une  requête  MDX  retournant  une 
valeur. 

Le tableau croisé dynamique converti en mode formule 

Attention  toutefois  aux  performances  :  chaque  cellule  génère  une  requête  au  cube  au  lieu  d’une  pour 
l’ensemble des données du tableau croisé dynamique. Je vous déconseille d’utiliser ce mode pour faire de 
l’extraction de données du cube. 

Un  des  nombreux  intérêts  de  la  conversion  en  mode  formule  est  de  pouvoir  bénéficier  des  fonctions  graphiques 
traditionnelles d’Excel. 
Ainsi, le graphique en exemple ci­dessous, est un graphique standard d’Excel basé sur les cellules converties : 

Graphique standard d’Excel basé les données du cube via le mode formule 

© ENI Editions - All rigths reserved - educ algeria - 11 -


Le  mode  formule  permet  alors  via  les  fonctions  graphiques  standard  d’Excel,  de  combiner  graphique  en  courbe  et 
histogramme, d’afficher le CA sur un axe et le % Marge sur un axe secondaire. 
Avec le mode formule, l’utilisateur traditionnel d’Excel va retrouver le confort d’utilisation de son outil favori, tout en 
manipulant  des  données  issues  d’un  cube  et  bénéficier  également  des  avantages  que  l’on  connait  :  performance, 
sécurité, centralisation de l’information… 

2. Publier vers Excel Services de SharePoint 

Cet  ouvrage  n’a  pas  pour  objectif  de  traiter  du  portail  de  Microsoft  SharePoint  Server  2010.  Néanmoins,  il  est 
impossible  de  parler  de  Business  Intelligence,  sans  aborder  le  partage  de  la  représentation  de  l’information.  Si 
l’activité d’analyse  est  une  activité  d’autonomie pouvant se réaliser sur le poste de travail au travers d’Excel,  il  n’en 
reste pas moins que la conclusion de l’analyse doit tout de même être partagée. 

Depuis la version Excel 2007, Microsoft nous offre la possibilité de publier tout ou partie du contenu du classeur Excel 
sur un portail SharePoint, transformant Excel en un véritable outil de reporting. 

Sans  cette  fonctionnalité,  la  grande  majorité  des  organisations  utilise  Excel  pour  récupérer  et  transformer 
l’information, puis envoie par e­mail ou dépose dans un répertoire le document Excel. D’autres préfèrent imprimer les 
rapports en totalité dans de grands classeurs qui sont transmis aux différents responsables. Le responsable d’activité 
est alors obligé d’ouvrir le classeur, de parcourir les onglets et les feuilles pour bien souvent s’intéresser à seulement 
deux ou trois indicateurs clés, fondus dans la masse d’informations. 
Avec les services Excel de SharePoint, nous allons avoir la possibilité de publier tout ou partie d’une feuille Excel au 
format  HTML.  Le  grand  avantage  est  que  les  rapports  Excel  restent  dynamiques  et  conservent  leurs  capacités  de 
filtrage et de navigation. Ces rapports étant au format web standard, les services Excel offrent ainsi la possibilité de 
s’intégrer au sein de pages du portail, constituant alors autant de véritables tableaux de bord dynamiques, actualisés 
et personnalisés pour chaque responsable d’activité. 
Cet  ouvrage  n’ayant  pas  pour  vocation  de  traiter  de  SharePoint,  nous  allons  simplement,  dans  l’exemple  qui  suit, 
publier un tableau croisé dynamique afin que vous puissiez appréhender l’interaction entre Excel 2010 et SharePoint 
2010. 
Nous réalisons le simple tableau croisé dynamique ci­dessous basé sur le cube Distrisys : 

La publication vers SharePoint s’effectue en cliquant sur l’onglet Fichier, puis sur Partager et enfin sur Publier vers 
Excel Services. 

- 12 - © ENI Editions - All rigths reserved - educ algeria


 

Lorsqu’on  publie  un  Excel  Services,  il  est  nécessaire  de  déposer  le  fichier  dans  une  liste  SharePoint  destinée  à  cet 
effet.  Les  listes  SharePoint  étant  considérées  au  sein  d’office  et  de  l’explorateur  Windows  comme  de  véritables 
répertoires : 

L’utilisation  des  services  Excel  nécessite  l’existence  d’un  portail  SharePoint  en  édition  entreprise  configuré 
pour utiliser ce service. 

Un certain nombre d’options permettent de spécifier si la publication va concerner : 

● La totalité du classeur Excel. 

© ENI Editions - All rigths reserved - educ algeria - 13 -


● Une ou plusieurs feuilles du classeur. 

● Un ou plusieurs éléments de tableaux croisés dynamiques ou graphiques croisés dynamiques. 

Dans l’exemple ci­dessous, nous avons publié uniquement le tableau croisé dynamique précédemment créé. 

Le tableau croisé dynamique publié sur SharePoint via les Excel Services 

Le  tableau  croisé  dynamique  s’affiche  ainsi  en  format  web  standard,  sans  nécessiter  d’avoir  Excel  2010  installé  en 
local sur son poste de travail. Les interactions avec le tableau croisé dynamique restent néanmoins conservées : il est 
possible  de  modifier  l’année  et  le  mois  en  filtre.  De  même,  il  est  possible  de  descendre  dans  la  hiérarchie  Site  en 
cliquant sur un pays ou d’afficher les sous­familles en cliquant sur une famille de produit. 
Notre  volonté  étant  simplement  de  vous  donner  un  aperçu  de  la  manière  dont  s’emploient  les  Excel  Services  avec 
Excel  2010,  nous  n’aborderons  dans  cet  ouvrage,  ni  la  configuration  de  SharePoint,  ni  même  la  constitution  de 
tableaux de bord. 

3. Utiliser le PowerPivot Excel 2010 

a. Présentation du PowerPivot 

Nous avons vu qu’il nous était possible de bâtir des tableaux croisés dynamiques à partir des données incluses dans 
Excel, puis à partir des données d’un cube. 
Seulement,  il  arrive  souvent  que  des  services  fonctionnels  soient  en  avance  de  phase  par  rapport  à  l’évolution de 
l’entrepôt de données. Ces services souhaitent bénéficier des mêmes possibilités de navigation que pour les cubes, 
pouvoir croiser de grandes quantités de données, issues de plusieurs sources, sans pour autant devoir disposer de 
studios de développement compliqués. 

Le PowerPivot est une grande nouveauté annoncée par Microsoft dans la version Office 2010, qui souhaite répondre 
à ce besoin grandissant. 

Le PowerPivot est un complément Excel 2010 disponible gratuitement sur le site de téléchargement de Microsoft. 
 
Vous pouvez télécharger ce complément sur le site http://www.powerpivot.com

Après installation du complément, un nouvel onglet apparaît dans le ruban d’Excel 2010. 

- 14 - © ENI Editions - All rigths reserved - educ algeria


L’onglet PowerPivot dans Excel 2010 

Un clic sur le bouton PowerPivot window lance l’application PowerPivot associée au fichier Excel. 

Le client PowerPivot 

Ce complément permet à Excel de dépasser certaines de ces limitations initiales : 

● Le  PowerPivot  permet  de  brasser  des  tables  de  plusieurs  millions  de  lignes,  allant  bien  au­delà  de  la 
limitation actuelle d’un peu plus de 65000 lignes pour Excel 2003 et d’environ 1 million de lignes pour Excel 
2007. 

● Le  PowerPivot  est  très  performant,  même  avec  des  tables  de  plusieurs  millions  de  lignes.  En  fait,  lors  du 
processus  d’import  de  données,  le  PowerPivot  stocke  l’ensemble  de  ces  données  en  mémoire,  permettant 
ainsi un accès rapide en cas de filtre, de tri et de calcul. 

● Le PowerPivot peut importer et croiser des données issues de sources très diverses : 

● De base de données relationnelles : SQL Server, Access, Oracle, Teradata, IBM DB2… 

● De fichiers plats : fichier texte ou fichier Excel. 

● De source multidimensionnelle : SQL Server Analysis Services. 

● Autres : flux RSS, services web, données issues de la saisie manuelle… 

© ENI Editions - All rigths reserved - educ algeria - 15 -


PowerPivot permet d’importer des données d’origines très diverses 

Pour illustrer l’utilisation du PowerPivot, prenons l’exemple de Distrisys. 

La société souhaite développer les services autour de la vente de ses produits : intervention chez le client final, formation 
des revendeurs, support téléphonique… 

Ce service ne représente aujourd’hui  qu’une part négligeable du CA de Distrisys, mais la direction pense que la vente de 
service tirera demain la croissance de la société. 

Le responsable souhaite donc bénéficier de tableaux de bord et de capacités d’analyse. Le problème étant que même si le 
service est prometteur, il n’est pas jugé aujourd’hui comme prioritaire, d’autant plus que les outils de gestion des pièces 
détachées et de suivis des interventions sont en dehors de l’ERP maison. 

Le  service  BI  de  Distrisys  souhaite  tout  de  même  pouvoir  répondre  au  service  SAV,  et  lui  propose  de  patienter  en  lui 
mettant à disposition Excel 2010 et le PowerPivot. 

Voyons comment créer un tableau de bord de suivi des interventions SAV avec Excel 2010 et PowerPivot. 

L’application  de  gestion  des  interventions  SAV  a  la  capacité  d’exporter  des  données  au  format  CSV.  Ce  fichier 
comprend : 

● La date d’intervention. 

● Le produit sur lequel porte l’intervention. 

● Le revendeur du produit. 

● Une indication permettant de savoir si l’intervention était en garantie ou hors garantie. 

● Le nombre d’interventions. 

- 16 - © ENI Editions - All rigths reserved - educ algeria


● Le CA et le coût de l’intervention. 

Nous  allons  importer  ce  fichier  dans  le  client  PowerPivot,  puis  importer  les  tables  de  dimension  DimTemps, 
DimProduit,  DimClient  et  Dimgeographie  de  l’entrepôt  de  données  afin  d’accroître  le  nombre  d’axes  d’analyse  du 
fichier. 

La manipulation qui va suivre a été réalisée avec la version beta CTP3 du complément PowerPivot. Il est très 
probable que des modifications, notamment de traduction interviennent d’ici la version finale. 

■ Téléchargez le fichier InterventionSupport.csv sur le site Internet de l’ouvrage. 

■ Téléchargez et installez le complément Excel 2010 PowerPivot. 

■ Ouvrez Excel 2010 et cliquez sur l’onglet PowerPivot. 

■ Cliquez sur le bouton PowerPivot window pour ouvrir le client PowerPivot. 

b. Importer des données texte dans PowerPivot 

Le  client  PowerPivot  va  nous  permettre  d’importer  les  données,  de  les  retraiter  et  d’établir  des  liaisons  entre  les 
tables. 

■ Pour importer les données du fichier csv, cliquez sur le bouton From Files, puis sur From Text. 

Un assistant d’importation de table s’ouvre et vous propose de configurer la connexion au fichier plat. 

■ Au  niveau  du  champ  File  Path,  cliquez  sur  le  bouton  Parcourir  pour  récupérer  le  chemin  d’accès  au  fichier 
InterventionSupport.csv précédemment téléchargé. 

■ Sélectionnez le Séparateur de colonne de type Point­virgule (;). 

■ Cochez  la  case Use first row as column headers, afin de considérer la première ligne comme contenant le nom 

© ENI Editions - All rigths reserved - educ algeria - 17 -


des colonnes. 

Configuration de l’importation d’un fichier plat dans PowerPivot 

■ Cliquez sur Terminer. 

Pour chaque table de données importées, quelle que soit son origine, PowerPivot crée un nouvel onglet : 

- 18 - © ENI Editions - All rigths reserved - educ algeria


 

c. Importer des données de SQL Server dans PowerPivot 

Nous  allons  maintenant  importer  les  tables  de  dimension  de  l’entrepôt  de  données,  afin  d’enrichir  les  capacités 
d’analyse de cette table. 

■ Cliquez sur From Database, puis sur From SQL Server. 

L’assistant d’importation de table SQL Server s’ouvre : 

■ Au niveau du champ Nom du serveur, saisissez le nom du serveur et de l’instance SQL Server. 

■ Au niveau du champ Nom de la base de données, sélectionnez la base DistrisysDW, puis cliquez sur Suivant. 

■ Cochez  la  case  Sélectionner  les  données  à  importer  dans  une  liste  de  tables  et  de  vues,  puis  cliquez  sur 
Suivant. 

L’assistant affiche alors la liste des tables et des vues de la base DistrisysDW et nous invite à cocher les tables que 
nous souhaitons importer dans PowerPivot. 

■ Sélectionnez DimClient, DimGeographie, Dimproduit et DimTemps. 

■ Renommez les tables Client, Geographie, Produit et Temps. 

© ENI Editions - All rigths reserved - educ algeria - 19 -


L’assistant d’importation de table SQL Server de PowerPivot 

■ Cliquez sur Terminer, le processus d’importation se lance. 

■ Lorsque ce processus d’importation se termine avec succès, cliquez sur Fermer. 

Les  tables  SQL  Server  apparaissent  alors  comme  des  onglets,  au  même  titre  que  la  table  InterventionSupport, 
précédemment importée. 

- 20 - © ENI Editions - All rigths reserved - educ algeria


 

d. Créer des relations entre les tables PowerPivot 

La grande force de PowerPivot consiste alors à lier entre elles ces tables, et ce, quelle que soit leur origine. 

■ Pour  gérer  les  relations  entre  les  tables,  cliquez  dans  le  ruban  sur  l’onglet  Table,  puis  sur  le  bouton  Manage 
RelationShip. 

La fenêtre Gérer les relations permet de visualiser les relations entre les tables, de supprimer des relations et d’en 
créer. 
Vous pouvez noter que par défaut, le module d’importation de données de SQL Server conserve les relations entre 
les tables importées. Ainsi, la relation entre la table Client et la table Geographie est par défaut, déjà établie. 

■ Pour  achever  notre  modèle  de  données  PowerPivot,  cliquez  sur  le  bouton  Créer  pour  ajouter  les  relations 
suivantes : 

● Entre  la  colonne DateIntervention de la table InterventionSupport et la colonne Temps_PK de la table 


Temps. 

● Entre  la  colonne  RevendeurCode  de  la  table  InterventionSupport  et  la  colonne ClientCode  de  la  table 
Client. 

● Entre  la  colonne  Produit_PK  de  la  table  InterventionSupport  et  la  colonne  Produit_PK  de  la  table 
Produit. 

© ENI Editions - All rigths reserved - educ algeria - 21 -


Interface de création de relations entre les tables PowerPivot 

Lorsque toutes les relations sont créées, vous devriez obtenir l’interface suivante : 

Le gestionnaire de relation entre les tables PowerPivot 

■ Cliquez sur Fermer. 

e. Créer des colonnes calculées dans une table PowerPivot 

■ Pour achever le modèle, nous allons ajouter à la table InterventionSupport, onglet situé en bas à gauche, deux 
nouvelles colonnes : 

● MargeIntervention : fait la différence entre la colonne CAIntervention et la colonne CoutIntervention. 

● Garantie : affiche Hors Garantie lorsque la colonne est égale à 0, sinon affiche En Garantie. 

La création de nouvelles colonnes fonctionne sur le même principe que les cellules avec formule d’Excel. 

■ Sur l’onglet de la table InterventionSupport, sélectionnez la colonne la plus à droite Ajouter une colonne. 

- 22 - © ENI Editions - All rigths reserved - educ algeria


Puis cliquez sur la zone de texte de formule et tapez la formule suivante : 

=IF(’InterventionSupport’[Est Garantie]=0,"Hors Garantie", "En Garantie")

■ Renommez la nouvelle colonne calculée : Garantie. 

La création de colonne calculée se fait sur le même principe qu’Excel 

La  création  de  la  formule  ci­dessus  est  basée  sur  le  même  principe  que  les  cellules  calculées  d’Excel.  Bien  que 
proches,  le  langage  sous­jacent  et  les  fonctions  disponibles  sont  néanmoins  différents.  Ce  langage  qui  permet 
d’ajouter  des  colonnes  calculées  est  appelé  le  DAX  (Data  Analysis  Expression).  En  plus  des  fonctions  standards 
Excel,  le  langage  est  enrichi  de  fonctions  spécifiques.  On  retrouve  notamment  des  fonctions  emblématiques  des 
contextes multidimensionnels, telles que : 

● ParallelPeriod : équivalent de la fonction MDX du même nom. 

● TotalYTD : équivalent de la fonction MDX YTD ou PeriodsToDate. 

Ou des fonctions propres au fonctionnement de PowerPivot, telles que : 

● Related : retourne une colonne d’une autre table associée à la ligne courante. 

● RelatedTable : retourne les lignes, de la table liée, associées aux lignes filtrées de la table courante. 

© ENI Editions - All rigths reserved - educ algeria - 23 -


Les fonctions DAX disponibles dans PowerPivot 

■ De même, créez une nouvelle colonne MargeIntervention qui réalise la différence entre la colonne CAIntervention 
et CoutIntervention, comme indiqué par la formule ci­dessous : 

=’InterventionSupport’[CAIntervention]-
’InterventionSupport’[CoutIntervention]

Maintenant, nous allons retravailler le format des colonnes financières pour les afficher en euro. 

■ Pour modifier le format (valeur monétaire) de la colonne MargeIntervention, sélectionnez la colonne, puis cliquez 
dans le ruban sur l’onglet Column, en haut de la page. 

Les options de paramétrage des colonnes des tables du PowerPivot 

■ Cliquez sur le symbole $, puis sélectionnez € Français (France). 

■ Faites de même pour les colonnes CAIntervention et CoutIntervention. 

Pour finir, nous allons masquer la colonne Est garantie afin que cette colonne n’apparaisse pas en sélection lors de 
l’élaboration des tableaux et graphiques croisés dynamiques. 

■ Sélectionnez la colonne Est garantie. Puis, dans le ruban, cliquez sur l’onglet Column. Enfin, cliquez sur le bouton 
Hide and Unhide. 

■ Dans la fenêtre Masquer et afficher les colonnes, décochez pour la colonne Est Garantie, la case à cocher Dans 
le tableau croisé dynamique. 

- 24 - © ENI Editions - All rigths reserved - educ algeria


Le modèle de données est maintenant terminé. Tout s’est déroulé simplement sans écrire une seule ligne de code. 

f. Présenter les données du PowerPivot 

PowerPivot assiste l’utilisateur dans la création de tableaux de bord. 

■ Dans le client PowerPivot, cliquez sur l’onglet Home dans le ruban. 

■ Puis cliquez sur le bouton PivotTable, afin de sélectionner une mise en forme. Sélectionnez la mise en forme en 
quatre graphiques (Four Charts). 

La mise en forme des tableaux se réalise sous Excel, comme un tableau ou graphique croisé dynamique classique. 

■ Au  niveau  du  volet  de  tâche  Gemini,  un  peu  à  la  manière  d’un  cube,  vous  avez  la  possibilité  de  glisser  les 
mesures  dans  le  champ  Valeurs,  et  les  champs  d’analyse  dans  les  zones  Champs  Axe  (abscisse)  ou  Champ 
Légende (Série). 

Les  champs  glissés  dans  les  zones  Découpages  verticaux  ou  Découpages  horizontaux  génèreront 
automatiquement des slicers. 

© ENI Editions - All rigths reserved - educ algeria - 25 -


 

Au final, après configuration de chacun des quatre graphiques, nous pouvons obtenir le tableau de bord ci­dessous : 

Tableau de bord réalisé avec PowerPivot 

- 26 - © ENI Editions - All rigths reserved - educ algeria


Un simple clic sur les boutons, contenus dans les slicers, met à jour les données de votre tableau de bord. 

Nous venons ainsi de répondre assez rapidement au besoin du service SAV de Distrisys : 

● Nous  avons  construit  un  modèle  de  données  sans  grande  connaissance  du  décisionnel  et  sans  écrire  une 
seule ligne de code. 

● Puis  nous  avons  créé  un  tableau  de  bord  dynamique,  constitué  d’un  ensemble  de  tableaux  et  graphiques 
croisés dynamiques. 

g. PowerPivot vs Entrepôt de données 

L’arrivée du  PowerPivot,  et  avant  lui  des  applications  de  montées  en  mémoire,  soulèvent  beaucoup  de  questions 
dans le milieu de la BI. Ces applications rencontrant un franc succès auprès de nombreux clients, elles mettent en 
lumière  les  attentes  d’utilisateurs  souhaitant  des  projets,  à  mise  en  œ uvre  rapide  et  localisée,  sur  des  domaines 
fonctionnels précis. Certains dans le milieu de la BI en arrivent même à se poser la question de l’intérêt de l’entrepôt 
de données. 
L’utilisation  du  PowerPivot  ne  remet  pas  du  tout  en  question  la  BI  traditionnelle  et  l’utilisation  d’un  entrepôt  de 
données. Pour analyser des données hétérogènes de manière transverse, il faudra quoiqu’il arrive rassembler ces 
données dans une base de données commune, contrôlée et certifiée par le service informatique. 

Les applications PowerPivot ne sont ni des solutions d’avenir, ni des solutions à bannir. Il ne faut pas voir l’approche 
du  PowerPivot  comme  concurrent  à  l’approche  de  l’entrepôt  de  données,  mais  plutôt  comme  un  complément 
nécessaire. 
En  effet,  la  mise  en  place  d’un  entrepôt  de  données  se  réalise  progressivement  et  de  manière  itérative,  par 
l’augmentation progressive du périmètre fonctionnel. Si on en revient à la représentation de l’entrepôt de données 
sous forme de matrice dimensionnelle, on va venir progressivement ajouter de nouvelles colonnes (tables de faits) et 
de  nouvelles  lignes  (dimensions).  Cela  étant,  ce  processus  est  progressif  et  peut  être  considéré  par  certains 
domaines  fonctionnels,  considérés  au  premier  abord  comme  non  prioritaires  par  le  projet  d’entrepôt  de  données, 
comme trop lent et donc inapte à répondre rapidement à leurs besoins. 
C’est  là  qu’intervient  la  fonction  de  PowerPivot.  Cette  fonctionnalité  peut  permettre  de  répondre  aux  attentes  de 
domaines fonctionnels non prioritaires en attendant une prise en charge et une reprise de leur domaine fonctionnel 
au sein du périmètre de l’entrepôt de données. 
En faisant le parallèle avec le monde applicatif, le PowerPivot est, vis­à ­vis de l’entrepôt de données, ce que sont les 
applications Access vis­à­vis de l’ERP. 
Les  applications,  bâties  avec  Microsoft  Office  Access,  n’ont  jamais  remis  en  question  la  nécessité  de  disposer  d’un 
ERP fiabilisé, géré et garanti par le service informatique mais également transverse aux fonctions de l’entreprise. Le 
PowerPivot répond ainsi à des domaines fonctionnels qui souhaitent être en avance de phase par rapport au service 
décisionnel. 
Le  PowerPivot  peut  être  un  bon  moyen,  pour  le  service  informatique,  de  faire  attendre  les  utilisateurs  les  plus 
impatients, en encadrant son utilisation et en restant homogène en terme de déploiement de solution logicielle. 

4. Publier un rapport PowerPivot sur SharePoint 

Dans la partie précédente, nous avons bâti un modèle de données sans code, et sans avoir à disposer de SQL Server 
Analysis Services. Seul Excel 2010 est un complément gratuit et nécessaire. 
PowerPivot dispose de la possibilité de publier le rapport précédemment bâti sur un site SharePoint, en y incluant le 
modèle  de  données  réalisé  par  l’utilisateur.  Les  utilisateurs  peuvent  ainsi  partager  leurs  rapports  et  les  diffuser  au 
format Web sur le portail d’entreprise. En revanche, pour disposer de cette fonction, les solutions Microsoft SharePoint 
2010 et Microsoft SQL Server 2008 R2 deviennent indispensables. 

La configuration et la publication de PowerPivot sur SharePoint étant un autre sujet, nous ne le traiterons pas dans 
cet ouvrage. 

© ENI Editions - All rigths reserved - educ algeria - 27 -


Reporting Services 

1. Le bon emploi de Reporting Services : le reporting de masse 

À  l’origine,  Reporting  Services  avait  été  conçu  pour  soulager  les  développeurs  dans  la  réalisation  de  rapports 
applicatifs,  tels  qu’une  facture,  une  fiche  client,  un  bon  de  livraison…  L’outil  permettait  ainsi  à  des  développeurs  de 
réaliser des états opérationnels professionnels, la plupart du temps embarqués dans leur application. Ces dernières 
années le produit a évolué et Microsoft a fait de grands efforts Marketing pour le présenter sous un autre jour, c’est­à­
dire en le présentant comme un outil de réalisation de rapports décisionnels. Toutefois, Reporting Services reste très 
marqué par son premier usage. 

Pour  vous  éviter  des  écueils,  il  est  important  que  vous  sachiez  faire  la  différence  entre  rapports  opérationnels  et 
rapports  décisionnels.  Il  en  va  de  la  réussite  de  votre  système  décisionnel.  Dans  les  faits,  les  seuls  rapports 
décisionnels qui justifient réellement l’emploi de Reporting Services sont les reporting de masse. Les autres cas, que 
l’on appelle à tort rapports décisionnels sont en fait soit des analyses, soit des tableaux de bord. Et dans ces cas, qui 
sont  d’ailleurs  généralement  assez  majoritaires,  la  réalisation  de  ces  rapports  nécessite  l’emploi  d’outils  beaucoup 
plus appropriés pour ce travail, tels Excel ou les services PerformancePoint de SharePoint Server 2010. 

Néanmoins, le besoin utilisateur qui relève du décisionnel et qui concerne le plus d’individus dans une organisation est 
le reporting de masse. Le Reporting de masse correspondant à l’automatisation de la production et de la diffusion de 
rapports prédéfinis. 
Pour  utiliser  les  bons  outils  à  bon  escient,  il  faut  porter  votre  attention  sur  l’importance  de  comprendre  ce  qu’est 
vraiment un rapport de masse : 
Le  reporting  de  masse  est  employé  pour  diffuser  périodiquement  une  information  personnalisée  à  un  très  grand 
nombre.  Généralement,  il  s’agit  de  rapports  de  suivi  d’activité  opérationnelle  :  suivi  d’activité  quotidien  de  tous  les 
commerciaux, suivi d’activité hebdomadaire des acheteurs, rapport qualité mensuel par unité de production… 
Si  l’utilisation  d’Excel  est  destinée  à  des  populations  d’analystes  ou  de  responsables  fonctionnelles,  l’usage  du 
reporting de masse est destiné à des populations opérationnelles. 
Ces  rapports  nécessitent  une  attention  particulière  sur  la  forme  :  mise  en  page  et  qualité  esthétique.  Ils  sont 
généralement fidèles à la charte graphique de l’organisation : les rapports de masse véhiculent l’image de la société. 
Ces  rapports  sont  conçus  pour  être  diffusés  au  format  numérique  (par  mail  par  exemple),  mais  aussi  papier.  Ces 
rapports sont aussi conçus pour conserver leur qualité esthétique lors de l’impression. 
En revanche, l’interactivité de ces rapports est limitée. Ces rapports sont : 

● soit statiques, à la manière d’un rapport papier. 

● soit légèrement dynamiques, l’utilisateur a ainsi la possibilité : 

● de modifier simplement des filtres prédéfinis ; 

● de naviguer d’un rapport plus global à un rapport prédéfini plus spécifique. 

Contrairement aux croyances, les vrais rapports de masse sont peu nombreux dans l’entreprise. Par contre, réalisées 
manuellement par un service fonctionnel, la production et la diffusion de ces rapports peuvent prendre énormément de 
temps. 

Ces  rapports  étant  peu  nombreux,  prédéfinis,  stables  dans  le  temps  et  compliqués  à  diffuser,  ils  sont  d’excellents 
candidats à la prise en charge par le service informatique. Le reporting de masse est de fait généralement conçu et 
automatisé  par  le  service  informatique.  Les  rapports  produits  sont  alors  soit  diffusés  par  mail,  soit  publiés  sur  un 
portail pour être consultés par les utilisateurs concernés. 
Dans  la  suite  de  ce  chapitre,  nous  aborderons  la  conception  de  rapports  Reporting  Services  avec  BIDS,  puis  avec 
Report Builder 3. En fin de chapitre, nous aborderons la diffusion de ces rapports. 

2. Configurer SSRS en mode natif 

Dans cette partie, nous allons apprendre à configurer le serveur Reporting Sevices. 

En  fin  d’installation  de  SQL  Server  2008  R2,  suivant  les  options  choisies,  vous  devrez  configurer  manuellement 
Reporting Services. 
Reporting Services propose deux modes de configuration : 

© ENI Editions - All rigths reserved - educ algeria - 1-


● Le  mode  natif  :  le  configurateur  crée  un  site  web  appelé  le  Gestionnaire  de  rapports.  Ce  site  sert  alors 
d’espace de stockage, de partage et d’administration des rapports publiés. 

● Le mode intégré SharePoint : dans ce mode, Reporting Sevices est configuré pour être utilisé conjointement 
avec SharePoint. Les listes SharePoint sont utilisées pour le stockage et le partage des rapports publiés. Une 
partie de l’administration de Reporting Services est déportée dans le site d’administration de SharePoint. 

Ces deux modes ne s’opposent pas. Je vous conseille même, si vous en avez la possibilité, de créer deux instances 
SQL  Server  Reporting  Services  :  l’une  configurée  en  mode  autonome  destinée  à  l’usage  exclusif  du  service 
informatique.  L’autre  en  mode  intégré  SharePoint,  destinée  aux  rapports  créés  en  libre­service  par  les  utilisateurs 
finaux. 

Pour commencer, nous allons configurer Reporting Services en mode natif. 

■ Pour lancer le configurateur, dans le menu Démarrer, cliquez sur Microsoft SQL Server 2008 R2. 

■ Une  fenêtre  s’ouvre  et  vous  propose  de  vous  connecter  à  votre  serveur  Reporting  Services.  Saisissez  le  nom  de 
votre serveur. Sélectionnez votre instance, puis cliquez sur Se Connecter. 

Le Gestionnaire de configuration de Reporting Services s’ouvre sur l’instance sélectionnée. 

■ Cliquez sur le bouton Démarrer pour lancer le service. 

■ Cliquez sur l’item Compte de Service et saisissez un compte de domaine : 

■ Cliquez  sur  l’item  URL  du  service  Web  pour  configurer  le  site  web  qui  hébergera  le  service  web  de  Reporting 
Services.  Par  défaut,  le  nom  du  répertoire  virtuel  est  ReportServer_instance.  Lorsque  vous  êtes  sûr  de  vos 
modifications, cliquez sur le bouton Appliquer en bas à droite de l’interface. 

- 2- © ENI Editions - All rigths reserved - educ algeria


 

■ Cliquez maintenant sur l’item Base de données dans la barre de menu à gauche. 

Par défaut, aucune information ne devrait être pré­saisie. C’est au niveau de la configuration de la base de données 
que nous définissons le mode de gestion de Reporting Services. 

■ Pour commencer la configuration, cliquez le bouton Modifier la base de données. 

■ L’Assistant  de  configuration  de  la  base  de  données  du  serveur  de  rapports  s’ouvre.  Sélectionnez  l’option Créer 
une nouvelle base de données de serveur de rapport. Puis cliquez sur Suivant. 

© ENI Editions - All rigths reserved - educ algeria - 3-


■ À l’interface suivante, saisissez le nom et l’instance de votre serveur de base de données SQL Server. Puis cliquez 
sur Suivant. 

L’interface  suivante  vous  propose  de  choisir  le  nom  de  la  base  de  données  qui  va  servir  de  référentiel  de  données 
Reporting Services, ainsi que le mode de configuration : Mode natif ou mode intégré SharePoint. 

■ Laissez le nom par défaut ReportServer. Et sélectionnez l’option Mode natif. Cliquez sur Suivant. 

L’interface de l’assistant Information d’identification, vous demande de spécifier le compte qui servira à accéder à la 
base de données Reporting Services. 

■ Dans la liste déroulante Type d’authentification, sélectionnez Informations d’identification du service, afin que ce 
soit le compte de service de Reporting Services qui soit utilisé pour accéder à cette base et bénéficie de l’octroi des 
droits d’accès. Cliquez sur Suivant. 

■ Un résumé de la configuration s’affiche. Vérifiez ces informations, puis cliquez sur Suivant. L’assistant génère alors 
la  base  de  données  de  Reporting  Services  et  accorde  les  droits  de  connexion  au  compte  de  service.  Lorsque  la 
configuration se termine avec succès, cliquez sur Terminer pour fermer l’assistant base de données. 

Les  données  de  configuration  de  la  base  de  données  s’affichent  alors  dans  l’interface  du  Gestionnaire  de 
configuration de Reporting Services : 

- 4- © ENI Editions - All rigths reserved - educ algeria


 

■ Continuez  la  configuration  de  Reporting  Services  en  cliquant  sur  l’item  URL  du  Gestionnaire  de  rapports  dans  le 
menu à gauche. 

■ Étant en mode natif, nous devons définir le site web du Gestionnaire de rapport. Par défaut, le répertoire du site 
web est Report_instance. Cliquez sur Appliquer. 

À  ce  stade  de  la  configuration,  le  serveur  Reporting  Services  est  opérationnel.  Pour  finir  l’installation,  les  items 
Paramètres  de  messagerie  et  Compte  d’exécution  seront  configurés  afin  d’utiliser  la  diffusion  automatique  de 
rapports. 

■ Cliquez sur l’item Paramètres de messagerie pour configurer le serveur de messagerie. Saisissez le nom de votre 
serveur SMTP, ainsi que l’adresse de messagerie de l’expéditeur. 

■ Cliquez sur l’item Compte d’exécution afin de spécifier un compte de domaine qui sera utilisé entre autres lors de la 
diffusion automatique de rapports. 

Enfin,  dans  l’item Clés  de  chiffrement, sauvegardez la clé de chiffrement. Reporting Services crypte les informations 


contenues dans ses bases de données. La restauration de cette clé vous sera alors réclamée, lorsque vous voudrez 
restaurer une base de rapports, migrez votre serveur Reporting Services ou ajoutez un nouveau serveur en cas de 
montée en charge. 
Pour vérifier que votre installation fonctionne, cliquez sur l’item URL du service Web et cliquez sur l’url spécifiée par 
l’encadré URL du service web Reporting Services. Ajoutez cette URL à vos favoris en tant que Serveur de rapports RS. 

© ENI Editions - All rigths reserved - educ algeria - 5-


Le serveur de rapports 

Faites de même, en allant sur l’item URL du Gestionnaire de rapports. Cliquez sur l’URL proposée et ajoutez ce lien 
dans vos favoris en tant que Gestionnaire de rapports RS. 

Le gestionnaire de rapports 

Nous  venons  de  configurer  le  serveur  Reporting  Services  en  mode  natif.  Dans  les  parties  suivantes,  nous  allons 
apprendre à créer des rapports. 

3. Créer des rapports SSRS avec BIDS 

a. Créer un projet de rapport 

Pour commencer et prendre en main l’interface de conception de Reporting Services, nous allons réaliser un premier 
rapport opérationnel basé sur des données relationnelles (interrogeable en SQL). 

À la différence d’un rapport décisionnel qui va présenter des données de synthèse transverses à plusieurs 
fonctions  de  l’entreprise  ou  à  plusieurs  applicatifs,  le  rapport  opérationnel  va  présenter  des  données  de 
détails propres à une seule fonction de l’entreprise et à un seul applicatif. 

En environnement décisionnel Microsoft, un rapport décisionnel ne devrait jamais être réalisé à partir de la 
base relationnelle (DW), mais uniquement à partir du cube. C’est pourquoi, pour illustrer la conception d’un 
rapport Reporting Services sur une base relationnelle, nous sommes obligés d’illustrer la réalisation d’un rapport 
opérationnel. 

- 6- © ENI Editions - All rigths reserved - educ algeria


Dans le chapitre Alimenter l’entrepôt de données avec SSIS ­ L’audit des flux ETL, nous avons créé des tables d’audit 
afin de tracer le déroulement des flux ETL. Nous allons dans cette partie, créer deux rapports opérationnels d’audit : 

● Le premier rapport va afficher simplement la liste des traitements ETL. Les données seront issues de la table 
AuditTraitement. 

● Le second rapport affichera la liste des flux d’un traitement en particulier. Les données seront issues de la 
table AuditFlux. Nous souhaitons que ce second rapport s’affiche lorsque l’utilisateur clique sur un traitement 
listé par le rapport précédent. 

Si  vous  n’avez  pas  suivi  le  précédent  chapitre,  vous  pouvez  télécharger  sur  le  site  du  livre,  la  base  de  données 
finale. Cette dernière base vous permettra de réaliser les exercices qui vont suivre. 

Nous allons commencer par créer un projet Reporting Services dans BIDS. 

■ Pour cela, ouvrez BIDS. 

■ Dans la barre de menu, cliquez sur Fichier, puis sur Nouveau et enfin Projet. 

■ Dans les modèles Projets Business Intelligence, sélectionnez le modèle Projet Report Server. Nommez le projet 
DistrisysRapport. 

Ensuite nous allons créer une nouvelle source de données : 

■ Dans la fenêtre Explorateur  de  solutions, faites un clic droit sur Source  de  données  partagées, puis cliquez sur 


Ajouter une nouvelle source de données. 

■ Nommez la connexion DistrisysDW, puis dans la liste déroulante Type, sélectionnez Microsoft SQL Server. 

Nativement, les rapports Reporting Services peuvent être basés sur de nombreuses sources de données : 

● Des sources de données relationnelles : SQL Server, Oracle, Terradata, OLE DB, ODBC… 

● Des sources de données multidimensionnelles : SQL Server Analysis Services, Hyperion Essbase… 

● Des sources diverses : XML, service web, liste Microsoft SharePoint, Report Server Model … 

© ENI Editions - All rigths reserved - educ algeria - 7-


Pour réaliser nos rapports d’audit ETL, nous utilisons une source relationnelle SQL Server. 

■ Cliquez sur Modifier afin de créer la chaîne de connexions à la base de données DistrisysDW. 

■ La  fenêtre  Propriété  de  connexion  s’ouvre.  Saisissez  le  nom  et  l’instance  de  votre  serveur  SQL  Server,  puis 
utilisez la liste déroulante afin de sélectionner la base de données DistrisysDW. Testez la connexion, puis cliquez 
sur le bouton OK. 

■ Pour achever la création de la source de données, cliquez sur OK. 

b. Créer un rapport avec l’assistant 

La source de données étant créée, nous allons générer le premier rapport en utilisant l’assistant : 

■ Dans l’Explorateur de solution, faites un clic droit sur Rapports, puis cliquez sur Ajouter un nouveau rapport. 

■ L’assistant rapport s’ouvre. Cliquez sur Suivant. 

■ Sélectionnez la source de données partagée DistrisysDW. 

■ À l’étape Concevoir la requête, cliquez sur Générateur de requêtes… 

Le Concepteur de requêtes est un assistant graphique qui vous assiste dans la réalisation de votre requête SQL. 
 
■ Cliquez sur l’icône  Ajouter un tableau afin d’ajouter la table AuditTraitement à la requête courante.

■ Puis cochez une à une toutes les colonnes de la table pour les prendre en compte dans la requête. 

■ Ajoutez  à  votre  requête  SQL  le  champ  DateExecution,  qui  fait  simplement  la  conversion  du  champ 
DateDebutTraitement en type Date (sans les heures) 

CAST(DateDebutTraitement as date) As DateExecution,

■ Dans la grille, spécifiez le Type de tri des colonnes DateExecution et DateDebutTraitement sur Décroissant, afin 
que la liste des traitements d’audit affiche en premier lieu les derniers traitements. 

Au final, vous devriez obtenir la requête ci­dessous : 

SELECT AuditTraitement_PK, NomFlux, CAST(DateDebutTraitement as date)


As DateExecution,
DateDebutTraitement, DateFinTraitement, NbErreurTechnique, NbAvertissement,
FluxTermineAvecSucces, FluxAreprendre, NbFluxExecute
FROM AuditTraitement
ORDER BY DateExecution DESC, DateDebutTraitement DESC
 
■ Pour vérifier votre requête et en afficher le résultat, cliquez sur l’icône  Exécuter.

- 8- © ENI Editions - All rigths reserved - educ algeria


Le concepteur de requêtes SQL de Reporting Services 

■ Cliquez sur le bouton OK pour valider votre requête SQL. 

La requête précédemment créée est ajoutée à l’assistant qui vous propose alors de continuer à suivre les étapes de 
réalisation du rapport : 

■ Cliquez sur le bouton Suivant. 

© ENI Editions - All rigths reserved - educ algeria - 9-


L’assistant vous propose alors de choisir le type de mise en forme : 

● Tabulaire pour l’affichage façon listing. 

● Matrice pour l’affichage façon tableau croisé dynamique. 

■ Sélectionnez  une  mise  en  forme  tabulaire,  car  nous  souhaitons  simplement  afficher  la  liste  des  traitements  ETL 
passés. 

L’assistant nous propose alors de répartir les champs suivants au moins sur trois niveaux de regroupement : 

● Le  niveau  Page  :  chaque  valeur  d’un  champ  génère  une  liasse.  Le  saut  de  page  intervenant  à  chaque 
changement de valeur de ce champ. 

● Le niveau  Groupe : chaque valeur d’un  champ  crée  un  regroupement  de  valeur  de  détail.  L’assistant nous 
laisse la possibilité de positionner plusieurs champs de regroupement. 

● Le niveau Détails : il s’agit des champs de plus bas niveau, affichés en dernier lieu. 

Par exemple, si Distrisys souhaite réaliser un état annuel à imprimer des ventes par commercial, le champ qui identifie le 
commercial serait alors à positionner en page. Le premier champ de regroupement pourrait être le mois de facturation, le 
second  champ  de  regroupement  pourrait  être  le  client.  Et  le  détail  pourrait  être  constitué  par  les  champs  :  numéro  de 
facture, CA, Marge… 

Dans  notre  cas,  nous  souhaitons  simplement  afficher  un  listing.  Pour  en  faciliter  la  lecture,  nous  regrouperons  les 
traitements par DateExecution afin de regrouper les traitements exécutés le même jour. 
Répartir les champs de la manière suivante : 

● Niveau Page : aucun champ 

● Niveau Groupe : DateExecution 

● Niveau Détails : tous les autres champs disponibles à l’exception du champ AuditTraitement_PK. 

- 10 - © ENI Editions - All rigths reserved - educ algeria


 

■ Cliquez sur le bouton Suivant. 

La  fenêtre  suivante  de  l’assistant  s’affiche  car  nous  avons  spécifié  un  champ  de  regroupement.  L’assistant  nous 
demande alors un complément d’informations. 

■ Sélectionnez  la  mise  en  forme  En  escalier  pour  mettre  en  en­tête  de  groupe  chacune  des  valeurs  du  champ 
DateExecution. 

■ Cochez l’option Activer l’exploration vers le bas, afin de masquer par défaut les éléments de détail et permettre 
l’activation  et  la  désactivation  de  la  visibilité  de  ces  éléments  de  détail  par  l’utilisateur.  Cette  option  permettra 
d’améliorer la lisibilité de notre rapport et le dynamisera. 

© ENI Editions - All rigths reserved - educ algeria - 11 -


 

■ Cliquez sur le bouton Suivant. 

La fenêtre suivante nous laisse la possibilité de choisir le style et le jeu de couleurs qui sera appliqué au rapport. 

■ Sélectionnez le style Ardoise, puis cliquez sur Suivant. 

■ Nommez le rapport Liste des Traitements et cochez l’option Aperçu du rapport. Cliquez sur Terminer. 

Le rapport est créé et son aperçu s’affiche. 

- 12 - © ENI Editions - All rigths reserved - educ algeria


Premier aperçu du rapport crée avec l’assistant 

c. L’environnement de travail 

■ Pour sortir du mode aperçu et afficher le rapport en mode conception, cliquez sur l’onglet Conception. 

Le rapport crée avec l’assistant en mode conception 

L’interface de conception est scindée en trois zones distinctes : 

● La zone de travail occupe la majorité de l’espace et représente les objets et les champs contenus dans le 

© ENI Editions - All rigths reserved - educ algeria - 13 -


rapport. 

● La zone Groupes de lignes fait état des regroupements en ligne. Notre rapport comporte un regroupement 
au niveau du champ DateExecution. 

● La  zone  Groupes  de  colonnes  fait  état  des  regroupements  en  colonne.  Ces  regroupements  ne  sont 
disponibles que lorsque nous utilisons une représentation matricielle (façon tableau croisé dynamique). 

Afin de développer les rapports, il est nécessaire de connaitre certaines fenêtres : 

■ L’Explorateur de solutions : permet de créer et lister les sources de données partagées et les rapports. Avec la 
version SQL Server 2008 R2, nous avons maintenant la possibilité de créer des Datasets partagés. 

L’explorateur de solutions de Reporting Services 2008 R2 

● La  Boîte  à  outils  :  liste  les  objets  disponibles  pour  concevoir  les  rapports.  Les  objets  s’utilisent  en  les 
glissant  et  en  les  déposant  dans  la  zone  de  travail  du  rapport.  Les  objets  de  données  principaux  de 
Reporting Services sont le Tableau, la Matrice et le Graphique. Depuis la version 2008, la boîte à outils de 
Reporting Services s’étoffe nativement de nouveaux objets : Jauge pour la réalisation de compteurs, Carte 
pour  mapper  des  données  sur  des  représentations  géographiques  ou  schématiques,  Barre  de  données, 
Indicator  et  Graphique  Sparkline  pour  la  réalisation  de  petits  graphiques  à  intégrer  directement  dans  des 
lignes d’un tableau ou d’une matrice. 

La boîte à outils de Reporting Services 2008 R2 

● Données  du  rapport  :  la  fenêtre  de  données  permet  d’ajouter  et  de  lister  les  contenus  utilisés  dans  le 
rapport  courant  :  paramètres,  image,  source  de  données  et  Datasets.  Le  Dataset  ou  jeu  de  données 
contient  la  requête  à  une  source  de  données.  Les  champs  de  données  sont  issus  d’un  Dataset.  Une  des 
grandes forces de Reporting Services est de pouvoir embarquer dans un même rapport des données issues 
de sources de données différentes et variées. 

- 14 - © ENI Editions - All rigths reserved - educ algeria


La fenêtre Données du rapport 

● Propriété  :  chacun  des  objets  et  contenus  du  rapport  dispose  d’un  jeu  important  de  propriétés  qu’il  est 
possible de modifier à l’aide de cette fenêtre. 

d. Travailler le rapport dans le concepteur de BIDS 

Pour  terminer  le  rapport  correctement,  nous  allons  procéder  à  quelques  arrangements  finaux  directement  dans 
l’interface de conception. 
Nous  allons  nous  assurer  que  les  données  du  groupe  définies  par  DateExecution  soient  triées  de  la  date  la  plus 
récente à la date la plus ancienne : 

■ Dans la zone Groupe de ligne, sélectionnez le groupe Table1_DateExecution. 

■ Faites un clic droit puis cliquez sur Propriétés. 

■ Dans la fenêtre Propriétés du groupe de tableaux matriciels, sélectionnez l’onglet Tri. 

■ Effectuez le tri par le champ DateExecution et spécifiez l’ordre Z­A afin de trier ce champ de manière décroissant. 

© ENI Editions - All rigths reserved - educ algeria - 15 -


 

■ Cliquez sur OK pour valider vos modifications sur l’ordre de tri du groupe. 

Maintenant, nous allons modifier le format du champ DateExecution afin de n’afficher que la date sans les heures : 

■ Sélectionnez la cellule contenant le champ DateExecution, puis faites un clic droit. 

■ Dans le menu contextuel, cliquez sur Propriétés de la zone de texte. 

■ Dans la fenêtre Propriétés de la zone de texte, cliquez sur l’onglet Nombre. Dans la liste Catégorie, sélectionnez 
le format Date, puis le type 31/01/2000. 

Puis nous allons modifier le format des champs Date Debut Traitement et Date Fin Traitement afin de n’afficher que 
les heures. Et renommer ces en­têtes de colonnes en conséquence. 

■ Faites  la  même  manipulation  que  précédemment  pour  chacun  de  ces  deux  champs,  mais  sélectionnez  un  des 
formats Heure proposé. 

■ Renommez l’en­tête de ces deux champs, respectivement Heure début et Heure fin. 

Enfin, nous allons afficher en une couleur pâle les lignes dont les traitements contiennent des flux à reprendre, et en 
couleur foncée les lignes dont les traitements contiennent des flux qui ont échoués. 

■ Sélectionnez la ligne complète représentant la ligne de détail du tableau de données. 

■ Puis  allez  dans  la  fenêtre  de  Propriétés  de  la  ligne.  Sélectionnez  la  propriété  BackGroundColor  qui  identifie  la 
couleur de fond des cellules du tableau. 

- 16 - © ENI Editions - All rigths reserved - educ algeria


 

■ Cliquez sur le bouton de sélection pour afficher le menu de sélection de la couleur. 

■ Dans ce menu contextuel, sélectionnez Expression pour afficher la fenêtre d’édition des Expressions. 

Cette fenêtre permet de paramétrer et de conditionner les propriétés des différents éléments du rapport. 

■ Saisissez l’expression ci­dessous en vous aidant de la catégorie Champs pour récupérer le champ FluxAreprendre 
et FluxTermineAvecSucces : 

=IIF(Fields!FluxTermineAvecSucces.Value="N"
,"DarkKahki"
,IIF(Fields!FluxAreprendre.Value="O"
,"Khaki"
,"White"
)
)

© ENI Editions - All rigths reserved - educ algeria - 17 -


L’éditeur d’expression pour conditionner la propriété d’un élément 

■ Cliquez sur OK. 

■ Enregistrez le rapport, puis cliquez de nouveau sur l’onglet Aperçu pour vous assurer que vos modifications ont 
bien été prises en compte : 

- 18 - © ENI Editions - All rigths reserved - educ algeria


Nous venons de réaliser notre premier rapport. Celui­ci liste les traitements ETL qui se sont déroulés et nous alerte 
en changeant la couleur d’arrière­plan de la ligne en cas d’imprévus lors du déroulement d’un traitement. 

Dans la partie suivante, nous allons créer le rapport qui liste les flux. 

e. Créer un rapport avec paramètres 

Nous  allons  créer  un  second  rapport  qui  est  destiné  à  être  utilisé  conjointement  avec  le  rapport  précédent.  Ce 
rapport  devra  afficher  la  liste  des  flux  d’un traitement sélectionné par l’utilisateur dans le rapport précédent. Nous 
verrons dans un second temps comment créer ce lien entre deux rapports. 

Pour créer le second rapport, nous allons de nouveau utiliser l’assistant. 

■ Dans l’Explorateur de solutions, faites un clic droit sur Rapports, puis cliquez sur Ajouter un nouveau rapport. 

Utilisez de nouveau la source de données partagée DistrisysDW, puis à l’interface Concevoir la requête, utilisez la 
requête suivante : 

SELECT AuditFlux_PK, AuditTraitement_FK, NomFlux,


DateDebutFlux1ereExecution, DateFinFlux1ereExecution,
DateDebutFluxDerniereExecution, DateFinFluxDerniereExecution,
DateDebutPlageDonnees, DateFinPlageDonnees, NbErreurTechnique,
NbAvertissement, FluxTermineAvecSucces, FluxAreprendre,
NbExecution
FROM AuditFlux
WHERE (AuditTraitement_FK = @AuditTraitement)

Vous pouvez remarquer que la requête est conditionnée par la clause WHERE afin de n’afficher que les flux d’un seul 
traitement. Dans une requête SQL Server, le paramètre est préfixé par un @. 

■ Continuez l’assistant en sélectionnant une mise en forme tabulaire. 

■ Puis placez tous les champs hormis AuditFlux_PK et AuditTraitement_FK, dans le groupe Détails. 

■ Choisissez le style de tableau Ardoise. 

■ Enfin, nommez le rapport Liste des flux et affichez l’aperçu du rapport : 

À l’exécution, le rapport vous invite alors à saisir la valeur du paramètre @AuditTraitement. 

© ENI Editions - All rigths reserved - educ algeria - 19 -


Dans la fenêtre Données du rapport, vous pouvez constater la création de ce paramètre. 

Le paramètre a de nombreuses options de configuration. L’invité de paramètre peut par exemple afficher une liste de 
valeur issue d’un Dataset préalablement créé. Dans notre cas, nous souhaitons juste le masquer à l’utilisateur. 

■ Pour ce faire, dans la fenêtre Données du rapport, sélectionnez le paramètre AuditTraitement. Faites un clic droit 
pour accéder à Propriétés du paramètre. 

■ Dans  l’onglet  Général,  au  niveau  de  la  propriété Sélectionnez  la  visibilité  du  paramètre,  sélectionnez  l’option 
Masqué : 

- 20 - © ENI Editions - All rigths reserved - educ algeria


 

■ De même que dans le rapport précédent, modifiez les propriétés de la ligne de détail pour la mettre en surbrillance 
dans le cas de l’échec du flux ou dans le cas où le flux nécessite d’être rejoué. 

Nous venons de réaliser le second rapport qui affiche la liste des flux d’un traitement. 
En masquant le paramètre de AuditTraitement, le rapport n’est plus en mesure de s’afficher par lui­même. Il est donc 
normal que l’on vous demande de saisir une valeur pour AuditTraitement. N’en tenez pas compte. 

f. Créer un lien entre deux rapports 

Pour  finir  la  conception  de  nos  rapports  opérationnels,  nous  allons  créer  une  action  sur  le  rapport  Liste  des 
traitements. 
Cette action agira comme un lien hypertexte et permettra à l’utilisateur de basculer du rapport affichant la liste des 
traitements au rapport listant les flux d’un traitement en particulier qu’il aura sélectionné. 

■ Retournez dans le concepteur du rapport Liste des traitements. 

■ Sélectionnez le champ NomFlux dans la ligne de détail. Puis faites un clic droit et cliquez sur Propriétés de la zone 
de texte. 

■ Dans la fenêtre Propriétés de la zone de texte, sélectionnez l’onglet Action. 

■ Dans l’onglet Action, sélectionnez l’option Atteindre le rapport. 

■ Sous Spécifier un rapport, utilisez la liste déroulante pour sélectionner le rapport Liste des flux. 

■ Cliquez sur le bouton Ajouter pour ajouter un paramètre qui sera transmis au rapport Liste des flux au moment du 
clic de l’utilisateur. 

■ En  Nom,  saisissez  manuellement  le  nom  AuditTraitement,  en  Valeur  sélectionnez  le  champ 
[AuditTraitement_PK] dans la liste déroulante. 

© ENI Editions - All rigths reserved - educ algeria - 21 -


 

Lors  du  clic  de  l’utilisateur,  le  rapport  Liste  des  flux  s’affichera  en  utilisant  en  paramètre  la  valeur  du  champ 
AuditTraitement_PK de la ligne sélectionnée. 

■ Cliquez sur le bouton OK. 

■ Affichez l’aperçu du rapport Liste des traitements afin de tester le passage d’un rapport à l’autre. 

Nos  deux  rapports  sont  maintenant  terminés  et  sont  prêts  à  être  partagés  avec  les  utilisateurs.  Pour  cela  il  nous 
faut les déployer. 

g. Déployer les rapports sur le serveur de rapports. 

En  l’état  actuel  des  choses,  les  rapports  que  nous  venons  de  réaliser  avec  BIDS  ne  sont  pas  lisibles  par  d’autres 
utilisateurs. Pour partager un rapport, il faut le déployer sur le serveur de rapports Reporting Services. Une fois sur 
le serveur de rapports, des utilisateurs pourront alors exécuter et exploiter le rapport que nous venons de réaliser. 

Pour déployer les rapports, il vous faut tout d’abord configurer BIDS pour lui indiquer l’adresse du serveur sur lequel 
déployer les rapports du projet. 

■ Dans l’Explorateur de solutions, faites un clic droit sur le nom de votre projet de rapport, DistrisysRapport dans 
notre cas. Puis cliquez dans le menu contextuel sur Propriétés, afin d’afficher la fenêtre de configuration du projet 
de rapports. 

■ Par  défaut,  la  propriété  TargetServerURL  n’a  pas  de  valeur  affectée.  Spécifiez  l’adresse  de  votre  serveur  de 
rapport, généralement sous la forme http://monServer/ReportServer_instance. 

Si  vous  souhaitez  retrouver  l’adresse  de  votre  serveur  de  rapports,  reportez­vous  en  fin  de  section 
Configurer SSRS en mode natif de ce même chapitre. 

- 22 - © ENI Editions - All rigths reserved - educ algeria


Propriétés du projet de rapports 

■ Cliquez sur le bouton OK. 

Maintenant que le projet de rapports est correctement configuré, vous êtes prêt à déployer les deux rapports. 

■ Dans la barre de menu, cliquez sur Générer, puis sur Déployer DistrisysRapport. 

En fin de processus de génération et de déploiement, avec votre navigateur internet, connectez­vous directement à 
l’adresse de votre serveur de rapports. 
Par  défaut,  comme  spécifié  par  les  propriétés  du  projet  de  rapports,  le  déploiement  a  créé  deux  nouveaux 
répertoires : 

● Source de données : répertoire contenant les sources de données. 

● DistrisysRapport : un répertoire du nom du projet, contenant les rapports déployés. 

© ENI Editions - All rigths reserved - educ algeria - 23 -


 

■ Cliquez sur le répertoire DistrisysRapport pour visualiser vos deux rapports : Liste des traitements et Liste des 
Flux. 

■ Cliquez sur le rapport Liste des traitements pour le visualiser. 

Le rapport Reporting Services s’exécute dans un navigateur Internet 

Votre rapport s’exécute de la même façon dans votre navigateur Internet que dans l’aperçu BIDS. Plus loin dans le 
chapitre, nous étudierons l’interface web du Gestionnaire de rapports. Vous verrez que l’interface est beaucoup plus 
agréable pour un utilisateur désirant visualiser les rapports disponibles. 

Avec la réalisation de ces deux rapports d’audit, nous venons d’illustrer la réalisation et le déploiement de rapports 
opérationnels avec SQL Server Reporting Services 2008 sous BIDS. 

L’interface  est  assez  complète,  la  prise  en  main  est  assez  rapide,  mais  il  n’en  reste  pas  moins  que  l’utilisation  de 
BIDS, pour la réalisation de rapports, reste réservée à un public d’informaticiens initiés au développement. 
 
Ce projet et ces deux rapports sont disponibles en téléchargement sur le site Internet des Éditions ENI.

Dans  la  partie  suivante,  nous  allons  voir  qu’il  existe  un  autre  outil  permettant  la  réalisation  de  rapports  Reporting 

- 24 - © ENI Editions - All rigths reserved - educ algeria


Services : Report Builder 3. 

4. Créer un rapport SSRS avec Report Builder 3 

a. Présentation et utilisation de Report Builder 

La création des rapports se réalise historiquement dans BIDS, qui n’est autre qu’une extension de Visual Studio. La 
réalisation  des  rapports  Reporting  Services  a  toujours  été  l’apanage  du  service  informatique.  Difficile  dans  ce 
contexte,  d’installer  une  interface  destinée  à  des  développeurs  informatiques  sur  le  poste  d’un  utilisateur 
fonctionnel. 
De fait, depuis 2005, Microsoft fournit un outil de création de rapports ne nécessitant pas BIDS : il s’agit de Report 
Builder. À mon sens, Report Builder est une réponse Marketing à des sociétés clientes faisant un comparatif un peu 
rapide entre la solution décisionnelle Microsoft et d’autres solutions de reporting décisionnelles leaders du marché. 

L’idée de Microsoft, avec Report Builder, est de fournir un outil destiné à un utilisateur final afin qu’il soit autonome 
dans  la  réalisation  de  ses  rapports.  Même  si  l’outil  trouve  son  utilité  dans  certains  cas  et  dispose  de  nombreuses 
possibilités, je ne saurais que vous recommander de réfléchir à deux fois avant d’envisager cette possibilité. À mon 
sens,  les  outils  de  la  gamme  décisionnelle  de  Microsoft  destinés  aux  utilisateurs,  tels  qu’Excel,  Service  Excel  et 
Service PerformancePoint de SharePoint, sont suffisamment bons et spécialisés pour ne pas avoir à déployer Report 
Builder  sur  tous  les  postes  utilisateurs.  Dans  le  cas  d’un  usage  décisionnel,  Reporting  Services  étant  destiné  au 
reporting  de  masse,  il  n’y  a  que  peu  d’intérêt  à  ce  qu’un  utilisateur  fonctionnel  dispose  d’un  tel  outil.  La 
communication et le marketing de Microsoft sont à ce sujet vraiment très ambigus. 
Au cours de ce chapitre, nous allons installer et utiliser Report Builder pour vous permettre d’appréhender l’outil. 
Report Builder est un outil complémentaire à SQL Server 2008, disponible gratuitement en téléchargement sur le site 
de Microsoft. En effet son utilisation ne nécessite pas de licence tant que les rapports créés ne sont pas déployés 
sur un serveur de rapports. 

Vous  pouvez  télécharger  le  fichier  d’installation  de  Report  Builder  3  sur  le  site 
http://www.microsoft.com/downloads/details.aspx?Familyid=d3173a87­7c0d­40cc­a408­
3d1a43ae4@33&displaylang=fr 

■ Installez Report Builder 3 sur votre poste de travail. 

■ Lors  de  l’installation  entrez  l’adresse de votre serveur de rapport lorsque vous sera demandé l’URL  du  serveur 


cible par défaut : 

En  fin  d’installation,  l’application  Report  Builder  3.0  est  disponible  dans  le  menu  Démarrer  sous  le  répertoire 

© ENI Editions - All rigths reserved - educ algeria - 25 -


Microsoft SQL Server 2008 R2 Report Builder 3.0. 

Nous allons utiliser Report Builder 3 pour créer un rapport de suivi des ventes mensuelles pour chacune des agences 
de Distrisys. 

Ce rapport sera composé de deux objets de données : 

● d’une matrice affichant en ligne la dimension produit et en colonne les années et les mois. 

● d’un graphique affichant l’évolution mensuelle du CA et du taux de marge. 

Les données du rapport seront issues du cube Distrisys. 

La base DistrisysOLAP est disponible en téléchargeant sur le site du livre. 

b. Créer le jeu de données 

Nous allons commencer par ouvrir Report Builder 3.0 et créer un rapport vierge. 

■ Ouvrez Report Builder 3.0. 

■ Une fenêtre d’accueil s’ouvre. Sélectionnez Rapport Vierge, puis cliquez sur Créer. 

L’application Report Builder s’ouvre alors sur un rapport vierge : 

- 26 - © ENI Editions - All rigths reserved - educ algeria


L’interface de Report Builder 3.0 

Bien que simplifiée, l’interface est assez similaire à l’interface de BIDS : 

● La zone de travail centrale et les zones de regroupement sont identiques. 

● La fenêtre Données du rapport de BIDS est disponible à gauche de l’interface. 

● La fenêtre de Propriétés est disponible à droite de l’interface. 

● La  fenêtre  Boite  à  outils n’apparaît  pas  telle  quelle,  mais  son  contenu  est  disponible  dans  le  ruban  sous 
l’onglet Insérer. 

Avant  de  réaliser  la  mise  en  page  du  rapport,  il  est  tout  d’abord  nécessaire  de  créer  une  nouvelle  source  de 
données, ainsi qu’un jeu de données (Dataset). 

Pour créer une nouvelle source de données : 

■ Dans la zone à gauche Données du rapport, faites un clic droit sur l’élément Data Sources, puis cliquez sur Add 
Data Source. 

Dans la fenêtre Propriétés de la source de données : 

■ Saisissez DistrisysOLAP dans le champ Nom. 

■ Sélectionnez l’option Utiliser une connexion incorporée dans mon rapport. 

■ Sélectionnez le type de connexion Microsoft SQL Server Analysis Services. 

■ Puis  cliquez  sur  le  bouton  Générer  afin  de  rechercher  le  cube  DistrisysOLAP  en  ayant  préalablement  spécifié 
votre nom de serveur. 

© ENI Editions - All rigths reserved - educ algeria - 27 -


 

■ Cliquez enfin sur OK pour valider la création de cette source de données. 

La source de données doit s’afficher dans la zone Données du rapport : 

Maintenant que la source de données référençant la base multidimensionnelle DistrisysOLAP est créée, nous allons 
créer le jeu de données dont nous avons besoin pour notre rapport. 

■ Dans la zone à gauche Données du rapport, faites un clic droit sur l’élément Datasets, puis cliquez sur Ajouter un 
dataset. 

Dans la fenêtre Propriétés du dataset : 

■ Nommez le dataset Ventes. 

■ Sélectionnez l’option Utiliser un dataset incorporé à mon rapport. 

■ Sous  Source  de  données,  sélectionnez  dans  la  liste  déroulante  la  source  de  données  précédemment  créée 
DistrisysOLAP. 

- 28 - © ENI Editions - All rigths reserved - educ algeria


 

Pour saisir la requête MDX contenant les informations dont nous avons besoin, un assistant est disponible. 

■ Cliquez sur Concepteur de requêtes pour l’ouvrir. 

L’assistant dispose de trois zones importantes : 

● L’explorateur  de  cube  est  à  gauche.  Il  permet  de  lister  les  attributs,  hiérarchies  et  mesures  que  nous 
glisserons dans la zone de données et dans la zone de filtres. 

● La zone de données est la grande zone occupant le centre de l’interface. 

● La zone de filtres se situe juste au­dessus de la zone de données. 

Pour faire la requête : 

■ Glissez la hiérarchie Famille ­ Sous Famille ­ Produit de la dimension Produit dans la zone de données. 

■ Faites de même pour la hiérarchie Année ­ Mois de la dimension Temps. 

© ENI Editions - All rigths reserved - educ algeria - 29 -


 

Faites de même avec les mesures : 

■ Glissez les mesures CA et % Marge du groupe de mesures Facture dans la zone de données. 

■ De même, glissez les mesures CA ­ Budget Vente et % CA vs Budget Vente. 

En glissant la première mesure, vous devriez alors avoir un aperçu des données. 

Enfin  pour  finir  la  requête,  nous  souhaitons  mettre  en  filtre  les  membres  de  la  hiérarchie  Pays  ­  Site  de  la 
dimension Site. 

■ Glissez la hiérarchie Pays ­ Site de la dimension Site dans la zone de filtres. 

- 30 - © ENI Editions - All rigths reserved - educ algeria


 

■ Sélectionnez l’opérateur Egal dans la zone filtre. 

■ Au niveau de la liste déroulante Expression de filtre, cochez tous les membres disponibles. 

■ Puis  cochez  la  case  dans  la  colonne  Paramètres.  Ces  membres  apparaîtront  alors  comme  autant  d’éléments 
disponibles pour filtrer la requête et donc le rapport. 

Pour finir, nous allons limiter les données affichées à l’année 2010, sans laisser la possibilité à l’utilisateur de choisir. 

■ Glissez la hiérarchie Année ­ Mois de la dimension Temps dans la zone de filtres. 

■ Au niveau de la colonne Expression de filtre, sélectionnez uniquement le membre Calendrier 2010. 

© ENI Editions - All rigths reserved - educ algeria - 31 -


■ Ne cochez pas la case à cocher Paramètres. Ce filtre sera alors non paramétrable dans le rapport terminé. 

■ Pour valider la requête et sortir du concepteur de requête MDX, cliquez sur le bouton OK en bas à droite. 

Nous revenons alors à la fenêtre Propriétés du dataset. 

■ Avant de valider la création du jeu de données, cliquez sur l’onglet Champs afin de renommer certains champs. 

Certains caractères, permis dans la base multidimensionnelle tels que le caractère % ou le caractère d’espacement, 
ne sont pas appréciés par Reporting Services qui les traduit à sa manière. 

■ Renommez les champs comme indiqués par la copie d’écran ci­dessous : 

■ Pour valider la création du jeu de données, cliquez sur le bouton OK. 

La fenêtre Données du rapport est mise à jour et propose alors maintenant le paramètre SitePaysSite et le Dataset 
Ventes. 

- 32 - © ENI Editions - All rigths reserved - educ algeria


 

Enfin, nous allons modifier le paramètre SitePaysSite, afin de configurer la valeur par défaut sélectionnée. 

■ Faites un clic droit sur SitePaysSite, puis cliquez sur Propriétés du paramètre. 

■ Dans l’onglet  Valeurs par défaut,  supprimez  toutes  les  valeurs  afin  qu’il ne reste que le membre  [Site].[Pays ­ 


Site].[All]. 

■ Cliquez sur OK pour valider ces modifications du paramètre. 

© ENI Editions - All rigths reserved - educ algeria - 33 -


Nous venons d’ajouter une source de données multidimensionnelle, puis de créer un dataset basé sur une requête 
MDX. Il nous faut maintenant créer le tableau présentant les données de ce dataset. 

c. Créer la matrice de données 

Nous  avons  créé  le  dataset  contenant  les  champs  données.  Nous  allons  maintenant  travailler  directement  sur  le 
rapport pour afficher et présenter ces données. 

Le  rapport  de  suivi  des  ventes  que  nous  prévoyons  de  réaliser  sera  composé  de  deux  éléments  de  données  :  un 
tableau de données et un graphique. 

Pour commencer, nous allons nous atteler à la réalisation du tableau de données. 

Le tableau de données présentera les données des ventes de la manière suivante : 

● En  ligne,  le  tableau  présentera  les  familles  de  produits.  Mais  nous  souhaitons  que  l’utilisateur  ait  la 
possibilité de descendre dans la hiérarchie jusqu’au produit. 

● En colonne, le tableau présentera les mois de l’année 2010. 

● Les données affichées seront le CA pour tous les mois de l’année. Mais au niveau de la colonne des totaux 
annuels, nous souhaitons afficher l’objectif (Budget), ainsi que le pourcentage d’atteinte de cet objectif. 

■ Pour réaliser ce tableau, dans le ruban, cliquez sur l’onglet Insérer pour y retrouver la boîte à outils, contenant 
entre autres les objets de données. 

La boîte à outils sous Report Builder. 

Le  tableau  que  nous  comptons  réaliser  dispose  de  données  dynamiques  en  lignes  et  en  colonnes.  Il  s’agit  donc 
d’une matrice. 

■ Cliquez donc sur le bouton Matrice, puis sur Assistant Matrice. 

L’assistant s’ouvre sur une fenêtre vous demandant de choisir le dataset sur lequel seront basées les données de la 
matrice. 

■ Sélectionnez le dataset Vente que nous avons précédemment créé. 

La fenêtre suivante vous demande d’organiser les champs de la matrice. 

■ Glissez les champs Famille, Sous_Famille et Produit dans les groupes de lignes. 

■ Glissez les champs Annee et Mois dans les groupes de colonnes. 

■ Glissez CA dans la zone des valeurs. 

Vous devriez alors obtenir l’interface suivante : 

- 34 - © ENI Editions - All rigths reserved - educ algeria


 

■ Pour continuer, cliquez sur le bouton Suivant. 

La fenêtre suivante vous assiste dans la mise en page de la matrice. 

■ Sélectionnez l’option En  retrait,  sous­total ci­dessus,  afin  d’avoir une représentation plus compacte, sans sous­


total intermédiaire entre les différents niveaux. 

■ Cochez bien l’option  Développer/Réduire les groupes afin de n’afficher par défaut que les Familles. L’utilisateur 
aura la possibilité d’afficher ou de masquer les éléments des niveaux Sous famille et Produit. 

■ Cliquez sur le bouton Suivant pour poursuivre l’assistant. 

■ Choisissez un style, puis cliquez sur Terminer afin de valider la création de la matrice. 

© ENI Editions - All rigths reserved - educ algeria - 35 -


La matrice est alors ajoutée dans la zone de travail : 

■ Pour visualiser le rapport dès à présent, cliquez sur le bouton Exécuter dans le ruban. 

Le rapport par défaut contient certaines lacunes par rapport à nos attentes : 

● Les mois sont triés par ordre alphabétique. 

● Le  rapport  n’est  pas  totalement  conforme  à  nos  attentes,  car  nous  souhaitions  afficher  en  fin  de  ligne, 
l’objectif annuel et son taux d’atteinte. 

● Le CA n’a pas un format convenable. 

● Le rapport ne spécifie pas dans son titre le paramètre sélectionné. 

Nous allons donc reprendre le rapport afin de remédier à toutes ces remarques. 
Pour modifier l’ordre de tri des mois : 

■ Revenez sur l’onglet Conception pour revenir à l’écran précédent. 

■ Faites un clic droit sur le groupe Mois, puis sur Groupe de colonnes, pour accéder à ses propriétés. 

Dans l’onglet Tri, vous pouvez remarquer que l’assistant a cru bien faire en spécifiant un tri par défaut sur le champ 
Mois. 

■ Supprimez ce tri, afin de laisser le cube gérer l’ordre d’affichage par défaut des éléments Mois. 

■ Cliquez sur OK pour valider ces modifications. 

Pour modifier manuellement la mise en forme de la matrice : 
Nous ne disposons que d’une seule année, la colonne faisant le grand total n’est donc pas nécessaire. 

■ Faites  un  clic  droit  sur  la  colonne  la  plus  à  droite,  la  deuxième  colonne  Total.  Puis  cliquez  sur  Supprimer  les 

- 36 - © ENI Editions - All rigths reserved - educ algeria


colonnes. 

En revanche, nous allons ajouter deux nouvelles colonnes de total annuel : 

■ Faites un clic droit sur la colonne de Total, puis sélectionnez dans le menu contextuel Insérer une colonne et enfin 
Dans le groupe ­ A droite. 

■ Faites cette dernière manipulation deux fois afin d’ajouter deux nouvelles colonnes. 

■ Renommez respectivement les colonnes de total : Total CA, Total Obj et % Obj. 

Puis nous allons spécifier le champ à afficher dans chacune des cellules de ces nouvelles colonnes. 

■ Au  sein  de  chaque  cellule  de  la  colonne  Total  Obj,  sélectionnez  le  champ  Budget.  Servez­vous  de  la  puce  de 
sélection comme indiquée par la copie écran ci­dessous : 

Vous devriez obtenir alors la visualisation ci­dessous : 

© ENI Editions - All rigths reserved - educ algeria - 37 -


 

En ce qui concerne la colonne % Obj, nous pourrions faire la même chose en spécifiant le champ TxBudget. 

Par défaut, l’outil affecte l’opérateur d’agrégation SUM. Or, avec une expression de type [SUM(TxBudget)], la colonne 
totale afficherait la somme de pourcentages, ce qui n’est pas vraiment le résultat attendu. Quand vous avez à faire à 
des mesures d’un cube qui ne se somment pas, telles qu’un pourcentage ou une mesure semi­additive, cf chapitre La 
modélisation  dimensionnelle  ­  Les  stocks,  il  vous  faut  utiliser  l’opérateur  d’agrégation  Aggregate.  Cet  opérateur 
spécifie à Reporting Services de demander directement le résultat de l’agrégat au fournisseur de données : c’est­à­
dire  dans  notre  cas  le  cube.  L’affectation  de  cet  opérateur  se  réalise  dans  l’éditeur  d’expression  de  chacune  des 
cellules. 

■ Faites un clic droit sur la cellule qui croise la colonne % Obj et la ligne [Famille], puis cliquez sur Expression. 

Aidez­vous de l’assistant pour saisir l’expression suivante : 

=Aggregate(Fields!TxBudget.Value)

■ Pour  accéder  aux  opérateurs  d’agrégation,  cliquez  dans  la  zone  Catégorie,  sur  Fonctions  communes,  puis  sur 
Aggregate. Double cliquez sur l’élément souhaité pour le faire apparaître dans la zone d’édition. 

■ Pour  faire  référence  à  un  champ  du  dataset  courant,  cliquez  dans  la  zone Catégorie  sur Champs  (Vente). Puis 
double cliquez sur le champ TxBudget. 

- 38 - © ENI Editions - All rigths reserved - educ algeria


 

■ Enfin Copiez et Collez cette expression dans les autres cellules de la colonne % Obj. 

Vous devriez alors obtenir la matrice ci­dessous : 

Pour  finir  la  matrice,  nous  allons  modifier  toutes  les  cellules  de  la  matrice  pour  afficher  les  données  au  format 
monétaire. 

■ Pour modifier le format d’affichage d’une cellule, faites un clic droit sur une cellule, puis cliquez sur Propriétés de la 
zone de texte. 

■ Cliquez sur l’onglet Nombre, puis configurez le format d’affichage comme ci­dessous : 

© ENI Editions - All rigths reserved - educ algeria - 39 -


 

■ Réalisez cette opération sur chacune des cellules de la matrice affichant des données monétaires. 

Enfin, pour améliorer la lisibilité du rapport, nous allons modifier le titre afin qu’il affiche le paramètre sélectionné. 

■ Faites un clic droit sur la zone de texte faisant office de titre, puis cliquez sur Expression. 

■ Dans l’éditeur, saisissez l’expression suivante : 

="Rapport des ventes - " & Trim(Parameters!SitePaysSite.Label(0))

L’opérateur Trim supprime les caractères blancs avant et après la chaîne de texte, supprimant ainsi l’indentation du 
champ d’étiquette de paramètre. 
La propriété Label fait référence à l’étiquette du paramètre. Par défaut, l’assistant de l’éditeur d’expression spécifie 
la  propriété  Value.  Seulement  celle­ci  ne  fait  qu’afficher  la  valeur  du  paramètre.  Dans  le  cas  d’une  source 
multidimensionnelle, la valeur du paramètre n’est autre que le UniqueName du membre sélectionné : son identifiant 
unique en quelque sorte. 

■ Validez les modifications. 

Enregistrons le rapport sur le serveur de rapport avant d’en faire l’aperçu final. 

■ Pour enregistrer le rapport, cliquez sur le bouton rond le plus en haut à gauche de l’interface Report Builder. 

■ Puis cliquez sur Enregistrer sous. 

Si vous avez bien configuré au préalable le serveur de rapport, celui­ci devrait alors être proposé. 

Sans la licence SQL Server, vous ne disposez pas de serveur de rapport Reporting Services. Par contre vous 

- 40 - © ENI Editions - All rigths reserved - educ algeria


disposez toujours de la possibilité de stocker votre rapport sur un disque dur. 

■ Nommez le rapport SuiviVente, pus cliquez sur le bouton Enregistrer. 

■ Enregistrez vos rapports sur le serveur de rapport. 

■ Pour finir, cliquez sur Exécuter afin d’afficher l’aperçu du rapport. 

■ Sélectionnez un membre proposé par le paramètre Pays ­ Site, puis cliquez sur le bouton Afficher le rapport pour 
rafraîchir le rapport. 

Aperçu du rapport sous Report Builder 3.0 

Vous  venez  ainsi  de  réaliser  un  rapport  sous  Report  Builder  3,  affichant  des  données  provenant  d’une  base  de 

© ENI Editions - All rigths reserved - educ algeria - 41 -


données Analysis Services. 
Pour la suite, nous allons ajouter un graphique à ce rapport. 

d. Créer un graphique de données 

Reporting  Services  et  Report  Builder  proposent  une  grande  richesse  de  représentations  graphiques.  Pour  illustrer 
leur usage, nous allons intégrer dans notre rapport des ventes un graphique standard représentant l’évolution sur 
les mois de l’année du CA et du % Marge. 

Ces  deux  mesures  étant  sur  des  échelles  de  grandeur  très  différentes,  nous  afficherons  le  %  Marge  sur  un  axe 
secondaire. 

■ Sous  Report  Builder,  le  choix  du  type  de  graphique  et  son  insertion  dans  le  rapport  se  réalisent  dans  le  ruban, 
dans l’onglet Insérer. 

Les objets de données disponibles dans Report Builder 

■ Pour  intégrer  le  graphique  à  notre  rapport,  cliquez  sur  Graphique,  puis  sur Insérer  un  graphique.  Cette  fois­ci, 
nous n’utiliserons pas l’assistant proposé par Report Builder. 

■ Sélectionnez dans la zone de travail l’emplacement de votre graphique : placez le graphique sous la matrice. 

Une fenêtre apparaît pour vous demander le type de graphique à utiliser : 

- 42 - © ENI Editions - All rigths reserved - educ algeria


Les graphiques standard disponibles dans Reporting Services 

■ Sélectionnez le premier graphique de la liste : le diagramme en barres classiques. 

Un graphique en barres doit s’afficher dans votre zone de travail : 

© ENI Editions - All rigths reserved - educ algeria - 43 -


■ Faites  un  clic  droit  sur  le  graphique  pour  afficher  la  fenêtre  Données  du  graphique.  Agrandissez  la  fenêtre 
principale, au besoin. 

Nous  allons  utiliser  cette  fenêtre  pour  ajouter  dans  la  zone  Valeurs  les  mesures CA  et TxMarge,  et  dans  la  zone 
Groupe d’abscisses les champs Année et Mois. 

■ À  partir  de  la  fenêtre  Données  du  rapport  de  l’interface  Report  Builder,  sélectionnez  le  champ  CA  du  dataset 
dsVente. Glissez ce champ directement dans la zone Valeurs de la fenêtre Données du graphique. 
 
■ Pour ajouter TxMarge, cliquez sur le bouton  plus.

■ Par  défaut  l’agrégation  est  de  type  SUM.  Pour  modifier  l’agrégation  cliquez  sur  le  bouton  pour  faire 
apparaître le menu contextuel illustré ci­dessous : 

■ Dans le menu contextuel, glissez la souris sur Aggregate, puis cliquez sur l’opérateur d’agrégation Aggregate. 

Enfin,  nous  allons  changer  le  type  de  graphique  représentant  le  %  Marge.  Le  CA  apparaîtra  en  barres,  mais  nous 
souhaitons que le % Marge apparaisse en courbe. 

■ Pour faire cela, toujours dans Données du graphique et dans la zone Valeurs, faites un clic droit sur TxMarge et 
cliquez sur Modifier le type de graphique. 

■ Sélectionnez alors un graphique en lignes. 

- 44 - © ENI Editions - All rigths reserved - educ algeria


Pour finir la configuration des données du graphique, il nous faut définir les mois sur l’axe des abscisses : 

■ Dans la zone des abscisses, sélectionnez le champ Année puis Mois. 

Vous devriez alors avoir une fenêtre Données du graphique identique à celle ci­dessous : 

■ Comme pour la matrice réalisée précédemment, dans les propriétés des groupes Annee et Mois, supprimez dans 
l’onglet Tri, le tri par ordre alphabétique (A­Z) défini par défaut par Report Builder. 

Si vous faites un aperçu maintenant du rapport, vous vous apercevez que seules les barres bleues du CA s’affichent. 
C’est  normal,  car  les  valeurs,  comparées  à  l’échelle  du  CA  avoisinant  autour  du  million  du  taux  de  marge  sont  de 
l’ordre de 0.3. Le % Marge apparaît alors comme égal à 0. Pour faire apparaître les valeurs du % Marge, la solution 
consiste à utiliser un axe secondaire. 

■ Dans  la  fenêtre  Données  du  graphique,  faites  de  nouveau  un  clic  droit  sur  la  valeur  TxMarge  et  cliquez  sur 
Propriétés de la série. 

■ Dans  la  fenêtre  Propriétés  de  la  série,  cliquez  sur  l’onglet  Axes  et  zone  de  graphique.  Au  niveau  de  l’axe 
vertical, sélectionnez l’option secondaire. 

Pour finaliser le graphique, nous allons maintenant modifier le format de données des axes : le premier axe doit être 
au  format  monétaire  afin  d’afficher  la  mesure  CA,  le  second  axe  doit  être  au  format  pourcentage  afin  de  bien 
présenter le taux de marge. 

■ Directement  dans  le  graphique,  faites  un  clic  droit  sur  l’axe  des  ordonnées  le  plus  à  gauche,  puis  cliquez  sur 
Propriétés de l’axe vertical. 

■ Dans  la  fenêtre  Propriété  de  l’axe  vertical,  dans  l’onglet  Nombre,  sélectionnez  un  format  de  mise  en  forme 
Devise. 

■ Faites de même pour le second axe, mais en sélectionnant cette fois­ci le format Pourcentage. 

■ Enfin, modifiez le titre du graphique en Evolution du CA et du % Marge. 

■ Enregistrez le rapport, revenez à l’accueil et cliquez sur le bouton Exécuter afin d’en avoir un aperçu. 

© ENI Editions - All rigths reserved - educ algeria - 45 -


Rapport de suivi des ventes réalisé avec Report Builder 

Vous venez ainsi de réaliser un rapport décisionnel de suivi des ventes contenant une représentation matricielle des 
données, ainsi qu’un graphique. 

e. Les formats d’exportation du rapport 

En  très  bon  outil  de  reporting,  les  rapports  SQL  Server  Reporting  Services  disposent  de  nombreux  formats 
d’exportation : PDF, TIFF, MHTML (archive web), Excel, et Word. 
Dans le mode Exécution, vous pouvez choisir votre format d’exportation et exporter votre rapport en cliquant sur le 
bouton Exporter. 
Tous ces formats hétéroclites sont destinés à des usages très différents : diffusion par e­mail (PDF, MHTML, Excel), 
diffusion papier (PDF, TIFF) ou destinés à être retouchés (Excel, Word). 
Un petit mot sur chacun de ces formats s’impose : 

● L’exportation  PDF  nécessitera  de  votre  part  un  peu  de  configuration  pour  la  mise  en  page  du  rapport  : 
marge, orientation, taille du papier… 

● Le TIFF est un format d’image universel destiné à l’archivage et à l’impression de document. Là aussi il vous 
faudra faire un petit effort sur la mise en page du document. 

● Le MHTML est un fichier au format HTML intégrant en un seul fichier des contenus tels que les images. 

● L’exportation Excel est quant à elle assez soignée et fidèle en terme de restitution à votre rapport original. 
Vous remarquerez en exportant le rapport Suivi des ventes, que les regroupements des familles de produits 
en ligne et des mois en colonne sont conservés. Attention, toutefois, les valeurs contenues dans les cellules 
ne  sont  pas  dynamiques  :  les  modifications  de  valeurs  en  source  ne  seront  pas  reflétées  dynamiquement 
dans votre rapport Excel. Il vous faudra de nouveau exécuter et exporter le rapport. 

● L’exportation Word est, elle aussi, assez fidèle au rapport original. Format utile lorsqu’il s’agit, par exemple, 
d’accompagner le rapport de commentaires avant diffusion. 

5. Le gestionnaire de rapports 

- 46 - © ENI Editions - All rigths reserved - educ algeria


Précédemment, vous avez appris à créer des rapports avec BIDS ou avec Report Builder 3.0. 
Dans cette section, nous allons faire un aperçu de l’interface  d’administration et de gestion des rapports publiés de 
Reporting Services configuré en mode natif. 
En mode natif, l’administration des rapports se réalise en mode web dans le gestionnaire de rapports. 

Attention, cette interface n’est plus disponible en mode intégré SharePoint. L’administration des rapports se 
réalise  alors  directement  dans  SharePoint  :  au  niveau  de  la  console  d’administration  puis  au  niveau  de 
chacune des bibliothèques de rapports. 

Le  gestionnaire  de  rapports  est  généralement  disponible  à  une  adresse  de  la  forme  : 
http://monserveur/reports_instance. 

Pour  retrouver  l’adresse  de  votre  gestionnaire  de  rapport,  lancez  le  Gestionnaire  de  configuration  de 
Reporting Services, puis allez sur l’onglet URL du Gestionnaire de rapports. 

■ Dans votre navigateur Internet, ouvrez le Gestionnaire de rapports. 

Le gestionnaire de rapports 

En mode natif, les rapports que vous publierez seront alors accessibles sur le gestionnaire de rapports. Plus qu’une 
interface destinée à des utilisateurs finaux, le gestionnaire de rapports est davantage leur console d’administration. 
À mon sens, les rapports sont destinés, soit à être diffusés au format papier ou mail, soit à être accessibles sur un 
portail  intranet.  Néanmoins,  tous  les  rapports  publiés  sont  accessibles  via  cette  interface  qui  en  offre  un  excellent 
aperçu. 
Un  peu  comme  sur  le  système  de  fichiers  Windows,  les  rapports  sont  rangés  dans  des  répertoires  et  des  sous­
répertoires. 

L’interface présentée ci­dessus en copie d’écran, nous propose dans le dossier racine, deux autres dossiers : 

● Le dossier DistrisysRapport contient dans notre cas, les rapports que nous avons précédemment créés. 

● Le dossier Source de données contient les sources de données DistrisysDW et DistrisysOLAP. 

■ Cliquez sur le dossier DistrisysRapport pour accéder à son contenu : 

© ENI Editions - All rigths reserved - educ algeria - 47 -


 

Vous y retrouvez alors tous les rapports que nous avons conçus dans ce même chapitre : 

● Liste des flux et Liste des traitements conçus avec BIDS. 

● SuiviVente conçu avec Report Builder 3.0. 

Vous  noterez  qu’au  final,  Reporting  Services  ne  fait  aucune  distinction  entre  les  rapports  développés  avec 
BIDS ou avec Report Builder 3.0. 

Les options de gestion du rapport sont accessibles via un menu contextuel. 

■ Passez la souris sur un rapport, puis cliquez sur le bouton  . Vous accédez alors au menu contextuel de gestion 
du rapport : 

Outre de nombreuses options, la principale interface de gestion du rapport est accessible en cliquant sur Gérer. 

Sans être exhaustive, l’interface de gestion de Reporting Services permet au niveau de chaque rapport : 

● De s’abonner aux rapports qui le permettent. Dans ce cas, l’utilisateur choisit la fréquence, le format et le canal 
de diffusion qui lui convient : remise par e­mail ou par dépôt dans un répertoire réseau. 

● De définir le cache du rapport afin de moins impacter les performances du système source. 

● De définir et gérer les clichés d’historique du rapport. 

● De gérer la sécurité au niveau du rapport : définir les groupes de sécurité ou les utilisateurs et leurs droits. 

L’accès à différents services et menus est défini par le niveau de sécurité de l’utilisateur. 

- 48 - © ENI Editions - All rigths reserved - educ algeria


Et bien entendu, en cliquant sur un rapport vous accédez à son contenu, de la même façon que dans BIDS ou Report 
Builder : 

Le rapport exécuté dans le gestionnaire de rapport 

L’interface est assez simple mais la gestion des rapports en terme de performance est assez fine. Entre gestion du 
cache,  gestion  des  clichés  ou  des  abonnements,  tout  est  fait  pour  répartir  au  mieux  la  charge  qui  peut  peser  sur 
l’accès de plusieurs centaines d’utilisateurs, se connectant en simultanée pour obtenir le nouveau rapport présentant 
les derniers chiffres de leur activité. 

En effet, le principal intérêt de Reporting Services consiste à diffuser un seul et même rapport à un public de masse, 
comptant parfois plusieurs centaines d’individus. 
Dans la prochaine section, nous allons étudier la mise en œ uvre d’une manière de diffuser les données : l’abonnement 
piloté par les données. 

6. Publication de masse 

Au  cours  de  cette  section,  nous  allons  programmer  la  diffusion  du  rapport  SuiviVente  afin  qu’il  soit  distribué 
régulièrement à tous les sites de vente Distrisys. 

Pour  réaliser  cela,  Reporting  Services  dispose  d’une  fonction  appelée  l’abonnement  piloté  par  les  données.  Cette 
fonction permet d’automatiser la distribution de rapports personnalisés à partir d’une table d’abonnés. 

Contrairement à l’abonnement classique qui est à l’initiative de l’utilisateur, l’abonnement, piloté par les données, est 
réalisé  par  le  service  informatique.  La  liste  des  abonnés  peut  être  fixe  ou  dynamique  :  c’est­à­dire  basée  sur  des 
critères dynamiques, tels que les 10 meilleurs vendeurs du mois par exemple. On considère alors que ce ne sont pas 
toujours les mêmes abonnés qui recevront le rapport. 
Réaliser un abonnement piloté par les données à partir d’un rapport existant, se réalise en trois phases : 

● Première  phase  :  nous  allons  créer  une  table  d’abonnés,  puis  définir  la  liste  de  ces  abonnés  avec  leurs 
critères. 

● Deuxième  phase  :  nous  allons  modifier  la  source  de  données  du  rapport,  afin  que  les  informations 
d’authentification  soient  stockées  au  sein  du  rapport.  C’est  la  condition  préalable  à  tout  abonnement  au 
rapport. 

● Troisième phase : nous allons créer et définir l’abonnement piloté par les données. 

© ENI Editions - All rigths reserved - educ algeria - 49 -


Avant  de  réaliser  l’abonnement,  assurez­vous  au  préalable  dans  SSMS  que  le  service  Agent  SQL  est  en 
cours d’exécution. Sans ce service vous ne pouvez pas enregistrer d’abonnements. 

a. Définir la table des abonnés 

Avant de pouvoir réaliser l’abonnement du rapport SuiviVente, nous devons disposer au préalable d’une  table  des 


abonnés. 

Cette table des abonnés doit fournir toutes les informations utiles à la sélection de l’abonné, à la personnalisation et 
à la diffusion du rapport. 

Par  exemple  :  nom  et  prénom  de  l’abonné pour personnaliser le rapport, e­mail  pour  identifier  la  boîte  d’envoi en cas de 
diffusion par e­mail, site d’appartenance pour personnaliser les données du rapport. 

Il  faut  comprendre  que  ni  Reporting  Services,  ni  aucun  applicatif  n’a  les  moyens  d’emprunter  le  compte  d’un 
utilisateur  du  domaine  afin  de  l’exécuter  en  son  nom.  Ce  serait  alors  une  grave  faille  de  sécurité.  Le  rapport 
s’exécutera avec un compte de service d’exécution à droit restreint. C’est pourquoi, afin de réaliser une diffusion de 
masse,  il  nous  faut  constituer  une  table  des  abonnés  contenant  les  informations  de  personnalisation  dont  nous 
aurons besoin, et ce, afin que le rapport soit identique à ce qu’aurait obtenu l’utilisateur s’il avait exécuté le rapport 
lui­même. 

■ Afin  de  réaliser  l’abonnement  piloté  par  les  données  présentées  dans  ce  chapitre,  téléchargez  sur  le  site  de 
l’ouvrage, le fichier de sauvegarde DistrisysSA.bak. 

■ Restaurez cette base de données en tant que DistrisysSA. 

Cette base de données contient entre autres, une table : ListeAbonne. 

La table ListeAbonne a la structure suivante : 

Structure de la table des abonnés 

■ Au besoin, vous trouverez en téléchargement sur le site de l’ouvrage le script de création de cette table. 

La table ListeAbonne contient les données suivantes : 

- 50 - © ENI Editions - All rigths reserved - educ algeria


Contenu de la table des abonnés 

Dans  notre  cas,  on  considère  que  les  abonnés  sont  les  responsables  des  sites  de  vente  de  Distrisys.  Chaque 
abonné dispose donc d’un site d’affectation. Le rapport SuiviVente étant basé sur une base multidimensionnelle, la 
référence au paramètre du site se fera en identifiant MDX : c’est le rôle de la colonne SiteUniqueName qui identifie 
le  membre  de  la  hiérarchie  Pays­Site  correspondant  au  site  affecté  à  chaque  abonné.  La  colonne  FormatRendu 
quant à elle, spécifie le rendu attendu par chacun des abonnés. 

b. Modifier la source de données 

La  table  des  abonnés  étant  définie,  la  seconde  étape  est  de  modifier  la  source  de  données  du  rapport.  En  effet, 
actuellement l’accès à la source de données du rapport SuiviVente est réalisé en authentification Windows, c’est­à­
dire avec les paramètres d’authentification de l’utilisateur qui exécute le rapport. 

Nous  devons  modifier  la  source  de  données  afin  de  stocker  les  informations  d’authentification  d’un  compte 
d’exécution. Le rapport s’exécutera alors uniquement avec ce compte. 

Pour modifier les paramètres de la source de données : 

■ Ouvrez le Gestionnaire de rapports. 

■ Sélectionnez le rapport SuiviVente, affichez le menu contextuel, puis cliquez sur Gérer. 

■ Dans l’interface de gestion du rapport, cliquez sur l’onglet Sources de données. 

■ Sélectionnez l’option Informations d’identification stockées en sécurité dans le serveur de rapports, saisissez le 
login et le mot de passe d’un compte d’exécution. 

■ Puis  comme  il  s’agit  forcément  d’un  compte  Windows  (Analysis  Services  ne  tolère  l’authentification  que  par  un 
compte Windows), cochez l’option Utiliser comme informations d’identification Windows lors de la connexion à 
la source de données. 

Vous devriez avoir configuré votre source de données comme l’interface ci­dessous : 

Configuration de la source de données dans le cas d’un rapport avec abonnement 

© ENI Editions - All rigths reserved - educ algeria - 51 -


Le  compte  d’exécution  spécifié  devra  avoir  les  droits  minimaux  de  lecture  sur  la  base  de  données 
DistrisysOLAP afin de pouvoir lire les données sources. 

Sur  un  serveur  en  production,  préférez  l’utilisation  d’un  compte  avec  un  pouvoir  restreint  dédié  à  cette 
tâche. 

■ Pour finir, exécutez le rapport pour vérifier qu’il s’exécute correctement avec le compte que vous lui avez spécifié. 

c. Définir l’abonnement piloté par les données 

Nous  venons  de  définir  la  table  des  abonnés  et  de  configurer  correctement  la  source  de  données.  Les  préalables 
étant remplis, nous allons maintenant pouvoir programmer l’abonnement : 

■ Ouvrez le Gestionnaire de rapport. 

■ Cliquez avec le bouton droit sur le rapport SuiviVente pour cliquer sur Gérer. 

■ Dans l’interface de gestion du rapport SuiviVente, cliquez sur l’onglet Abonnements. 

■ Cliquez sur le bouton Nouvel Abonnement piloté par les données pour accéder à l’interface de configuration. 

L’étape 1 de l’interface de configuration de l’abonnement pilotée par les données s’affiche. L’étape 1 vous demande 
la description de l’abonnement, le mode de remise ainsi qu’une information sur la source de données qui contient la 
table des abonnés. En ce qui concerne le mode de remise, vous avez le choix entre une remise par messagerie ou 
sur un répertoire partagé. 

■ Entrez une description de l’abonnement, spécifiez le mode de remise Partage  de  fichiers  Windows, puis cliquez 


sur  l’option  Spécifier  pour  cet  abonnement  uniquement  car  nous  n’avons  pas  créé  de  source  de  données  se 
connectant à la base de données DistrisysSA. 

■ Cliquez sur Suivant pour passer à l’étape suivante. 

L’étape 2 est la configuration de la source de données : 

■ Sélectionnez Microsoft SQL Server comme type de source de données. 

■ Au niveau de la chaîne de connexion, entrez une chaîne de la forme suivante : 

- 52 - © ENI Editions - All rigths reserved - educ algeria


Data Source=server1\r2; Initial Catalog=DistrisysSA
 
La valeur du paramètre Data Source est le nom de votre serveur SQL Server et de son instance.

■ Entrez le nom d’un compte (DOMAINE\login) et le mot de passe autorisé à accéder à la base DistrisysSA. 

■ Cliquez sur le bouton Suivant pour passer à l’étape 3. 

L’étape 3 permet de saisir la requête qui récupère les informations sur les abonnés. 

■ Dans la zone de texte, saisissez la requête suivante : 

SELECT * FROM ListeAbonne

■ Cliquez sur le bouton Suivant pour passer à l’étape 4. 

L’étape 4 définit les options de remise : 

■ Pour  le  nom  du  fichier,  sélectionnez  l’option Obtenir  la  valeur  de  la  base  de  données,  et  choisissez  le  champ 
Abonne. 

Chaque fichier généré portera ainsi le nom de son destinataire. 

■ Pour le chemin d’accès, sélectionnez l’option Spécifier une valeur statique et saisissez le chemin d’un partage de 
fichier  réseau  pour  lequel  le  compte  spécifié  plus  bas  dans  les  options  de  remise,  dispose  d’autorisation  en 
écriture. 

Par  exemple  :  \\server1\SSRS.  Si  ce  partage  n’existe  pas,  prenez  le  temps  de  le  créer  et  de  définir  les  autorisations 
nécessaires. Les fichiers générés seront déposés sur ce répertoire partagé. 

■ Pour le Format  du  rendu, sélectionnez l’option Obtenir la valeur de la base de données et choisissez le champ 


FormatDuRendu. 

Chaque abonné disposera alors du fichier dans le format qu’il a souhaité. 

■ Pour le Mode écriture, sélectionnez l’option Spécifier une valeur statique. Choisissez la valeur Autoincrément. 

Cette  option  signifie  que  lorsqu’un rapport du même nom existe déjà dans le répertoire de destination, le rapport 


utilise un nom avec un incrément afin de ne pas écraser et remplacer le rapport existant. 

© ENI Editions - All rigths reserved - educ algeria - 53 -


■ Pour Extension du fichier, sélectionnez l’option Obtenir la valeur de la base de données et choisissez le champ 
ExtensionDuFichier. 

Cette option définie à True signifie que le rapport est généré avec une extension, en accord avec le format du rendu. 

■ Pour les champs Nom  utilisateur et Mot de passe, spécifiez un compte Windows au format DOMAINE\login qui a 
les droits d’accès sur le répertoire partagé spécifié plus haut. Le plus simple et le plus cohérent étant de spécifier 
le compte d’exécution. 
 

Attention à la saisie du nom du compte et du mot de passe, car l’interface ne fait pas de validation.

Définition des options de remise 

■ Cliquez sur Suivant pour passer à l’étape 5. 

L’étape 5 permet de faire le mappage des paramètres du rapport. C’est à cette étape que nous aurons l’occasion de 
personnaliser le rapport à l’abonné. 
Notre  rapport  ne  disposant  que  d’un  seul  paramètre,  l’assistant  nous  propose  alors  de  spécifier  uniquement  la 
valeur du paramètre Pays ­ Site : 

■ Pour  le  paramètre  Pays ­  Site,  sélectionnez  l’option  Obtenir  la  valeur  de  la  base  de  données  et  choisissez  le 
champ SiteUniqueName. 

Ce champ spécifie la valeur MDX du membre de la hiérarchie Pays ­ Site. 

Définition des paramètres du rapport 

■ Cliquez sur le bouton Suivant pour passer à l’étape 6. 

L’étape 6 permet de spécifier l’évènement qui déclenche la publication des données. 

L’assistant nous laisse le choix entre une planification pour déclencher la remise des données à fréquence régulière 
ou seulement lorsque le rapport est modifié (c’est­à­dire lorsqu’un nouveau snapshot est généré). 

- 54 - © ENI Editions - All rigths reserved - educ algeria


■ Sélectionnez  l’option  Suivant  une  planification  créée  pour  cet  abonnement,  afin  de  spécifier  une  remise  sur 
planification. 

■ Cliquez sur Suivant pour passer à l’étape 7. 

L’étape 7 permet de planifier la remise du rapport. 

Option de planification de l’abonnement 

Dans notre cas, nous devrions définir la remise pour le 1e r lundi du mois. Cependant pour tester notre abonnement 
nous ne générerons la remise qu’une seule fois : 

■ Sélectionnez la planification Une fois. 

■ Cliquez sur le bouton Terminer. 

L’abonnement est configuré, il apparaît ainsi dans la liste des abonnements de l’interface de gestion du rapport. 
À la date prévue par la planification, l’abonnement devrait se déclencher et générer ainsi les rapports pour chacun 
des abonnés. Dans le répertoire partagé, vous devriez alors pouvoir visualiser les rapports générés avec le nom et 
le format attendu : 

Les rapports générés par l’abonnement piloté par les données 

La  création  du  rapport  SuiviVente  et  le  mode  de  remise,  par  le  biais  de  l’abonnement  piloté  par  les  données, 

© ENI Editions - All rigths reserved - educ algeria - 55 -


illustrent  la  bonne  utilisation  de  Reporting  Services  dans  un  cadre  décisionnel.  C’est  dans  la  publication  de  masse 
que l’on tire le meilleur parti de Reporting Services et que celui­ci se révèle véritablement performant. 

7. Publier sur SharePoint 

Dans  ce  chapitre,  nous  avons  exploité  les  rapports  créés  :  soit  en  naviguant  directement  sur  le  Gestionnaire  de 
rapports, soit par le biais d’abonnements. 
Demander  à  des  utilisateurs  de  se  connecter  sur  le  Gestionnaire  de  rapports  est  une  possibilité,  mais  celle­ci  peut 
paraître peu séduisante pour certaines raisons : 

● Le  gestionnaire  de  rapports  ne  dispose  pas  de  la  charte  graphique  de  l’entreprise.  Modifier  la  charte  du 
gestionnaire de rapports n’est pas chose facile. Il serait même plus simple de créer un tout nouveau site avec 
Microsoft .Net. 

● Le  gestionnaire  de  rapports  ne  peut  afficher  que  des  rapports  Reporting  Services.  Impossible  d’y  adjoindre 
des documents Office, des commentaires ou tout autre contenu associé à un rapport. 

● Par défaut, le gestionnaire de rapports affiche le document rapport, pas son contenu. 

Voilà pourquoi le gestionnaire de rapports doit être considéré plus comme un espace d’administration que comme un 
espace à communiquer auprès des utilisateurs de l’entreprise. 

Dans l’offre Microsoft, la solution spécialisée la mieux indiquée pour afficher le contenu des rapports en mode web est 
sans conteste Microsoft Office SharePoint Server. 
Reporting Services dispose de deux solutions pour afficher les rapports sous SharePoint : 

● La première solution consiste à déployer une solution webpart sur une collection de sites SharePoint. C’est la 
solution idéale si votre serveur Reporting Services est configuré en mode natif ou que vous ne disposez pas 
de  la  licence  SharePoint  Server  2010  (ex  Microsoft  Office  SharePoint  Server  ­  MOSS).  La  version  gratuite 
SharePoint Fundation 2010 (ex Windows SharePoint Services ­ WSS) est alors amplement suffisante. Le site 
SharePoint dispose alors de deux webparts distinctes : 

● La webpart Report Explorer permet de visualiser les rapports contenus dans un répertoire. 

● La webpart Report Viewer permet d’afficher le contenu d’un rapport. 

● La seconde solution consiste à configurer votre serveur Reporting Services en mode intégré SharePoint. Dans 
ce  mode  de  configuration,  qui  nécessite  SharePoint  Server  2010,  vous  ne  disposez  plus  du  gestionnaire  de 
rapports. L’administration du serveur et des rapports est déportée dans SharePoint. Les rapports sont publiés 
dans des bibliothèques SharePoint, considérées comme autant de répertoires virtuels du serveur de rapports. 

La  mise  en  œ uvre  de  l’une  ou  l’autre  de  ces  solutions  ne  sera  pas  detaillée  dans  cet  ouvrage,  car  elle  nécessite 
d’aborder SharePoint, sa configuration et ses possibilités. 
Nous reviendrons, en conclusion de cet ouvrage, sur le rôle central de SharePoint, dans la mise en place de la solution 
décisionnelle Microsoft dans une organisation. 

- 56 - © ENI Editions - All rigths reserved - educ algeria


Conclusion et perspectives 
Au  chapitre  d’introduction,  nous  avons  vu  que  l’offre  Microsoft  BI  est  structurée  autour  des  trois  promesses  du 
décisionnel : 

● Améliorer l’accès et la qualité des données. 

● Gagner en finesse d’analyse et de compréhension des données. 

● Gérer les performances de l’organisation et de ses politiques. 

Tout  au  long  de  l’ouvrage,  vous  avez  pu  apprendre  à  employer  la  suite  SQL  Server  pour  mettre  en  œ uvre  les  deux 
premières promesses du décisionnel : 

● Vous  avez  appris  à  bâtir  et  à  modéliser  un  entrepôt  de  données  permettant  de  réaliser  des  analyses 
transversales. 

● Vous vous êtes servis de SSIS pour alimenter l’entrepôt de données, mais aussi pour qualifier les données. 

● Vous avez créé des rapports SSRS pour faire remonter aux utilisateurs les défauts de leurs données. 

● Vous avez employé SSRS dans le but de diffuser un rapport de masse, améliorant la qualité et la cohérence de 
l’information délivrée aux décideurs opérationnels. 

● Vous avez appris à employer Excel pour naviguer et explorer les données du méta modèle SSAS. 

Tout au long de l’ouvrage, vous avez pu constater que la mise en œ uvre d’un système décisionnel ne se limite pas à 
l’utilisation d’outils. La réalisation de ces deux premières promesses a nécessité l’emploi d’une démarche structurée, la 
connaissance et l’application de concepts issues du terrain et de l’expérience. 

La modélisation dimensionnelle ne se limite pas à des schémas en étoile. Elle est pétrie de code et d’astuces qu’il faut 
impérativement connaître pour obtenir un modèle Analysis Services stable et performant. 
Nous  avons  aussi  abordé  l’alimentation  de  données  et  vous  avez  là  aussi  pu  constater  l’importance  d’une  bonne 
organisation  des  bases  de  données,  de  la  bonne  répartition  de  leur  rôle  et  de  la  nécessité  de  l’élaboration  d’une 
stratégie d’audit. Nous avons vu que pour bien employer Integration Services, il vous fallait maîtriser ces concepts, qui 
sont inhérents à l’utilisation de l’ETL. 

Enfin, nous avons vu que nous ne pouvons pas nous contenter d’un seul outil pour faire la restitution à l’ensemble des 
analystes  et  décideurs  de  l’organisation.  Penser  l’interface  de  restitution  nécessite  de  bien  comprendre  l’emploi  de 
l’outil dans le processus de décision. Toute votre valeur ajoutée, lors de cette phase, est de doter le bon utilisateur du 
bon outil, et surtout d’employer le bon outil à bon escient pour lui éviter des utilisations à contre­emploi. 

Sur ce dernier point, nous avons aussi pu constater que l’ouvrage ne traitait que d’une partie des outils de restitutions. 
Nous avons assez insisté sur le fait que la solution Microsoft BI reposait non seulement sur SQL Server et Office, mais 
aussi sur SharePoint. 
La  suite  SQL  Server  est  taillée  surtout  pour  répondre  à  la  mise  en  œ uvre d’un  entrepôt  de  données.  L’entrepôt  de 
données n’est toutefois qu’une étape de maturité d’un système décisionnel. 

© ENI Editions - All rigths reserved - educ algeria - 1-


Évolution de la maturité des systèmes d’aide à la décision 

Plus  votre  système  va  gagner  en  maturité,  au  plus  les  problématiques  et  les  outils  pour  y  répondre  vont  s’éloigner 
d’une problématique IT. 

Si  nous  n’avons  répondu  dans  cet  ouvrage  qu’à  deux  des  trois  promesses  du  décisionnel,  c’est  que  la  dernière 
promesse nécessite l’emploi de méthodes et d’outils complémentaires. Dans l’offre Microsoft BI, il s’agit notamment de 
bénéficier des apports de SharePoint Server 2010. 

SharePoint Server 2010 offre une multitude d’interactions naturelles avec le système décisionnel : 

● Sa capacité à collaborer permet la création d’espaces de décisions avec commentaires, avis et points de vue. 
Les  données  qualitatives  étant  aussi  importantes  à  prendre  en  compte  dans  la  prise  de  décision  que  les 
données quantitatives remontées par l’entrepôt de données. 

● Sa fonction de workflow peut être mise à profit pour suivre les actions correctives prises suite à une décision. 

● Son positionnement central permet à la BI d’obtenir une visibilité et de devenir un outil de communication dans 
l’entreprise. 

Avec la version Enterprise, SharePoint Server 2010 offre aussi des fonctions purement décisionnelles : 

● Excel Services permet de partager des contenus Excel sur des sites SharePoint. 

● PerformancePoint  Services  dote  l’entreprise  et  les  services  spécialisés,  contrôle  de  gestion  notamment,  de 
moyens permettant de mettre en œ uvre une véritable approche concrète de gestion de la performance et de 
suivi des politiques. 

Du point de vue de l’informatique, la mise en place de SharePoint Server 2010 est donc nécessaire pour continuer à 
faire  progresser  le  système  décisionnel,  ouvrant  le  passage  de  la  Business  Intelligence  vers  le  Management  de  la 
Performance. 
Vous venez de réaliser les premières briques de votre entrepôt de données avec SQL Server. Vous venez de faire le 
plus  dur  !  La  valeur  ajoutée  de  votre  système  ne  peut  aller  qu’en grandissant. Le lancement d’un  projet  décisionnel 
ouvre la porte à de passionnants projets très concrets dans leur capacité à faire progresser votre organisation. 

- 2- © ENI Editions - All rigths reserved - educ algeria