diff --git a/datawarehouse.md b/datawarehouse.md index 8b92ece..447440d 100644 --- a/datawarehouse.md +++ b/datawarehouse.md @@ -1,6 +1,4 @@ ---- -title: Entrepôts de données ---- +# 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 d’une analyse et d’un 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. @@ -43,6 +41,62 @@ Les utilisateurs peuvent accéder aux données du data warehouse via des outils 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 d’un enregistrement sont ensemble. + +Dans une base colonnaire (DuckDB, ClickHouse, Apache Parquet, etc.), les données sont stockées par colonnes : toutes les valeurs d’une 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 l’espace disque. + +```csv +id,nom,age +1,Lucie,25 +2,Léo,25 +3,Laïla,28 +``` + +```parquet +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 l’analytique” : + +### 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.