• Aucun résultat trouvé

Eduardo Almeida. Master Alma Université de Nantes

N/A
N/A
Protected

Academic year: 2022

Partager "Eduardo Almeida. Master Alma Université de Nantes"

Copied!
62
0
0

Texte intégral

(1)

Data Warehouse - OLAP

Eduardo Almeida

Master Alma – Université de Nantes {eduardo.almeida@univ-nantes.fr}

(2)

Objectif

Présenter les concepts de base d'un Data Warehouse (DW) et On Line Analytical

Processing (OLAP).

Présenter des fonctions et outils pour

construire un environment DW/OLAP.

(3)

Bibliographie

Berson, Alex e Smith, Stephen J.

Data Warehousing, Data Mining & OLAP

Kimball, Ralph

The Data Warehouse Toolkit

Inmon, Willian H.

Building the Data Warehouse

Thomsen, Erik OLAP Solutions

www.olapreport.com

Wu and Alejandro P. Buchmann (1998)

Encoded Bitmap Indexing for Data Warehouses

www.dmreview.com

http://asktom.oracle.com

Donsez, Didier (présentations) Université Joseph Fourier

(4)

Problèmes typiques

• “Nous avons une grande quantité de données, mais nous ne pouvons pas les utiliser”

• “La pire chose pour un directeur est d'avoir deux personnes présentant le même rapport avec des résultats

différents”

• “Montre-moi juste l'information la plus importante”

• “Nous voulons croiser les informations de toutes les façons possibles”

“The Data Warehouse Toolkit” - Ralph Kimball

(5)

Information correctesInformation correctes

Format correctFormat correct

A l'heureA l'heure

Gestionnaires Gestionnaires d'informatique d'informatique Les décideurs

Les décideurs

CoûtCoût

IntegrationIntegration

Passage à l'échelle etPassage à l'échelle et performance

performance

FlexibilitéFlexibilité

ValeurValeur

Défi des entreprises

Comment une entreprise peut atteindre les

deux objectifs?

(6)

Définition de Bill Inmon (1996)

«Le Data Warehouse est une collection

de données orientées sujet, intégrées,

non volatiles et historisées, organisées

pour le support d’un processus d’aide à

la décision.»

(7)

Data Data Warehouse Warehouse

SQL Server SQL Server Mainframe

Mainframe

DB2 MVS, VSAM, DB2 MVS, VSAM,

CICS/IMS, CICS/IMS, NCR Teradata NCR Teradata OLE DB/ODBC

OLE DB/ODBC OracleOracle

Transformation Transformation

Data Warehousing

(8)

CLIENT UNITES

M ARCHE FINANCES

Data Data Warehouse Warehouse

Nous pouvons d velopper des bases de donn es é é cibl es sur quelques sujets limit s é é

Orient sujet é

Data Warehouse est ...

(9)

DATADATA

WAREHOUSE WAREHOUSE

Ext ernal files Ext ernal files

SGBDs OLTP SGBDs OLTP

Ext ernal files form at s Ext ernal files form at s

ODBC and API s´ ODBC and API s´

–Int gration S mantiqueé é : les incompatibilit s entre donn es é é –de diff rentes sourcesé

–Sources H t rog nesé é è : il doit tre possible d acc der des ê ’ é à –donn es de plusieurs typesé

Int gr é é Int gr é é

Data Warehouse est ...

(10)

Dans un DW les donn es sont stock es en forme é é

d'historique pour permettre une analyse temporelle.

P riode é

P riode é 1 P riodeP riodeéé 2 P riodeP riodeéé 3 P riodeP riodeéé 4

Chargem ent inicial

Chargem ent inicial M ise jourM ise jouràà M ise jourM ise jouràà

Bas sur les t em ps é Bas sur les t em ps é

Data Warehouse est ...

(11)

OLTPOLTP

INSERT INSERT INSERT

INSERT

UPDATE UPDATE

UPDATE UPDATE

LOADLOAD

AN LISEÁ AN LISEÁ DE DADOS DE DADOS

AN LISEÁ AN LISEÁ DE DADOS DE DADOS

DWDW

Non volatil signifie que, une fois entr es dans é l'entrep t, les donn es ne doivent pas changer. ô é

Non Volat il Non Volat il

Data Warehouse est ...

(12)

Principe

Base de Données utilisée à des fins d’analyse.

Caractéristiques :

orientation sujets («métiers»)

données intégrées

données non volatiles

données datées

(13)

• Systèmes Opérationnels - OLTP (On Line Transaction Processing) :

–Les bases de données sont mises à jour en transactionnel –SGBD Relationnels

–Centré sur la mise à jour ponctuelle de données –Les transactions échangent de faibles quantités

