100% ont trouvé ce document utile (1 vote)
239 vues204 pages

L'informatique Décisionnelle de A À Z Sur Le Cas Orion Star Table Des Matières

BI de A à Z

Transféré par

Mohamed ESSALBI
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
100% ont trouvé ce document utile (1 vote)
239 vues204 pages

L'informatique Décisionnelle de A À Z Sur Le Cas Orion Star Table Des Matières

BI de A à Z

Transféré par

Mohamed ESSALBI
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

L’informatique décisionnelle de A à Z sur le cas Orion Star1

Table des matières :


L’INFORMATIQUE DECISIONNELLE DE A A Z SUR LE CAS ORION STAR 1

TABLE DES MATIERES : 1

INTRODUCTION A L’INFORMATIQUE DECISIONNELLE 4

PREAMBULE : 4
Le décisionnel, pour qui ? 5
Objectifs 6
Le décisionnel, pourquoi faire ? 9
Quelques mots sur le décisionnel 10
Informatique décisionnelle : système d’aide à la décision ? 11
DEFINITION DE L’INFORMATIQUE DECISIONNELLE : 13

PRESENTATION DU CAS ‘ORION STAR’ 14

LA SOCIETE : ORION STAR 14


Structure de l’organisation : 14
L’offre 15
Les clients 15
Les commandes 15
Les fournisseurs 15
Les utilisateurs du système décisionnel 15
SCHEMA DE LA BASE DE DONNEES OPERATIONNELLE 16
MODELE DE DONNEES DU DATA W AREHOUSE 19

PRE-REQUIS 20

INSTALLATION SAS 20
Gestion des profils 20

L’ARCHITECTURE DE LA PLATEFORME DECISIONNELLE SAS 23

L’axe technologique 23
L’axe intégration : 24

Cette étude de cas ‘Orion Star’ partant du système informatique opérationnel pour aboutir à la
©
diffusion de la connaissance est un exemple fictif, propriété de l’éditeur de logiciel SAS, Copyright
2003 SAS Institute Inc., Cary, NC, USA. Il ne peut être diffusé sans l’accord écrit de SAS Institut.

Mise en place de la plateforme décisionnelle SAS sur l’étude de cas Orion Star 1/204
L’axe interopérabilité : 24
L’axe ouverture 25
L’axe puissance 25
L’axe administration 25
L’axe ergonomie 26
L’axe Compatibilité 27
Résumé : 27
L’axe métier 27
L’axe secteur d’activité 28
ARCHITECTURE TECHNIQUE DE LA PLATEFORME DECISIONNELLE SAS 31
Scalability : Capacité à monter en puissance. 33
LES UTILISATEURS ET GROUPE DE BASE : 33
BIBLIOTHEQUE 35
Création d’une bibliothèque : 35

ETL 60

PRESENTATION DE L’OUTIL SAS® DATA INTEGRATION STUDIO 62


MISE EN ŒUVRE : 65
Mise en place du Data Warehouse Orion 65
IMPLEMENTATIONS ETL SUR LE CAS ORION STAR 67
Définition de l’arborescence des métadonnées ETL personnalisées : 71
Importation des métadonnées des tables de l’ODS 74
Création de la table CUSTOMER_DIM : 79
Création de la table ORGANIZATION_DIM 99
Création de la table TIME_DIM 104
Création de la table GEOGRAPHIC_DIM 107
Création de la table ORDER_FACT 109
Création du Data Mart Orion Gold 111

OLAP 113

VOCABULAIRE OLAP 113


MISE EN ŒUVRE, CREATION DU CUBE ORION : 114
Navigation dans un cube depuis SAS Enterprise Guide : 124
Navigation dans un cube depuis Microsoft Excel : 129
OPTIMISATION D’UN CUBE OLAP 134

INFORMATION MAP 145

L’interface SAS Information Maps Studio 145


Elément d’une Maps 146
Enregistrement 149
MISE EN ŒUVRE SUR LE CAS ORION STAR 150
CREATION DES MAPS : 155

CREATION DE RAPPORT AVEC SAS WEB REPORT STUDIO 158

CREATION D’UNE PROCEDURE STOCKEE 164

Mise en place de la plateforme décisionnelle SAS sur l’étude de cas Orion Star 2/204
QUELQUES MODULES SAS: 193

Quelques packages : 195


SAS Enterprise Guide 195
SAS Enterprise Miner 197
SAS STAT STUDIO 198
AppDev Studio 198
SAS® Data Integration Server 198
SAS® Intelligence Storage Server 199
SAS® Business Intelligence Server 200
SAS Information Delivery Portal : 204

Mise en place de la plateforme décisionnelle SAS sur l’étude de cas Orion Star 3/204
Introduction à l’informatique décisionnelle
« L’ignorance est mère de tous les maux » F. Rabelais

Préambule :
Le monde dans lequel nous vivons est de plus en plus complexe. Les nouvelles technologies de
l’information nous génèrent une multitude de données comme jamais auparavant. Le problème n’est
donc plus tant d’acquérir une masse de données, mais de l’exploiter. Pour cela il faut collecter de
l’information de qualité, la standardiser, la normaliser, la trier, la filtrer, la classer, l’agréger, la
modéliser, afin d’en extraire la substantifique moelle et prendre la bonne décision au bon moment.
Dans ce but, il est nécessaire de mettre en place un système d’information particulier, appelé système
décisionnel. Ce système doit permettre de présenter de manière simple les chiffres recueillis pour
mettre en lumière la conjoncture actuelle et indiquer implicitement la voie à suivre. Un système
décisionnel ne remplace pas les systèmes opérationnels qui font fonctionner l’entreprise, mais il vient
s’y intégrer, en y extrayant des données, afin d’en diffuser la connaissance, de la manière la plus
facilement exploitable par les personnes concernées. Le système opérationnel n’est pas, à priori,
modifié par la mise en place du système décisionnel, ce dernier vient le compléter par une exploitation
avancée de l’information. Il est donc nécessaire d’ajouter aux systèmes opérationnels qui permettent
très bien de gérer l’entreprise au quotidien, un système offrant la capacité d’analyser le passé, le
présent et de simuler l’avenir pour anticiper les changements constants de notre société. Un système
décisionnel doit notamment permettre de passer de la simple réactivité à l’anticipation et à la pro-
activité. Etre proactif, cela veux dire par exemple qu’au lieu d’attendre que le client vous envoie la
résiliation de son contrat, étant donné que vous avez déjà modélisé ce comportement, vous pouvez
anticiper. Vous lui envoyez donc une proposition devant vous permettre de le fidéliser, avant qu’il n’ait
pris cette décision de résiliation. Les organisations ont pour la plupart, mis en place leur système
opérationnel pour être efficaces et réactives, elles doivent maintenant, pour être proactives déployer
un système décisionnel.

La mise en place d’un système décisionnel permet d’apporter des réponses efficaces à tous les
niveaux de l’entreprise ; cet aspect décisionnel est présent dans les organisations depuis de
nombreuses années, il revêt l’apparence de rapports et de tableaux de bord. Mais, beaucoup d’entre
elles s’aperçoivent que ces simples outils de Reporting ne satisfont pas entièrement leurs attentes.
Elles se rendent compte que la mise en place d’un entrepôt de données global, transversal et
cohérent, lié à des outils d’analyses, est nécessaire. La Business Intelligence est devenu une priorité
pour les directions informatiques.
Si globalement les projets informatiques ne sont plus en forte croissance après leur explosion de la fin
des années 90 et du début des années 2000, les projets d’informatique décisionnelle ont actuellement
le vent en poupe avec notamment deux axes majeurs : premièrement la gestion de la relation client et
deuxièmement la chasse aux coûts par une meilleure compréhension des mécanismes de création de
valeur. En effet, je ne vous apprends rien en vous disant que l’objectif d’une société privée est de
gagner de l’argent, c’est le nerf de la guerre. Pour augmenter la marge, les deux principaux leviers
sont d’augmenter le chiffre d‘affaires et de réduire les coûts. Nous nous intéresserons donc
notamment aux solutions permettant de mieux comprendre,
• le client pour lui vendre plus sur le long terme,
• l’utilisation de l’argent dépensé pour découvrir les économies potentielles.
Il est important, dès à présent, de relativiser cet objectif très matérialiste par le fait que si ces outils
peuvent être utilisés par des personnes sans scrupules, nous ne nous intéresserons ici qu’à des
objectifs satisfaisant à des valeurs strictes et une intégrité forte, avec une philosophie de
développement durable. Par exemple nous ne nous intéresserons pas à piller le client comme cela
peut être le cas, mais bien à développer une relation durable, pérenne : gagnant-gagnant.
Une crainte fréquemment rencontrée vis-à-vis des technologies de l’information est le fait de se sentir
espionné. Bien évidemment, et en France tout particulièrement, des lois très strictes règlementent
l’utilisation des bases de données. Il est toujours possible de ne pas prendre une carte de fidélité, et
donc de ne pas bénéficier des avantages qu’elle propose ; on peut aussi à tout moment demander de
ne plus recevoir d’offres promotionnelles.

Mise en place de la plateforme décisionnelle SAS sur l’étude de cas Orion Star 4/204
En résumé, l’informatique décisionnelle peut, comme tout autre système, être pervertie. Une
plateforme décisionnelle intégrée est nécessaire pour transformer des données légalement utilisables
en connaissance afin d’amélioration la performance à cours, moyen et long terme, des organisations.

De plus, cette croissance de l’informatique décisionnelle est particulièrement forte dans le secteur
public où des organisations gigantesques doivent fournir des rapports précis sur notamment la
manière dont elles utilisent l’argent du contribuable. Par exemple en France, la LOLF, Loi Organique
sur la Loi de Finance, impose quasiment de gérer les établissements publics, comme ceux du privé,
avec des objectifs de performance. C’est une révolution qui impose de passer d’une logique de moyen
à une logique de résultat, ce qui nécessite des changements gigantesques et notamment en terme de
rapport et d’analyse.
Les projets d’informatique décisionnelle sont donc des projets actuels mais surtout d’avenir.

Ce qu’il faut retenir : L’informatique décisionnelle a pour objectif de


transformer les données déjà présentes dans et à l’extérieur de l’entreprise,
en connaissance, afin de permettre la judicieuse décision au bon moment.

Le décisionnel, pour qui ?

Le défi majeur de l’informatique décisionnelle, bien au-delà de la technologie, est humain. En effet, ce
processus de transformation de la donnée en connaissance nécessite de nombreuses compétences
qui doivent s’allier pour travailler vers un objectif commun. L’objectif ici, sera de montrer aux
différentes parties prenantes, l’ensemble du processus décisionnel, afin que chacun puisse mieux y
participer.

Nous nous adressons donc à plusieurs profils d’étudiants, de professeurs ou de professionnels que
l’on peut répartir de la façon suivante :
o Les techniciens : Les personnes ayant des compétences informatiques doivent pouvoir
prendre en main concrètement la plateforme décisionnelle SAS, mais aussi d’appréhender le
besoin d’ergonomie de l’applicatif final, la nécessité d’intégrer l’analyse de données, et
1 2
comprendre quelques problématiques métiers . Trop de projets décisionnels sont purement
techniques et non fonctionnels ; il est donc important d’élargir le champ des informaticiens par
un cas concret, aux besoins analytiques et métiers. Le processus de la chaine du décisionnel
sera vu du début à la fin, avec des approfondissements sur les choix techniques pouvant être
mis en œuvre.
o Les architectes et administrateurs de système décisionnel : Les futurs chefs de projets,
architectes ou administrateurs de projets décisionnels y trouveront une vision globale de la
plateforme décisionnelle SAS afin d’en conceptualiser la structure, les tenants et les
aboutissants. Parmi les discussions importantes qui seront soulevées, notons la gestion du
projet et du changement induit, l’administration, la sécurité, les différentes architectures
techniques et fonctionnelles envisageables et l’intégration d’une telle plateforme dans les
systèmes informatiques.
o Les statisticiens : Les analystes, statisticiens ou Data Miner pourrons mieux appréhender les
nouvelles opportunités apportées par l’intégration de l’analyse de données dans le processus
d’aide à la décision ; les fusions amonts (ETL, administration, structure de Data Warehouse,
OLAP, etc.) et avals (Reporting, portail, procédure stockée, etc.). Il est primordial d’analyser
les données nombreuses et complexes, mais surtout d’industrialiser leur intégration dans le
processus décisionnel. Pour ce public, nous nous pencherons particulièrement sur les
techniques avancées de statistiques, de modélisation, de Data Mining et d’optimisation.
o Les décideurs actuels ou futurs : Il est fondamental d’aider les décideurs présents ou futurs,
de mieux appréhender la face cachée de l’iceberg de l’informatique décisionnelle. Cette

1
Ici, le mot problématique est bien à prendre dans son acceptation littéraire, c'est-à-dire ensemble de
problèmes.
2
Métier : les métiers génériques de l’entreprise sont la production, les ressources humaines, le
marketing, les forces de ventes. Les utilisateurs métier d’un système décisionnel sont donc des
utilisateurs généralement non informaticiens, ayant besoin d’accéder de manière simple à la
connaissance contenue dans les systèmes d’information.

Mise en place de la plateforme décisionnelle SAS sur l’étude de cas Orion Star 5/204
ouverture vers un monde souvent rendu obscur par un jargon technique spécialisé, truffé de
sigles et d’anglicismes, devra leur permettre d’en appréhender les tenants et les aboutissants,
afin de conceptualiser l’apport pratique d’une plateforme décisionnelle. Le terme décideur est
à prendre ici au sens large, depuis les cadres ayant à prendre beaucoup de décisions,
jusqu’aux employés ayant des rapports à fournir régulièrement. L’objectif est donc de donner
à ces utilisateurs non techniciens, une meilleure connaissance de ces systèmes pour qu’ils les
utilisent mieux et prennent une part encore plus active dans leur élaboration et leur
maintenance. Comment prétendre devenir manager si dans un monde de technologie, on ne
comprend pas ce qu’il se passe ? Comment un système décisionnel peut-il créer de la valeur
si le management ne définit pas la stratégie ?

Objectifs

Objectif globale : Dans le monde dans le quel nous vivons, les décisions ne peuvent plus être prises
uniquement sur des coups de génie. Pour bien gérer une organisation, il est nécessaire de s’appuyer
sur des informations de qualité. Les managers d’aujourd’hui et surtout de demain, ont besoin
d’analyse pour comprendre le présent et simuler l’avenir.

Les objectifs de conceptualisation d’un projet décisionnel peuvent donc être présentés selon trois
axes majeurs :
1. L’axe technique : l’objectif est de montrer à des informaticiens comment mettre en
place un Data Warehouse, d’aborder la nécessité d’intégrer l’analyse pour ne pas se
limiter à un simple projet de Reporting, et d’aborder des problématiques fonctionnelles.
2. L’axe analytique : l’objectif est d’exploiter un maximum la base de données du Data
Warehouse par des analyses statistiques et Data Mining avancées, et d’appréhender
l’intégration technique amont et fonctionnelle aval.
3. L’axe fonctionnel : l’objectif est de conceptualiser l’apport d’un système décisionnel
intégrant des analyses statistiques et du Data Mining pour des problématiques métier.

Le but de l’informatique décisionnelle est de transformer les données de l’entreprise en ‘Intelligence’. Il


est important de préciser que le mot ‘intelligence’ est à prendre dans son acceptation anglo-saxonne,
c'est-à-dire connaissance de l’entreprise ; connaissance de son fonctionnement, de ses partenaires :
clients – fournisseurs, de sa structure : groupe – filiale, de ses produits, de ses processus, de son
organisation, de ses ressources humaines, de son histoire, de son présent mais aussi de son futur
probable.
Les entreprises sont en perpétuel changement. Les organisations privées ou publiques ont en général
comme points communs, des clients, des employés et des partenaires de plus en plus exigeants.
Face à ces changements de plus en plus rapides et à cette concurrence de plus en plus forte la
simple réactivité ne suffit plus : il faut anticiper. Cette anticipation ne peut être efficace qu'en
s'appuyant sur des informations pertinentes, des prévisions justes, voir des simulations et la
recherche d’optimum. Mais, dans leurs organisations actuelles, les données sont volatiles,
surabondantes, non organisées pour la prise de décision, et souvent éparpillées dans de multiples
systèmes hétérogènes. Il devient donc capital de rassembler et d'homogénéiser les données afin de
permettre l'analyse des indicateurs nécessaires aux prises de décisions.

L'informatique décisionnelle apporte à l'entreprise l'information élaborée l'aidant à comprendre, à


maintenir et à gérer sa compétitivité, à accroître sa part de marché, à fidéliser sa clientèle et à
optimiser ses processus et ses coûts.

De manière communément acceptée, le terme Business Intelligence (BI) se traduit en français par
informatique décisionnelle (ID) et de manière réciproque.
L’informatique décisionnelle est associée au concept de Data Warehouse, ce qui se traduit
généralement en français par entrepôt de données. Ce concept a été formalisé pour la première fois
en 1990 par Bill Inmon de la façon suivante :
« Un Data Warehouse est une collection de données thématiques, intégrées, non volatiles et
historisées pour la prise de décisions. »
Un entrepôt de données est donc une base de données :
• Thématiques : c'est-à-dire orienté sujet, métier. Contrairement aux bases de données
opérationnelles généralement orientées processus, les bases des entrepôts décisionnels sont

Mise en place de la plateforme décisionnelle SAS sur l’étude de cas Orion Star 6/204
modélisées pour répondre facilement à toutes les questions d’utilisateurs non-informaticiens. Il
faut donc apporter à l’utilisateur l’information selon sa définition métier.
• Intégrées : regroupant généralement des sources hétérogènes de données. Exemple : pour
avoir la connaissance métier d’un client, il faut souvent rassembler les informations issues des
systèmes opérationnels
o de gestion des forces de ventes pour connaître ses dernières commandes,
o de la comptabilité pour savoir s’il a payé sa dernière facture,
o du service après vente s’il l’a utilisée,
o du serveur Web s’il s’est connecté sur le site,
o du partenaire avec lequel un programme de fidélité commun a été mis en place,
o etc.
Un entrepôt de données décisionnelles d’entreprise doit permettre d’avoir une vision
unique et transversale de l’information.
• Non volatiles : stables, non modifiables. Contrairement à un système opérationnel modifié
après chaque transaction, les informations d’un système décisionnel ne changent pas.
• Historisées = archivées : datées, afin de conserver un historique. Cela permet les analyses
comparatives. Exemple : le solde du compte en banque du client est une variable volatile qui
change à chaque transaction. On va donc retrouver généralement, si la volumétrie le permet,
l’information de détail, le plus petit dénominateur commun à différents problèmes. Ayant ce
détail daté, il sera alors toujours possible de recalculer un indicateur à un instant t.

Tout comme cette définition très technique, dans l’expression « informatique décisionnelle », il y a le
mot « informatique » qui donne maladroitement une connotation technique qui peut faire peur. Certes,
les projets d’informatique décisionnelle requièrent de nombreuses compétences informatiques, mais il
ne faut pas perdre de vue que leur objectif est de mettre en place des solutions d’aide à la décision
pour des personnes non informaticiennes. Il faut donc que l’équipe projet comporte des compétences
fonctionnelles pour que l’applicatif final soit orienté métier.
D’un autre côté, les projets d’informatique décisionnelle requièrent des informaticiens compétant et
rigoureux. Même si les interfaces des utilisateurs sont de plus en plus intuitives, il est consternant de
voir des utilisateurs faire leurs rapports sur des pseudos Data Warehouse. Pour faire correctement du
décisionnel, il faut un vrai Data Warehouse digne de ce nom, construit de façon rigoureuse par des
informaticiens, capables de le maintenir. Pour les éditeurs de logiciel, les intégrateurs et les SSII, le
conseil métier se vendant généralement plus cher, l’aspect fonctionnel devient souvent trop mis en
valeur par rapport à l’aspect technique. Les présentations Power Point se développent souvent sur du
vent. Rares sont ceux qui métrisent véritablement les aspects technologiques et fonctionnels. Sans
une architecture technique solide, un système décisionnel n’est rien et est voué à mourir.
Un projet décisionnel est à la fois un projet technique et fonctionnel.

