5
datawarehouse
medina5 edited this page 2025-09-10 21:59:34 +02:00
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Entrepôts de données

Un data warehouse, ou entrepôt de données, est un système de gestion de base de données conçu pour stocker, consolider et organiser de grandes quantités de données provenant de sources multiples en vue dune analyse et dun reporting. Il sert de référentiel centralisé où les données sont structurées de manière à faciliter la prise de décision et les analyses historiques dans les entreprises.

  • Centralisation des données : Un data warehouse intègre des données provenant de différentes sources (bases de données opérationnelles, ERP, CRM, fichiers externes, etc.). Ces données sont rassemblées dans un seul et même endroit pour un accès facilité et une vision globale des informations.
  • Historisation des données : Contrairement aux bases de données transactionnelles, qui stockent des données en temps réel ou à court terme, un data warehouse contient des données historiques. Il permet donc danalyser des tendances et deffectuer des prévisions basées sur plusieurs années dinformations.
  • Optimisation pour l'analyse : Les données dans un data warehouse sont structurées de manière à faciliter les requêtes analytiques complexes. Elles sont souvent organisées selon un modèle multidimensionnel (modèle étoile ou flocon) pour permettre une analyse rapide et facile à travers divers axes (produits, clients, régions, temps, etc.).
  • Extraction, Transformation, Chargement (ETL) : Les données intégrées dans un data warehouse passent par un processus ETL :
    • Extraction : Les données sont extraites des différentes sources.
    • Transformation : Les données sont nettoyées, agrégées et transformées pour être cohérentes entre elles.
    • Chargement : Les données transformées sont ensuite chargées dans le data warehouse.
  • Non volatile : Une fois les données intégrées dans lentrepôt de données, elles ne sont pas modifiées ou mises à jour, contrairement aux bases de données opérationnelles. Cela permet d'assurer une intégrité historique des informations pour des analyses fiables.
  • Orienté sujet: Les data warehouses sont souvent organisés par thème ou sujet dintérêt. Par exemple, un entrepôt de données peut avoir des sections dédiées aux ventes, aux finances, ou à la logistique. Cela permet aux utilisateurs d'accéder directement aux données pertinentes pour leurs besoins.

Architecture d'un data warehouse

Sources de données

Des données proviennent de différentes applications et bases de données (systèmes transactionnels, feuilles Excel, ERP, CRM, etc.).

Processus ETL

Ce processus assure la transformation et lintégration des données. Il comprend lextraction des données des systèmes sources, leur nettoyage, la gestion des incohérences, lintégration et le chargement dans lentrepôt.

Entrepôt de données

Il s'agit de la base de données centralisée où les données sont stockées de manière structurée pour faciliter lanalyse.

Outils d'accès et d'analyse

Les utilisateurs peuvent accéder aux données du data warehouse via des outils de Business Intelligence (BI) comme des tableaux de bord, des rapports, ou des outils de requête SQL.

Avantages d'un data warehouse

  • Consolidation des données : Il centralise les données provenant de diverses sources, ce qui permet une vision globale et cohérente de l'entreprise.
  • Analyse historique : Les données historiques stockées dans le data warehouse permettent d'identifier des tendances et de prendre des décisions stratégiques éclairées.
  • Amélioration des performances analytiques : Les entrepôts de données sont conçus pour optimiser les requêtes analytiques complexes, ce qui les rend plus rapides et efficaces que les bases de données transactionnelles.
  • Fiabilité et intégrité des données : Les processus ETL garantissent que les données sont nettoyées, transformées et harmonisées avant dêtre chargées dans lentrepôt, réduisant ainsi les risques derreurs.

Exemples d'utilisation d'un data warehouse

  • Analyse des ventes : Une entreprise peut utiliser un data warehouse pour analyser les tendances de vente sur plusieurs années, en segmentant les données par produit, région, ou période.
  • Prévision financière : Un entrepôt de données peut aider à compiler et à analyser des données financières provenant de différents services pour prévoir les performances futures.
  • Optimisation des opérations : En agrégeant des données de production, de logistique et de ventes, un data warehouse permet doptimiser les chaînes d'approvisionnement et les processus opérationnels.

Dans le cadre de la Business Intelligence (BI) et plus précisément dans la conception des entrepôts de données, les tables de faits et les tables de dimensions sont des concepts centraux du modèle en étoile ou modèle multidimensionnel.

Solutions

Pour les datawarehouse on utilise généralement des bases de données spécifiques qui sont des bases de relationnelle en colonnes.