d’informations avec l’utilisateur et travaillent toujours sur les versions les plus récentes des données.

DW versus OLTP

(14)

• Systèmes Tactiques - OLAP (On Line Analysis Processing) –Les bases de données décisionnelles sont consultées en interactif (spreadsheets) pour l'analyse des données (ex:

histogrammes)

–Navigation dans la base selon diverses dimensions constituées par des attributs de tables

–Consultation des versions historiques de la base

–Les données proviennent des differentes sources (sites)

DW versus OLTP

(15)

Caractéristiques OLTP DW

Opérations typiques Mise à jour Analyse Type d’accès Lecture et écriture Lecture Niveau d’analyse Élémentaire Global Écrans Fixe Variable Quantité d’info échang. Faible Importante

Orientation Ligne Multidimensions Taille BD au niveau de GB au niveau de TB Ancienneté des données Récente Historique

DW versus OLTP

(16)

DW versus OLTP

OLTP DW

structures de données complexes (3FN)

structures de données multidimensionnelles peu

beaucoup

beaucoup quelques unes normalisées

rares

dénormalisées fréquentes indexes

jointure duplication

agrégation

(17)

La suite décisionnelle de base

Extract, Transform

and Load (ETL) OLAP

(18)

La suite décisionnelle (staging area)

ETL OLAP

(19)

La suite décisionnelle

(staging area and data marts)

ETL OLAP

(20)

Extract, Transform and Load (ETL)

• Données de production

–SGBD et supports physiques hétérogènes

–Qualité inégale des données –Représentations hétérogènes

(21)

Extract, Transform and Load (ETL)

• L'objectif est

l'obtention de données :

–centralisées –fiables

–interprétables

(22)

Extract, Transform and Load (ETL)

• Transformation :

–Filtrer –Trier

–Homogénéiser –Nettoyer

–...

(23)

Extract, Transform and Load (ETL)

• Chargement :

–Grande quantité

–Différents types de tableaux –Gestion des structures

spécialisées (materialized views and summary tables)

–...

(24)

• Banque

–Il est important de pouvoir regrouper les informations concernant un client afin de répondre à ses demandes de crédit

• Grande Distribution

–Il est intéressant de regrouper les informations des ventes pour déterminer les produits à succès, mieux suivre les phénomènes de mode, détecter les habitudes d’achats et les préférences par

secteur géographique.

• Mailing Ciblés

–Doivent être rapidement élaborés à partir de toutes les

informations disponibles sur un client lors de la commercialisation d’un nouveau produit

• Télécommunications

–Analyser le trafic

• Etc…

Exemples d’Applications

Concernées

(25)

Exemple pratique (Télécommunications)

• Mis en service d'une enterprise de télécommunication au Brésil

–Constructiuon d'un réseau –Recherche de clients

• Le système de télécommunication au Brésil a été privatisé. Le Brésil a été divisé en 4 parties:

–Région 1 (bleue) –Région 2 (rouge) –Région 3 (jaune)

–Région 4 (long distance)

(26)

Exemple pratique (Télécommunications)

• Où devons-nous construire le réseau?

–On a acheté des banques de données (master card, visa, banques, list, etc)

–On a utilisé un DW pour profiter de ses données

(27)

Exemple pratique (Télécommunications)

• O

n a généré des données pour les charger dans un système de geoprocessing

(28)

Exemple pratique (Télécommunications)

• La structure du DW

–SGBD : Oracle 8i -> 9i

–OLAP : Business Objects 5.5, Microstrategy 7 –ETL : PowerMart

–OS : HP-UX 11 (sur une machine 32 proc.) –Equipe : 12 personnes

• Chargement

–Tous les jours

–17 systèmes (CRM, billing, traffic, etc)

–Quelques millions de tuples (8 mi dans la table de trafic) –14 heures pour terminer

(29)

Exemple pratique (Banque)

• Etude des fermetures de compte.

–7.000 clients par mois

• Comment prévoir la fermeture d'un compte?

–Vérifier les attributs le plus importants –Créer un cycle de vie client

(30)

Exemple pratique (Banque)

• Actions de marketing

–Nouveaux produits

–Fidélisation des clients –Vente croisée

• Actions de crédit

–Réévaluation de crédit –Telemarketing

(31)

Exemple pratique (Banque)

• La structure du DW

–SGBD : Sybase IQ 11

–OLAP : Business Objects 4

–ETL : Programmes (COBOL, C/C++, Java, etc) –OS : IBM AIX

–Equipe : 30 personnes

• Chargement

–Tous les mois

–67 systèmes (compte, assurances, investissements, etc.) –3 jours pour terminer

(32)

Conception du DW

(33)

• Logique