Pour la partie fonctionnelle, il ne faut pas non plus se focaliser uniquement sur les directions
générales. Certes, il et plus flatteur de dire que l’on travail pour le tableau de bord du directeur général,
mais un système décisionnel a aussi très souvent pour but de faciliter le travail de Reporting des
assistantes. C’est d’ailleurs souvent le premier retour sur investissement mesurable : la diminution
significative du temps consacré au Reporting grâce à l’industrialisation de celui-ci.
L’informatique décisionnelle s’adresse donc à un public très large et hétérogène. Il est important de
formaliser les termes du décisionnel afin que tous puissent communiquer normalement. Pour
complexifier la chose, les différents protagonistes du décisionnel peuvent avoir des définitions
différentes pour un même mot. Les définitions présentées ici n’ont pas la prétention d’être seules et
uniques, simplement de tenter de formaliser un peu ce jargon obscur où chacun défini les termes
comme cela l’arrange.

Il faut remarquer que les expressions « entrepôt de données » et « informatique décisionnelle »


1
recouvrent tous les deux, deux notions synecdoques :
- Pour la première, l’entrepôt de données ou Data Warehouse, renvoie à l’infrastructure décisionnelle
dans son ensemble, ou seulement au contenant des données décisionnelles, le stockage de
l’information décisionnelle.

1
Une synecdoque est une figure de style qui consiste à donner à un mot un sens plus large ou plus
restreint qu'il ne comporte habituellement. Par exemple, étant sur un port, dire « je vois une voile à
l’horizon » et équivalent à dire « je vois un bateau à l’horizon ».

Mise en place de la plateforme décisionnelle SAS sur l’étude de cas Orion Star 7/204
- Pour la seconde, l’informatique décisionnelle ou Business Intelligence, renvoie à l’ensemble du
processus dans sa globalité (extraction – validation - transformation – chargement – stockage –
restitution – analyse de données – diffusion de la connaissance – génération de rapport – gestion de
la performance - etc.) ou seulement aux applications finales de Reporting et de pilotage, partie
émergée de l’iceberg, visible par l’ensemble des utilisateurs.

Mise en place de la plateforme décisionnelle SAS sur l’étude de cas Orion Star 8/204
Le décisionnel, pourquoi faire ?

«Toutes les défaites du monde se résument en 2 mots : trop tard ! » Général Mac Arthur

« C'est dans le moule de l'action que notre intelligence a été coulée » Henri Bergson

« L’information est le seul avantage compétitif » Jack Welsh – CEO de General Electric

Image de [Link]

« Il est toujours sage de regarder en avant, mais il est difficile de regarder plus loin qu'on ne peut voir
» Winston Chuchill

L’informatique décisionnelle doit permettre d’avoir une vision claire, nette et précise du passé, le
rétroviseur de l’image ci-dessus, mais aussi de comprendre la situation actuelle et de prévoir, simuler
le futur.
• Passé : tous les utilisateurs du système décisionnel doivent pouvoir naviguer dans
l’information dont ils ont besoin, depuis le détail, jusqu’au général. Ils doivent pouvoir faire des
tableaux croisés, des histogrammes, des camemberts, etc. de manière intuitive pour faire des
rapports et les partager. Un système décisionnel a notamment pour fonction d’être la mémoire
de l’entreprise. La première fonction du décisionnel est de permettre à n’importe qui dans
l’organisation d’accéder à l’information dont il a besoin, tout seul, de manière intuitive ; c'est-à-
dire, offrir à tout le monde la possibilité, sans formation, en trois clics de souris, d’avoir une
information précise.
• Présent : il est important d’avoir l’information juste de la situation actuelle, consolidée avec les
informations sur le marché et sur les partenaires de l’entreprise, pour savoir où on est, par
rapport aux autres, dans quel environnement.
• Futur : un système décisionnel intégrant des outils d’analyses de données et notamment de
Data Mining, doit permettre de simuler le futur en connaissance de l’historique ; par exemple
définir le potentiel d’achat d’un client au regard de son passé. Cette vision du futur reste une
simulation avec une incertitude plus ou moins importante, néanmoins, elle est d’une très forte
valeur ajoutée pour la prise de décision.

Les systèmes décisionnels doivent être une aide aux collaborateurs, leur permettant d'être proactifs
sur leurs marchés, c'est-à-dire d’analyser, d'anticiper et de capitaliser sur l’expérience pour décider en
fonction d'informations disponibles facilement et rapidement.

Mise en place de la plateforme décisionnelle SAS sur l’étude de cas Orion Star 9/204
On peut comparer « conduire une voiture » à « piloter une activité ». Un véhicule doit :
• avoir un tableau de bord pour connaître la vitesse, les réserves d’essence, présenter des
alertes, etc.
• offrir une vision si possible claire de la route, de ce qui se passe devant.
• Des initiatives, des leviers d’action, des commandes pour piloter.

Dans le cadre du management, à défaut d’avoir une vision limpide du futur, des outils de simulation
permet de scénariser ce futur. Comment piloter si l’on ne sait pas où l’on va ? Les outils d’informatique
décisionnelle permettent de mettre à la disposition de tous les utilisateurs la connaissance du passé
(la mémoire), une définition concise, relative et précise du présent ; et différentes prédictions pour
l’aide à la décision. En connaissance de ces informations, il est alors possible de définir une carte
routière avec des objectifs à atteindre et de contrôler si l’on est dans la bonne direction.

Mais un élément primordial dans la définition de la stratégie, souvent oublié, c’est d’associer aux
objectifs des initiatives appelées aussi levier. En effet, si un indicateur tourne au rouge dans notre
tableau de bord mais que l’on n’y a pas associé de levier d’action, c’est comme être dans une voiture
lancée à pleine vitesse où l’on voit le mur arriver mais où l’on n’aurait pas la possibilité d’appuyer sur
le frein !

Petit exemple simplifié :


• objectif : Qualité de service après vente
• responsabilité : Le responsable du service après vente (comme son nom l’indique)
• KPI : délais moyen de réponse
• Initiative : recrutement de ressource - optimisation de l’affectation des appels – capitalisation
sur l’expérience – etc.

L’indicateur « délai moyen de réponse » seul ne sert à rien s’il est juste là pour l’autosatisfaction du
chef et son plaisir de taper sur ceux qui sont en dessous.
Un indicateur est pertinent lorsqu’il est lié à une stratégie et à des moyens pour y parvenir.

Remarque importante : Dans un projet, afin de réduire le nombre d’indicateurs aux indicateurs clés de
performance (KPI : Key performance Indicator), les seuls qui doivent être retenus sont ceux sur
lesquels on pouvait agir. Ce sont les mesures de performance utiles. Les autres sont du « flicage » !

Un outil décisionnel ne doit pas être un simple outil de contrôle mais bien un
outil de partage de la connaissance, de communication, de prévision, de
simulation, etc. pour l’analyse et l’amélioration de la performance des
organisations.
Les indicateurs doivent être reliés à des actions – des initiatives.

Quelques mots sur le décisionnel

On trouve maintenant des systèmes opérationnels dans presque tous les domaines. Certaines
entreprises, étant dans un milieu encore plus concurrentiel et plus complexe, ont déjà installé des
outils d’informatique décisionnelle. Néanmoins très peu de grands groupes ont une plateforme
décisionnelle d’entreprise intégrée leur permettant d’avoir une vision transversale, intégrant des
prévisions, des simulations et de l’optimisation, pour l’analyse et la gestion de la performance. De plus,
les changements sont perpétuels et les systèmes décisionnels sont donc en perpétuelle évolution.

Une architecture d’entrepôt de données décisionnelles, intégrée et ouverte, a pour but de fournir une
information de qualité aux décideurs de l’entreprise et de faciliter la prise de décision stratégique. Bâtir
cet entrepôt pour répondre à des problématiques métiers, est réputé être avant tout un projet
technologique complexe. En effet, ce type de projet nécessite des capacités d’intégration fortes
compte tenu de l’environnement très souvent hétérogène des systèmes d’information opérationnels et
de la complexité des données.

Mise en place de la plateforme décisionnelle SAS sur l’étude de cas Orion Star 10/204
Un système décisionnel intégré permet de collecter l’information de différents systèmes opérationnels
afin d’avoir une vision globale unique, sans remettre en cause les systèmes opérationnels actuels.
Dans le jeu des fusions - acquisitions, le système décisionnel doit faciliter l’intégration des différentes
composantes. On retrouve souvent de multiples systèmes d’information opérationnels à travers les
organisations, sociétés, groupes, etc. et des outils de Reporting accoler. Un véritable « entrepôt de
données d’entreprise », traduction d’ « Enterprise Data Warehouse », doit offrir une vision unique,
globale, transversale et du général au détail. Le terme « entreprise » a été rajouté pour insister sur la
notion d’unicité et de transversalité, c'est-à-dire, que ce n’est pas un entrepôt qui est la somme de
différents sous ensembles. Dans trop de réunion, les chiffres de deux directions sont différents, ce qui
créer des conflits, car il n’y a pas une vision unique et globale.

Un autre point de vue pour discuter de systèmes décisionnels intégrés, est le constat que dans
beaucoup de cas on applique un outil de Reporting à chaque application opérationnelle et l’on se
retrouve avec autant de système décisionnel que de système opérationnel. Les rapports de base sont
bien fournis, mais on est très loin d’avoir une vision globale et transversale.

Un entrepôt de données d’entreprise doit donc impérativement faire passer toutes les informations par
un point unique afin de
• les intégrer,
• les consolider,
• les valider,
• en vérifier la qualité,
• et les standardiser.

Techniquement, on utilise généralement un espace dédié que l’on appelle ODS (Operational Data
Store) mais qui pour ne pas être confondu avec l’ODS (Output Delivery System) de SAS, sera appelé
simplement Data Store (DS). Le Data Store est donc un espace stockant une copie de toutes les
données issues des différents systèmes opérationnels, internes ou externes.

Remarque : Ce Data Store est généralement modéliser en troisième forme normale.


Notons que l’ODS est de plus en plus souvent utilisé mais qu’il n’est absolument pas nécessaire dans
tous les cas. Il existe de nombreuses théories sur la modélisation des bases de données des
entrepôts de données décisionnels. La qualité fondamentale nécessaire pour faire cette modélisation
est le BSP. Sans cette faculté, on complique et on intellectualise trop le problème. Revenons donc à
la base, l’objectif de la mise place d’une plateforme décisionnelle intégrée d’entreprise et de permettre
à tous les collaborateurs de l’entreprise, pour la plupart non informaticiens, en quelques clics de souris
d’accéder à l’information dont ils ont besoin pour analyser les situations, les comprendre et donc
améliorer la performance de l’organisation. Et pour couronner le tout, il faut une information unique et
de qualité.
Mais qu’est-ce que le BSP ; une valeur trop souvent oubliée au profit d’intérêts personnels. Si tout le
monde possédait cette qualité, se serait fantastique. Le BSP, c’est le « Bon Sens Paysan » !

Informatique décisionnelle : système d’aide à la décision ?

Un système décisionnel est par définition un système d’aide à la décision. Cela ne veut certainement
pas dire qu’un tel système prenne des décisions à la place d’êtres humains et aussi intelligents soient
ces systèmes, ils ne nous remplaceront pas. Par contre, au lieu de prendre des décisions dans le flou,
les décisions seront prises en connaissance de cause. Il ne va pas sans dire qu’une telle
transformation dans le processus de prise de décision, ne se fait que très rarement sans réticences. Il
est donc important d’intégrer un vrai processus de gestion du changement pour amener l’ensemble
des décideurs à utiliser la connaissance apportée par le système décisionnel. Dans un monde de plus
en plus complexe, il est devenu vital d’utiliser la technologie pour exploiter le déluge d’information à
des fins d’analyse de la situation passée, présente, et future, pour prendre la bonne décision au bon
moment.

Prenons l’exemple d’une grande banque française qui souhaite modéliser le comportement du client
afin de prévenir d’un éventuel départ à la concurrence. Pour ce faire, sur un historique de plusieurs
années, un modèle de Data Mining a été construit. Plus précisément, connaissant presque pour
chaque client quelques cinq cent cinquante variables comme, le revenu moyen, le fait d’être

Mise en place de la plateforme décisionnelle SAS sur l’étude de cas Orion Star 11/204
propriétaire, l’activité moyenne du compte principal, les différents produits bancaires détenus, leur
utilisation maximale et moyenne, l’âge du client, sa situation familiale, etc. il est possible de modéliser
sans trop se tromper, le fait que les clients ayant toutes ces caractéristiques sont des clients fidèles,
alors que ceux dans telle ou telle situation, sont fortement susceptibles de partir à la concurrence. Sur
un historique de plusieurs années, on connaît les clients qui sont encore clients et ceux qui ne le sont
plus.
Les outils de Data Mining nous permet, par apprentissage sur l’historique, de modéliser le
comportement du client, et donc de prévoir sa probabilité, son potentiel de partir à la concurrence.
La gestion du changement s’est déroulée, pour cette banque en plusieurs étapes. Tout d’abord, sur
un ensemble d’agences pilotes sélectionnées au hasard, sur l’application opérationnelle des
responsables de compte, une cellule a été rajoutée dans leur écran opérationnel. Cette cellule
comprenait la note du potentiel du client à partir. Chaque responsable de compte a alors, lorsque qu’il
ouvre la fiche d’un client, en plus des informations classiques, cette note du potentiel du client, de
clôturer ses comptes.
Après six mois d’une phase de test sur ces agences pilotes, le retour des responsables de compte a
été synthétisé de la manière suivante. Pour l’ensemble des clients ayant une note élevée de potentiel
de partir à la concurrence :
• Dans environ 30% des cas, fort d’une expérience pouvant aller jusqu'à trente cinq ans de bon
et loyaux services, le banquier n’avait pas besoin de cette note pour savoir qu’il y avait un
risque de départ. Il connaît certain profil type.
• Dans environ 30% des cas, cette note élevée était une fausse alerte. Le banquier après avoir
questionné longuement le client, n’y a pas relevé de risque réel.
• Dans environ 40% des cas, le banquier a admis que si il n’avait pas eu cette information, il
n’aurait rien fait pour comprendre son client et essayer de le fidéliser, alors qu’il y avait un
risque.

Pour résumer, dans 60% des cas, notre modélisation n’apporte aucune connaissance, voir pire, dans
30% des cas, nous fait perdre du temps. Néanmoins, si l’on compare la performance de ces agences
pilotes par rapport à l’ensemble des agences du groupe, les agences pilotes ont divisé par quatre le
taux de départ. Sachant que pour ce groupe bancaire, les banquiers ont une prime en fonction du
nombre de clients, il est alors possible de gérer le changement en présentant de manière chiffrée, le
gain apporté par le décisionnel, notamment sur la prime de fin d’année de chaque collaborateur.

Dans la plupart des projets décisionnels, il est important de procéder par étape et par itération afin de
gérer correctement le changement. On définit un pilote, on analyse les retours sur investissement
générés, et si les résultats sont suffisamment probants, on déploie sur un périmètre plus large avec
des chiffres justificatifs à l’appui.

Mise en place de la plateforme décisionnelle SAS sur l’étude de cas Orion Star 12/204
Définition de l’informatique décisionnelle :
L’informatique décisionnelle permet de transformer la donnée en connaissance.

Planification ETL Stockage Analyses Restitution

La chaine du décisionnelle

Nous allons aborder l’informatique décisionnelle en cinq grandes étapes :


1. La panification : Mettre en place une plateforme décisionnelle est généralement un projet
complexe, il est donc important de commencer sur des bases solides. Il faut pour cela avoir
une méthodologie bien définie.
2. ETL (extraction – transformation – loading) que l’on peut traduire par extraction –
transformation et chargement. La chaine du décisionnelle commence par l’intégration, la
validation de la qualité des données, la transformation et le chargement de l’entrepôt de
données.
3. Une plateforme décisionnelle doit souvent gérer d’importants volumes de données. Les bases
de données décisionnelles se mesurent parfois en dizaines voir centaines de téraoctets. La
performance du stockage de cet entrepôt est cruciale.
4. Analyse : le décisionnel doit permettre de transformer des données en connaissance ce qui
nécessite généralement des outils de statistique, voir de Data Mining, d’économétrie ou de
recherche opérationnelle.
5. Restitution : la chaine du décisionnel se termine par la diffusion de la connaissance à travers
un portail, un outil permettant à des utilisateurs non informaticiens de faire de façon intuitive
en quelques cliques des rapports, des analyses et de les partager.

Mise en place de la plateforme décisionnelle SAS sur l’étude de cas Orion Star 13/204
Présentation du cas ‘Orion Star’
La société : Orion Star
Cette société fictive, présente au niveau mondial, est spécialisée dans la commercialisation d’articles
de sport et d’extérieur.
Le siège social, aux États-Unis, gère des filiales en Belgique (depuis 1999), Pays-Bas, Allemagne,
Royaume Uni, Danemark, France, Italie, Espagne et Australie.
Les produits sont vendus en magasin, par catalogue et par Internet.
Une carte de fidélité: ‘Orion Star Club’, propose beaucoup d’avantages.
Toutes les informations sont disponibles sur la période allant du premier janvier 1998 au 31 décembre
2002. Nous nous considérerons donc virtuellement en date du premier janvier 2003.

Structure de l’organisation :
Le siège social qui se trouve aux Etats Unis héberge la majeure partie des fonctions administratives,
soit un nombre important d’employés, entre 600 et 800. Le siège social centralise aussi la gestion des
stocks, la vente par catalogue, la vente par Internet et l’import – export. Néanmoins, certains
employés gèrent aussi ces fonctions depuis les différentes filiales.

Les employés sont enregistrés dans la base de données selon cinq niveaux :
1. Pays
2. Compagnie
3. Département
4. Section
5. Groupe

Les informations complémentaires sur les employés sont notamment :


• Date d’entrée et de départ de l’employé
• Date de début et de fin de contrat (pour certain contrat)
• Adresse
• Sexe
• Salaire
• Responsable hiérarchique

Anthony Miller
Chief Executive
Officer

Christine Fletcher Harry Highpoint Max Crown Bao Krafve Jay Havasy
Chief Marketing Chief Sales Chief Financial Secretary Director
Officer Officer Officer

Mise en place de la plateforme décisionnelle SAS sur l’étude de cas Orion Star 14/204
L’offre
La société Orion Star propose environ 5500 références de produits. Certaines ne sont pas vendues
dans tous les pays.

Les produits sont organisés selon 4 niveaux:


1. Ligne de produit
2. Catégorie de produit
3. Groupe de produit
4. Produit

Chaque produit a un coût et un prix de vente. Le système informatique gère tous les prix en dollars.
En utilisant les dates de début et de fin, ces prix varient en fonction du temps. Cet historique est
sauvegardé. Le système gère aussi les remises pour certains produits, à certaines périodes. Les prix
sont généralement uniques de par le monde.

Les clients
Les clients d’Orion Star sont repartis à travers le monde, notamment dans les pays où se trouvent des
filiales, mais pas uniquement.
Les noms et adresses sont fictifs, même si les villes, régions/comtés et pays, sont réels.
La base de données enregistre environ 90 000 clients, tous ne sont pas actifs.
L’adresse des clients comprend tout ou partie des informations:
• Rue
• Code postal
• Ville
• Région / département / comté
• Etat
• Pays
• Continent

La gestion des adresses est contrôlée par des pointeurs (identifiant de colonnes), ce qui facilite le
changement d’adresse.
Les clients sont classés dans des groupes en fonction de leur activité d’achat.

Les commandes
La plupart des commandes de cette étude de cas sont pour des clients détenteurs de la carte de
fidélité ‘Orion Gold’, clients pour lesquels les informations sont enregistrées.
Chaque commande pointe vers le commercial qui a enregistré la vente. Environ 980 000 commandes
sont enregistrées dans cette étude de cas, commandes qui reflètent notamment les saisonnalités.
Chaque commande comprend une ou plusieurs lignes, une ligne par produit.

Les fournisseurs
Chaque produit provient d’un fournisseur qui est basé dans un pays, mais toutes les commandes sont
passées par le siège social. Il y a 64 fournisseurs, mais un seul fournisseur par produit.

Les utilisateurs du système décisionnel


Nous allons utiliser différents profils d’utilisateur correspondant à différentes fonctions. Dans certains
projets, au moins une personne occupe chaque poste, mais dans bien des cas, une même personne
pourra cumuler plusieurs responsabilités. Parmi ces fonctions dont il serait impossible de faire une
liste exhaustive tellement chaque entreprise a ses spécificités, notons l’administrateur de la
plateforme, le développeur ETL, le gestionnaire des rapports, les utilisateurs métiers, le statisticien, le
chef de projet.

