Date post: | 04-Apr-2015 |
Category: |
Documents |
Upload: | daniele-floch |
View: | 107 times |
Download: | 8 times |
Principes et mise en œuvre du modèle OLAP
-1°ère Partie- La modélisation
multidimensionnelle
1
2
Le modèle multidimensionnel (1)
« On a vendu U unités du produit X dans la région Y à la date Z"
● Plusieurs données : les ventes, le produit, la région; la date
● On peut classifier ces données :
● Une valeur mesurée : la vente <==== Le fait● Des données qui permettent de situer la valeur mesurée : le
produit , la région , la date <=== les Dimensions
Le modèle multidimensionnel est bien adapté pour représenter des données qui peuvent s’exprimer de la façon suivante:
Le Cube OLAP
3
Avec PALO L’accès à une donnée se fait de la façon suivante : PALO.DATA( <nom du serveur> ,
<nom du cube> , <Valeur de dimension 1> , <Valeur de dimension 2> , …. , <Valeur de dimension n> )
4
Le modèle multidimensionnel (2)● Quand on passe à 3 dimensions, on obtient un
cube.
Les produits: Ecrous, Vis, Boulons, Joints, …
Les dates: Janvier, Février, Mars, …
Les régions: Est, Ouest, Centre
5
Le modèle multidimensionnel (3)
● On peut modèliser la base de données Ventes produits
Table des faits
Tables des dimensions
6
Le modèle multidimensionnel
Dimension :
●Une dimension peut être définie comme un thème, ou un axe (attributs), selon lequel les données seront analysées (en fonction de …)
Ex. Temps, Découpage administratif, Produits
●Une dimension contient des membres organisés en hiérarchie, chacun des membres appartenant à un niveau hiérarchique (ou niveau de granularité) particulier
Ex. Pour la dimension Temps, les années, les mois et les jours peuvent être des exemples de niveaux hiérarchiques. 1998 est un exemple de membre du niveau Année
7
Le modèle multidimensionnel
Granularité: Une dimension contient des membres organisés en
hiérarchie:
l Chacun des membres appartient à un niveau hiérarchique (ou niveau de granularité) particulier
l Granularité d’une dimension : nombre de niveaux hiérarchiques
l Exemple: Le temps année – semestre – trimestre - mois
8
Granularité d’une dimension (2)
9
Le modèle multidimensionnel
Mesure :● Une mesure est un élément de donnée sur
lequel portent les analyses, en fonction des différentes dimensions
● Ex. coût des travaux, nombre d’accidents, ventes, dépenses, Salaires.
10
Le modèle multidimensionnel
Le Fait :
●Un fait représente la valeur d’une mesure, mesurée ou calculée, selon un membre de chacune des dimensions (ex. ce qui est recueilli par les systèmes transactionnels).
Ex. « le coût des travaux en 1995 pour la région 02 est 250 000 $ » est un fait qui a été obtenu en ajoutant toutes les mesures prises tout au long de l‘année 1995 sur tous les découpages administratifs appartenant à la région 02.
11
Le modèle multidimensionnel
● Cube :● Un ensemble de mesures organisées selon un ensemble de
dimensions (aussi hypercube)
● Ex. Un cube de ventes qui comprend :
● Les dimensions Temps, Produit, Région
● La mesure Ventes en euro.
12
Les différents modèles de données
Il y a plusieurs modèles possibles pour les cubes OLAP:
•Le modèle en étoile •Le modèle en flocon de neige (snow flake) •Le modèle en constellation
Le modèle en étoile
Fait
Idmesure1mesure2…mesurenId_dimension1Id_dimension2…Id_dimensionn
Dimension1
IdValeur
Dimension2
IdValeur
Dimensionn
IdValeur
id_dimension1 = id
id_dimension2 = id
Id_dimension1n= id
13
Les dimensions ne sont pas hiérarchisées.
Le modèle en flocon de neige (snow flake)
Fait
Dimension1
Dimension2
Dimensionn
Dimension12Dimension11
Dimension21 Dimension22
Dimensionn1
Dimensionn2
Les dimensions sont hiérarchisées14
Le modèle en constellation
On n’a un ensemble de faits repérés selon des dimensions
dimension
Fait
15
Principes et mise en œuvre du modèle OLAP
-3ème partie- Opérations sur les cubes
OLAP
16
Principes des opérations sur les cubes OLAP
● Les opérateurs appliqués sur un cube sont algébriques : Le résultat est un autre cube
● Les opérateurs peuvent être combinés
● Les opérateurs permettent :● Des extractions
– Slicing : Prendre une tranche du cube– Dicing : Extraire un sous-cube
● Des changements de granularité d’une dimension
– Roll-up (agrégation d’une dimension -> Résumé)– Drill-down (informations plus détaillées)
● Des pivots-17-
Exemples à partir du cube …
-18-
100 80
33
26
28
80
100
52
174
Locations • NA (North America)• Euro• Asia• Africa
Time • 2000
• Q1, Q2,Q3,Q4• 2001
• Q1, Q2,Q3,Q4• 2002
• Q1, Q2,Q3,Q4• 2003
• Q1, Q2,Q3,Q4
Product• Computer
Component• Modems• Wireless
Mouse• Other Components
• CellPhones• Radar
Detector
L’opérateur Slicing (1)
● Sélection de tranches du cube par des prédicats selon une dimension
-19-
SliceProduct =« wireless Mouse »
28 52
L’opérateur Slicing (2)
● Sélection de tranches du cube par des prédicats selon une dimension
-20-
Slice pour la Location = « Asia »80
L’opérateur Dicing (1)
● Extraction d’un sous-cube
-21-
Dice forProduct=« Cellphones »AndLocation=« NA »AndYear=« 2000 »
L’opérateur Roll-up (dézoomer)
● 100
● 80
● 33
● 26
● 28
● 80
● 100
● 52
● 174
-22-
28 => Wireless Mouse
59 => Radar Detector (33) + CellPhones (26)
Roll-up Products Components
L’opérateur Drill-down (zoomer)
● 100
● 80
● 33
● 26
● 28
● 80
● 100
● 52
● 174
-23-
254
80
33
28
28
80
52
52
100Computer
components
Other components 59 100
Drill-down sur ProductDes components vers les unités
L’opérateur pivot
● Changement d’axes
-24-
Pivot
Principes et mise en œuvre du modèle OLAP
- 4ème partie - Implémentations du modèle OLAP
-26-
Trois possibilités1. Relational OLAP (ROLAP)
● Données sont stockées dans un SGBD relationnel
● Un moteur OLAP permet de simuler le comportement d'un SGBD multi-dimensionnel
2. Multidimensional OLAP (MOLAP)● Structure de stockage en cube
● Accès direct aux données dans le cube
3. Hybrid OLAP (HOLAP)● Données stockées dans SGBD relationnel (données de base)
● ET une structure de stockage en cube (données agrégées)-27-
ROLAP (1)● Idée:
● Données stockées en relationnel.● La conception du schéma est particulière: schéma en
étoile, schéma en flocon● Des vues (matérialisées) sont utilisées pour la
représentation multidimensionnelle● Les requêtes OLAP (slice, rollup…) sont traduites en
SQL.
● Avantages/inconvénients● Souplesse, évolution facile, permet de stocker de gros
volumes.● Mais peu efficace pour les calculs complexes
-28-
ROLAP (2)● Architecture fonctionnelle
-29-
Exemples: • Hyperion (Oracle)• Mondrian (OLAP Open source écrit en java)
Exemple d’implémentation au dessus d’un SGBD relationnel
● CREATE MATERIALIZED VIEW <Table>(column_list) AS SELECT …
● La vue est pré-calculée par le SGBD● Pré-calcul des agrégats et jointures
● Elle est maintenue lors des mises à jour● Les requêtes sont reformulées contre la vue d'une manière
transparente pour l'usager
30
Exemple d’implémentation au dessus d’un SGBD relationnel
● Table:
Emp(#emp, job, salary)
● Définition de la vue:
CREATE MATERIALIZED VIEW
job_avg_sal
AS select job, avg(sal) avg_sal
FROM emp
GROUP BY job;
● Interrogation de la vue:
SELECT job FROM job_avg_sal
WHERE avg_sal > 10000
31
ROLAP et Modèle en étoile (1)● Principes
● Une (ou plusieurs) table(s) de faits comprenant une ou plusieurs mesures.
● Plusieurs tables de dimension dénormalisées : descripteurs des dimensions.
● Les tables de dimension n'ont pas de lien entre elles
● Avantages :
● Facilité de navigation
● Performances : nombre de jointures limité ; gestion des données creuses.
● Gestion des agrégats
● Inconvénients :
● Redondances dans les dimensions
● Alimentation complexe. -32-
ROLAP et Modèle en étoile (2)
-33-
●ROLAP et Modèle en étoile (3)
-34-
ROLAP et Modèle en étoile (4)
-35-
Exercice: A partir du schéma, Créer la vue matérialisée qui représente le fait « units _solds »
CREATE MATERIALIZED VIEW faits_units_sold AS
SELECT unit_solds , description || ' ' || color || ' ' || size as Product ,
year , city , store_name
FROM sales , product , period , store
WHERE product.product_code = sales.product_code
AND period.period_code = sales.period_code
AND store.store_code = sales.store_code
36
La vue matérialisée qui représente la fait « units _solds »
ROLAP et Modèle en flocons (1)
● Le schéma en flocons est dérivé du schéma en étoile
● Dans le modèle en flocons, les tables de dimensions sont normalisées MAIS la table des faits reste inchangée.
● Avec ce schéma, chacune des dimensions est décomposée selon sa (ou ses) hiérarchie(s).
-37-
D’un modèle dimensionnel en étoile …
-38-
… A un modèle dimensionnel en flocons
-39-
ROLAP et Modèle en flocons (2)
● Principes:● Modèle en étoile + normalisation des dimensions
● Utile lorsque les tables représentant les dimensions sont trop volumineuses
● Avantages :● réduction du volume
● Inconvénients :● navigation plus difficile à cause des nombreuses jointures
-40-
MOLAP (1)
● Idée:● Modélisation directe du cube
● Ces cubes sont implémentés comme des matrices à plusieurs dimensions– CUBE [1:m, 1:n, 1:p…] (mesure)
● Le cube est indexé sur ses dimensions
● Avantages/inconvénients:● rapide
● formats propriétaires
● ne supporte pas de très gros volumes de données -41-
MOLAP (2)
● Architecture fonctionnelle
● Exemples● PALO Server (+ Excel Add-in)
-42-
HOLAP (1)
● Hybrid OLAP● tables de faits et tables de dimensions stockées dans
SGBD relationnel (données de base)● données agrégées stockées dans des cubes
● Les requêtes vont chercher les données dans les tables et les cubes
● Solution hybride entre MOLAP et ROLAP offrant un compromis au niveau coût et performance -43-
HOLAP (2)● Architecture fonctionnelle
Non vu dans le cadre de ce cours
-44-
Principes et mise en œuvre du modèle OLAP
-4 ème partie- Le modèle OLAP: Généralités
-45-
On-Line Analytic Processing (1)
● OLAP est un terme pour décrire l'approche dimensionnelle de l'aide à la décision ● Tout comme le modèle relationnel, OLAP a été proposé
par Edgar Codd (1923-2003)
● Douze règles qui représentent l'étalon de mesure servant à comparer les systèmes OLAP
● 6 critères ont été ajoutés en 1995
-46-
On-Line Analytic Processing (2)
● F1-Multidimensional Conceptual View● Permet d'avoir une vision multidimensionnelle des données.
● F2-Intuitive Data Manipulation● La manipulation de données se fait directement à travers les
cellules d'une feuille de calcul, sans recourir aux menus ou aux actions multiples.
● F3-Accessibility : OLAP as a Mediator● OLAP est décrit comme un «middleware» qui se place entre les
sources de données hétérogènes et un front-end
● F4-Batch extraction vs interpretive● La base OLAP dispose de deux niveaux de données, atomiques
et agrégées (HOLAP) atteignables de façon transparente -47-
On-Line Analytic Processing (3)● F5-OLAP AnalysisModels (Nouvelle)
● support des quatre modèles d’analyse : Categorical(reporting), Exegetical (interactif avec front-end), Contemplative (What-if), Formulaic (Datamining)
● F6-Client-Server Architecture● Il est essentiel que le produit soit Client-Serveur mais aussi que
les composants serveur d'un produit OLAP intègrent facilement ses différents clients.
● F7-Transparency● L'utilisateur ne doit pas se rendre compte de la provenance des
données si celles-ci proviennent de sources hétérogènes.
● F8-Multi-User support● Les outils OLAP doivent fournir des accès concurrents, l'intégrité
et la sécurité. -48-
On-Line Analytic Processing (4)● F9-Treatment of Non-NormalizedData
● Il doit être impossible de modifier manuellement les données pré-calculées
● F10-Storing OLAP Results: Keeping Them Separate from Source Data
● Les données de transactions doivent être maintenues séparément des données d’exploitations OLAP
● F11-Extraction of Missing Values● Les valeurs absentes doivent être traitées comme des NULL et
non pas comme des 0
● F12-Treatment of Missing Values● Les valeurs absentes doivent être ignorées par l’analyseur OLAP
-49-
On-Line Analytic Processing (5)● F13-Flexible Reporting
● Lors de la création de rapports, les dimensions peuvent être présentées de n'importe quelle manière.
● F14-Uniform Reporting Performance● Les performances ne doivent pas être diminuées lors
d'augmentation du nombre de dimension ou de la taille de la base de données.
● F15-Automatic Adjustement of Physical Level● Le système OLAP ajuste automatiquement son schéma physique
pour s'adapter au type du modèle et au volume des données.
-50-
On-Line Analytic Processing (5)● F16-Generic Dimensionality
● Chaque dimension doit être équivalente par rapport à sa structure et ses capacités opérationnelles.
● F17-Unlimited Dimensions & Aggregation Levels● Dimensions et niveaux d'agrégations illimités.
● Techniquement, aucun produit ne se soumet à cette caractéristique parce que il n'y a pas d'entité illimitée sur un ordinateur limité !
● F18-Unrestricted Cross-dimensional Operations● Les calculs doivent être possibles à travers toutes les dimensions.
-51-
On-Line Analytic Processing (6)● FAST :
● Le système doit être conçu pour répondre aux requêtes de l'utilisateur en moins de cinq secondes
– Les analyses très simples moins d'une seconde
– Les plus compliquées, environ 20 secondes.
– Les temps de réponses doivent rester bons même avec beaucoup de données
● Si le système est trop lent, les utilisateurs estiment que l’application est «plantée»
● Nécessite d’architectures de stockage dédiées et d’algorithmes de prétraitement.
-52-
On-Line Analytic Processing (7)● ANALYSIS :
● Le système peut prendre en compte n'importe quel domaine ou analyse statistique, et fournir un résultat exploitable par l'utilisateur final, sans avoir à utiliser un langage de programmation
● L'utilisateur doit au moins pouvoir définir de nouveaux calculs ad-hoc et obtenir des états sous la forme souhaitée, sans programmation.
● L'analyse peut concerner des séries temporelles, allocations de coût, conversions de devises, recherche d'objectifs, gestion d'exceptions, etc.
-53-
On-Line Analytic Processing (8)
● SHARED :● Toutes les conditions de sécurité et de confidentialité doivent être
remplies, éventuellement jusqu'au niveau de la cellule
● Le système doit en particulier gérer les accès multiples en écriture en toute sécurité.
-54-
On-Line Analytic Processing (9)
● MULTIDIMENSIONNAL :● C'est la condition essentielle des applications OLAP.
● Les systèmes OLAP doivent fournir une vue "conceptuelle" multidimensionnelle des données, incluant le support des hiérarchies simples ou multiples.
-55-
●On-Line Analytic Processing (10)
● INFORMATION :● L’information comprend l'ensemble des données et des
informations dérivées, quel que soit leur volume et leur stockage.
-56-
OLTP / OLAP : Bilan (1)
● OLTP● Les utilisateurs SONT les
«rouages» de l’entreprise
● Beaucoup d’utilisateurs concurrents
● Ne traitent qu’un seul compte à la fois
● Exécutent un grand nombre de fois la même tâche
● Lisent et modifient les données
● Exigent des performances de temps réel
● OLAP● Les utilisateurs OBSERVENT
les «rouages» de l’entreprise
● Peu d’utilisateurs
● Traitent beaucoup de comptes simultanément
● Lisent uniquement les données qui sont souvent récapitulées
-57-
Les utilisateurs :
OLTP / OLAP : Bilan (2)
● OLTP● Nécessaire au fonctionnement
de l’entreprise
● Normalisé
● En règle générale non historisé (mises à jour)
● Maintenant (now)
● OLAP● Utilisée pour analyser le
fonctionnement de l’entreprise
● Souvent agrégées/récapitulées
● Le temps est fondamental
● Passé
-58-
Le contenu des données
OLTP / OLAP : Bilan (3)
● OLTP● Beaucoup de tables
● Petites requêtes sur une seul table
● Accès de type navigationnel
● Granularité des verrous minimum
● Peuvent être regroupées en îlots hétérogènes
● OLAP● Peu de tables mais de grande
taille
● Homogènes
● Données dénormalisées
● Requêtes larges sur une grosse quantité de données, ramenant un jeu limité
● Accès de type jointure
● Temps de réponses de l’ordre de quelques secondes à quelques dizaines de secondes
-59-
Structures de données
OLTP / OLAP : Bilan (4)
● OLTP● Forte disponibilité
● Sauvegardes fréquentes
● Beaucoup de petites transactions
● Peu de temps de maintenance off-line
● OLAP● Disponibilité faible
● Sauvegardes peu fréquentes mais très volumineuses
● En règle général, une transaction par jour (chargement de données)
● Non normalisée et redondante
● Beaucoup de maintenance, mais off-line
-60-
Administration
OLTP / OLAP : Bilan (5)