Dans une base relationnelle classique (PostgreSQL, MySQL…), les données sont stockées par lignes : tous les champs dun enregistrement sont ensemble.

Dans une base colonnaire (DuckDB, ClickHouse, Apache Parquet, etc.), les données sont stockées par colonnes : toutes les valeurs dune même colonne sont regroupées.

Avantage : pour des requêtes analytiques qui lisent seulement quelques colonnes (par ex. SUM(prix) GROUP BY code_famille), on lit uniquement les colonnes concernées, ce qui accélère grandement les calculs.

  • Les bases colonnaires sont rapides pour lire et agréger beaucoup de données sur certaines colonnes.
  • Elles sont moins adaptées aux opérations OLTP (insertion/modification/suppression fréquente).
  • Souvent, elles compressent très bien les données par colonne, ce qui économise de lespace disque.
id,nom,age
1,Lucie,25
2,Léo,25
3,Laïla,28
Colonne id : [1, 2, 3]
Colonne nom : ["Lucie", "Léo", "Laïla"]
Colonne age : [25, 25, 28]

Bases colonnaires embedded

DuckDB parfois appellé “SQLite pour lanalytique” :

Base de données Open Source

ClickHouse : très performant, orienté OLAP, stockage colonnaire massif, très utilisé pour les logs et analytics temps réel.

MonetDB : historique, stockage par colonne, très rapide pour les analyses complexes.

Apache Kudu : souvent utilisé avec Hadoop/Spark, combine analytique et certaines opérations en ligne.

Citus / PostgreSQL : transforme PostgreSQL en stockage colonnaire pour les requêtes analytiques.

Base de données commerciales

Amazon Redshift : stockage colonnaire, scalable, cloud AWS.

Google BigQuery : storage colonnaire, serveurless, optimisé pour de très gros volumes.

Snowflake : cloud multi-cloud, stockage colonnaire, séparation stockage/compute.

Azure Synapse Analytics : similaire à Redshift mais sur Azure.

Définitions

  • OLTP pour Online Transaction Processing (Traitement transactionnel en ligne)
  • OLAP pour Online Analytical Processing (Traitement analytique en ligne) qui fonctionne en principe en lecture.

Tables de faits

Une table de faits est au cœur d'un entrepôt de données. Elle stocke des données quantitatives ou mesurables liées aux événements d'une entreprise. Ces événements sont souvent des transactions ou des interactions importantes que l'entreprise souhaite analyser. Les données de la table de faits représentent des mesures chiffrées (par exemple, ventes, revenus, quantité vendue, etc.), qui sont généralement utilisées pour l'analyse et l'évaluation des performances.

Caractéristiques d'une table de faits :

  • Granularité : Chaque ligne de la table représente un événement unique ou une transaction. La granularité définit le niveau de détail des faits (par exemple, un enregistrement par jour, par produit, par client, etc.).
  • Mesures : Les colonnes de la table de faits contiennent les mesures numériques (chiffres de vente, quantités, coûts, bénéfices, etc.).
  • Clés étrangères : Les tables de faits contiennent des clés étrangères qui se réfèrent aux clés primaires des tables de dimensions. Ces clés permettent de relier les faits aux informations contextuelles (produit, temps, client).
  • Taille : généralement la table la plus volumineuse de lentrepôt.

Tables de dimensions

Les tables de dimensions fournissent des informations qualitatives ou descriptives qui donnent un contexte aux données stockées dans les tables de faits. Elles ne contiennent généralement pas de mesures, mais des attributs qui décrivent les faits. Par exemple, dans une analyse des ventes, les dimensions pourraient être le produit, le client, ou le temps.

Relation entre les tables de faits et les tables de dimensions

La relation entre les tables de faits et de dimensions se fait par des clés étrangères. Par exemple, une vente spécifique (enregistrée dans la table de faits) est liée à un produit précis, un client spécifique et une date donnée (enregistrés dans les tables de dimensions correspondantes). Cela permet de construire des analyses détaillées, telles que les ventes par produit, par période de temps ou par région.

Les tables de dimensions apportent le contexte descriptif nécessaire pour analyser ces données.

  • Descriptives : contiennent du texte ou des catégories (nom du produit, région, catégorie, etc.).
  • Hiérarchiques : peuvent représenter des hiérarchies (jour → mois → année, produit → famille → catégorie).
  • Stables : moins fréquemment mises à jour que les tables de faits.

Apache Parquet