La société Orion Star vient d’acquérir une plateforme décisionnelle pour l’amélioration de sa
performance. Ce Système devra à terme être utilisé par tous les départements. Il extrait l’information

Mise en place de la plateforme décisionnelle SAS sur l’étude de cas Orion Star 15/204
de l’actuel système transactionnel, du système de gestion opérationnel intégré, mais aussi de sources
externes.

Le département informatique doit donc construire un Data Warehouse et des Data Marts capables de
répondre au besoin de requête, de Reporting, d’analyses avancées et de prévisions.

L’équipe projet se constitue notamment de :

Groupe Numéro Nom Fonction Responsabilité Pays Application


Employé
Administrateur 120804 Ahmed Zied Administrateur Installation, US SMC
configuration,
définition des
droits, des
bibliothèques,
intégration avec les
applications
existantes
ETL 120791 Richard Spécialiste ETL ETL team Leader, US SMC
administrateur Chiselolff architect – design - ETL
DW, manage team
members,
ordonnancement
des tâches
ETL 120798 Elizabeth ETL ETL développer, US ETL
Développeur Ardskin Développer design
implémentation
processus
Développement 120805 Robert Report Création, US EG, SMC,
d'application Walker Administrateur administration et IMS, WRS,
distribution de Portal
rapport, de
procédures
stockées.
Analyste 120727 Donald Assistant création et US EG
Marples marketing distribution
d'analyse avancée
et de rapport
PDG 120259 Anthony Chief Executive Consommateur de US Portal
Miller Officer rapport WRS
Commerciale 120413 Abderhaman Commerciale Consommateur de FR Portal
Ferbu rapport WRS
Chef de projet Marcel Chef de projet Chef du projet US
Dupree Orion

Schéma de la base de données opérationnelle

Les deux schémas ci-dessous sont identiques.

Mise en place de la plateforme décisionnelle SAS sur l’étude de cas Orion Star 16/204
17
18
Modèle de données du Data Warehouse

19
Pré-requis
Installation SAS
Ce cas suppose que la plateforme décisionnelle de SAS est installée.
(Voir documentation d’installation : 9_Doc_Install_EIP_V2)

Dans le cadre d’une installation monoposte, vérifier que les formats Orion sont bien pris en compte
par la plateforme SAS.
Si dans C:\SAS\9.1\Lev1\SASMain\SASEnvironment\SASFormats se trouve un fichier
formats.sas7bcat, les formats du cas Orion sont bien pris en compte.
Si non, copier le fichier formats.sas7bcat se trouvant dans C:\SAS\Orion\Programmes\orformat dans
C:\SAS\9.1\Lev1\SASMain\SASEnvironment\SASFormats ; puis redémarrer le serveur de
métadonnées de SAS.
Remarque : le fichier de configuration [Link] de démarrage de la plateforme se trouvant dans
C:\SAS\9.1\Lev1\SASMain, comprend l’option :
-set library ("SASEnvironment/sasFormats")

Vérifier que les services SAS démarrés :


Clique droit sur le poste de travail puis Gérer.

Dans les services et application dans les services, il faut que les services SAS Lev1 xxxx soient
démarrés.

Gestion des profils


Pour se connecter à une interface cliente Java de la plateforme décisionnelle SAS, il est nécessaire
de créer un profil. Ce profil contient les informations sur l’utilisateur : nom d’utilisateur et mot de passe,
et sur la connexion au serveur : nom du serveur et port de communication.
Il est nécessaire de créer un profil de métadonnée utilisateur pour se connecter aux interfaces comme
notamment la console d’administration, SAS® Data Integration Studio ou Information Maps Studio®.
Lors de la première connexion à une application cliente Java, l’assistant suivant apparaît :

20
Nous allons créer un nouveau profil : sélectionner « Créer un Profil de métadonnée » et cliquer sur
OK.

Suivant.

Lui donner un nom : « Utilisateur SAS sur SASMain ».


Un utilisateur doit souvent se connecter à plusieurs environnements sur plusieurs machines, ne pas
hésiter à donner un nom de profil de métadonnée explicite.

21
Rentrer le nom de la machine à laquelle vous souhaitez vous connecter.
Lorsque le serveur de métadonnée auquel vous vous connecter se trouve sur la même machine que
celle où vous êtes, le nom de machine « localhost » fonctionne. L’adresse IP du serveur fonctionne
aussi.
Le port par défaut du serveur de métadonnée est le port 8561 (par défaut).
Entrer votre identifiant et votre mot de passe.
Cliquer sur suivant.

Sélectionner le référentiel de métadonnée auquel vous souhaitez vous connecter


Puis cliquer sur suivant.

22
Cliquez sur terminer.

Dans le cadre de ce cas, il faut créer deux profils :


1. Un profil pour l’administrateur des métadonnées de SAS : (sasadm). Ce profil sera utilisé
uniquement pour se connecter à la SMC (SAS Management Console). Il ne faut jamais se
connecter avec sasadm dans une autre interface que la SMC.
2. Un profil utilisateur (sasdemo). L’utilisateur sasdemo prendra tour à tour les fonctions
d’ETListe, d’analyste métier, de statisticien, de Data Miner, de CIO et de directeur France.

L’architecture de la plateforme décisionnelle SAS


La plateforme décisionnelle SAS peut être abordée selon trois axes majeurs. L’axe technologique,
l’axe direction métier, l’axe secteur d’activité. Ce paragraphe est propre à la plateforme SAS, mais
peut souvent être extrapolé à d’autre outil décisionnel.

L’axe technologique

4
1
3

Un projet de mise place d’une plateforme d’informatique décisionnelle est comme son nom l’indique
un projet informatique, comportant quatre grandes technologies : intégration – stockage de l’entrepôt
de données – analyse – diffusion de la connaissance.

Présentation de cinq grands éléments de la plateforme SAS, en référence au schéma ci-dessus :


1. Mettre en place une plateforme décisionnelle administrée, nécessite un serveur de
1
métadonnées central, gérer par une console d’administration. C’est le cœur du système, tout
passe par lui, le serveur de métadonnées. Toutes les données, tous les utilisateurs, toutes les
machines, etc. y sont référencés. A chaque connexion d’un utilisateur pour exécuter un
processus, il est demandé au serveur de métadonnées si l’utilisateur à bien les droits

1
Métadonnées : littéralement : données sur la donnée. Il s’agit de l’ensemble des informations qui
permettent de qualifier une donnée, par sa provenance, son format, sa date de mise à jour, les droits
d’administration, de modification, de lecture, etc. qui lui sont attaché, etc. La métadonnée est une
étiquette attachée à la donnée qui doit permettre sa traçabilité depuis son origine, afin notamment
d’en garantir la qualité.
Un serveur de métadonnées (metadata server) gère les données sur les données, les utilisateurs, les
serveurs, les processus, etc. Il permet donc d’administrer une plateforme.

23
nécessaires, où se trouvent les ressources machines disponibles, etc. pour créer les
interconnexions.
2. Intégration : s’intégrer directement aux métadonnées des systèmes opérationnels, par
exemple communiquer avec les métadonnées de l’ERP SAP grâce au module SAS® Data
Surveyors to SAP ; communiquer avec différentes bases de données avec SAS/Access to
Oracle, DB2, Teradata, etc. Le décisionnel commence par l’intégration avec les systèmes
opérationnels.
3. Stockage de l’entrepôt de données : en fonction du volume à stocker, du type, de la fréquence
des interrogations et d’autres paramètres, différents systèmes de base de données peuvent
être utiles pour l’entrepôt de données, comme les bases multidimensionnelles avec SAS
OLAP server, les bases parallélisées avec SAS SPDS, ou autre.
4. Analyse : Parmi l’ensemble des produits proposés par l’éditeur SAS, notons les interfaces
a. SAS Enterprise Guide permettant de manipuler les données, faire des statistiques
avancées et des rapports.
b. SAS Enterprise Miner, l’outil de Data Mining
5. Diffusion de la connaissance : le portail décisionnel est le point d’entrée vers toutes les
interfaces clientes comme par exemple SAS Web Report Studio, l’outil de Reporting de
masse de SAS. Ces applications, essentiellement Web, offrent la possibilité de créer
simplement des rapports et de partager la connaissance.

Cette plateforme a été conçue autour de quelques grands axes majeurs :

L’axe intégration :
Extraire l’information de différents systèmes pour alimenter l’entrepôt de données décisionnel est
nécessaire, mais il est préférable que cette communication inter-systèmes soit bidirectionnelle. Par
exemple, extraire la base de données client, la nettoyer (gestion des doublons, validation croisée, etc.)
faire des analyses pour créer des indicateurs et réinjecter ces informations traitées dans les systèmes
opérationnels. Un système décisionnel n’est pas au dessus des systèmes opérationnels, mais est
complémentaire, il doit donc s’y intégrer.
Afin de s’intégrer aux bases de données du marché et aux métadonnées des principaux ERP, voici
une liste d’exemple non exhaustive d’outils SAS (seuls les plus connus) :
o SAS/ACCESS Interface to SAP BW
o SAS/ACCESS Interface to Teradata
o SAS/ACCESS Interface to DB2
o SAS/ACCESS Interface to MySQL
o SAS/ACCESS Interface to ODBC
o SAS/ACCESS Interface to OLE DB
o SAS/ACCESS Interface to ORACLE
o SAS/ACCESS Interface to PC Files
o SAS/ACCESS Interface to PeopleSoft
o SAS/ACCESS Interface to R/3
o SAS/ACCESS Interface to SYBASE
o Etc.

