Principes et mise en œuvre du modèle OLAP -1°ère Partie- La modélisation multidimensionnelle 1

Preview:

Citation preview

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)

Recommended