Rémy Choquet - Université Lyon 2 - Master 2 IIDEE - 2006-2007

publicité
ETL
Extract - Transform - Load
Concept général d’analyse en ligne (rappels)
Rémy Choquet - Université Lyon 2 - Master 2 IIDEE - 2006-2007
Plan
• Définitions
• La place d’OLAP dans une entreprise
• OLAP versus OLTP
Les
règles
de
Codd
•
• La construction d’un entrepôt de données
• Requêtes multi-dimensionnelles
Définitions
Source: Wikipédia
•
Online Analytical Processing (OLAP), désigne les bases de données multidimensionnelles (aussi appelées
cubes ou hypercubes) destinées à l'analyse et il s'oppose au terme OLTP qui désigne les systèmes
transactionnels. Ce terme a été défini par Ted Codd en 1993 au travers de 12 règles que doit respecter une
base de données si elle veut adhérer au concept OLAP.
•
Ce concept est appliqué à un modèle virtuel de représentation de données appelé cube ou hypercube
OLAP. Il existe ensuite plusieurs déclinaisons semblables à des drivers qui permettent d'adapter le stockage
des données sur différents types de base de données pour implémenter le concept OLAP :
•
•
•
•
•
R-OLAP (Relational OLAP)
D-OLAP (Dynamic ou Desktop OLAP)
M-OLAP (Multidimensional OLAP)
H-OLAP (Hybrid OLAP)
S-OLAP (Spatial OLAP)
100
75
50
25
0
2004
2005
2006
2007
OLAP en entreprise (décisionnel) 1/3
Source: wikipédia
•
L’informatique décisionnelle (en anglais : DSS pour Decision Support System ou encore BI pour Business
Intelligence) désigne les moyens, les outils et les méthodes qui permettent de collecter, consolider,
modéliser et restituer les données d'une entreprise en vue d'offrir une aide à la décision et de
permettre aux responsables de la stratégie d'une entreprise d’avoir une vue d’ensemble de l’activité
traitée. Ce type d’application utilise en règle générale un datawarehouse (ou entrepôt de données) pour
stocker des données transverses provenant de plusieurs sources hétérogènes et fait appel à des
traitements lourds de type batch (sans ETL) pour la collecte de ces informations.
•
L’informatique décisionnelle s’insère dans l’architecture plus large d’un système d'information.
•
Les applications classiques « d’entreprise » permettent de stocker, restituer, modifier les données des
différents services opérationnels de l’entreprise (production, marketing, facturation comptabilité, etc.).
Ces différents services possèdent chacun une ou plusieurs applications propres, et les données y sont
rarement structurées ou codifiées de la même manière que dans les autres services. Chaque service
dispose le plus souvent de ses propres tableaux de bord et il est rare que les indicateurs (par exemple :
le chiffre d'affaires sur un segment de clientèle donné) soient mesurés partout de la même manière,
selon les mêmes règles et sur le même périmètre.
•
Pour pouvoir obtenir une vision synthétique de chaque service ou de l’ensemble de l’entreprise, il
convient donc que ces données soient filtrées, croisées et reclassées dans un entrepôt de données
central. Cet entrepôt de données va permettre aux responsables de l’entreprise et aux analystes de
prendre connaissance des données à un niveau global et ainsi prendre des décisions plus pertinentes,
d’où le nom d’informatique décisionnelle.
OLAP en entreprise (décisionnel) 2/3
•
•
•
•
•
•
Source: wikipédia
Les données applicatives métier sont stockées dans une (ou plusieurs) base(s) de données relationnelle(s) ou non
relationnelles.
Ces données sont extraites, transformées et chargées dans un entrepôt de données généralement par un outil de type
ETL (Extract-Tranform-Load) ou en français ETC (Extraction-Tranformation-Chargement)
Un entrepôt de données peut prendre la forme d’un datawarehouse ou d’un datamart. En règle générale, le
datawarehouse globalise toutes les données applicatives de l’entreprise, tandis que les datamarts (généralement alimentés
depuis les données du datawarehouse) sont des sous-ensembles d’informations concernant un métier particulier de
l’entreprise (marketing, risque, contrôle de gestion, ...). Le terme comptoir de données ou magasin de données est aussi
utilisé pour désigner un datamart.
Le reporting est vraisemblablement l'application la plus utilisée encore aujourd'hui de l’informatique décisionnelle, il
permet aux gestionnaires :
• de sélectionner des données relatives à telle période, telle production, tel secteur de clientèle, etc.,
• de trier, regrouper ou répartir ces données selon les critères de leur choix,
• de réaliser divers calculs (totaux, moyennes, écarts, comparatif d'une période à l'autre, ...),
• de présenter les résultats d’une manière synthétique ou détaillée, le plus souvent graphique selon leurs besoins ou
les attentes des dirigeants de l’entreprise.
Les programmes utilisés pour le reporting permettent bien sûr de reproduire de période en période les mêmes sélections
et les mêmes traitements et de faire varier certains critères pour affiner l’analyse. Mais le reporting n'est pas à
proprement parler une application d'aide à la décision. L'avenir appartient plutôt aux instruments de type tableau de bord
équipés de fonctions d'analyses multidimensionnelles de type Olap.
Les datamart et/ou les datawarehouses peuvent aussi alimenter des bases de données multidimensionnelles, qui
permettent l’analyse très approfondie de l’activité de l’entreprise, grâce à des statistiques recoupant des informations
relatives à des activités apparemment très différentes ou très éloignées les unes des autres, mais dont l’étude fait souvent
apparaître des dysfonctionnements, des corrélations ou des possibilités d’améliorations très sensibles.
L'interopérabilité entre les systèmes d'entrepôt de données, les applications informatiques ou de gestion de contenu, et les
systèmes de reporting est réalisée grâce à une gestion des métadonnées.
OLAP en entreprise (décisionnel) 3/3
OLAP vs OLTP
Caractéristiques
OLTP
OLAP
Utilisation
SGBD (production)
Datawarehouse
Opération typique
Mise à jour
Analyse
Type d’accès
Lecture/Ecriture
Lecture
Niveau d’analyse
Elémentaire
Global
Quantité d’information
échangées
Faible
Importante
Orientation
Ligne
Multidimension
Taille DB
Faible (max qq GB)
Importante (>TB)
Ancienneté des Données
Récente
Historique
L'objectif des bases OLTP est de pouvoi répondre rapidement à des réponses simples, exemple : les ventes du
produit X. Les bases OLAP permettent des requêtes plus complexes : les ventes du produit X par vendeur,
région et par mois.
Les règles de Codd 1/2
•
•
•
•
•
Règle 1 : La règle de l'information: Toute l'information dans la base de données est représentée d'une et une
seule manière, à savoir par des valeurs dans des champs de colonnes de tables.
Règle 2 : La règle garantie d'accès: Toutes les données doivent être accessibles sans ambiguïté. Cette règle est
essentiellement un ajustement de la condition fondamentale pour des clefs primaires. Elle indique que chaque
valeur scalaire individuelle dans la base de données doit être logiquement accessible en indiquant le nom de la
table contenante, le nom de la colonne contenante et la valeur principale primaire de la rangée contenante.
Règle 3 : Traitement systématique des valeurs nulles: Le système de gestion de bases de données doit permettre
à chaque champ de demeurer nul (ou vide). Spécifiquement, il doit soutenir une représentation "d'information
manquante et d'information inapplicable" qui est systématique, distincte de toutes les valeurs régulières (par
exemple, "distincte de zéro ou tous autres nombres," dans le cas des valeurs numériques), et ce indépendamment
du type de données. Cela implique également que de telles représentations doivent être gérées par le système de
gestion de bases de données d'une manière systématique.
Règle 4 : Catalogue en ligne actif basé sur le modèle relationnel: Le système doit supporter un catalogue en
ligne, intégré, relationnel, accessible aux utilisateurs autorisés au moyen de leur langage d'interrogation régulier.
Les utilisateurs doivent donc pouvoir accéder à la structure de la base de données (catalogue) employant le même
langage d'interrogation qu'ils emploient pour accéder aux données de la base de données.
Règle 5 : La règle complète de sous-langage de données: Le système doit soutenir au moins un langage
relationnel qui:
(a) a une syntaxe linéaire
(b) peut être employé interactivement et dans des programmes d'application,
(c) supporte des opération de définition d'informations supplémentaires (incluant des définitions de vues),
de manipulation de données (mise à jour aussi bien que la récupération), de contraintes de sécurité et
d'intégrité, et des opérations de gestion de transaction (commencer, valider et annuler une transaction).
•
•
•
Les règles de Codd 2/2
•
•
•
•
•
•
•
•
Règle 6 : La règle de mise à jour des vues : Toutes les vues pouvant théoriquement être mises à jour doit pouvoir
l'être par le système.
Règle 7 : Insertion, mise à jour, et effacement de haut niveau: Le système doit supporter les opération par lot
d'insertion, de mise à jour et de suppression. Ceci signifie que des données peuvent être extraites d'une base de
données relationnelle dans des ensembles constitués par des données issues de plusieurs tuples et/ou de multiples
table. Cette règle explique que l'insertion, la mise à jour, et les opérations d'effacement devraient être supportées
aussi bien pour des lots de tuples issues de plusieurs tables que juste pour un tuple unique issu d'une table unique.
Règle 8 : L'indépendance de donnée physique: Les modifications au niveau physique (comment les données sont
stockées, si dans les rangées ou les listes liées etc...) ne nécessitent pas un changement d'une application basée sur les
structures.
Règle 9 : L'indépendance de donnée logique: Les changements au niveau logique (tables, colonnes, rangées, etc) ne
doivent pas exiger un changement dans l'application basée sur les structures. L'indépendance de données logiques et
plus difficile a atteindre que l'indépendance de donnée physique.
Règle 10 : L'indépendance d'intégrité:
Des contraintes d'intégrité doivent être indiquées séparément des programmes d'application et être stockées dans le
catalogue. Il doit être possible de changer de telles contraintes au fur et à mesure sans affecter inutilement les
applications existantes.
Règle 11 : L'indépendance de distribution: La distribution des parties de la base de données à de diverses
localisations devrait être invisible aux utilisateurs de la base de données. Les applications existantes devraient
continuer à fonctionner avec succès :
(a) quand une version distribuée du système de gestion de bases de données est d'abord présentée ; et
(b) quant des données existantes sont redistribués dans le système.
Règle 12 : La règle de nonsubversion: Si le système fournit une interface de bas niveau , alors cette interface ne
peut pas être employée pour contourner le système, par exemple, pour contourner une contrainte relationnelle de
sécurité ou d'intégrité.
•
•
Construire un entrepôt de données
Construire un entrepôt de données
4 phases de construction, lesquelles?
Construire un entrepôt de données
4 phases de construction, lesquelles?
• Conception
Construire un entrepôt de données
4 phases de construction, lesquelles?
• Conception
• Construction
Construire un entrepôt de données
4 phases de construction, lesquelles?
• Conception
• Construction
Administration
•
Construire un entrepôt de données
4 phases de construction, lesquelles?
• Conception
• Construction
Administration
•
• Restitution
Construire un entrepôt de données: Conception
•
•
•
•
•
•
•
•
Définition de la finalité de l’entrepôt:
Piloter quelle activité de l’entreprise
Déterminer et recenser les données à entreposer
Définir les aspects techniques de la réalisation
Le modèle de données
Les démarches d’alimentation
Les stratégies d’administration
La définition de l’espace d’analyse
Le mode de restitution
Construire un entrepôt de données: Construction
• Extraction des données des différentes Bases de
production (internes ou externes)
• Nettoyage des données, règles d’homogéinisation des
données sous formes de métadonnées
• Technique d’alimentation:
Chargement
des
données
dans
l’entrepôt
•
Fréquence
de
rafraîchissement
•
Construire un entrepôt de données: Administration
Plusieurs tâches pour assurer:
• La qualité et la pérennité des données
• La maintenance
La
gestion
de
configuration
•
• Les mises à jour
• L’organisation, l’optimisation du SI
• La mise en sécurité du SI
Construire un entrepôt de données: Restitution
• C’est le but du processus d’entreposage des données
• Elle conditionne le choix de l’architecture de l’entrepôt
et de sa construction
•
Elle doit permettre toutes les analyses nécessaires pour
la construction des indicateurs recherchés
• Plusieurs outils d’aide à l’analyse sont disponibles sur le
marché, ex: Business Object
Requêtes multi-dimensionnelles
On crée, un cube:
• Utilisation de groupby donne naissance à un cube
Ensuite, on décline plusieurs axes de navigation:
• Le drill down: on précise un sous-valeur de dimension
Le
slice
and
dice:
on
fixe
une
valeur
d’une
des
•
dimensions
Requêtes multi-dimensionnelles: Exemples
Requêtes multi-dimensionnelles: Exemples
Schéma
Sales ( pid, sid, tid, volume)
Product (pid, pname, type, category)
Store (sid, sname, city, state, region)
Time (tid, day, month, quarter, year)
Requêtes multi-dimensionnelles: Exemples
Schéma
Sales ( pid, sid, tid, volume)
Product (pid, pname, type, category)
Store (sid, sname, city, state, region)
Time (tid, day, month, quarter, year)
Cube
Imaginons que l'utilisateur tiennent à connaitre le volume des ventes
en fonction de la ville du magasin, du type de produit et de l'année.
Nous aurons alors la requête suivante :
Select city,type,year, sum(volume)
from Sales,Product,Store,Time
where Sales.pid = Product.pid and
Sales.sid = Store.sid and
Sales.tid = Time.Tid
group by Store.city, Product.type, Time.Year
Requêtes multi-dimensionnelles: Exemples
Schéma
Sales ( pid, sid, tid, volume)
Product (pid, pname, type, category)
Store (sid, sname, city, state, region)
Time (tid, day, month, quarter, year)
Drill down
L'utilisateur remarque alors qu'il existe un problème sur
1996 et veut obtenir la même requête pour 1996 en
fonction de mois au lieu de l'année.
Select city,type, month, sum(volume)
from Sales,Product,Store,Time
where Sales.pid = Product.pid and
Sales.sid = Store.sid and
Sales.tid = Time.Tid and
Time.Year = "1996"
group by Store.city, Product.type, Time.Year, Time.Month
Cube
Imaginons que l'utilisateur tiennent à connaitre le volume des ventes
en fonction de la ville du magasin, du type de produit et de l'année.
Nous aurons alors la requête suivante :
Select city,type,year, sum(volume)
from Sales,Product,Store,Time
where Sales.pid = Product.pid and
Sales.sid = Store.sid and
Sales.tid = Time.Tid
group by Store.city, Product.type, Time.Year
Requêtes multi-dimensionnelles: Exemples
Schéma
Sales ( pid, sid, tid, volume)
Product (pid, pname, type, category)
Store (sid, sname, city, state, region)
Time (tid, day, month, quarter, year)
Drill down
L'utilisateur remarque alors qu'il existe un problème sur
1996 et veut obtenir la même requête pour 1996 en
fonction de mois au lieu de l'année.
Select city,type, month, sum(volume)
from Sales,Product,Store,Time
where Sales.pid = Product.pid and
Sales.sid = Store.sid and
Sales.tid = Time.Tid and
Time.Year = "1996"
group by Store.city, Product.type, Time.Year, Time.Month
Cube
Imaginons que l'utilisateur tiennent à connaitre le volume des ventes
en fonction de la ville du magasin, du type de produit et de l'année.
Nous aurons alors la requête suivante :
Select city,type,year, sum(volume)
from Sales,Product,Store,Time
where Sales.pid = Product.pid and
Sales.sid = Store.sid and
Sales.tid = Time.Tid
group by Store.city, Product.type, Time.Year
Slice & dice
L'utilisateur remarque alors que seule la ligne de produits
Pentium est intéressante pour l'analyse, il se restreint alors
à ce type de produits.
Select city , month, sum(volume)
from Sales,Product,Store,Time
where Product.type = "PentiumPC"
Sales.pid = Product.pid and
Sales.sid = Store.sid and
Sales.tid = Time.Tid and
Time.Year = "1996"
group by Store.city, Time.Month
TP 1
Téléchargement