L’axe interopérabilité :
Une plateforme décisionnelle dit pouvoir interagir avec de nombreuses, architectures et technologies,
comme par exemple :
• Une architecture multi-tiers de Business Intelligence, reposant sur Java permet une portabilité
1
des interfaces utilisateurs sur de nombreux OS
2
• Support étendu des Services Web (.Net ou Java )
• Utilisation de technologies standards (J2EE, XML, .Net, OLE DB for OLAP, …)
• Applications tierces (Java, C++, C#...) clientes de SAS

1
OS : Operating System : exemple de système d’exploitation : MVS, ALP, ALX, HP-UX, IBM-AIX,
Sun-Solaris, Unix, Linux, Red Hat, Windows NT, Windows 2000, Windows XP (liste non exhaustive)
2
« .Net » prononcé « dot net » est une technologie développée par Microsoft, Java est une
technologie développée par Sun.

24
• L’un des défis majeurs du décisionnel, est de faire travailler ensemble des collaborateurs au
profil très différent : consommateur d’information, décideur, analyste, administrateur, etc. Pour
chaque profil, une interface adaptée au besoin a été conçu.
• Les différents composants de la plateforme peuvent être installés sur plusieurs systèmes
d’exploitation : MVS, ALP, ALX, HP-UX, IBM-AIX, Sun-Solaris, Linux, WNT, W2K, WXP
• Le but de la plateforme décisionnelle est de fournir la bonne information au bon format
• Intégration de SAS dans la suite Office (Excel, Word, Power Point)

L’axe ouverture
La plateforme SAS doit aussi pouvoir communiquer avec d’autres produits, d’autres éditeurs de
Business Intelligence. Les très grands groupes ont en moyenne quatre outils décisionnels d’éditeurs
différents. La norme CWM ([Link] ) permet la communication des métadonnées
entre éditeurs. Voici une liste non exhaustive de communication possible à partir de la plateforme SAS
(seuls les principaux)
o SAS® Metadata Bridges for Business Objects
o SAS® Metadata Bridges for CA
o SAS® Metadata Bridges for Cognos
o SAS® Metadata Bridges for Hummingbird
o SAS® Metadata Bridges for Hyperion
o SAS® Metadata Bridges for IBM Rational Rose
o SAS® Metadata Bridges for IBM WebSphere DataStage
o SAS® Metadata Bridges for Informatica
o SAS® Metadata Bridges for Microsoft Excel
o SAS® Metadata Bridges for Microsoft SQL Server
o SAS® Metadata Bridges for MicroStrategy
o SAS® Metadata Bridges for NCR Teradata
o SAS® Metadata Bridges for Oracle
Pour les modèles de Data Mining, la norme est le format PMML ([Link] )

L’axe puissance
Imaginer qu’on vous présente une nouvelle application, une de plus, qui doit vous permettre de
résoudre de multiples problèmes, d’accéder enfin à toute la connaissance dont vous avez besoin,
mais que lorsque vous utilisez effectivement cette application, il vous faut une heure pour faire un
simple rapport parce que la plateforme est trop lente ; vous n’utiliserez pas cette application.
Pour avoir des temps de réponse toujours bons, des machines performantes sont nécessaires, mais il
est important d’exploiter au maximum la puissance machine par une utilisation intensive de la
parallélisation avec des technologies comme :
• Environnement Multi-tier,
• Serveurs Multi-utilisateurs,
• Traitements Multi-thread,
• Base de données Multi-thread,
• Scaling OUT : architectures multi-tiers (Cf MpConnect technology),
• Scaling UP : Fonctions multithreads (Data Mining, calculs d’agrégats, tris, etc.),
• Scaling I/O : Entrées/sorties (bases multidimensionnelles, bases relationnelles).

L’axe administration
Un système d’information décisionnelle doit permettre le partage de l’information, il ne faut donc pas
que ce soit la dictature, personne n’a suffisamment de droit pour accéder à la connaissance dont il
pourrait avoir besoin, soit des droits trop restrictifs ; ni que ce soit l’anarchie due à trop de droit, tout le
monde ne doit pas tout pouvoir regarder ; mais que ce soit la démocratie de la connaissance, c'est-à-
dire que chacun puisse accéder à toutes l’information dont il a besoin et uniquement à cette
information. Il est donc nécessaire d’avoir une administration centralisée rigoureuse pour définir
précisément :
• Les droits de lecture, qui peut regarder quoi
• La gestion de toutes les composantes des solutions décisionnelles en place

25
• Les droits sur les rapports
• Les droits sur les applications
• Etc.
Cette administration doit permettre de préserver la cohérence et homogénéité

Voici quelques fonctionnalités de la console d’administration :


• Meta Integration Technologies
o Monitoring : visionner qui utilise quelle ressource
Processus
Applications
o Procédures
Autorisations
Contrôles d’Accès
Ressources
o Environnement
Métadonnées
Serveurs
Applications
Utilisateurs
o Maintenance de la plateforme
Licence
Installation
Déploiement

Cette gestion centralisée des métadonnées, permet la réplication de celles-ci entre les différents
serveurs SAS, ce qui est particulièrement important dans la gestion de projet. En effet, il est alors
possible de développer dans un environnement de développement puis de répliquer, copier,
l’ensemble de cet environnement dans un environnement de test, puis dans un environnement de
production.

Que ce soit sur une même machine, ou sur des machines différentes, cette organisation du projet
permet aux environnements de développement, de test et de production, d’être distincts. Dans
certains projets, il n’y a que deux environnements, un de développement et un de test, dans d’autre,
plus complexe, il peut y en avoir plusieurs.

L’axe ergonomie
Une plateforme décisionnelle doit permettre de fournir la bonne information à la portée de chaque
utilisateur, ce qui implique notamment une interface pour chaque profil d’utilisateur. Tous les éditeurs
d’informatique décisionnelle proposent maintenant un portail décisionnel pour fédérer la connaissance.

26
Si l’on veut que l’information soit bien reçue, il faut la présenter d’une jolie manière compréhensible.
Dans le cadre de groupes internationaux, présenter à chaque utilisateur l’information dans sa langue
est primordial. Pour le support des langues, en fonction des paramètres régionaux de la machine de
l’utilisateur, les interfaces doivent se présenter dans la langue adéquate.

L’axe Compatibilité
Le passage de la suite de module de la version 8.2 de SAS à la plateforme décisionnelle SAS 9 est un
changement fondamental. Néanmoins tous les produits, programmes, bases de données,
développement sont compatibles.

Résumé :
La plateforme décisionnelle SAS est donc une solution qui offre notamment :
Toutes les fonctions décisionnelles :
• ETL, SGBD, OLAP, REPORTING, DATA MINING, etc.
Sur un socle commun
Reposant sur des métadonnées communes
Gérée par un outil d’administration unique
Autour d’un langage commun

L’axe métier

Le deuxième axe majeur d’une plateforme décisionnelle, est l’axe métier. Un système décisionnel
1
pour une direction marketing, n’utilise pas les mêmes KPI , les mêmes informations, etc. qu’un
système décisionnel pour la direction des ressources humaines. Si les composants technologiques
sont dans l’ensemble assez similaires, l’architecture fonctionnelle est fondamentalement différente.
Par contre on retrouve souvent des problématiques similaires entre deux entreprises.
Par exemple, une solution décisionnelle pour la gestion des ressources humaines doit permettre de
répondre à des challenges comme :
• Anticiper, simuler et prévoir les changements de l’organigramme. Actuellement, la simulation
des départs dus au papi-boum doit aider à la mise en place d’une stratégie globale de
management du changement et de gestion de ces impacts.

1
KPI : Key Performance Indicator, indicateur clé de performance.

27
1
• Analyse des tendances. Regarder le taux de turnover et se focaliser sur un mauvais
indicateur qui n’est que la conséquence de diverses tendances. Analyser ces tendances pour
anticiper cet inévitable renouvellement et mettre en place une stratégie de recouvrement des
compétences, est une problématique importante notamment dans le secteur des nouvelles
technologies.
• Définir et communiquer une stratégie équilibrée de gestion des ressources humaines afin
d’établir une relation de confiance durable entre collaborateurs, mais aussi vis-à-vis des
actionnaires et des partenaires sociaux.
• Définir et décliner la stratégie globale en objectifs individuels et vérifier la concordance des
objectifs locaux et globaux.
Une solution décisionnelle pour les ressources humaines doit apporter la connaissance permettant
d’identifier, de qualifier, de définir et de communiquer les indicateurs stratégiques d’analyse et de
gestion de la performance afin d’aligner et de concorder les objectifs globaux à ceux individuels.
Concrètement, ceci implique un entrepôt de données construit pour offrir des analyses, des
simulations et des prévisions optimisées, et pour partager cette connaissance induite.

Vous trouverez plus d’information sur les solutions SAS par métier sur les pages :
[Link]

Exemple de solution métier :


• Activity-Based Management
• Compliance
• Customer Relationship Mgmt.
• Financial Intelligence/BPM
• Human Capital Mgmt.
• Information Technology Mgmt.
• Performance Management
• Risk Management
• Service Intelligence
• Supplier Intelligence
• Supply Chain Intelligence
• Web Analytics
• OnDemand Solutions

L’axe secteur d’activité

1
Turnover : taux de la masse salariale renouvelée sur une période de temps.

28
La gestion de la relation client n’est pas la même dans différents secteurs d’activité, certains secteurs
ont des besoins très particuliers. Une solution décisionnelle doit aussi s’adapter à chaque secteur
d’activité. Par exemple, les outils SAS sont utilisés depuis de nombreuses années par les laboratoires
pharmaceutiques dans le processus d’élaboration du dossier de demande d’autorisation de mise sur
le marché d’un nouveau médicament. L’analyse des essais cliniques doit résulter d’information dont la
traçabilité est garantie, de la source à l’agrégat. Par exemple, sur un dossier stipulant qu’un
médicament n’engendre pas d’effet secondaire dans 98% des cas, il doit être possible à tout moment
de revenir sur l’origine de cette information, donc de pouvoir revenir aux dossiers des patients
volontaires ayant eu des complications pour complément d’information. La technologie de traçabilité
utilisée pour cette problématique a été adaptée aux systèmes d’aide à la mise en conformité
demandée par la loi de Sarbanes-Oxley.
En effet, suite aux affaires comme Enron, ayant eu des répercutions importantes dans le monde de la
bourse, la loi de Sarbanes-Oxley demande aux dirigeants des sociétés côtées sur le marché Nasdaq,
de certifier sur l’honneur la rigueur de leur compte. L’informatique décisionnelle apporte des solutions
à forte valeur ajoutée dans ce domaine, notamment grâce à des outils de consolidation financière
utilisant des technologies de traçabilité de l’information performant. Donc, pour répondre à ces
solutions, la technologie de traçabilité, éprouvé dans le monde pharmaceutique, a été adaptée à des
solutions de consolidation financière. Si la technologie est la même, les données, les indicateurs, les
processus, les architectures, les méthodologies, etc. sont complètement différentes dans ces deux
univers (laboratoire pharmaceutique – consolidation financière)

Ce qu’il faut retenir, si toutes les solutions décisionnelles ont des socles technologiques communs,
elles doivent être adaptées à chaque secteur d’activité qui possède ses données, ses indicateurs, ses
processus, ses architectures, ses méthodologies propres.

Vous trouverez plus d’information sur les solutions SAS par secteur d’activité sur les pages :
[Link]

Exemples :
• Automotive
• Banking
• Energy & Utilities
• Financial Services
• Government & Education
• Health Insurance
• Healthcare Providers
• Hospitality & Entertainment
• Insurance
• Life Sciences
• Manufacturing
• Media
• Retail
• Telecommunications

29
Secteurs
d’activité

Système
Métiers
d’information
En conclusion, une plateforme décisionnelle comprend un axe technologique, un axe métier et un axe
secteur d’activité. De plus, un système décisionnel étant notamment un outil de communication de la
stratégie, et la stratégie étant dépendante des valeurs de chaque société, chaque système
décisionnel devient unique.
Mettre en place une plateforme décisionnelle globale et intégrée, pour l’analyse et la gestion de la
performance de l’entreprise, nécessite un socle technologique solide adapté aux différents métiers et
secteurs d’activité et une méthodologie se basant sur les meilleurs pratiques éprouvées.

30
Architecture technique de la plateforme décisionnelle SAS

Client
Tier Client Java Client .Net Client Web

HTTP Server SDK

Middle webDAV Java Servlet


Server Container
Tier
Web Infrastructure Kit

SAS®9 Metadata Connect


Foundation Server server
Server
Tier
Workspace Stored OLAP
Server process Server

La plateforme décisionnelle de l’éditeur SAS se décompose en trois tiers principaux :


• Le tiers client : partie sur le poste de l’utilisateur, tiers qui peux être de deux types :
1. client lourd : il faut installer quelque chose sur le poste de l’utilisateur. Tous les clients de
la plateforme décisionnelle sont développés en Java, à deux exceptions près : SAS
Enterprise Guide et SAS Add-in to Microsoft Office. Ces deux composants sont
développés avec la technologie .NET (Microsoft). Hormis ces deux produits, les clients
lourds de SAS comme la SAS Management Console, SAS Data Integration Studio (ETL),
SAS Information Maps ou SAS Enterprise Miner 5.2, nécessitent un Java Runtime
Environment (JRE) ; c'est-à-dire qu’il faut installer un JRE spécifique au système
d’exploitation, avant d’installer le client. En d’autres termes, si l’on est sur une machine
Windows, il faut installer le JRE de Windows, et les clients que l’on souhaite, pour une
machine Linux, il faut le JRE Linux associé et l’on peut installer nos mêmes clients Java.
L’intérêt de ce type de technologie est que l’on ne développe qu’une seul fois chaque
interface cliente, puis pour les installer dans différents environnements, il suffit d’installer
préalablement le bon JRE. Tous ces clients Java sont extensibles, c'est-à-dire que l’on
peut y ajouter des fonctionnalités spécifiques, développer des « Plug-in » particuliers et
les déployer sur tous les clients.
2. Client léger : il ne faut rien installer sur le poste client. Le navigateur Web Microsoft
Internet Explorer 6 étant supposé être installé, le déploiement de ce type de client est très
facile, il n’y a rien à faire, il suffit à l’utilisateur de se connecter à une adresse Web et il a
accès à toutes les applications clientes légères.

31
• Le middle tiers : le tiers intermédiaire est uniquement nécessaire pour les clients légers
(interface nécessitant seulement Microsoft Internet Exploreur sur le poste utilisateur). Cette
partie comprend toujours les composants :
1. un serveur Web http. Le serveur Web de la plateforme décisionnelle SAS est Xythos. Un
serveur Web Apache ne permet pas d’avoir toutes les fonctionnalités du serveur Xythos,
mais est suffisant dans un cadre académique. (fonctionnalité d’administration du serveur
WebDAV, voir ci-dessous)
2. Un SDK (Software Development Kit ou Servlet Development Kit), en l’occurrence le JDK
(Java Development Kit) de Sun. Un SDK est un ensemble d'outils permettant aux
développeurs de créer des applications Web. Il est donc possible de développer des
applications spécifiques pour tous les clients Web léger de la plateforme SAS.
3. Un conteneur de servlet Java. Presque toutes les applications légères de la plateforme
SAS sont des servlets. Parmi les différentes technologies Java (par exemple : client lourd
Java ou Applet Java dans une page Web) les servlets sont des applications que l’on
installe uniquement dans un serveur conteneur de servlets Java. Ce conteneur de servlets
doit être associé à un JDK et à un serveur Web, on peut aussi interfacer les servlets à
l’aide d’API à des bases de données relationnelles ; ou à des structures hiérarchiques de
type répertoire comme par exemple les annuaires LDAP. Le kit de développement
AppdevStudio est livré avec les API Java pour piloter de manière complète une plate-
forme SAS dans le cadre de servlet (et d’applet). Le conteneur de servlets génère des
pages html à la demande, en exécutant la servlet. Sur le marché actuel, on peut citer
Tomcat, développé par l’Apache Group (gratuit) ; WebSphere, développé par IBM et
WebLogic, développé par BEA. Tomcat est suffisant pour les servlets SAS Web Report
Studio et le Portail, mais ne possède pas tous les pré-requis pour les applications Web
des Solutions SAS Customer Relationship Management, SAS Financial Management ,
SAS Human Capital Management, etc. Pour ces solutions, WebSphere ou WebLogic sont
requis.
4. Un serveur WebDAV (Web-based Distributed Authoring and Versioning) est un protocole
permettant de récupérer, déposer, synchroniser et publier des fichiers (et dossiers)
rapidement et facilement. L'objectif principal de WebDAV est de rendre possible l'écriture
à travers le web et pas seulement la lecture de données. Dans notre cas de plateforme de
Business Intelligence, ce serveur permet à des utilisateurs de créer des rapports et de les
enregistrer dans des répertoires WebDAV. L’administrateur pourra gérer les droits d'accès
à ces fichiers.
5. Le WIK (Web Infrastructure Kit) : ensemble des classes Java nécessaires pour connecter
la partie intermédiaire avec la partie serveur.

• Le tiers serveur : la partie serveur est l’endroit où est stocké l’entrepôt de données
décisionnelles et où s’exécutent les programmes. Ces programmes sont de plusieurs types :
processus ETL (Extraction – Transformation – Chargement), programme d’analyse statistique,
d’analyse Data Mining, de recherche opérationnelle, de réponse à des requêtes, de
génération de rapport, etc.
o Le serveur de métadonnée est le cœur du système, il permet la gestion de toute la
plateforme décisionnelle car tout passe par lui.
o Le serveur d’espace de travail logique regroupe l’ensemble des serveurs physiques
d’espace de travail. Ce serveur logique réparti via un « Object Spawner », les
programmes à exécuter, entre les différents serveurs physiques.
o Le serveur de procédure stockée gère et exécute les procédures stockées. Par
exemple, un statisticien crée un programme d’analyse et l’enregistre en procédure
stockée. Cette procédure peut être alors exécutée à distance par différents
utilisateurs.
o Le serveur OLAP renvoie la réponse aux requêtes sur les bases de données
multidimensionnelles qu’il gère.
o SAS Foundation : SAS Foundation est l’ensemble des modules SAS, dont
SAS/BASE. Dans une architecture où le serveur est sur une machine Windows,
SAS/BASE et les modules de SAS Foundation se trouve installés par défaut dans le
répertoire C:\Program Files\SAS\SAS 9.1. Les programmes exécutés par les serveurs
d’espace de travail et de procédure stockée sont en fait des programmes SAS,
exécutés sur dans une session SAS/BASE.

32
Scalability : Capacité à monter en puissance.

Explication du processus : prenons l’exemple d’un utilisateur de SAS Web Report Studio, ce client se
connecte au serveur intermédiaire en entrant l’adresse Web de SAS Web Report Studio, qui lui
demande de s’identifier. Pour établir une connexion, le serveur intermédiaire demande au serveur de
métadonnée, le cerveau de la plateforme, si l’utilisateur est connu dans les métadonnées de SAS et si
c’est bien le bon mot de passe.
Une fois connecté, donc reconnu, si notre utilisateur souhaite créer un rapport nécessitant l’utilisation
d’informations gérés par différentes bases de données, et nécessitant plusieurs procédures, lors de la
conception de ce rapport, seul les métadonnées gérées par le serveur de métadonnées sont
manipulées, puis lorsque l’utilisateur demande la génération, un programme SAS (un Job SAS) est
créé de tel sort qu’il exploite au maximum la puissance machine disponible.
Le serveur de métadonnées stockant l’information sur les bases de données, les utilisateurs, les
machines, les droits associés aux différentes entités, possède toute l’information permettant de créer
un programme parallélisé en accès aux bases de données et réparti sur plusieurs machines, le scaling
out, répartition parallélisée elle-même sur les processeurs de ces machines, scalling up.
Les procédures sont donc parallélisables par processeur ou CPU (Central Processing Unit, « Unité
centrale de traitement »)

Un système décisionnel doit pouvoir monter en charge au fur et à mesure de sa vie. Il est donc
primordial d’exploiter au maximum la puissance machine. De plus, l’administration centralisée permet
si besoin est, d’ajouter simplement une machine de traitement et une fois référencée dans les
métadonnées, cette machine sera utilisée par les algorithmes de répartition de charge.

Les utilisateurs et groupe de base :


Les différents utilisateurs par défaut
SAS Administrator (sasadm) :
• Unrestricted User déclaré dans le fichier [Link]
• Sert uniquement à administrer les métadonnées
• Ne doit pas être utilisé depuis un client SAS autre que la SAS Management Console
SAS Trusted User (sastrust) :
• Utilisateur de confiance défini dans le fichier [Link]
• Utilisé par les services pour se connecter au serveur de métadonnées
• Utilisé par les applications Mid-Tiers pour se connecter au serveur de métadonnées
pour le compte de clients déjà authentifiés
SAS Guest User (sasguest) :
• Utilisateur public, utilisé notamment depuis le portail
SAS Demo User (sasdemo) :
• Utilisateur public, utilisé pour tester les différentes connexions
SAS Web Administrator (saswbadm) :
• Administrateur des applications Web.
• Dispose notamment des droits d’administration dans le Portail
SAS server (sassrv) :
• Dispose de droits très particuliers. Il fait notamment parti des administrateurs de la
machine.
• Défini lors de l’installation, il lance les serveurs.
• On ne se connecte jamais sous ce nom.

Les différents groupes par défaut


PUBLIC :
• Tous les utilisateurs identifiés possèdent le profil Public
SASUSER :
• Tous les utilisateurs disposant d’un profil dans les Metadonnées possèdent le profil
SASUSER

33
SAS General Server :
• Dispose du login utilisé pour lancer les sessions Stored Process Server (sassrv)
• Le compte SAS Trusted User appartient à ce groupe
SAS System Services :
• Pas de login
• Les comptes SAS Trusted User et SAS Web Administrator appartiennent à ce groupe
• Groupe utilisé pour installer et démarrer les sessions SAS pour le compte
d’applications et d’utilisateurs finaux (applications Web)

34
Bibliothèque

Vérifier que les bibliothèques « Orion Data Store » et « Orion Data Warehouse » ont bien été créées.
Pour cela, ouvrir la SAS Management Console (Démarrer Programmes SAS SAS
Management Console) avec l’utilisateur administrateur (généralement sasadm).
Si ces bibliothèques n’ont pas été créées, les créer :

Création d’une bibliothèque :


Bibliothèque SAS Base

35
Dans la SAS Management Console (SMC) Dans le Gestionnaire de Bibliothèque (en anglais Library)
Bibliothèque SAS. Cliquer droit de la souris, nouvelle bibliothèque.

Parmi les bibliothèques SAS, sélectionner celle de type SAS Base. Cliquer sur suivant.

Remarque sur les différents types de bibliothèque SAS :


• Bibliothèque de compatibilité SAS V6, permet d’utiliser des tables SAS d’extension .sd2
• Bibliothèque de moteur de données à performance évolutive. SPDE est un module intégré
maintenant au socle de base de SAS, Scalable performance Data Engine. Les bibliothèques
SPDE permettent l’enregistrement des table est des index associés sur de multiples partitions,
afin de paralléliser correctement les différentes tâches.
o Partitionnement hash et valeur : données, index
o Index décisionnels : B-tree et Bitmaps
o Parallèlisation implicite : lecture et écriture
o Archivage automatique des historiques
o Backup/restore incrémental

36
o Administration centralisée
• Bibliothèque de moteur SAS Scalable performance Data Server V4. SPDS v4 est un module
complémentaire de SAS/BASE. Les bibliothèques SPDE permettent l’enregistrement des
tables et des index associés sur de multiples partitions, afin de paralléliser au maximum les
différentes tâches. SPDS devient nécessaire pour les très grosses volumétries.

Donner un nom explicite à la bibliothèque SAS.


Cliquer sur suivant.

Donner un libref à la bibliothèque. Un libref ici est un nom sans espace, sans caractère spéciaux, de 8
caractères maximum.
Cliquer sur nouveau pour créer un chemin d’accès,

Entrer le chemin du répertoire auquel vous souhaiter affecter la librairie.

37
Lorsque le libref et le chemin sont définis, cliquer sur suivant.

Sélectionner le serveur d’affectation SASMain, il faut qu’il soit sélectionné (Bleu).


Cliquer sur suivant.

38
Vérifier les informations, cliquer sur terminer.

Si vous sélectionnez la bibliothèque, vous ne verrez aucune métadonnée des tables qui se trouvent
éventuellement dans le répertoire défini.
Créer une bibliothèque, c’est uniquement définir au niveau des métadonnées de SAS ces informations.
Pour importer les métadonnées des tables, vous pouvez le faire dans SAS® Data Integration Studio,
ou directement dans la console d’administration :

Clique droit, « importer les tables » ou plus exactement, importer les métadonnées des tables.

Exemple pour la bibliothèque « Orion Data Store »

39
Si vous êtes connecté dans la SMC avec l’administrateur sasadm, utilisateur non restreint dans la
gestion des métadonnées de SAS, vous devez ressaisir votre mot de passe car étant super-utilisateur,
votre mot de passe ne peu être sauvegarder même momentanément.

Cliquer sur suivant,

40
Cliquer sur « Sélectionner tout ».
Cliquer sur suivant.

Cliquer sur terminer.

41
Vous avez importé les métadonnées des tables, que vous pouvez voir en faisant un clic droit sur la
table, puis propriété.

Création d’une bibliothèque Oracle

Nous allons affecter l’utilisateur « Scott » (mot de passe : « tiger ») pour se connecter à la base
Oracle, à tous les utilisateurs SAS. Tous les utilisateurs reconnus par le système d’authentification de
SAS se basant sur le serveur de métadonnées, après vérification, auprès de l’OS par défaut, mais se
peut aussi être un annuaire LDAP par exemple ; font parti du groupe SASUSER.

Remarque : pour créer une bibliothèque Oracle, il faut que le Module SAS/Access to Oracle soit
installé et sous licence.

Clic droit sur SASUSER propriété.

42
Dans l’onglet comptes (en haut)
Nouveau (en bas)

43
Entrer le nom (scott) et deux fois le mot de passe (tiger)
Cliquer sur nouveau pour créer un nouveau domaine d’authentification.

Donner un nom
Cliquer sur OK

Cliquer sur OK

Pour le groupe SASUSER (tous les utilisateurs authentifiés dans les métadonnées de SAS) s’ils
doivent se connecter au domaine par défaut, se sera avec leur mot de passe, s’ils doivent se
connecter au domaine Oracle, ils utiliseront de façon transparente l’utilisateur Scott et son mot de
passe Tiger.
On peut ainsi définir différent domaine pour attaquer différentes bases de données, et les utilisateurs
n’auront pas à entrer de mot de passe, ce sera fait pour eux de manière transparente.
Généralement pour lire des données dans une base de données, on créer un utilisateur spécifique.
Par exemple, l’administrateur de la base Oracle créer sur sa base un utilisateur « donneeDecision »
qui a seulement le droit de lire quelques données. L’administrateur des métadonnées de SAS peut
alors définir cet utilisateur intermédiaire qui sera utilisé de façon transparente.

Pour créer maintenant la bibliothèque Oracle à proprement parler,

Clic droit sur Bibliothèque SAS Nouvelle bibliothèque

44
Sélectionner « Bibliothèque Oracle »
Suivant

Donner un nom à la bibliothèque


Suivant

45
Donner un Libref
Suivant

S’il n’y a pas de serveur Oracle de défini, cliquer sur Nouveau serveur de base de données

Donner un nom au serveur de base de données

46
Sélectionner la machine associée. Si elle n’est pas encore défini, cliquer sur nouveau

Cliquer sur OK,

Cliquer sur suivant

47
Entrer le chemin d’accès, nom de la base de données et domaine (ici : [Link])

Sélectionner le Domaine d’authentification : « Oracle » créé précédemment.


Cliquer sur suivant,

48
Cliquer sur terminer

Nous avons créé un serveur de base de données, il faut maintenant créer un schéma. Cliquer sur
Nouveau pour schéma de base de données.

Donner un nom
Suivant

49
Le schéma de la base de données est scott, (Scott est par défaut équivalent au Data Base
Management System (DBMS) d’une base Oracle)

Terminer

Nous avons un serveur et un schéma.


Cliquer sur suivant.

50
Sélectionner SASMain (bleu) et cliquer sur suivant.

Terminer.

Création d’une bibliothèque Microsoft Access via l’ODBC.


Définition de la source ODBC dans le système d’exploitation :
Dans Démarrer paramètres panneau de configuration outil d’administration Sources de
données (ODBC)

51
Dans l’onglet « sources de données utilisateur »
Ajouter les bases de données se trouvant dans C:\SAS\Orion\Prod_csv\Prod_mdb :
• customer_type.mdb
• GEO_TYPE.mdb

Cliquer sur « ajouter »

Sélectionner « driver do Microsoft Access (*.mdb)”


Cliquer sur terminer

52
Lui donner un nom
Cliquer sur sélectionner

Dans la partie droite, sélectionner le répertoire C:\SAS\Orion\Prod_csv\Prod_mdb, puis dans la partie


gauche, customer_type.mdb, enfin, cliquer sur OK.

53
Cliquer sur OK.

La source de données ODBC customer_type a été créée.


Cliquer sur OK.

Définition d’une bibliothèque ODBC

54
Dans la SMC, cliquer droit sur le gestionnaire des bibliothèques nouvelle bibliothèque.

Sélectionner une bibliothèque de type ODBC


Suivant.

Donner un nom explicite à la bibliothèque.


Suivant.

55
Donner un libref.
Suivant.

Pour définir un serveur de base de données ODBC, cliquer sur Nouveau.

56
Donner un nom
Suivant

Définir le type de source de donnée :ODBC – Microsoft Access


Définir la machine associée
Suivant

Sélectionner « source de données »


Entrer le nom de la source ODBC : customer_type
Suivant

57
Terminer

Suivant

58
Sélectionner SASMain (bleu)
Suivant

Terminer.

59
ETL
L’objectif de ce chapitre est de présenter la préparation et la planification d’un projet de Data
Warehouse, et la création de flux ETL : extraction, transformation et chargement. Un processus ETL
se décompose en cinq phases :
1. Définition des métadonnées source : description des bases de données opérationnelles.
2. Définition des métadonnées cible : description des futures bases du Data Warehouse.
3. Validation de la qualité des données
4. Création du processus qui permet de charger la cible en utilisant les données sources.
5. Ordonnancement

La génération d’un processus ETL est au premier abord un simple problème technique. Mais c’est
souvent après quelques années que l’on s’aperçoit de l’importante nécessité d’une méthodologie
rigoureuse. Nous allons donc aborder ce chapitre en suivant une méthodologie qui peut paraître
lourde, mais qui est nécessaire pour faire évoluer le système décisionnel tout au long de sa, si
possible, très longue vie.

Ce chapitre s’adresse tout principalement aux:

Utilisateurs de SAS Data Integration Studio, appelé dans le jargon « ETL’istes ». Personne ayant pour
mission de générer les processus d’extraction, transformation et chargement des entrepôts de
données. Des connaissances approfondies en informatique et plus particulièrement en base de
données et en programmation BASE/SAS sont pré-requises. En effet, comme nous allons le voir dans
ce chapitre, SAS Data Integration Studio génère du code SAS/BASE, comprenant du code
SAS/MACRO et des procédures SQL. Même si les fonctions de transformations implémentées dans
SAS Data Integration Studio couvrent une large gamme, il est très souvent nécessaire de coder
certaines transformations. Pour les étudiants se destinant à cette fonction, la certification « SAS
Certified Base Programmer » est un plus conséquent.
L’une des forces de la plateforme SAS, est que l’on peut toujours revenir à la base, au code SAS.

Problème métier :
Dans un monde où la concurrence est de plus en plus forte, des décisions doivent être prises sur des
informations claires, extraites de données nettoyées et intégrées. Depuis les cadres supérieurs
jusqu’aux ouvriers, l’information est nécessaire pour prendre des décisions tactiques et stratégiques. Il
est prouvé que des milliards se perdent chaque année à cause de données de mauvaise qualité,
erronées, etc. Derrière la mauvaise affectation des ressources, ce sont des clients insatisfaits, une
érosion de la crédibilité et l’incapacité à prendre la bonne décision au bon moment.
La construction du Data Warehouse est le socle du processus décisionnel. L’expression « garbage in,
garbage out » est ici particulièrement vraie ; si vous construisez votre Data Warehouse avec des
données de mauvaise qualité, vous aurez des rapports, des analyses, des simulations, des prévisions,
des optimisations fausses. L’objectif du décisionnel est d’apporter à tous les utilisateurs, une
information de qualité ; il est donc nécessaire de d’évaluer, d’analyser et de corriger si besoin,
l’information, dès le départ, dans le processus ETL.
La société SAS a racheté la société Data Flux et a intégré ces fonctions de gestion de la qualité des
données.

60
Voici une copie l’interface principale DFPower Studio. L’intégration avec SAS Data Integration Studio
se fait via la base de connaissance (KB ou Knowledge Base).
Les deux fonctions majeures dans le processus de qualité des données sont d’abord l’analyse puis la
standardisation.

Exemple d’entreprise 1 : suite à l’analyse des différents paternes des numéros de téléphone :
+33 1 60 62 12 19
(+33) 1 60 62 12 19
+33 (0)1 60 62 12 19
01 60 62 12 19
00 33 (0)1 60 62 12 19
00 33 1 60 62 12 19
0160621219
[Link].19

On génère alors un processus de standardisation qui en récoltant les neufs derniers entiers, les
placent dans la forme normalisée.

Exemple d’entreprise 2 : Référentiel pour le Data Warehouse d’une société française. Grâce à l’aide
précieuse d’un expert, un dictionnaire a été créé, comprenant les différents noms de même produit,

61
avec les dates de début, voir de fin, et les domaines d’utilisation des noms. En effet, il y avait de quoi
se perdre et fournir des rapports hétérogènes entre le nom utilisé par l’acheteur qui utilise la
dénomination du fournisseur, les différents noms définis par le marketing pour tenter de booster les
ventes, et les changements de versions au département R&D et à la production.

Exemple d’entreprise 3 : c’est l’un des exemples les plus courants : le dé-doublonnage d’adresse. Il
faut détecter le nom, le prénom, les adresses, le code postal et la ville.
Les noms est prénoms peuvent être inversés ou manquants.
Dans l’adresse, on par exemple souvent le cas de la rue, du boulevard, de la Strasse, de Street, etc.
écrient en entier ou abrégé (Bd, boulevard, Boulevard, etc…) avec le numéro avant ou après, avec
une virgule ou pas.

Les deux adresses suivantes sont identiques :


“Eric Martin
33 Av Victor Hugo
75000 Paris”

“MARTIN Eric
33, avenue Victor Hugo
75O16 PARIS”

Présentation de l’outil SAS® Data Integration Studio


SAS® Data Integration Studio est une interface cliente Java de la plateforme décisionnelle SAS. Elle
fait partie des packages « SAS Data Integration Server » et « SAS Enterprise Data Integration
Server ».
SAS Data Integration Server comprend notamment SAS/Base, SAS/CONNECT, SAS Data Integration
Studio et LSF.

SAS Enterprise Data Integration Server comprend notamment SAS/Base, SAS/CONNECT,


SAS/SHARE, 2 SAS/Access au choix, SAS Data Integration Studio, SAS Data Quality Server et LSF.

LSF est un Ordonnanceur permettant, comme son nom l’indique, d’ordonnancer des flux de processus.
SAS Data Integration Studio permet de créer des flux de processus, qui une fois créer, vont être
déployés pour l’ordonnancement.

62
Copie d’écran du “Flow Manager” de LSF

Copie d’écran du « Calendar Editor » de LSF

A propos de SAS® Data Integration Studio, notons que l’outil :


• Support des développements concurrents de développeur ETL, gestion des versions via le
« Check-Out/Check-In ». Dans un projet ETL, l’administrateur de la plateforme décisionnelle
crée un référentiel de métadonnée dit « référentiel projet » pour chaque développeur ETL.
Ceux-ci peuvent alors être extraits (Check-out) du référentiel principal, dans leur référentiel
dédié, les métadonnées de leurs processus. Les autres utilisateurs ne peuvent pas modifier
ces éléments. Une fois les modifications faites, l’utilisateur réintègre (Check-in) ces
métadonnées dans le référentiel principal, avec la version N+1. Le Check-Out/Check-In

63
permet donc à plusieurs développeurs ETL de travailler sans conflit sur un même projet et la
gestion des versions.
• Permet un développement administré et donc sécurisé, ce qui est nécessaire pour la gestion
du changement.
• Permet d’accéder à l’ensemble des systèmes de gestion de bases de données du marché, via
les différents SAS/ACCESS to ... (SAS/ACCESS to Oracle, SAS/ACCESS to DB2,
SAS/ACCESS to Terradata, etc.)
• Permet l’intégration avec plusieurs ERP du marché comme par exemple SAP. Le terme
intégration prend ici toute sa valeur, on n’extrait pas seulement de la donnée, on accède à la
métadonnée de l’application de l’entreprise, ce qui permet une véritable communication
bidirectionnelle. Mais surtout, le fait d’accéder à la structure globale de l’application
opérationnelle, permet dans le cas de solution métier, un raccourcissement considérable du
temps de mise ne place du projet. Cela fonctionne particulièrement bien avec SAP qui à la
réputation d’être très bien structuré (et structurant). Un « SAS/Adapter to . » permet
l’intégration avec les différents grands progiciels du marché.
• Support les modèles de donnée du standard CWM. Common Warehouse Model, selon le site
web [Link], CWM est une norme pour les outils décisionnels permettant de transférer
des fichiers de métadonnées entre différentes applications décisionnelles de différents
éditeurs de logiciel. Par exemple, intégrer une l’application de reporting Business Object® à
la plateforme SAS®.
• Il est possible d’ajouter des plug-in java pour compléter l’ensemble des fonctionnalités, de
créer rapidement ses propres outils ETL.
• Permet la construction de Cube (vous devez avoir une licence pour le package « SAS®
Intelligence Storage » ou SAS OLAP Serveur)

La planification du Data Warehouse est une phase cruciale qui nécessite donc une certaine rigueur.
Pour le bon déroulement de celle-ci, nous allons l’aborder suivant une méthodologie par étape :
1. Définition des besoins :
a. Création de la liste des questions métiers auxquelles devra répondre le projet
décisionnel.
b. Définition de l’ensemble des dimensions qui devront être prise en compte afin de
répondre aux questions précédemment listées.
c. Définition de qui utilisera ces informations et quand elles seront utilisées : fréquence
des requêtes et des mises à jour.

64
2. Faire l’inventaire des données nécessaires à la construction du Data Warehouse.
a. Lister l’ensemble des systèmes et des bases de données, auxquelles il sera
nécessaire de se connecter pour l’étape d’extraction. Récupérer le format de
stockage, le format des tables et des colonnes des bases amont.
b. Localiser l’ensemble des informations qui seront nécessaires à la population du Data
Warehouse.
3. Création des modèles de données du Data Warehouse
a. Combinaison de l’ensemble des données opérationnelles dans des schémas
optimaux suivant le compromis temps de chargement, temps de réponse et espace
de stockage, pour l’ensemble des requêtes qui interrogeront le Data Warehouse.
4. Prendre en compte la possibilité d’étendre le Data Warehouse à d’autres problématiques.
a. Estimation du besoin de hardware et de software pour l’achat de ces derniers.
b. Prendre notamment en compte le stockage, les serveurs de traitement et de
sauvegardes (Comme un système opérationnel dont le fonctionnement est vital pour
l’organisation, un système décisionnel doit généralement avoir un système de
secours)
5. Planification des flux de mise à jour.
a. Définition de la fréquence de mise à jour des données.
b. Planification des flux de processus d’extraction, de transformation de nettoyage et de
validation de l’information
6. Définition des processus de nettoyage et de validation de l’information
a. Définition des processus d’extraction et de transformation qui chargeront le Data
Warehouse
b. Définition des processus qui génèreront de manière automatique des rapports.
c. Définition des règles d’administrations
d. Définition de qui pourra voir quelles informations
e. Définition des droits des développeurs
7. Installation et test de la plateforme décisionnelle. Il faut noter que jusqu’à ce point, rien n’a été
fait sur machine ; seul la documentation technique a été écrite.
8. Développement et test des systèmes de sauvegarde et des copies de secours. C’est un
phénomène nouveau, jusqu’alors, les systèmes décisionnels n’étaient pas encore considérés
comme vitaux. Dorénavant, de plus en plus en plus de systèmes décisionnels bénéficient d’un
système de secours. Il faut donc tester la récupération du système dès le départ ; avant de le
mettre en place.
9. Création des processus ETL défini précédemment.
10. Exécution d’une première passe pour chaque processus pour vérifier les temps de réponse, la
qualité des données, etc.
11. Ordonnancement des processus

Mise en œuvre :

Mise en place du Data Warehouse Orion

La première étape pour lancer un projet décisionnel est de faire l’inventaire des questions qui se
trouvent sans réponse à travers l’ensemble de l’entreprise. En effet, il est fréquent qu’un projet
décisionnel avec un périmètre très restreint, par exemple, uniquement pour la force de ventes,
fonctionne bien dans un premier temps. Mais ses extensions n’ayant pas été prévues au départ,
plusieurs choix techniques bons pour un petit projet, s’avèrent être aujourd’hui des handicapes
majeurs à l’évolution du système.
En moyenne, le volume des données double tous les deux ans. On parle donc souvent de ‘scalibility’,
soit la capacité de monter en puissance d’une plateforme décisionnelle.
Une bonne phrase pour synthétiser la méthodologie d’un projet décisionnel est : « voir grand, mais
commencer petit ».

Dans le cadre de notre projet Orion, voici les principales questions


• Quelle est la tendance des ventes pour l’année à venir

65
• Quels sont les 20 commerciaux qui ont fait le plus de vente en 2002 ?
• Quels sont les commerciaux qui performent le mieux par pays, sexe, âge, salaire ?
• Quels sont les 10 produits qui génèrent le plus de marge ?
• Quels sont les produits les moins vendus ?
• Quels sont les produits qui contribuent à moins de 0.05% du CA pour un Pays/une année
donné(e)? - Est-ce que ces produits peuvent être remisés?
• Quelle est la marge générée par ce produit, ce groupe de produit, catégorie de produit et ligne
de produit ?
• Est-ce que la marge dépend de la quantité vendue ?
• Est-ce que les remises font augmenter les ventes ?
• Est-ce que les remises font augmenter la marge ?
• Y a-t-il une relation entre le temps, l’espace et la vente de produit ?

Souvent, lorsque l’on arrive avec son cahier pour faire l’inventaire des questions, si dans un premier
temps les collaborateurs se demandent ce qu’est ce nouveau projet informatique qui vient les
déranger, on peut très rapidement récolter une multitude de griefs sur les systèmes actuellement mis
en place.
Parmi l’ensemble des questions récoltées, une première sélection devra spécifier quelles sont celles
dont le ressort est bien de l’informatique décisionnelle. Dans notre cas, certains commerciaux
souhaitaient savoir si leurs clients avaient été livrés de leurs dernières commandes. C’est une
problématique opérationnelle.
Remarque : Nous avons ci-dessus une liste de questions non structurées, mal posées, pas claires. Il
serait un comble de les considérer comme un cahier des charges. C’est juste une petite liste de
question, ce n’est pas un cahier des charges.

La deuxième étape de notre projet décisionnel est d’identifier les sources d’informations, internes et
externes à l’entreprise permettant de construire le Data Warehouse qui répondra aux questions
précédemment soulevées.

66
Implémentations ETL sur le cas Orion Star

La maîtrise d’ouvrage a élaboré le cahier des charges du projet décisionnel de la société Orion. La
maîtrise d’œuvre l’a analysé et a défini le cahier de spécification, qui lui même a été validé par la
maîtrise d’ouvrage.
Maintenant que la conception du Data Warehouse a été réalisée, il faut créer les six processus
1
d’EVLT (Extraction, Validation, Load, Transformation) qui vont chargés les six tables du schéma en
étoile du Data Warehouse Orion Star. Il faut ensuite créer le processus qui sélectionne les données du
Data Mart « Orion Gold ». Enfin, le projet nécessite de créer un hyper cube multidimensionnelle.

Se connecter à SAS® Data Integration Studio

Si personne ne s’est connecté à SAS® Data Integration Studio sur cette machine, il faut créer un profil
de métadonnée. Un profil de métadonnée est tout simplement, l’enregistrement des informations de
connexion au serveur de métadonnée, soit le nom complet de ce serveur physique ou se trouve le
serveur de métadonnée SAS, le port de ce serveur de métadonnée et l’utilisateur avec son mot de
passe. Il est parfois nécessaire de spécifier un référentiel de métadonnée particulier.
Suivant.

1
EVLT est un acronyme proposé par Grégoire de Lassence qui n’a qu’une fin pédagogique. Encore
un sigle dans un monde qui en a trop ; histoire de définitivement noyer les petits nouveaux.

67
Donner un nom au profil de métadonnée.
Suivant.

Entrer le nom complet de la machine qui héberge le serveur de métadonnée ou son adresse IP.
Entrer le port du serveur de métadonnée ; par défaut, c’est le 8561.
Entrer l’identifiant et le mot de passe de l’ETListe.
Dans le cadre du cas Orion, l’utilisateur « sasdemo » (mot de passe « sasdemo ») prendra à tour de
rôle les différentes casquettes ETListe, analyste métier, consommateur de rapport, etc.
Suivant.

Sélectionner le référentiel de métadonnée.


Suivant.
Terminer.

68
Bienvenue dans SAS® Data Integration Studio.
Ce client Java lourd, c'est-à-dire développé en code Java et installé sur le poste utilisateur, est une
interface avec trois grandes parties.

69
2 3

1) La barre des « Raccourcies » est ordonnée suivant le processus classique ETL, extraction
(Assistant définition des données sources), transformation (Assistant définition du processus),
et chargement (Assistant définition des données cibles). Par contre, ces outils s’utilisent
suivant la méthodologie ELT (extraction – chargement – transformation), c'est-à-dire que l’on
définie les métadonnées des données sources en les important des systèmes sources, puis
on défini les métadonnées du système cible selon le cahier de spécification du projet et enfin
lorsque source et cible sont définie, on crée le processus de transformation permettant de
passer de la source à la cible.
2) La seconde partie de l’interface contient en faite trois fenêtres qui peuvent être visualisées en
cliquant sur les onglets en bas. Les arborescences « inventaire » et « personnalisé »
présentent les mêmes informations, mais rangées de manière différente. L’inventaire est
seulement ordonné par type d’objet, alors que dans l’arborescence personnalisée, comme
son nom l’indique, l’utilisateur peut, et doit, créer des dossiers et sous dossiers afin de classer
rigoureusement tous les objets. La dernière fenêtre de cette partie de l’interface référence les
différents processus de transformation.
3) Le troisième espace est le plan de travail.