–Phase conceptuelle et abstraite (la définition des types d'informations dont vous avez besoin)

–Organise une série de relations (dimensions et tables de fait)

–Schéma multidimensionnel (étoile et flocon)

Conception du DW

(34)

• Physique

–Conception physique

–Prise en considération des matériels et des E / S –Parallélisme et de partitionnement

–Materialized Views

Conception du DW

(35)

Conception logique

(36)

• Logique

–Dimensions et tables de faits

–Identifier les sujets ou domaines de données –Il n'y a pas de règle (par exemple, 3FN)

–Identifier l'information qui appartient à une table de faits et ses dimensions associées

Conception logique

(37)

–Les attributs sont normalement descriptifs (valeurs textuelles)

–Ils permettent d'interpréter les faits

–Les dimensions couramment utilisées sont les clients, les produits et le temps.

Table de Dimension

PRODUITS

#id_produit id_fournisseur produit

prix_unitaire stock

FOURNISSEUR

#id_fournisseur fournisseur

adresse ville pays

code_postal CLIENTS

#id_client nom

age ville pays

code_postal

TEMPS

#id_temps jour

moins années

(38)

–Une table de faits a généralement deux types de

colonnes: les faits numériques et les clés étrangères des dimensions.

–Une table de faits contient des faits au niveau de détail ou des faits qui ont été agrégés

Table de Faits

APPEL id_client id_temps num_appele debut_appel fin_appel

OPERATION id_client

id_temps id_operation valeur

COMMANDE id_client

id_produit id_temps date_comm date_envoi

(39)

• Les tables de faits ont une grande quantité de données

• Les dimensions ont une petite quantité de données

• Les dimensions acceptent la redondance

• Normalement, les dimensions sont chargées dans la mémoire cache

Dimension x Faits

(40)

Conception logique

(41)

Schéma étoile

COMMANDE id_client

id_produit id_magasin id_temps date_comm date_envoi quantite remise

PRODUITS

#id_produit fournisseur produit

prix_unitaire stock

CLIENTS

#id_client nom

age ville pays

code_postal

TEMPS

#id_temps jour

mois année MAGASIN

#id_magasin addresse

num_tel ville

Table de Faits

Dimension Dimension

(42)

Schéma étoile x ER

Etoile ER

(43)

Schéma flocon

COMMANDE id_client

id_produit id_magasin id_temps date_comm date_envoi quantite remise

PRODUITS

#id_produit id_fournisseur id_gamme produit

prix_unitaire stock

CLIENTS

#id_client nom

age ville pays

code_postal

TEMPS

#id_temps jour

mois années MAGASIN

#id_magasin addresse

num_tel ville

FOURNISSEUR

#id_fournisseur addresse

ville

num_tel

GAMME

#id_gamme description

(44)

Schéma flocon

Structure hiérarchique (plusieurs niveaux de dimensions).

Plusieurs jointures pour la reconstruire.

Dimensions plus petites.

(45)

Processus de conception

Choisir le processus à modéliser

Choisir les grains des faits

Niveau de détails (transaction, récapitulatifs mensuels, etc)

Choisir les dimensions (temps, clients, produits, etc)

Choisir les mesures de faits

De préférence des quantité numériques

additives

(46)

Processus de conception

D. Donsez, 2006

(47)

Conception physique

(48)

– Passer de la conception logique à la physique

Convertir les données recueillies au cours de la phase de conception logique dans une

description physique

Se concentrer sur la performance

Les aspects de maintenance de la base de

données

(49)

– Passer de la conception logique

à la physique

(50)

Structures physiques

Tablespaces

Tables and Partitioned Tables

Views

Integrity Constraints

Dimensions

Structures crées pour l'amélioration de la performance

Indexes and Partitioned Indexes

Materialized Views

(51)

Dimensions

Dénormalisé

create dimension fournisseur_dim

LEVEL no_fournisseur IS (fournisseurs.no_fournisseur) LEVEL societe IS (fournisseurs.societe)

LEVEL ville IS (fournisseurs.ville) LEVEL pays IS (fournisseurs.pays) HIERARCHY geog_rollup (

ville CHILD OF pays

);

(52)

Dimensions

Normalisé

create dimension stock_dim

LEVEL id_produit IS (produits.REF_PRODUIT) LEVEL produit IS (produits.NOM_PRODUIT)

LEVEL fournisseur IS (fournisseurs.NO_FOURNISSEUR) LEVEL fournisseur_name IS (fournisseurs.societe)

HIERARCHY geog_rollup ( produit CHILD OF fournisseur

JOIN KEY (produits.NO_FOURNISSEUR) REFERENCES FOURNISSEUR

);

(53)

Indexes and Partitioned Indexes

BITMAP index

Reduced response time for large classes of ad hoc queries

Reduced storage requirements compared to other indexing techniques

Dramatic performance gains even on hardware with a relatively small number of CPUs or a small amount of memory

Efficient maintenance during parallel DML and loads

(54)

Indexes and Partitioned Indexes

BITMAP index simple

BITMAP

B_nantes B_paris B_rennes

1 0 0

0 1 0

0 0 1

1 0 0

1 0 0

0 1 0

... ... ...

CLIENTS

... Ville ...

Nantes Paris Rennes Nantes Nantes Paris ...

(55)

Indexes and Partitioned Indexes

BITMAP index encodé (Wu et Buchmann, 1998)

BITMAP ENCODE

B0 B1

0 0

0 1

1 0

0 0

0 0

0 1

... ...

MAPPING

Nantes 00

Paris 01

Rennes 10

... ...

CLIENTS

... Ville ...

Nantes Paris Rennes Nantes Nantes Paris ...

Calculé par log

2

(n)

n = domaine (par exemple, log

2

(3)=2)

(56)

Indexes and Partitioned Indexes

BITMAP

CREATE BITMAP INDEX ville_bm_ix ON fournisseurs(pays);

Ex.

select pays,count(*) from fournisseurs group by pays;

(57)

Indexes and Partitioned Indexes

Sans BITMAP

Elapsed: 00:00:00.04 Execution Plan

---

0 SELECT STATEMENT Optimizer=ALL_ROWS (Cost=4 Card=16 Bytes=144) 1 0 SORT (GROUP BY) (Cost=4 Card=16 Bytes=144)

2 1 TABLE ACCESS (FULL) OF 'FOURNISSEURS' (TABLE) (Cost=3 Ca rd=29 Bytes=261)

Avec BITMAP

Elapsed: 00:00:00.02 Execution Plan

---

0 SELECT STATEMENT Optimizer=ALL_ROWS (Cost=1 Card=16 Bytes=144) 1 0 SORT (GROUP BY NOSORT) (Cost=1 Card=16 Bytes=144)

2 1 BITMAP CONVERSION (COUNT) (Cost=1 Card=29 Bytes=261) 3 2 BITMAP INDEX (FULL SCAN) OF 'VILLE_BM_IX' (INDEX (BITMAP))

(58)

Materialized Views

Vue agrégée qui améliore le temps d'exécution des requêtes

Pré-calcul des jointures et des opérations d'agrégation antérieures au stockage

Souvent appelée “résumé”.

(59)

Materialized Views

L'optimiseur de requêtes reconnaît automatiquement quand une vue

matérialisée peut et doit être utilisée pour

satisfaire une demande.

(60)

Materialized Views

Tout d'abord, les logs des vues matérialisées doivent être créés

CREATE MATERIALIZED VIEW LOG ON fournisseurs WITH SEQUENCE, ROWID

(NO_FOURNISSEUR,SOCIETE,VILLE,PAYS) INCLUDING NEW VALUES;

(61)

Materialized Views

CREATE MATERIALIZED VIEW fournisseurs_pays BUILD IMMEDIATE

REFRESH FAST

ENABLE QUERY REWRITE AS select pays,count(*) from fournisseurs

group by pays;

(62)

Materialized Views

select pays,count(*) from fournisseurs group by pays;

Elapsed: 00:00:00.00 Execution Plan

---

0 SELECT STATEMENT Optimizer=ALL_ROWS (Cost=3 Card=16 Bytes=352) 1 0 MAT_VIEW REWRITE ACCESS (FULL) OF 'FOURNISSEURS_PAYS' (MAT _VIEW REWRITE) (Cost=3 Card=16 Bytes=352)

Références

Documents relatifs

– la transaction s’effectue totalement, valide les deux opérations de mise à jour qui garantissent l’équi- libre, et laisse donc après le COMMIT la base dans un état cohérent

C'est un ensemble de tables et de vues dans lesquelles sont stockées les descriptions des objets de la base, et qui sont tenues à jour automatiquement par le système de gestion de

● les 2 entités peuvent être placées dans la même table.

Systèmes de gestion de fichiers, collection de données, bases de données (modèle réseau)2. - nécessité de savoir où et comment sont stockées quelles

Question 25 Vous devez transférer 500Go d’une base de données de production avec Oracle 10G sur un serveur Unix vers une base de données de développement pour faire des tests

Question 20 Vous devez transférer 500Go d’une base de données de production avec Oracle 10G sur un serveur Unix vers une base de données de développement pour faire des tests

Quelle est la commande setfacl qui permet d'atteindre le résultat voulu (droits de lecture sur le répertoire /DONNEES/resultats à Tarik et aux personnes du groupe

● les 2 entités peuvent être placées dans la même