Le Data Warehouse Ladjel BELLATRECHE LISI/ENSMA - Poitiers bellatreche@ensma.fr 1
Plan Entrepôt de données Modélisation multidimensionnelle OLAP Traitement/Optimisation des Requêtes Conduite de Projet «entrepôt» 2
Data, Data everywhere yet... I can t find the data I need data is scattered over the network many versions,... I can t get the data I need need an expert to get the data I can t understand the data I found available data poorly documented I can t use the data I found results are unexpected data needs to be transformed from one form to other 3
Introduction Pourquoi le data warehouse? Améliorer les performances décisionnelles de l entreprise Comment? En répondant aux demandes d analyse des décideurs Exemples Clientèle: Qui sont mes clients? Pourquoi sont-ils mes clients?, Comment les conserver ou les faire revenir (préférence d achat, habitudes, )? Ces clients sont-ils vraiment intéressants pour moi? Marketing, actions commerciales: où placer ce produit dans les rayons? Comment cibler plus précisément le mailing concernant ce produit?. 4
Introduction Raisons d être d un entrepôt de données Rassembler les données de l entreprise dans un même lieu sans surcharger les BD (systèmes opérationnels) Permettre un accès universel à diverses sources de données et assurer la qualité des données Extraire, filtrer, et intégrer les informations pertinentes, à l avance, pour des requêtes ultérieures Dégager des connaissances et faire un apprentissage sur l entreprise, le marché et l environnement 5
C est quoi un entrepôt de données? Industrie (Inmon 1992) Collection de données orientées sujets Consolidées dans une base de données unique Non volatiles et historisées variant dans le temps organisées pour le support d'un processus d'aide à la décision Recherche (Stanford 1995) Dispositif de stockage d informations intégrées de sources distribuées, autonomes, hétérogènes 6
Modélisation par sujet APPLICATIONS Production SUJETS Clients Gestion de stocks Vendeur Facturation Produit Livraison 7
Architecture d un entrepôt de données 1. Approche virtuelle (ou le non-entrepôt) Outils d analyse Inconvénients: pas de réelle intégration des données Middleware différentes vues non-réconciliées pas de vues dans le temps les requêtes peuvent facilement bloquer les transactions en cours 8
Architecture d un entrepôt de données: physique Phase Intégration Phase Traitement & Analyse Relationnelles Entrepôt de données Serveur OLAP* Rapports Réseaux Extraire Transformer Nettoyer Intégrer Rafraîchir Requêtes SELECT Objet FROM WHERE Légataires * OLAP: On-Line Analytical Processing Data Marts 9
Exploitation de l entrepôt Business Intelligence: Possibilité de visualiser et d exploiter une masse importante de données complexes Trois principaux outils: OLAP :On-Line Analytical Processing Data mining: fouille de données Formulation de requêtes et visualisation des résultats 10
Architecture d un entrepôt de données Souvent une architecture trois-tiers Serveur d entrepôt ( Warehouse Database Server ) Très souvent un système relationnel (ex. Oracle, Teradata de NCR) Serveur OLAP ( OLAP Server ) de type ROLAP, MOLAP, ou HOLAP (détails plus loin) Clients Outils de requêtes et de production de rapports Outils d analyse et de prospection de données 11
Domaines d applications Banque, Assurance Détermination des profils client (prêt, ) Commerce Ciblage de clientèle Compagnies de grande production Aménagement des rayons (2 produits en corrélation) Compagnies téléphoniques Santé 12
Base de données vs. Entrepôt de donnée Pourquoi dissocier une BD d un ED? Les objectifs de performances dans les BD ne sont pas les mêmes que ceux dans les EDs : BD : requêtes simples, méthodes d accès et d indexation ED : requêtes OLAP souvent complexes!!! La nécessité de combiner des données provenant de diverses sources, d effectuer des agrégations dans un ED et d offrir des vues multidimensionnelles Les données d un ED sont souvent non volatiles et ont donc une plus longue durée de vie que celles d une BD 13
Modélisation classique (OLTP) Le modèle relationnel Table, attributs, tuples, vues, Normalisation (redondance) Requêtes simples (sélection, projection, jointure, ) Analyse difficile de l activité Le critère temps Représentation du passé Un fardeau pour les systèmes OLTP 14
Exemple Table historique Compte(NC, DateOp, Solde) Questions (ou Requêtes) Quel est le solde courant du client 525? % critère temps SELECT Solde FROM Compte WHERE NC = 525 AND DateOp = (SELECT MAX(DateOp) FROM Compte WHERE NC = 525) Quels sont les soldes courants de mes clients? 15
Requêtes décisionnelles plus complexes!! Exemples Combien de clients âgés entre 20 et 30 ans et résidant à Poitiers ont-ils acheté une caméra vidéo au cours des 5 dernières années? Quelle est la répartition des ventes par produit, ville et par mois au cours de la présente année? Quelles sont les composantes des machines de production ayant eu le plus grand nombre d incidents imprévisibles au cours de la période 1992-97? Critère temps est la base de l analyse décisionnelle 16
Récapitulatif Caractéristiques Opération Modèle Normalisation Données Mise à jour Consolidation Perception Opérations Taille Bases de données Gestion courante Surtout entité-relation Plus fréquente Actuelles, brutes Immédiate Très faible Bidimensionnelle Lecture et écriture Des giga-octets Entrepôts de données Support à la décision Étoile, flocon de neige Rare Historiques, agrégées Plutôt différée Très élevée Multidimensionnelle Lecture et rafraîchissement Plutôt des téra-octets 17
OLAP Traitement analytique interactif (Codd) typique dans les systèmes informationnels Catégorie de traitements dédiés à l aide à la décision Analyses diverses (multidimensionnelles) Information : surtout dérivée et sommaire Aide à la prise de décision 18
Modélisation Multidimensionnelle Dimension: Présente le point de vue selon lequel on veut voir le données décrites par un ensemble d attributs Axe de l analyse Exemple: Commandes, achats, réclamations, produits, clients,... Mesures/faits Fonction numérique qui peut être évaluée en tout point du data cube en agrégeant les données correspondant à ce point mesure d activité (critère d analyse) 19
Exemples des Faits Chiffre d affaire, nombre de ventes, gain,... le fait de vente Chaque enregistrement de fait représente le total des ventes d un produit dans un magasin dans une journée 20
Hyper cube OLAP Objectifs Obtenir des informations déjà agrégées selon les besoins des utilisateurs Représentation de l information dans un hyper cube à N dimensions Opérations OLAP Fonctionnalités qui servent à faciliter l analyse multidimensionnelles: opérations réalisables sur l hyper cube 21
Exemple d un cube de données PRODUIT Total Crème Lait Jus Trim1 10 TEMPS Trim2 Trim3 Trim4 20 21 99 51 Total Marseille Perpignan Toulouse Total V I L L E Le cube est adapté d un des transparents de J. Han Total Global 22
Multidimensional View of Data Sales volume (measure) as a function of product, time, and geography (dimensions). Region Dimensions: Product, Region, Time Hierarchical summarization paths Industry Country Year Category Region Quarter Product Product City Month Week Office Day Time
Comment stocker le cube de données ROLAP: Relational On-Line Analytical Processing The data cube is stored as relational table(s): a fact table with dimension tables MOLAP: Multidimensional On-Line Analytical Processing the data cube is stored as multi-dimensional array(s). 24
Modèle ROLAP ROLAP: Relational On-Line Analytical Processing Exploiter l expérience des modèles relationnels (un grand succès!!) Il faut des modèles bien adaptés aux ED! Schéma en étoile (star schema) Schéma en flocon de neige (snowflake schema) Schéma mixte (des deux précédents) 25
Modèle en étoile Autant de tables de dimension qu il existe de dimensions Exemple Temps, Produit, Client Une table de faits contenant la clé de chaque dimension et des mesures Exemple montant en dollars, nombre d unités vendues 26
Schéma en étoile TEMPS Table de dimensions Table de dimensions Code temps Date Année Mois Jour 1094 n-uplets CLIENT Code client Sexe Ville Etat Table des faits VENTES Code temps Code produit Code client Quantitée vendue Coût_dollars Coût_unitaire Table de dimensions PRODUIT Code produit Nom produit Prix unitaire Taille Poids gamme Type_paquet 300 000 n-uplets Age 3 000 000 n-uplets 100 000 000 n-uplets 27
Requête type SELECT P.brand, sum(dollars_sold), sum(units_sold) FROM SALES S, PRODUCT P, TEMPS T WHERE S.PID = P.PID (Jointure) AND S.TID = T.TID (Jointure) AND T.Quarter = 1 Q 97 (Sélection) GROUP BY P.brand ORDER BY P.brand TIME Requêtes de jointure en étoile Plusieurs de jointure Suivies par des sélection TID Day Month Quarter Year Holiday_flag Schéma en étoile Star Schema SALES TID PID SID Dollars_sold Units_sold CustomerID PRODUCT PID Description Brand Category STORE SID Name Address 28
Avantages & Inconvénients + Simple + Le plus utilisé!!! Possibilité de redondance car les tables de dimension ne sont pas nécessairement normalisées Taille de dimensions plus grosse 29
Modèle en flocon de neige Variante du modèle en étoile Les tables de dimension sont normalisées Réduction de la redondance mais exécution parfois plus lente des requêtes (jointure de tables) Modèle adopté par Oracle!! Modèle mixte Seules certaines tables sont normalisées 30
Exemple d un modèle en flocon de neige Year Year Month Month Year Date Date Month Sales Fact Table Date Product Product ProductNo ProdName ProdDesc Category QOH Country Country Region State State Country City City State Measures Store StoreID City Store Customer unit_sales dollar_sales Yen_sales Cust CustId CustName CustCity CustCountry 31
Définition d un schéma en étoile avec DMDL define cube ventes_star [temps, item, branche, lieu]: Montant_vente = sum(somme), moyenne_vente = avg(somme), unités_vendues = count(*) define dimension temps as (TID, Année, mois, jour) define dimension Produit as (PID, nom_item, marque, taille, poids) define dimension Client as (Cid, Nom, Sexe, Age, Ville) 32
Définition d un schéma snowflake avec DMQL define cube ventes_snowflake [temps, item, branche, lieu]: Montant_vente = sum(somme), moyenne_vente = avg(somme), unités_vendues = count(*) define dimension temps as (Id_temps, jour, jour_semaine, mois, trimestre, année) define dimension item as (Id_item, nom_item, marque, type, fournisseur(id_fournisseur, type_fournisseur)) define dimension branche as (Id_branche, nom_branche, type_branche) define dimension lieu as (Id_lieu, rue, ville(id_ville, département, pays)) 33
Estimation de la taille d un entrepôt Dimensionner l entrepôt Choix des granularités Choix d une machine/sgbd (benchmark) Exemple: Supermarché Auchan Dimensions Fait Temps : 4 ans * 365 jours = 1460 jours Magasin : 300 (national) Produit: 200000 références GENCOD (10% vendu par jour) 1460 * 300 * 20000 = 8.76 milliards d enregistrements Nombre de champs de clé = 3 Nombre de champs de faits = 4 Table des faits: 8.76 * 10 9 * 7 * 4 octets = 245 Go 34
MOLAP: Représentation Tableaux Temps Ville Produit Trim1 M P T Trim2 M P T Trim3 M P T Trim4 M P T Total M P T Tot Crème 8 4 6 9 27 Lait Jus Total 22 23 19 29 93 21 24 25 29 99 51 Répartition des ventes par produit, temps et ville M : Marseille, P : Perpignan, T : Toulouse 35
ROLAP versus MOLAP(I) MOLAP the storage model is an n-dimensional array Front-end multidimensional queries map to server capabilities in a straightforward way Direct addressing abilities Poor storage utilization when the data is sparse 36
ROLAP versus MOLAP(II) ROLAP exploits services of relational engine effectively provides additional OLAP services design tools for DSS schema performance analysis tools to pick aggregates to materialize SQL comes in the way of sequential processing and column aggregation Some queries are hard to formulate and can often be time consuming to execute 37
ROLAP vs. MOLAP Stockage Avantages Inconvénients ROLAP Standard bien établi Efficace pour le transactionnel Capacité d expansion élevée (téra-octets) Absence de vue conceptuelle SQL peut être inadéquat pour la formation de tableaux croisés MOLAP Implémentation souvent plus performante que ROLAP Inadéquat pour le transactionnel Capacité d expansion limitée (dizaines de giga-octets) Absence de standard 38
Serveurs ROLAP [Microstrategy] 39
Serveurs MOLAP 40
Hybrid OLAP HOLAP combines both ROLAP and MOLAP Data is partitioned in two subsets: infrequently used data is stored as relational tables frequently used data is stored as multidimensional arrays Données brutes dans ROLAP Données agrégées dans MOLAP The separation is transparent to the end user. Example if the DW keeps data from 1990, till today, the most recent years are stored in arrays while the first ones in tables 41
Opérations de base OLAP Group By Roll-up (ou drill-up) Drill-down Slice & dice Pivot Opérations OLTP classiques 42
Navigation dans un cube Visualization OLAP capabilities Interactive manipulation 43
Opérations multidimensionnelles Agrégations (consolidation) de données (précalculées) Réduction de temps de calcul Définition de hiérarchies dans les dimensions («granularités») Exemples Temps: jours/mois/trimestres/années Géographie: ville/région/pays 44
Exemple d hiérarchie dans dbminer (IBM) 45
GROUP BY Find total Sales for each city SELECT CityName, Sum(Sales) FROM SALES, LOCALIZATION WHERE SALES.LID = LOCALIZATION.LID GROUP BY CityName 46
ROLL-UP Agrégation des mesures en allant d un niveau particulier de la hiérarchie vers un niveau plus général Exemples Given total sales city, we can roll-up to get sales by state Syntaxe: SELECT... GROUP BY ROLLUP(Grouping-column-reference_list) Drill-Down: opération inverse de roll-up 47
Drill-Down Opération inverse du Roll-up Exemples Ventes par produit, ville et par heure (au lieu de produit, ville et jour). Par ajout d une dimension Exemple: ventes par produit, localisation, temps et fournisseur 48
Slice & dice Slice et dice projection et sélection du modèle relationnel Pivot (rotate) Réoriente le cube pour visualisation 49
Optimisation des requêtes Caractéristiques des entrepôts: Grand volume de données (TB) Requêtes décisionnelles complexes Peu de mises à jour (ajout seulement!) Exigence des décideurs: Temps de réponse raisonnable Respect des délais Objectif: Exécution rapide des requêtes la complexité des requêtes ou des données Nécessité de techniques d optimisation 50
Techniques utilisées Vues matérialisées Une vue est une requête nommée Une vue matérialisée : les données résultant de sa requête sont stockées et maintenues Index Structures permettant d'associer à une clé d un n- uplet l'adresse relative de cet n-uplet Traitement parallèle Groupement Fragmentation 51
Vues matérialisées Exigence de ressources: Espace disque Coût de maintenance (rafraîchissement des données) Coût de calcul Impossibilité de matérialiser toutes les vues Problème de Sélection des Vues (PSV): Sélectionner un ensemble de vues afin de maximiser ou minimiser une fonction objectif sous une contrainte Fonction «objectif»: Optimiser le coût d exécution des requêtes ou Optimiser le coût de maintenance 52
Exemple CREATE MATERIALIZED VIEW VUE1 ENABLE QUERY REWRITE REFRESH COMPLETE START WITH 1999-03-28 NEXT SYSDATE + 1 AS SELECT * FROM Vente, Client, Article WHERE Vente.noClient = Client.noClient AND Vente.noArticle = Article.noArticle 53
Maintenance des vues matérialisées Vues matérialisées sont calculées à partir des sources (tables) Mise à jour des sources implique la mise à jour des vues Deux méthodes de maintenance Statique Incrémentale 54
Réécriture des requêtes Processus de réécriture: Après le processus de sélection des vues, toutes les requêtes définies sur l entrepôt doivent être réécrites en fonction des vues Sélectionner la meilleure réécriture pour une requête est une tâche difficile. Processus supporté dans la plupart des SGBD multidimensionnels (Oracle) 55
Index avancés Inconvénient: Exigence de ressources (espace disque, coût de maintenance) Index populaires dans les entrepôts: Index simple: sur une seule table ou une seule vue (arbre B, index binaire, index de projection) Index de jointure: sur plusieurs tables dans un schéma en étoile (index de jointure en étoile [Redbrik]) Problème de sélection d index Algorithmes de sélection d index 56
Techniques d indexation Index bitmap (index binaire) Populaire dans les produits OLAP Microsoft SQL server, Sysbase IQ, Oracle 8i Un vecteur de bits pour chaque valeur d attribut Opération bit à bit pour l exécution de requêtes Comparaison Jointure Agrégation Plus compact que les B+ arbres (compression) 57
Exemple IdProduit Produit Ville Id1 Clous Lyon Id2 Vis Paris Id3 Clous Paris Id4 Ecrous Lyon 58
Exemple Index binaire sur les produits Id Clous Vis Ecrous Id1 1 0 0 Id2 0 1 0 Id3 1 0 0 Id4 0 0 1 Index binaire sur les villes Id Paris Lyon Id1 0 1 Id2 1 0 Id3 1 0 Id4 0 1 59
Caractéristiques des Bitmaps Les opérations de comparaison, jointure et d agrégation sont réduites à une arithmétique sur les bits, d où un traitement plus efficace La réponse à une requête multidimensionnelle va consister à faire l intersection des vecteurs de bits des diverses dimensions Réduction significative en espace et nombre d accès en mémoire secondaire 60
Bitmap vs. B*Tree Storage Assuming 1,000,000 row table Oracle8 Tuning Manual 61
Paramètres CREATE_BITMAP_AREA_SIZE Determines the amount of memory allocated for bitmap creation. Default is 8MB. If cardinality is small, this value can be reduced significantly. 62
Index de jointure Pré-calcule une opération de jointure Utilisé avec les schémas en étoile Maintient des relations entre Une clé étrangère (identifiant des tables de dimensions) Les clés primaires de la table des faits 63
Index de jointure Index de jointure idlignevente idligneclient idlignearticle v1 c1 a1 v2 c2 a2 v3 c3 a1 Table Vente idligne noclient noarticle datevente montant v1 1 10 10/01/2000 100 v2 2 20 10/01/2000 200 v3 3 10 10/01/2000 500 Table Client idligne noclient nomville c1 1 Montréal c2 2 Ottawa c3 3 Montréal c4 4 Paris Table Article idligne noarticle catégorie a1 10 Conifère a2 20 Conifère a3 40 Conifère a4 50 Feuillu a5 60 Feuillu 64
Jointure en étoile entre table de faits et dimensions SELECT * FROM Vente, Client, Article WHERE Vente.noClient = Client.noClient AND Vente.noArticle = Article.noArticle 65
Bitmap join index A bitmap join index is a bitmap index on one table (usually the fact table) that references columns in other tables (usually the dimension tables) Syntaxe: CREATE BITMAP INDEX sales_cutgender_bjix ON sales (customers.gender) FROM sales, customers WHERE sales.cust_id = customer.cust_id; 66
Exemple d un index de jointure binaire Customer.gender = M Customer.gender = F Sales record1 1 0 Sales record2 0 1 Sales record3 1 0 Sales record4 1 0 Sales record5 1 0 Sales record6 1 0 SELECT sales.time_id, customer.cust_gender, sales.amount FROM sales, customers WHERE sales.cust_id = customer.cust_id; 67
Intérêt des index de jointure binaire CREATE BITMAP INDEX EMPDEPT_IDX ON EMP1(DEPT1.DEPTNO) FROM EMP1, DEPT1 WHERE EMP1.DEPTNO = DEPT1.DEPTNO SELECT /*+ INDEX(EMP1 EMPDEPT_IDX) */ COUNT(*) FROM EMP1, DEPT1 WHERE EMP1.DEPTNO = DEPT1.DEPTNO; COUNT(*) --------------- 14 Elapsed: 00:00:00.67 68
Bitmap Join Index Example 2 EMP5/EMP6 have 2 million rows each with empno indexes on them: create bitmap index emp5_j6 on emp6(emp5.empno) from emp5, emp6 where emp5.empno=emp6.empno; Index created. Elapsed: 00:02:29.91 69
Bitmap Join Index Example 2 select count(*) from emp5, emp6 where emp5.empno=emp6.empno COUNT(*) ------------------- 2005007 Elapsed: 00:01:07.18 70
Bitmap Join Index Example 2 Execution Plan ---------------------------------------------------------- 0 SELECT STATEMENT Optimizer=CHOOSE 1 0 SORT (AGGREGATE) 2 1 NESTED LOOPS 3 2 TABLE ACCESS (FULL) OF 'EMP6' 4 2 INDEX (RANGE SCAN) OF 'EMP5I_EMPNO' (NON-UNIQUE) 71
Bitmap Join Index Example 2 FORCE THE USE OF THE BITMAP JOIN INDEX: 1 select /*+ index(emp6 emp5_j6) */ count(*) 2 from emp5, emp6 3* where emp5.empno=emp6.empno COUNT(*) ------------------- 2005007 Elapsed: 00:00:00.87! Same as with small tables! 72
Bitmap Join Index 10,000 Times Faster Execution Plan ---------------------------------------------------------- 0 SELECT STATEMENT Optimizer=CHOOSE 1 0 SORT (AGGREGATE) 2 1 BITMAP CONVERSION (COUNT) 3 2 BITMAP INDEX (FULL SCAN) OF 'EMP5_J6' 73
Fragmentation ou Partitionnement 74
What is partitioning? The decomposition of large objects into smaller, more manageable pieces Physical partitioning introduced in Oracle8, although logical partitioning (via partitioned views) has been around for some time Physical partitions have individual, and potentially different, storage attributes Each partition is stored in a separate segment and (optionally) in a separate tablespace 75
La fragmentation Types Fragmentation horizontale : en fonction des tuples Fragmentation horizontale dérivée : partitionner une table en fonction d une autre fragmentée Fragmentation verticale : en fonction des attributs Fragmentation mixte Fragmentation horizontale est bien adaptée aux ED : Partitioning option [Oracle 9i] 76
Partitioning option Entrées : Un schéma en étoile S (F, D 1, D 2,, D n ) Un ensemble de requêtes fréquentes Q Sortie : Un ensemble de sous-schémas en étoile Méthode : Décomposer une (des) table(s) de dimensions en utilisant la fragmentation horizontale Décomposer la table des faits en fonction des tables de dimensions fragmentées 77
Exemple VENTE1 CLIENT1 PRODUIT Age 18 VENTE2 CLIENT2 TEMPS VENTE3 CLIENT3 18 < Age 30 VENTE4 CLIENT4 30 < Age 40 Age > 40 78
Partitioning Support in Oracle8 Oracle supports partitioned tables and indexes. An example of a DDL that creates a partitioned table: CREATE TABLE sales (acct_no NUMBER(5), acct_name CHAR(30), amount_of_sale NUMBER(6), week_no INTEGER) PARTITION BY RANGE (week_no) (PARTITION sales1 VALUES LESS THAN (4) TABLESPACE ts0, PARTITION sales2 VALUES LESS THAN (8) TABLESPACE ts1,... PARTITION sales13 VALUES LESS THAN (52) TABLESPACE ts12) 79
Partition Joins Oracle8i Prior to 8i, Oracle would join partitioned tables by joining the entire tables together. In Oracle9i, tables can now be joined by partitions if they are equipartitioned tables (Tables partitioned using the same partition key and same partition break points) 80
List Partitioning 9i create table dept_part (deptno number(2), dname varchar2(14), loc varchar2(13)) partition by list (dname) (partition d1_east values ('BOSTON', 'NEW YORK'), partition d2_west values ('SAN FRANCISCO', 'LOS ANGELES'), partition d3_south values ('ATLANTA', 'DALLAS'), partition d4_north values ('CHICAGO', 'DETROIT')); Table created. 81
Advantages of Partitioning Many database/application environments and situations can benefit from partitioning, including: VLDBs Tight maintenance schedules High availability environments OLAP/DSS environments High I/O throughput requirements Partition transparency 82
Cycle de vie d un entrepôt Planification Spécification des besoins Analyse Conception Construction Déploiement 83
Cycle de vie Spécification des besoins Rassembler clairement et fidèlement les besoins des utilisateurs (décideurs) Clarifier les objectifs spécifiques Comportement de la clientèle, analyse de tendances de prévisions, etc. Énumérer les dimensions Définir l architecture du système (modèle de données), l usage final (rapports, requêtes, outils d analyse et visualisation) 84
Cycle de vie Analyse Développer le schéma de l entrepôt Définir les processus nécessaires à la mise en place de l entrepôt (extraction de données à partir des sources, transformations) Conception (3 niveaux) Conceptuel : mise au point du schéma, définition des métadonnées Logique : adapté aux particularités du serveur de l entrepôt (ROLAP, MOLAP, etc.) Physique: choix d index, vues matérialisées, fragmentation 85
Cycle de vie Construction Développer des programmes d extraction, d épuration et de transformation de données Déploiement Fournir une installation initiale incluant la connexion aux données sources, la synchronisation et la réplication de données Permettre des extensions futures Offrir la formation pour les groupes d intervenants Offrir les divers mécanismes d administration de l ED (reprise, sécurité, performances) Offrir les outils nécessaires à l exploitation des données et à la consultation des méta-données 86
Outils requis Le référentiel Des outils d accès aux BD Des outils d intégration des données des BD vers l ED Des outils de nettoyage de données Le gestionnaire de l entrepôt de données Des outils de réplication 87
Le référentiel Il permet de: Rassembler les méta-données Constituer un seul modèle à travers l organisation Connaître la description des données sources Décrire les transformations nécessaires avant le chargement de l entrepôt (formules de calcul, recodification, etc.) Indiquer la qualité des données, les permissions d accès, dates de rafraîchissement 88
Le référentiel Exemples de méta-données BD sources et leurs contenus Schéma de l entrepôt (tables, vues, index) Dimensions et hiérarchies Requêtes prédéfinies Règles de transformation et de rafraîchissement Profils et groupes d usagers 89
DW- Integration There is no consistency in encoding, naming conventions, among different data sources When data is moved to the warehouse, it is converted. related, equivalent,? Accommodations is_located_in City (1) (1) has_name belongs_to Owner (1) Name Hotels has_name (1) Name (n) has_rating owned_by Owner-Name (1) Rating-Type Schema A Schema B Semantic Heterogeneities Naming Missing Information Constraints
Différentes sources Dans une entreprise, les données peuvent être dans différentes sources hétérogènes Relationnelles Objets Objet-relationnels Fichiers (HTML, XML, etc.) etc. 91
Hétérogénéité des données Source d information Gestion commerciale Gestion marketing Gestion financière, paie Suivi production Fichier mailings Référence nationales Environnement Sysbase/unix SQL server/nt DB2/IBM Oracle/NT Fichier ASCII Document excel 92
Transformation des données Conversion de formats: des formats de la base opérationnelle dans les formats de la base de l entrepôt Convertir / uniformiser les noms des attributs (D-Naiss, Naissance, Date_N, etc.) --> «date_naissance» Uniformiser les valeurs d attributs (1923, 16.10.1923, 16-octobre-23) --> 19231016 Uniformiser les tables de codes internes (1001 = roue, 1002 = cadre, 1003 = guidon, 1004 = pédale,...), substituer par des tables de conversion dans le metadictionnaire. 93
Épuration des données Donnée erronées analyse erronée! Élimination des données erronées ( dirty data ) Plusieurs questions se posent [Moss98] Quelles sont les données que l on doit épurer? Où peut-on faire l épuration? À la source ou plutôt une fois les données chargées dans l entrepôt Comment peut-on mener l opération? À l aide des outils commercialisés ou plutôt à l aide de programmes maison taillé sur mesure 94
Épuration des données Homonymes et synonymes Identifiants multiples pour une même occurrence dans deux BDs distinctes (le client Jean Dupont est identifié par 1000 dans BD1 et 2580 dans BD2) Valeurs manquantes l absence de données peut avoir une signification en soi aucune valeur ne s applique (ex. salaire d un chômeur) valeur inconnue (ex. cause de décès d un grand-parent) valeur confidentielle (montant de l épargne) 95
Rafraîchissement des données (I) Processus de détection des changements dans les BD sources et propagation de ces changements au niveau de l ED La périodicité dépend des besoins des utilisateurs et des coûts d accès à l ED Deux types de rafraîchissement Statique : à partir de zéro Incrémental : modification du contenu de l ED en fonction uniquement des changements opérés dans les BD depuis la dernière mise à jour 96
Rafraîchissement des données(ii) Outils de propagation des changements Oracle Replication Server, Sybase Replication Server, IBM Data Propagator Plusieurs outils offrent les deux alternatives de rafraîchissement (statique et incrémental) 97
Data Marts A data mart (departmental data warehouse) is a specialized system that brings together the data needed for a department or related applications. OLAP client Queries OLAP client OLAP client Queries Datamart Datamart Middleware Extract Data Queries Central Data warehouse Datamart Datamart Centralized Decentralized
Data marts & EDs Outils d analyse Outils d analyse data mart vues vues data warehouse data mart meta-données dictionnaire modèle de données d entreprise Outils d extraction et consolidation des données 99
Les erreurs à éviter [Barquin97] Démarrer le projet sans la bénédiction des personnes clés dans l entreprise Placer la barre trop haut Objectifs trop ambitieux lors de la phase de l élaboration de l ED Frustration des membres de l exécutif lorsque les objectifs ne sont pas atteints Adopter un comportement politiquement naïf L ED va aider les gestionnaires à prendre de meilleures décisions 100
Les erreurs à éviter [Barquin97] Charger l ED avec trop d information Simplement parce qu elle est disponible dans les BD La conception d un ED est identique à celle d une BD!! Sous-estimer les besoins en performance et en capacité d expansion Choisir comme gestionnaire d ED une personne davantage orientée vers la technologie que vers les usagers 101
Conclusion : forces et faiblesses L un des principaux facteurs ayant contribué au succès de certaines grandes entreprises (Wal-Mart, Coca Cola) est la mise en place d ED Croissance accélérée au niveau du marché d ED Technologie encore immature mais en plein développement Confluence de plusieurs technologies : bases de données, analyses statistiques sophistiquées, prospection de données,.. Mise en œuvre complexe et longue 102
Principaux produits Informix IBM DB2 Data warehouse OLAP Microsoft SQL Server 2000 Data analysis Services OLAP Oracle Express 103
Tendances Selon une étude menée par META group* (1998-99), les systèmes les plus répandus sont: SGBD pour les ED: Oracle suivi de Microsoft SQL Server Produit OLAP: Essbase (Hyperion) suivi de PowerPlay (Cognos) puis de DSS Suite (MicroStrategy) Outils de conception (CASE): Designer 2000 (Oracle) suivi de Erwin (Platium/Logic Works) Outils query/reporting: Access, Excel, Business Objects, Reports (Oracle), etc. Outils de data mining: Data mining/enterprise Miner (SAS) suivi de SPSS Product * META Group is a leading research and consulting firm, focusing on information technology 104