La barre des raccourcis et les fenêtres « inventaire », « personnalisé » et « bibliothèque de


processus » peuvent être fermées ou ouvertes par le menu « affichage ».

70
Définition de l’arborescence des métadonnées ETL personnalisées :

Dans l’arborescence des métadonnées personnalisées, se trouve par défaut le seul groupe « Non
groupé(s). Pour créer un nouveau groupe, sur le référentiel Foundation, clique droit de la souris :

Nouvel objet

71
Sélectionner « groupe défini par l’utilisateur »,
Suivant

Donner un nom au groupe, ici « Orion », et définir sont dossier parent, tout d’abord « Foundation ».
Suivant.
Terminer.

72
Créer ainsi la structure qui permettra de classer les objets du projet Orion comme ci-dessous :

73
Importation des métadonnées des tables de l’ODS

Cliquer sur « assistant définition des données cible », dans la barre des raccourcis,

Si la barre des raccourcis ne s’affiche pas, allez dans le menu Affichage la cocher.

74
Sélectionner une table de type SAS,
Suivant

75
Sélectionner la bibliothèque pointant vers l’ODS.
Suivant

76
77
Cliquer sur les boutons
Sélectionner tout
Suivant

78
Dans votre arborescence personnalisée, sélectionner le dossier ODS.
Suivant
Terminer

Création de la table CUSTOMER_DIM :

Cliquer sur « assistant définition des données cible », dans la barre des raccourcis,

79
Si la barre des raccourcis ne s’affiche pas, allez dans le menu Affichage la cocher.

Sélectionner la création d’une table cible


Suivant.

80
Saisir le nom de la table « Customer_Dim ».
Suivant.

Sélectionner l’emplacement physique de la nouvelle table : La bibliothèque (Library) du Data


Warehouse.
Suivant.

81
Suite à la définition des spécifications détaillées, en réponse au cahier des charges de la société
Orion, la table cible à créer doit avoir les caractéristiques du tableau suivant, certaines des colonnes
ont les mêmes caractéristiques que leur colonne mère des tables sources. Afin de simplifier la
définition de ces colonnes, on peut utiliser la définition des colonnes sources pour définir celles ci.

Nom Longueur Type Format Remarque


Customer_ID 8 Numérique 12. Identique à la table source
Customer_Country 2 Caractère $COUNTRY. Identique à la table source
Customer_Gender 1 Caractère $GENDER. Identique à la table source
Customer_Name 40 Caractère (Néant) Identique à la table source
Customer_FirstName 20 Caractère (Néant) Identique à la table source
Customer_LastName 30 Caractère (Néant) Identique à la table source
Customer_BirthDate 4 Numérique DATE9. Identique à la table source
Customer_Age_Group 12 Caractère (Néant) A créer
Customer_Type 40 Caractère (Néant) Identique à la table source
Customer_Group 40 Caractère (Néant) Identique à la table source
Customer_Age 3 Numérique (Néant) A créer

Depuis le répertoire personnalisé où se trouvent les tables de détail d’Orion, sélectionner dans les
tables Customer et Customer_type les 9 colonnes identiques dans le système source et dans la cible.

82
Rappel : le triangle rouge signalise des variables de type caractère et le cercle bleu, de type
numérique.

Suivant

Créer les deux colonnes Customer_Age et Customer_Group_Age suivant le tableau ci-dessous, avec
leur nom, description, type, format et longueur.

Nom Longueur Type Format


Customer_Age_Group 12 Caractère (Néant)
Customer_Age 3 Numérique (Néant)

Nous avons définit les métadonnées des 11 colonnes de la table Customer_Dim.


Suivant.

Enregistrer les métadonnées du processus dans l’arborescence personnalisée, dans le dossier


« Orion Data Warehouse ».
Suivant.

83
*

Terminer

Aller dans les propriétés de la table pour définir un index et la clé primaire sur Customer_ID.

Dans l’arborescence personnalisée, dans le dossier « Orion Data Warehouse » où sont stockées
les métadonnées de la table Customer Dim, clique droit sur cette table, puis « propriété » ou bien
double clique dessus.
Pour définir l’index et la clé, aller dans les onglets associés.
Dans l’onglet index, cliquer sur nouveau, puis glisser la colonne Customer ID dans ce nouvel index.
Index: Customer ID

84
Lorsqu’un index ne contenant qu’une seule colonne est créé, il doit avoir le même que cette colonne.
Si vous cliquez sur « Appliquer », ou changez d’onglet, l’avertissement suivant apparaît.

Cliquer sur « Oui ». Cela renomme l’index comme la colonne.

85
Clé Primaire : Customer_ID

Pour définir Customer_ID comme la clé primaire, aller dans l’onglet « Clés ».

Cliquer sur la flèche de nouveau pour sélectionner « clé primaire ».


Ajouter la colonne Customer_ID à cette clé primaire.
OK
Nous avons défini les métadonnées de la table Customer_DIM du Data Warehouse Orion Star. Ces
métadonnées ne sont que le squelette de la table, il faut maintenant le remplir par un processus de
transformation qui liera et transformera les données du Data Store et les chargera dans cette structure.

86
Définition du processus de transformation.
Dans la barre des raccourcis de SAS® Data Intégration Studio.

Sélectionner l’ « assistant définition du processus.

Donner un nom au processus.


Suivant.

Sélectionner la table à charger.


Suivant.

87
Sélectionner le dossier de l’arborescence personnalisée où l’on souhaite enregistrer les métadonnées
du processus de transformation.
Suivant.

Créer le processus comprenant une jointure SQL et l’extraction SAS, outil se trouvant dans la
bibliothèque de processus

88
Ajouter les tables Customer et Customer_Type, sélectionnées dans l’arborescence personnalisée.

89
Ajouter la première table, par exemple « Customer » dans l’onglet indiqué, puis, ajouter la seconde
sur l’icône de la jointure SQL.

Dans les propriétés de la jointure SQL (double cliquer sur la jointure SQL ou clique droit propriétés),
dans l’onglet « tables » :

Vérifier la jointure que la jointure est bien faite entre les tables Customer_Type et Customer sur les
colonnes Customer_Type_ID.
Fermer les propriétés de la jointure SQL.
OK.

90
Ouvrir les propriétés d’Extraction SAS.

Dans l’onglet des correspondances, créer deux nouvelles colonnes :

Clique droit nouvelle colonnes

Nom Expression Type longueur


_AGE FLOOR(YRDIF(Birth_Date ,TODAY(),'actual')) Numérique 3
Customer_Age_Groupe PUT(CALCULATED _AGE ,agegroup.) Caractère 12

Entrer le nom, le type et la longueur, puis double cliquer dans « expression »

91
L’expression de l’âge est une troncature de l’argument (floor) d’une différence de date (dans date et
heure) sélectionnez YRDIF.
Dans source de données, sélectionnez pour le premier argument la colonne Birth_Date, pour le
deuxième argument, dans les fonctions date & heure, sélectionnez la date du jour : Today, pour le
deuxième argument, et tapez ‘actual’ pour le dernier.

L’expression est donc :


floor(YRDIF(Birth_Date ,today(),'actual'))
Soit :

92
93
OK.

Pour la colonne cible _AGE : Oui,

Créer l’expression de Customer_age_groupe : PUT(CALCULATED _AGE ,agegroup.)


Attention : il y a un espace entre « CALCULATED » et « _AGE » et un point après « agegroup. »

Le format “agegroup.” est un format SAS. Il se trouve dans les formats fournis avec le cas Orion. Il
permet la transformation suivante :
• Si l’âge est comprit entre 15 et 30‚ il écrit la chaine de caractère « 15-30 years »
• Si l’âge est comprit entre 30 et 45‚ il écrit la chaine de caractère « 31-45 years »
• Si l’âge est comprit entre 45 et 60‚ il écrit la chaine de caractère « 46-60 years »

94
• Si l’âge est comprit entre 60 et 75, il écrit la chaine de caractère « 61-75 years »
• Si, non, il écrit l’âge.

OK.

Dans l’outil de chargement, dans les correspondances, mettre à jour les correspondances.

95
Dans les techniques de chargement, sélectionner actualiser et ajouter la clé primaire.

Enregistrer les modifications


Exécuter le processus

96
Création de la table PRODUCT_DIM
Pour créer la table PRODUCT_DIM, il faut les tables Product_List et Supplier, joint par une jointure
SQL. Voici la définition des colonnes de cette table.

Nom Longueur Type Format Remarque


Product_ID 8 Numérique 12. Identique à la table source
Product_Line 20 Caractère (Néant) A créer
Product_Category 25 Caractère (Néant) A créer
Product_Group 25 Caractère (Néant) A créer
Product_Name 45 Caractère (Néant) Identique à la table source
Supplier_Country 2 Caractère $COUNTRY. Identique à la table source
Supplier_Name 30 Caractère (Néant) Identique à la table source
Supplier_ID 4 Numérique 12. Identique à la table source

De plus, Product_ID est l’index et la clé Primaire.

Dans les techniques de chargement, il faudra sélectionner actualiser et ajouter cette clé primaire.

Les produits sont organisés selon 4 niveaux :


5. Ligne de produit
6. Catégorie de produit
7. Groupe de produit
8. Produit

La table Product_List a été créée en utilisant les formats SAS.

Voici le début du résultat du programme :

libname library 'chemin Windows jusqu’au répertoire où se trouvent les formats du cas Orion
Star';
proc format library=library fmtlib;
select proddim;
run;

„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ†
‚ FORMAT NAME: PRODDIM LENGTH: 12 NUMBER OF VALUES: 5579 ‚
‚ MIN LENGTH: 1 MAX LENGTH: 40 DEFAULT LENGTH 12 FUZZ: STD ‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ…ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ…ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‰
‚START ‚END ‚LABEL (VER. V7|V8 08AUG[Link])‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‰
‚ 210000000000‚ 210000000000‚. ‚
‚ 210100000000‚ 210100000000‚210000000000 ‚
‚ 210100100000‚ 210100100000‚210100000000 ‚
‚ 210100100001‚ 210100100001‚210100100000 ‚
‚ 210100100002‚ 210100100002‚210100100000 ‚
‚ 210100100003‚ 210100100003‚210100100000 ‚
‚ 210100100004‚ 210100100004‚210100100000 ‚
‚ 210100100005‚ 210100100005‚210100100000 ‚
‚ 210100100006‚ 210100100006‚210100100000 ‚
‚ 210100100007‚ 210100100007‚210100100000 ‚
‚ 210100100008‚ 210100100008‚210100100000 ‚

Le format proddim. permet donc :


• A la première application, de passer de l’identifiant du produit à l’identifiant du groupe de
produit.
o A la deuxième application, de passer de l’identifiant du groupe de produit à l’identifiant
de la catégorie de produit.
A la troisième application, de passer de l’identifiant de la catégorie de produit
à l’identifiant de la ligne de produit.

97
Voici le début du résultat du programme :

libname library 'chemin Windows jusqu’au répertoire où se trouvent les formats du cas Orion
Star';
proc format library=library fmtlib;
select product;
run;

„ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ†
‚ FORMAT NAME: PRODUCT LENGTH: 45 NUMBER OF VALUES: 5579 ‚
‚ MIN LENGTH: 1 MAX LENGTH: 45 DEFAULT LENGTH 45 FUZZ: STD ‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ…ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ…ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‰
‚START ‚END ‚LABEL (VER. V7|V8 08AUG[Link])‚
‡ƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒˆƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒƒ‰
‚ 210000000000‚ 210000000000‚Children ‚
‚ 210100000000‚ 210100000000‚Children Outdoors ‚
‚ 210100100000‚ 210100100000‚Outdoor things, Kids ‚
‚ 210100100001‚ 210100100001‚Boy's and Girl's Ski Pants with Braces ‚
‚ 210100100002‚ 210100100002‚Children's Jacket ‚
‚ 210100100003‚ 210100100003‚Children's Jacket Sidney ‚
‚ 210100100004‚ 210100100004‚Children's Rain Set ‚
‚ 210100100005‚ 210100100005‚Children's Rain Suit ‚

Le format product. permet donc


• Avec l’identifiant de la ligne de produit, d’avoir le nom de ligne de produit.
• Avec l’identifiant de la catégorie de produit, d’avoir le nom de la catégorie de produit.
• Avec l’identifiant du groupe de produit, d’avoir le nom du groupe de produit.

Voici donc le processus ETL de création de la table Product_Dim.


Il faut d’abord définir la structure des colonnes de la table avec l’assistant de définition de la table cible,
au regard du tableau de définition des colonnes de cette table, ci-précédemment présenté.
Ensuite, le processus est donc la jointure entre les tables Supplier et Product_List.
Enfin, dans l’extraction SAS, il faut créer les six colonnes avec les éléments ci-dessous.
Pour finir, dans le chargeur, il faut sélectionner la technique de chargement actualiser (Sélectionner :
« Supprimer la table ») et dans l’onglet correspondance, ajouter les liens nécessaires.

Chargement de la table PRODUCT_DIM avec les informations ci-dessous

98
Nom Fonction Type longueur
_Group INPUT(PUT(Product_ID,proddim.),12.) Numérique 8
_Category input(put(CALCULATED _Group,proddim.),12.) Numérique 8
_Line input(put(CALCULATED _Category,proddim.),12.) Numérique 8
Product_Group put(CALCULATED _Group,Product.) Caractère 25
Product_Category put(CALCULATED _Category,Product.) Caractère 25
Product_Line put(CALCULATED _Line,Product.) Caractère 20

Création de la table ORGANIZATION_DIM

Création de la table ORGANIZATION_DIM avec les informations ci-dessous.


Pour la jointure SQL, il faut faire une jointure gauche entre les tables STAFF et ORGANIZATION et
mettre une clause de sélection sur le premier niveau de l’organisation.

Nom Longueur Type Format Remarque


Employee_ID 8 Numérique 12. Identique à la table source
Employee_Country 2 Caractère $COUNTRY. Identique à la table source
Company 30 Caractère (Néant) A créer
Department 40 Caractère (Néant) A créer
Section 40 Caractère (Néant) A créer
Org_Group 40 Caractère (Néant) A créer
Job_Title 25 Caractère (Néant) Identique à la table source
Employee_Name 40 Caractère (Néant) Identique à Org_name
Employee_Gender 1 Caractère $GENDER. Identique à la table source
Salary 8 Numérique DOLLAR13. Identique à la table source
Employee_BirthDate 8 Numérique DATE9. Identique à la table source
Employee_Hire_Date 8 Numérique DATE9. Identique à la table source
Employee_Term_Date 8 Numérique DATE9. Identique à la table source

Index : Employee_ID
Clé Primaire : Employee_ID

99
100
Dans la source de la requête, on doit retrouver le code suivant :

FROM [Link]
LEFT JOIN [Link]
ON (STAFF.Employee_ID = ORGANIZATION.Employee_ID)

WHERE ORGANIZATION.Org_Level = 1

Comme pour la table PRODUCT_DIM, le format orgdim permet :


• A la première application, de passer de l’identifiant de l’employé à l’identifiant du groupe.
o A la deuxième application, de passer l’identifiant du groupe à l’identifiant de la section.
A la troisième application, de passer de l’identifiant de la section à l’identifiant
du département.
• A la quatrième application, de passer de l’identifiant du département
à l’identifiant de la compagnie.

Et le format org permet :


• Avec l’identifiant du groupe, d’avoir le nom du groupe.
• Avec l’identifiant de la section, d’avoir le nom de la catégorie de la section.
• Avec l’identifiant du département, d’avoir le nom du département.
• Avec l’identifiant de la compagnie, d’avoir le nom de la compagnie.

Voici donc les colonnes et les transformations à créer dans l’outil de chargement.

Nom Fonction Type longueur


_Group INPUT(PUT(Employee_ID ,orgdim.),12.) Numérique 8
_Section INPUT (PUT(CALCULATED _Group, orgdim.),12.) Numérique 8
_Department INPUT (PUT(CALCULATED _Section, orgdim.),12.) Numérique 8
_Company INPUT (PUT(CALCULATED _Department, orgdim.),12.) Numérique 8
Group PUT(CALCULATED _Group, org.) Caractère 40
Section PUT(CALCULATED _Section, org.) Caractère 40
Department PUT(CALCULATED _Department, org.) Caractère 40
Company PUT(CALCULATED _Company, org.) Caractère 30

101
102
Pour finir, dans le chargeur, il faut sélectionner la technique de chargement actualiser et ajouter la clé
primaire. Dans l’onglet correspondance, ajouter les liens nécessaires.

103
Création de la table TIME_DIM

Nom Longueur Type Format


Date_ID 4 Numérique DATE9.
Year_ID 4 Caractère (Néant)
Quarter 6 Caractère (Néant)
Month_Name 20 Caractère (Néant)
Week_Name 7 Caractère (Néant)
Weekday_Name 20 Caractère (Néant)
Month_Num 3 Numérique (Néant)
Week_Num 3 Numérique (Néant)
Weekday_Num 3 Numérique (Néant)
Weekday_EU 3 Numérique (Néant)
Fiscal_Year 4 Caractère (Néant)
Fiscal_Quarter 6 Caractère (Néant)
Fiscal_Month_Num 3 Numérique (Néant)
WeekDay_FR 8 Caractère (Néant)
Month_FR 9 Caractère (Néant)

Pour créer la table de dimension du temps, une solution simple est de simplement utiliser une étape
de code écrit par l’utilisateur.

Copier le code ci-dessus dans un [Link] sur le serveur.


Modifier le chemin vers le répertoire du Data Warehouse.

/***********************************************************************************************************/
libname test 'Repertoire du Data Warehouse';

Proc SQL;
CREATE TABLE test.Time_Dim (
Date_ID DATE LABEL='Date',
Weekday_Num SMALLINT LABEL='US WeekDay Number',
Weekday_EU SMALLINT LABEL='European Weekday Number',
Weekday_Name VARCHAR(20) LABEL='Weekday Name',
Week_Num SMALLINT LABEL='European Week Number',
Week_Name CHARACTER(7) LABEL='Week Name in display format (YYYY-WW)',
Month_Num SMALLINT LABEL='Month Number',
Month_Name VARCHAR(20) LABEL='Month Name',
Quarter CHARACTER(6) LABEL='Quarter',
Year_ID CHARACTER(4) LABEL='Year',
Fiscal_Year CHARACTER(4) LABEL='Fiscal Year',
Fiscal_Quarter CHARACTER(6) LABEL='Fiscal Quarter',
Fiscal_Month_Num SMALLINT LABEL='Fiscal Month Number');
quit;

Options DFLang=French;
data Time_Dim_Orion_Fp(label='Time Dimension');
Do Date_ID='01jan1998'd to '01jan2002'd;
WeekDay_Num=Weekday(Date_ID);
WeekDay_Name=Strip(Put(Date_ID,downame.));
Month_Num=month(Date_ID);
Year_ID=Put(Year(Date_ID),4.);

104
Month_Name=Strip(Put(Date_ID,monname.));
Quarter=put(Year_ID,4.)!!'Q'!!put(qtr(Date_ID),1.);
WeekDay_FR=Strip(Put(Date_ID,EURDFDWN.));
Month_FR=Strip(Put(Date_ID,EURDFMN.));
if Month_Num <=11 then Fiscal_Year=Put(Year(Date_ID),4.);
else Fiscal_Year=Put(Year(Date_ID)+1,4.);
if Month_Num <=11 then Fiscal_Month_Num =month(Date_ID)+1;
else Fiscal_Month_Num=1;
Fiscal_Quarter=Fiscal_Year!!'Q'!!put(ceil(Fiscal_Month_Num/3),1.);
Output;

end;
run;

Proc format;
Picture We Low-High= '9999-99';
run;

Data test.Time_Dim_Orion_Fp(Compress=Yes Label='Time Dimension' Sortedby=Date_ID);


Length Date_ID 4 Year_ID $4 Quarter $6 Month_Name $20 Week_Name $7
Weekday_Name $20 Month_Num Week_Num Weekday_Num Weekday_EU 3
Fiscal_Year $4 Fiscal_Quarter $6 Fiscal_Month_Num 3;
Format Date_ID Date9.;
set test.Time_Dim_Orion_Fp(obs=0) Time_Dim_Orion_Fp;
retain Week 1 weekyear 2002;
Weekday_EU=weekday(Date_ID-1);
if Weekday_EU=1 then do;
Week+1;
if mdy(12,29,Input(Year_ID,4.)-(month_Num=1))
<=Date_ID<=mdy(1,4,Input(Year_ID,4.)+(Month_Num=12)) then
do;
Week=1;
WeekYear+1;
end;
end;
Week_Num=Week;
Week_Name=Put(WeekYear*100+Week_Num,we.);
Drop Week WeekYear ;
run;

Proc SQL;
CREATE INDEX Year_ID ON test.Time_Dim_Orion_Fp(Year_ID);
CREATE INDEX Quarter ON test.Time_Dim_Orion_Fp(Quarter);
CREATE INDEX Month_Num ON test.Time_Dim_Orion_Fp(Month_Num);
CREATE INDEX Fiscal_Year ON test.Time_Dim_Orion_Fp(Fiscal_Year);
CREATE INDEX Fiscal_Quarter ON test.Time_Dim_Orion_Fp(Fiscal_Quarter);
CREATE UNIQUE INDEX Date_ID ON test.Time_Dim_Orion_Fp(Date_ID);
ALTER TABLE test.Time_Dim_Orion_Fp
ADD PRIMARY KEY (Date_ID) ;
quit;

Proc contents data=test.Time_Dim_Orion_Fp varnum;


run;
Options DFLang=French;

/*****************************************************************************************************/

Créer directement un processus vide en utilisant l’assistant définition de processus, sans table à
charger. Insérer l’outil « code écrit par l’utilisateur » de la bibliothèque de processus.

105
Dans les propriétés du code, renseigner le chemin d’accès au code SAS :

OK

106
Création de la table GEOGRAPHIC_DIM

Créer la table de dimension GEOGRAPHIC_DIM selon la définition suivante :

Nom Longueur Type Format


Street_ID 8 Numérique 12.
Continent_Name 30 Caractère (Néant)
Country_Name 30 Caractère (Néant)
Region_Name 30 Caractère (Néant)
Province_Name 30 Caractère (Néant)
County_Name 60 Caractère (Néant)
City_Name 30 Caractère (Néant)
Postal_Code 10 Caractère (Néant)
Street_Name 40 Caractère (Néant)

Index : Street_ID
Clé Primaire : Street_ID
Dans les techniques de chargement, il faudra sélectionner actualiser et ajouter cette clé primaire.

Il faut toutes les lignes de Street code

107
108
Création de la table ORDER_FACT

Remarque : on ne peut créer la table Order_fact que lorsque l’on a créé les 5 autres tables de
dimension, car cette table contient des clés étrangères sur ces autres tables.

Créer la table ORDER_FACT avec les éléments suivants :

Nom Longueur Type Format Remarque


Customer_ID 8 Numérique 12. Identique à la table source
Employee_ID 8 Numérique 12. Identique à la table source
Street_ID 8 Numérique 12. Identique à la table source
Order_Date 8 Numérique DATE9. Identique à la table source
Delivery_Date 8 Numérique DATE9. Identique à la table source
Order_ID 8 Numérique 12. Identique à la table source
Order_Type 8 Numérique ORDER_TYPE. Identique à la table source
Product_ID 8 Numérique 12. Identique à la table source
Quantity 8 Numérique (Néant) Identique à la table source
Total_Retail_Price 8 Numérique DOLLAR13.2 Identique à la table source
CostPrice_Per_Unit 8 Numérique DOLLAR13.2 Identique à la table source
Discount 8 Numérique PERCENT. Identique à la table source

Créer les index de la table ORDER_FACT comme ci-dessous :

109
Définir les clés de la table ORDER_FACT comme ci-dessous :

Dans les techniques de chargement, il faudra sélectionner actualiser et ajouter cette clé primaire.

Il faut toutes les lignes de la table Order_item.

110
Création du Data Mart Orion Gold
Créer le schéma en étoile du Data Mart Orion Gold, basé sur le schéma précédemment, pour des
analyses rapides uniquement sur les clients ayant la carte de fidélité « Orion Club Gold » et ayant
acheté des vêtements ou des chaussures.

Créer un processus ETL avec uniquement l’outil « code écrit par l’utilisateur » de la bibliothèque de
processus et utiliser le code suivant.

libname orgold '!OrionRoot\orgold';

proc sql;
create table orgold.Customer_Dim
(label='Customer_Dimension' Compress=Yes) as
select distinct a.*
from orstar.Customer_Dim a,
orstar.Order_Fact b,
orstar.Product_Dim c
where a.Customer_Type in ("Orion Club Gold members high activity",
"Orion Club Gold members low activity")
and c.Product_Line = 'Clothes & Shoes'
and a.Customer_ID = b.Customer_ID
and b.Product_ID = c.Product_ID;
quit;

proc sql;
create unique index Customer_ID
on orgold.Customer_Dim(Customer_ID);
create index Customer_Country
on orgold.Customer_Dim(Customer_Country);
create index Customer_Type
on orgold.Customer_Dim(Customer_Type);
create index Customer_Group
on orgold.Customer_Dim(Customer_Group);
alter table orgold.Customer_Dim
add primary key (Customer_ID);
quit;

proc sql;
create table orgold.Product_Dim
(label='Product Dimension' compress=yes) as
select *
from orstar.Product_Dim
where Product_Line ='Clothes & Shoes';
quit;

Proc sql;
create UNIQUE index Product_ID
on orgold.Product_Dim(Product_ID);
create index Product_Group
on orgold.Product_Dim(Product_Group);
create index Product_Line
on orgold.Product_Dim(Product_Line);
create index Product_Category
on orgold.Product_Dim(Product_Category);
alter table orgold.Product_Dim add primary key (Product_ID);
quit;

proc sql;

111
create table orgold.Order_Fact(label='Order Fact Table' compress=yes) as
select b.*
from orgold.Customer_Dim a,
orstar.Order_Fact b,
orgold.Product_Dim c
where a.Customer_ID = b.Customer_ID
and b.Product_ID = c.Product_ID;
quit;

proc sql;
create index Customer_ID on orgold.Order_Fact(Customer_ID);
create index Order_Date on orgold.Order_Fact(Order_Date);
quit;

proc sql;
create table orgold.Geography_Dim
(Label='Geography Dimension' compress=yes) as
select distinct a.*
from orstar.Geography_Dim a, orgold.Order_Fact b
where a.Street_ID = b.Street_ID;
quit;

proc sql;
create index Postal_Code on orgold.Geography_Dim(Postal_Code);
create index Continent on orgold.Geography_Dim(Continent);
create index State on orgold.Geography_Dim(State);
create index Province on orgold.Geography_Dim(Province);
create index Region on orgold.Geography_Dim(Region);
create index City on orgold.Geography_Dim(City);
create index Country on orgold.Geography_Dim(Country);
create unique index Street_ID on orgold.Geography_Dim(Street_ID);
alter table orgold.Geography_Dim add primary key(Street_ID);
quit;

proc sql;
create table orgold.Time_Dim
(label='Time Dimension' compress=yes) as
select * from orstar.Time_Dim
where Date_ID between '01jan1998'd and '31dec2002'd;
quit;

proc sql;
create index Fiscal_Quarter on orgold.Time_Dim(Fiscal_Quarter);
create index Fiscal_Year on orgold.Time_Dim(Fiscal_Year);
create index Month_Num on orgold.Time_Dim(Month_Num);
create index Year_ID on orgold.Time_Dim(Year_ID);
create unique index Date_ID on orgold.Time_Dim(Date_ID);
alter table orgold.Time_Dim add primary key(Date_ID);
quit;

/* The Organization Dimension is kept intact */


proc copy in=orstar out=orgold constraint=yes;
select Organization_Dim;
run;
quit;

112
OLAP
Le sigle OLAP veux dire Online Analytical Process. Un cube OLAP est une structure
multidimensionnelle. En plus des données contenues dans les tables sources, un cube peut contenir
des informations agrégées, permettant de naviguer plus rapidement dans les données. On peut créer
des cubes dans ETL Studio ou dans OLAP Studio. Si vous avez uniquement SAS OLAP serveur sous
licence, vous utiliserez SAS OLAP Studio. Si vous avez aussi SAS ETL Server, vous pouvez utiliser
les deux.
On peut générer des cubes de type ROLAP, MOLAP ou HOLAP. Voir paragraphe pour l’optimisation
des cubes.

Lorsque l’on parle de cube multidimensionnel, il faut voir deux éléments : la partie émergée de
l’iceberg et celle cachée.
La partie émergée, celle qui sera vue par les utilisateurs, a quelque chose de magique. Lorsque vous
présentez à vos futurs utilisateurs un cube, ils sont souvent fascinés. Vous leur offrez enfin la
possibilité de naviguer facilement dans l’information, du général au détail, et vis-versa. Ils peuvent
croiser l’information de multiples façons. Voir les chapitres Navigation dans un cube depuis SAS
Enterprise Guide et Microsoft Excel.
La partie cachée : la structure du cube d’un point de vue informatique permettant l’optimum en terme
de temps de réponse et d’espace disque. Voir le chapitre d’optimisation d’un cube OLAP.

Vocabulaire OLAP
Le sigle OLAP veux dire Online Analytical Process, par opposition aux bases de données OLTP
(Online transactional Process) des SGBD (Système de Gestion de Bases de Données)
opérationnelles. Une base OLAP est conçue pour naviguer dans l’information et donc l’analyser alors
qu’une base OLTP est conçue pour supporter des transactions.

On parle de cube par opposition à une table qui a deux dimensions, des lignes et des colonnes ; un
cube en a trois. La vraie dénomination devrait être hyper-cube multidimensionnel car une structure
OLAP a souvent quatre, cinq, six voir sept dimensions. Pour représenter une table, on dessine
souvent un tableau. On peut dessiner un cube avec ses trois dimensions, mais il est difficile de
représenter un hyper-cube avec quatre ou plus dimensions, car l’œil ne peut pas visualiser plus de
trois dimensions.
Il est rare qu’un cube excède sept dimensions, ce qui est déjà beaucoup. Lors de la conception, si l’on
a plus de cinq dimensions pour un problème donné, on a plutôt tendance à créer deux cubes. En effet,
il est rare de trouver un problème avec tant de dimension et après analyse, on s’aperçoit souvent qu’il
vaut mieux diviser ce problème en deux sous problèmes.
Il faut remarquer l’exception des cubes pour le contrôle de gestion suivant la méthode ABC où l’on
crée souvent des cubes avec plus de 25 dimensions. L’Activity Based Costing est une méthode de
comptabilité analytique par activités.

Un cube comprend
• Des dimensions : les axes d’analyses
• Des hiérarchies : les chemins de navigation dans l’information
• Des niveaux d’agrégations
• Des mesures : Une mesure est l’indicateur que l’on analyse dans un cube.
Par exemple, on peut analyser la somme du chiffre d’affaires, une mesure, suivant les dimensions
produit, organisation et client. Une hiérarchie de la dimension produit peut être composée des
niveaux : Ligne de produit Catégorie de produit Groupe de produit Produit. Une hiérarchie de
la dimension organisation peut être : Pays Département Magasin Section Groupe
Employé. Une autre hiérarchie de la dimension organisation peut être Magasin Employé. La
dimension client peut avoir une hiérarchie : Groupe d’âge du client Age du client Sexe du client.

Règles:
Un hyper-cube multidimensionnel, par abus de langage, un cube, peut avoir une ou plusieurs
dimensions et une ou plusieurs mesures.
Une dimension peut avoir une ou plusieurs hiérarchies.
Une hiérarchie peut avoir un ou plusieurs niveaux.

113
Un niveau appartient à au moins une hiérarchie.
Un niveau appartient à une seule dimension.
Une mesure peut être présentée par une ou plusieurs statistiques : la somme, la moyenne, le
minimum, le maximum, etc…

Mise en œuvre, création du cube Orion :


Nous allons créer le cube OLAP sur le schéma en étoile Orion Gold.

Dans SAS Data Integration Studio, dans la barre des raccourcis, sélectionner l’ « Assistant Définition
des données cibles ».

Sélectionner l’option « Création d’un cube ».


Suivant.

114
Suivant.

Entrer :
1. le nom du cube (Orion),
2. le chemin du répertoire de stockage physique du cube
3. et l’option « schéma en étoile ».

Suivant.

115
Sélectionner la table de fait : Order_Fact (vérifier dans les Propriétés de la table que c’est bien la
table de la bibliothèque Orion Gold)
Suivant.

Suivant.

116
Sélectionner les cinq tables de dimension :
Suivant.

Cliquer sur « Ajouter » pour créer une nouvelle dimension.

117
Pour créer la dimension temps, de type time, il faut faire la jointure sur les clés Date_ID et Order_Date.
Suivant.

Sélectionner les niveaux nécessaires.


Suivant.

Suivant.

118
Créer les hiérarchies en cliquant sur ajouter.

119
Créer les cinq dimensions suivantes comme présentées ci-dessous :

120
121
Sélectionner les mesures

Suivant

122
Sélectionner la mesure « Total_Retail_PriceSUM » comme mesure par défaut.
Suivant

Suivant

123
Suivant

Terminer

Navigation dans un cube depuis SAS Enterprise Guide :

Ouvrir SAS Enterprise Guide


Depuis Démarrer Programmes SAS Enterprise Guide 4

124
Si cette fenêtre apparaît, sélectionner nouveau projet.
Remarque : vous pouvez cocher « ne plus afficher cette fenêtre ».

Dans le menu Fichier Ouvrir Cube OLAP

125
Entrer le nom de la machine où se trouve le serveur OLAP, ici Localhost
Sélectionner le fournisseur SAS OLAP Data Provider 9.1.
Cliquer sur Afficher les options,
Entrer votre nom d’utilisateur et votre mot de passe, ici sasdemo et SASpw1.

126
Sélectionner le cube que vous souhaitez visualiser,

Pour naviguer du général au détail (Drill down), vous avez :

• la croix permet de voir les niveaux en dessous et laisse les autres niveaux actuels
inchangés.

• la flèche vers le bas permet d’afficher les niveaux en dessous et supprime l’affichage
des autres niveaux actuels.

127
Pour remonter d’un ou plusieurs niveaux (Drill Up) ; il faut faire un clique droit sur le niveau ou la
hiérarchie.

Pour ajouter une hiérarchie, sélectionner là dans l’arborescence des dimensions du cube et cliquer sur
la flèche.

128
En cliquant sur le bouton Editeur MDX vous avez accès au code MDX qui est généré.

Navigation dans un cube depuis Microsoft Excel :

Ouvrir une feuille Excel :

129
Dans le menu Données, sélectionner Rapport de tableau croisé dynamique.

Sélectionner Source de données externes


Suivant

Cliquer sur Obtenir des données

Dans l’onglet Cube OLAP, <Nouvelle source de données> étant sélectionné, cliquer sur OK

130
Donner un nom à la nouvelle source de données, ici Cube Orion, Sélectionner le fournisseur SAS
OLAP Data Provider 9.1.
NB : Si SAS Enterprise Guide ou SAS Add_in to Microsoft sont installés sur la machine, ce menu
existe.

Cliquer sur Connexion…

131
Entrer le nom de la machine où se trouve le serveur OLAP dans le champ Data Scource, ici
Localhost
Entrer votre nom d’utilisateur et votre mot de passe dans respectivement User ID et Password, ici
sasdemo et SASpw1.

Le port par défaut du serveur OLAP est le 5451, il n’est donc pas nécessaire de le changer.

OK

4 Sélectionner le cube contenant les informations désirées

Vous pouvez enregistrer l’identité et le mot de passe de l’utilisateur.

OK

OK

132
Terminer
Si vous n’avez pas enregistré votre mot de passe, il faudra le rentrer à nouveau.

Déplacer les éléments dans le rapport de tableau croisé dynamique.

133
Pour naviguer du général au détail et vis-versa, cliquer sur la flèche de la hiérarchie.

Optimisation d’un cube OLAP


Le seul moyen d’obtenir des temps de réponse performants consiste à «pré-calculer» tous les totaux
logiques. Un cube contenant tous ces sous totaux est un cube MOLAP : Multidimensionnel OLAP.
C’est la forme la plus pure d’un cube. Lors de la navigation dans de tel cube, vu que tous les totaux et
sous totaux ont déjà été calculés, il n’y a pas besoin de les recalculer. Cela permet une navigation très
rapide. Par contre un cube MOLAP est très volumineux. Le pré-calcul de tous les agrégats peut
prendre beaucoup de place sur le disque. Vu que l’on pré-calcul tous les croisements possibles
d’information, cela peut exploser.
n!
Le nombre de toutes les combinaisons possibles de n parmi p est
p
n = . La fonction
p!(n p )!
factorielle est une fonction qui explose vite.

Un cube ROLAP, Relationnel OLAP n’a pas de structure forcément dédiée. Il permet de naviguer dans
l’information comme dans un cube MOLAP mais aucun agrégat n’a été pré-calculé. Donc lorsque vous
faites une requête sur ce cube, il faut calculer tous les totaux.

Un cube HOLAP est l’Hybride entre un cube ROLAP et un cube MOLAP. On pré-calcule uniquement
les agrégats nécessaires à l’optimum du temps de réponse et de l’espace disque.

134
MOLAP ROLAP HOLAP

Espace disque Temps de réponse

Complexité Complexité

Sur les graphiques ci-dessus, la complexité représente la taille du cube en termes de nombre de
données, de hiérarchies et de niveaux.

Pour un cube MOLAP :


• L’espace disque nécessaire explose lorsque la complexité augmente
• Les temps de réponse sont toujours excellents

Pour un cube ROLAP :


• L’espace disque nécessaire est toujours réduit
• Les temps de réponse explosent lorsque la complexité augmente

Un cube HOLAP est le compromis entre ces deux cubes.


Généralement, pour construire un cube HOLAP, on crée un cube ROLAP. Puis en fonction du nombre
de requêtes par croisement de niveaux et des temps de réponse sur ces croisement de niveaux, on
calcul les agrégats nécessaires.

Mise en œuvre :

Créer un fichier texte [Link] dans le répertoire


C:\dossier_de_la_configuration\nom_de_la_configuration\Lev1\SASMain\OLAPServer
par exemple dans C:\SAS\9.1\Lev1\SASMain\OLAPServer

135
Connectez-vous à la SMC :

Dans la SAS Management Console, dans le Gestionnaire de serveur, sous SASMain, sous
SASMain - Logical OLAP Server, clique droit sur le SASMain – OLAP Server Propriété

136
Dans l’onglet Options Options Avancées

137
Dans l’onglet Enregistrement des performances

Sélectionner le fichier texte créé précédemment à l’aide de Parcourir


Sélectionner tous les niveaux d’enregistrement.

Cliquer sur OK.

Connectez-vous à DIS

138
Dans SAS Data Integration Studio, dans l’inventaire, dans le dossier Cube, clique droit sur votre
cube Modifier la structure du cube.

Suivant Suivant Suivant jusqu’à la fenêtre des agrégats.

139
Cliquer sur Ne pas créer d’agrégation NWAY
Vous aviez un cube MOLAP avec toutes les agrégations créées dans toutes les directions.
Vous avez maintenant un cube ROLAP.

Regarder la taille du cube en Mo dans le répertoire de l’explorateur Windows où il se trouve. (souvent


C:\SAS\Orion\DW_Orion)

Suivant Terminer

Regarder la taille du cube en Mo dans le répertoire de l’explorateur Windows où il se trouve. (souvent


C:\SAS\Orion\DW_Orion)

140
Allez naviguer dans votre cube, par exemple depuis SAS Enterprise Guide, afin de générer un peu
d’information dans le journal d’enregistrement des performances.

Puis fermez la fenêtre de navigation et revenez dans DIS.

Dans le menu Outils Mise au point d’agrégation avancée

141
Sélectionner votre cube

142
Cocher Analyse AMR

Cliquer sur Générer les agrégations

143
Pour chaque croisement de niveau, vous pouvez analyser le nombre de requêtes faites et le temps
nécessaire.
Sélectionner tout
OK
OK

Vous avez maintenant un cube HOLAP.

Regarder la taille du cube en Mo dans le répertoire de l’explorateur Windows où il se trouve. (souvent


C:\SAS\Orion\DW_Orion)

144
Information Map
L’interface SAS Information Maps Studio

Barre des menus

L’explorateur du référentiel
de métadonnée

145
Pour afficher l’explorateur du référentiel de métadonnée, il faut cliquer dans la barre des menus sur
l’icône

L’espace de
création des
Maps.

Pour la création d’une Maps, il y a deux parties importantes : la structure physique, partie de gauche
dans l’espace de création des Maps ; et la partie virtuelle, conceptuelle, celle que verra l’utilisateur
non informaticien de SAS Web Report Studio, partie droite de l’interface : « information Maps ».

Elément d’une Maps

Une Maps contient deux types d’éléments : des mesures et des catégories. Concrètement, pour
l’utilisateur final, les catégories seront les éléments qu’il pourra placer en ligne ou en colonne, et les
mesures seront les chiffres qu’il souhaitera exploiter dans le tableau.

146
Dans l’exemple ci-dessus, pour cette navigation depuis le portail, on a sélectionné :
• deux mesures
o la somme du chiffre d’affaires,
o la somme des remises,
• deux catégories
o les clients en ligne,
o les produits en colonne.

Une variable de type caractère sera une catégorie, une variable numérique pourra être de type
mesure ou catégorie.
Dans les propriétés de chaque élément, on peut sélectionner le type de l’élément.

147
Dans les propriétés d’un élément, on pourra notamment définir aussi le format d’affichage, les
agrégations souhaitées, ou modifier la valeur :

148
Dans l’exemple ci-dessus, chiffre d’affaires stocké en dollar dans le Data Warehouse est multiplié par
1.59 pour ainsi le convertir en euro pour un utilisateur français.

On peut aussi créer des éléments de type filtre pour que l’utilisateur puisse faire des sélections
simplement.

Enregistrement
Il faut impérativement enregistrer une Maps dans le répertoire de métadonnées “Foundation / BIP
Tree / ReportStudio / Maps“. Sinon, les Maps ne seront pas vues Web Report Studio® ou dans le
Portal®. Pour simplifier l’administration, il est possible des créer des sous-répertoires.

Figure 1

149
Mise en œuvre sur le cas Orion Star
Nous allons, dans ce chapitre créer deux types de Maps, l’une sur des données relationnelles, l’autre
sur un cube multidimensionnel.

Lancer SAS Information Maps Studio®, en sélectionnant dans Démarrer Programmes SAS ,
SAS Information Maps Studio 2.1

Sélectionner votre profil de métadonnées,

Connectez-vous avec votre utilisateur,

150
La fonction insérer une table permet d’abord de sélectionner les sources de données nécessaires qui
deviennent alors disponibles pour la création des référentiels d’informations.

Dans la bibliothèque Orion Gold, sélectionner les 6 tables :


• order_fact
• customer_dim
• geography_dim
• organization_dim
• product_dim
• time_dim

Et cliquer sur OK.

151
Cliquer sur l’onglet relations pour définir les relations entre les tables.
Créer les 5 jointures sur les clés primaires des tables de dimension, par glisser-lâcher.

152
Revenir dans l’onglet présentation pour créer les éléments de la Maps.
Avec un clic droit dans la Maps, créer les répertoires permettant de regrouper les catégories par
thème. Ensuite, par glisser-lâcher, prendre les éléments de la partie physique (à gauche) et remplir les
dossiers précédemment créés.

153
Grâce à un clic droit sur chaque élément, aller dans les propriétés de l’élément pour changer le nom et
la classification.

154
Le nom de l’élément est celui qui sera vu par l’utilisateur final, il peut comprendre des espaces et des
caractères accentués.
Si l’on veut utiliser la variable « âge du client » comme variable de classe, aller dans le deuxième
onglet et sélectionner « catégorie ».

Création des Maps :


Trois Maps sont à créer :
Une sur le cube
Une sur pour la directrice marketing : Christine Fletcher (chf) en anglais, sur le schéma en étoile.
Une pour les français, sur le cube.

155
156
Créer une Information Map en français pour le directeur d’Orion France.

157
Enfin, créer une Information Maps en Anglais sur un cube.

Création de rapport avec SAS Web Report Studio


Introduction :

Nous allons dans le cadre de ce TP, créer un rapport avec l’outil de dit de reporting de masse, SAS
Web Report Studio. Un outil de reporting de masse est par définition un outil permettant aux masses,
des utilisateurs ayant généralement peu ou prou de connaissance informatique, de créer simplement,
intuitivement leur rapport, de les partager et de les distribuer.
SAS Web Report Studio est un client léger, c'est-à-dire qu’il n’y a rien à installer sur le poste de
l’utilisateur. Il suffit qu’il ait le navigateur Web Microsoft Internet Explorer et une connexion au serveur.
Cette application est suffisamment intuitive pour qu’avec une simple prise en main, voir pas du tout,
un utilisateur non informaticien puisse créer et partager son rapport. Il n’est donc plus nécessaire
d’être un spécialiste pour créer de jolis rapports.

Ouvrir SAS Web Report Studio : [Link]

158
Nous utiliserons aussi notre utilisateur générique « sasdemo » (mot de passe =
sasdemo)
Connexion

Cliquez sur « nouveau rapport »,

159
Cliquer sur « Dans sélectionner des données »

160
Sélectionner la mesure du chiffre d’affaires et les hiérarchies produit et organisation.
Cliquer sur OK

161
Ajoutez à votre rapport un tableau croisé et un histogramme et cliquer sur le bouton
« afficher le rapport » (dans la barre du haut).

162
Voici votre premier rapport avec SAS Web Report Studio.

Créer maintenant les rapports qui répondent aux questions :


• Quels sont les 20 commerciaux qui ont fait le plus de vente en 2002 ?
• Quels sont les produits les moins vendus ?
• Quels sont les produits qui contribuent à moins de 0.05% du CA pour un Pays/une année
donné(e) ?
• Y a-t-il une relation entre le temps, l’espace et la vente de produit ?

163
Création d’une procédure stockée
Ouvrir SAS Enterprise Guide
Depuis Démarrer Programmes SAS Enterprise Guide 4

Si cette fenêtre apparaît, sélectionner nouveau projet.


Remarque : vous pouvez cocher « ne plus afficher cette fenêtre ».

Bienvenue dans l’application SAS Enterprise Guide.

Trois fenêtres principales sont ouvertes par défaut lors de l’ouverture de SAS Enterprise Guide. C’est
la fenêtre
• du projet (sur la gauche) qui recense tous les objets du projet
• du flux de processus
• et celle des tâches (en bas) qui montre l’état d’avancement des tâches.

La fenêtre du projet et celle des tâches peuvent se fermer en cliquant sur ou se rabattre
automatiquement si l’on clique sur la punaise qui les fixe. Inversement, si vous souhaitez refixer la
fenêtre, cocher la punaise.
Si vous avez « perdu » ces fenêtres, dans le menu Affichage, sélectionnez-les.

La fenêtre du flux de processus peut être activée en cliquant sur le bouton conception du processus,
(sous le menu « graphique »).

164
Vous pouvez changer la langue de l’application depuis le menu Outil, dans Options.

Vous ne pouvez sélectionner que les langues dans lesquelles SAS Enterprise Guide a été installé.

Dans Administration Référentiel et serveur, il faut définir une connexion au serveur de


métadonnées si ce n’est déjà fait.

165
Si vous avez une seule ligne pour Local, pour définir la connexion vers SASMain, cliquer sur nouveau.

166
Lui donner un nom
Suivant
Suivant

167
Entrer le nom de la machine hébergeant le serveur de métadonnée et son port. Par défaut, c’est le
8561.
Suivant

168
Entrer le nom de l’utilisateur qui se connecte et son mot de passe
Suivant
Suivant
Terminer

Ouvrir une table des bibliothèques du SAS Main.

La procédure stockée que nous allons créée est une procédure, qui après avoir proposé à l’utilisateur
de sélectionner un paramètre, le pays, fait la prévision du chiffre d’affaires de ce pays.
On prend ici les tables de la bibliothèque « Orion Gold ».
On fait une requête pour avoir la somme du chiffre d’affaires par pays du commercial, par année et
par numéro du mois. On tri par année et par mois.
On fait un filtre sur un pays.
On fait la prévision du chiffre d’affaires.
On récupère la liste des pays dans un fichier texte.
On récupère le code de la requête et celui de la prévision.
On les retraite.
On créer la procédure stockée.

169
Ouvrir les données de la bibliothèque Orion Gold :

170
Ouvrir les tables Order_Fact, Time_Dime et Organization_Dim

Faire une requête sur Order_Fact

171
Ajouter les tables

172
Organization_Dim et Time_Dim

Sélectionner la colonne du chiffre d’affaires (Total_Retail_Price)

173
En prendre la somme
Sélectionner la colonne du pays de l’employé
Sélectionner la colonne de l’année
Sélectionner la colonne du numéro du mois
Sélectionner les groupes automatiquement
Aller dans l’onglet Filtrer les données

Faire un filtre sur le pays de l’employé

174
Sélectionner la France (par exemple)

OK

175
Aller dans l’onglet pour Trier les données
Trier par année puis par numéro du mois croissant
Exécuter la requête.

176
Aller dans le menu Analyses Série Chronologique Prévision de Base

Sélectionner la somme du chiffre d’affaires en variable de prévision


Grouper la prévision par le pays de l’employé
Sélectionner la nouvelle variable du temps en variable d’identifiant du temps.
Entrer la date de départ : 01/08/1998
Exécuter

177
Créer un nouveau code

Copier les éléments de code nécessaires depuis le code généré par la requête, puis celui généré par
la prévision de base.
Commercer par entrer au début du code le « Libname orgold « chemin jusqu’à la table SAS » ; »
Coller le code de la requête
Coller le code de la prévision
Changer la sélection du pays par une variable macro :
« &pays »

178
Exemple de code :
/*************************************************************************/
libname orgold 'C:\SAS\Orion\orgold';

PROC SQL;
CREATE TABLE WORK.Query_for_ORDER_FACT AS SELECT
(SUM(ORDER_FACT.Total_Retail_Price)) FORMAT=DOLLAR13.2 AS SUM_OF_Total_Retail_Price,
TIME_DIM.Year_ID,
TIME_DIM.Month_Num,
ORGANIZATION_DIM.Employee_Country
FROM ORGOLD.ORDER_FACT AS ORDER_FACT
INNER JOIN ORGOLD.TIME_DIM AS TIME_DIM ON (ORDER_FACT.Order_Date =
TIME_DIM.Order_Date)
INNER JOIN ORGOLD.ORGANIZATION_DIM AS ORGANIZATION_DIM ON
(ORDER_FACT.Employee_ID = ORGANIZATION_DIM.Employee_ID)
WHERE ORGANIZATION_DIM.Employee_Country = "&pays"
GROUP BY TIME_DIM.Year_ID, TIME_DIM.Month_Num, ORGANIZATION_DIM.Employee_Country
ORDER BY TIME_DIM.Year_ID, TIME_DIM.Month_Num;
QUIT;

PROC SORT
DATA=WORK.QUERY_FOR_ORDER_FACT(KEEP=SUM_OF_Total_Retail_Price
Employee_Country)
OUT=WORK.TMP0TempTableInput
;
BY Employee_Country;
RUN;
DATA WORK.TMP1TempTableNewTimeID (cntllev=rec);
RETAIN _obscntr_ 0;
DROP _obscntr_;
LENGTH NewTimeID 8;
FORMAT NewTimeID MONYY5.;
SET WORK.TMP0TempTableInput;
BY Employee_Country;

179
IF FIRST.Employee_Country = 1 THEN
_obscntr_ = 0;
ELSE
_obscntr_ = _obscntr_ + 1;
NewTimeID = intnx( "MONTH", '01JAN1998'D, _obscntr_);
RUN;

PROC FORECAST
DATA = WORK.TMP1TempTableNewTimeID
OUT=WORK.FCS0FORECASTQUERY_FOR_ORDER_0001(LABEL="Prévision de
WORK.QUERY_FOR_ORDER_FACT")
OUTALL
METHOD=STEPAR
INTERVAL=MONTH
LEAD=12
TREND=2
ALPHA=0.05
;
ID NewTimeID
;
VAR SUM_OF_Total_Retail_Price
;
BY Employee_Country;
FORMAT
NewTimeID MONYY5.;

RUN;TITLE;

/*-----------------------------------------------------
Tracer les valeurs de prévision
*/

TITLE;
TITLE1 "Prévision de base";
TITLE2 "Prévisions";
TITLE3 "Courbe des prévisions de la méthode d'autorégression pas à pas";

GOPTIONS PUBLISH;

PROC GPLOT DATA = WORK.FCS0FORECASTQUERY_FOR_ORDER_0001 NOCACHE;


PLOT (SUM_OF_Total_Retail_Price) * NewTimeID = _TYPE_ /;
SYMBOL1 I=JOIN V=NONE C=BLACK L=4;
SYMBOL2 I=JOIN V=NONE C=BLUE L=1;
SYMBOL3 I=JOIN V=NONE C=MAGENTA L=1;
SYMBOL4 I=JOIN V=NONE C=MAGENTA L=1;
WHERE _TYPE_ ^= 'RESIDUAL' & _TYPE_ ^= 'STD';
FORMAT NewTimeID MONYY5.;
BY Employee_Country;
RUN;
QUIT;

TITLE3;
SYMBOL;
TITLE;
RUN; QUIT;
TITLE; FOOTNOTE;
GOPTIONS RESET=ALL;
/*************************************************************************/
Avant de faire la procédure stockée, il faut extraire la liste des pays des employés.

180
Faire une requête sur la table Organization_Dim
Sélectionner uniquement les valeurs distinctes des pays des employés.

Exporter dans un fichier texte cette liste.

181
182
Clique droit sur le code création d’une procédure stockée.

183
Lui donner un nom
Suivant
Suivant

184
Sélectionner le chemin.
Pour que les procédures stockées soit visibles dans Web Report Studio, il faut les enregistrer dans
//Foundation/BIP Tree/ReportStudio/Shared/Report/StoredProcesses

185
186
Sélectionner si besoin le serveur de procédures stockées
Suivant

187
Dans les paramètres, ajouter un Paramètre du code SAS

188
Vous pouvez changer l’invite utilisateur
SAS a détecté la variable macro pays et la propose.

189
Dans les contraintes, charger les valeurs à partir du poste de travail

Utiliser le fichier texte que vous venez de créer.


Supprimer si besoin les lignes inutiles.

190
Vous pouvez ensuite mettre une valeur par défaut
Fermer
Oui
Oui

191
Sélectionner Flux de sortie
Terminer

Pour tester la procédure stockée, vous pouvez aller à la page :

[Link]
eports/StoredProcesses/Profit%20Orion

« %20 » pour les espaces dans les noms

192
Quelques modules SAS:
Une présentation commerciale succincte se trouve à la page :
[Link]
Si vous souhaitez des informations techniques, le site du support est :
[Link]
et plus spécialement la documentation en ligne qui est très riche :
[Link]

SAS/BASE : le module SAS/BASE est le socle de base nécessaire à l’utilisation de tout autre produit
SAS. C’est tout d’abord un langage de quatrième génération (L4G) particulièrement performant pour
la manipulation de données, la lecture et l’écriture dans des tables, SAS ou autre, l’édition d’état
standard ou personnalisé et pour quelques analyses statistiques simples.

193
SAS/GRAPH : Le module SAS/GRAPH permet de générer et d’interagir avec tout type de graphique :
histogramme, camembert, courbes multiples, cartographie, représentation 3D, image, vidéo, etc.

SAS/ACCESS : les modules SAS/ACCESS permettent de s’intégrer à différents systèmes de gestion


de base de données (SGBD) du marché et à certains progiciels de gestion intégré (PGI ou ERP en
anglais : Enterprise Resource Planning). Voici une liste d’exemple non exhaustive SAS/ACCESS
Interface to SAP BW, to Teradata, to DB2, to MySQL, to ODBC, to OLE DB, to ORACLE, to PC Files,
to PeopleSoft, Etc.

SAS/STAT: Le module SAS/STAT regroupe l’essentiel des fonctions d’analyses statistiques


proposées par SAS.

SAS/ETS (Econometric and Time Series): Le module SAS/ETS regroupe l’essentiel des fonctions
d’économétrie, de séries chronologiques.

SAS/OR (Operational Research) : Le module SAS/OR regroupe des fonctions avancées de recherche
opérationnelle comme la programmation linéaire, la programmation non-linéaire ou bien l’optimisation
de graphe. L’un des problèmes le plus fréquent d’optimisation et de minimiser ou de maximiser une
équation sous contraintes. Par exemple, maximiser la marge, minimiser les coûts où minimiser le
temps sous contraintes.

SAS/IML (Interactive Matrix Language) : Le module SAS/IML est un langage de programmation


matriciel.

Tous ces modules nécessitent de programmer en SAS. Ci-dessous l’interface SAS/BASE Windows,
pour les programmeurs SAS.

194
Quelques packages :
Les packages ci-dessous sont présentés à titre d’information, la liste des modules intégrés n’est pas
toujours présentée et peut être soumise à des changements.

SAS Enterprise Guide


SAS Enterprise Guide est une interface permettant de manipuler des données, de faire des analyses
statistiques et des rapports. Cette application développée en « .NET » est donc une application
uniquement Windows. Enterprise Guide génère du code SAS, qui est exécuté par un moteur SAS
base. SAS Enterprise Guide ne peut être utilisé sans une connexion à un socle SAS/BASE. SAS
Enterprise Guide génère du code SAS qui peut être exécuté soit par la plateforme SAS, soit
directement par SAS/BASE.

Voici ci-dessous une liste des principales fonctionnalités de SAS Enterprise Guide.

195
196
SAS Enterprise Miner
SAS Enterprise Miner est le module de Data Mining de SAS. C’est une « usine » à modèle permettant
l’industrialisation de l’exploitation intensive de gigantesques bases de données.

Dans la barre des tâches (en haut) se trouve les outils de SAS Enterprise Miner ordonnés selon la
méthodologie SEMMA : (Sample – Explore – Modify – Model - Assess)
On peut noter :
Sample : préparer les échantillons de Data Mining
Input Data Source : On l’utilise pour définir la table sur laquelle on va travailler, le rôle des
variables et leurs mesures.
Data Partition : On l’utilise pour partitionner la table d’entrée en deux ou trois sous
ensembles, par une partie des données pour construire le modèle, et une pour le valider.
Explore : avant de faire des modèles, explorer les données et les analyser
Multiplot est un outil rapide pour visualiser les distributions, et donc détecter les valeurs
manquantes, les valeurs aberrantes, etc.
Insight : outil d’analyse descriptive des données, analyses interactives simples et multivariées.
Modify : suite à l’exploration des données, modifier les données.
Replacement permet le remplacement des valeurs manquantes par différentes méthodes.
Transforme Variable permet de transformer les variables
Model : création de plusieurs modèles de différentes familles
Tree : pour la création d’arbres de décision
Regression : pour la création de régressions
Neural Network : pour la création d’arbres de décision
Assess : comparaison des modèles pour sélectionner le plus pertinent.
Assessment : permet de comparer les modèles.

197
SAS STAT STUDIO
Interface sortie avec SAS 9.2, permet notamment l’exploration interactive des données. SAS Stat
Studio est l’évolution de SAS/Insight.

AppDev Studio
SAS AppDev Studio est l’outil de développement basé sur Eclipse permettant notamment de :
• Créer des interfaces clientes
• Créer des servlets, des applets, pour construire des applications clientes sur les technologies
Web
• Créer des portlets pour compléter le Portail
• Créer des « plug-in » à ajouter aux clients Java
• Développer des applications analytiques et de pilotage en client léger, Java ou Windows
• Exploiter au mieux la puissance du serveur SAS dans des applications de pilotage sur mesure
• Un environnement de développement complet et autonome, pour concevoir tous types
d’applications

SAS® Data Integration Server


SAS® Data Integration Studio est une interface cliente Java de la plateforme décisionnelle SAS. Elle
fait partie des packages « SAS Data Integration Server » et « SAS Enterprise Data Integration
Server ».
SAS Data Integration Server comprend notamment SAS/Base, SAS/CONNECT, ETL Studio et LSF.
SAS Enterprise Data Integration Server comprend notamment SAS/Base, SAS/CONNECT,
SAS/SHARE, 2 SAS/Access au choix (), ETL Studio, SAS Data Quality Server et LSF.
LSF est un Ordonnanceur permettant comme son nom l’indique d’ordonnancer des flux de processus.
ETL Studio permet de créer des flux de processus, qui une fois créés, vont être déployés pour
l’ordonnancement.
SAS Data Quality Server est intégré à la plateforme SAS suite au rachat de la société Data Flux en
2000. La qualité des données, c’est notamment :
Audit de données
Définition et Suivi des indicateurs de qualité
Définition des standards
Correction des données
Intégration : dé-doublonnage, consolidation, augmentation

198
SAS® Intelligence Storage Server
SAS 9.1 Base, SAS Integration Technologies, SAS Scalable Performance Data Server, SAS OLAP
Server, SAS OLAP Cube Studio, SAS OLAP Server.
Stockage : SAS Scalable Performance Data Engine (SPDE – moteur de donnée à performance
évolutive) est un SGBD interne à SAS et Scalable Performance Data Server SDPS et un SGBD SAS
indépendant. Pour le stockage des informations dans le Data Warehouse, SAS propose de multiples
technologies en fonction des problématiques. Toutes ces technologies sont des solutions
décisionnelles et ne sont pas du tout destinées au stockage opérationnel. Les « rollback segment » et
la gestion des contraintes d’intégrité ne sont pas des problèmes décisionnels. Tout comme ces bases
définies et dédiées pour le décisionnel et qui sont inadaptées à l’opérationnel, les bases de données
opérationnelles, sont généralement très mal adaptées au décisionnel, leurs performances mauvaises
car elles gèrent des problèmes opérationnels, ce qui les surchargent. Pour les petits Data Warehouse,
cela passe, mais pas pour les complexes. Parmi les technologies proposées par l’éditeur SAS,
notons :
• les tables SAS Base sont destinées aux faibles volumétries
• les bases SPDE aux fortes volumétries
• les bases SPDS aux très fortes volumétries
• SAS OLAP server permet la création et la gestion des tables multidimensionnelles. Les hyper
cubes sont en fait des tables SPDS et peuvent donc être parallélisées par le moteur SPDE ou
SPDS.
• le module SAS/SHARE permet le partage en lecture et en écriture des tables
• les vues permettent de ne pas trop alourdir le Data Warehouse
• Sur la base d’Information Maps, on peut créer des Data Mart virtuels (voir la partie stockage).

199
SAS® Business Intelligence Server
SAS 9.1 Base
SAS/Graph
SAS Integration Technologies
Enterprise Guide
SAS Office Integration Components
SAS Web Report Studio
SAS Information Map Studio

Reporting de masse : l’interface cliente Java SAS Information Map Studio, permet de créer des
« information Maps » que l’on peut comparer par bien des points aux « univers » de l’éditeur Business
Object, créé avec l’interface BO – Designer. L’interface client léger de reporting de masse SAS Web
Report Studio permet à des utilisateurs non informaticiens de créer leurs rapports simplement. SAS
Web Report Studio peut être comparé en plusieurs point avec l’outil BO.

SAS Information Maps Studio permet de créer des Informations Maps. Ci-dessus, dans la partie
gauche, se trouve le référentiel de métadonnées SAS, au milieu, les données physiques, qui comme
ci-dessous, peuvent avoir des relations complexes, ce qui est incompréhensible pour les non
informaticiens , et dans la partie droite de l’interface ci-dessus se trouve l’Information map, élément
formaté pour un groupe d’utilisateur non informaticien. Cette Information map permet de rendre
disponible l’information de manière compréhensible pour chaque utilisateur. Voir le chapitre sur les
Maps.

200
201
SAS Web Report Studio est une interface Web qui permet de créer des rapports. Ci-dessus, exemple
de la fenêtre générique de création de rapport. Ci-après, exemple du rapport simple créé.

202
SAS Office Integration Components offre la possibilité d’ouvrir des tables SAS, d’exécuter des
programmes SAS depuis la suite office.

203
SAS Information Delivery Portal :

Le portail décisionnel SAS est le point d’entrée vers un ensemble d’application Web décisionnelle. Par
exemple, une page présentant un rapport de synthèse et offrant des entrées vers l’application de
reporting de masse SAS Web Report Studio, vers l’interface de reporting de Data Mining de SAS
Enterprise Miner (Miner), …

204

Vous aimerez peut-être aussi