Passer au contenu principal

Conception d'entrepôt de données : schéma en étoile pour l'analyse ERP et e-commerce

Apprenez la modélisation dimensionnelle avec le schéma en étoile pour les analyses ERP et e-commerce couvrant les tables de faits, les tables de dimension, les modèles ETL et l'optimisation des requêtes.

E
ECOSIRE Research and Development Team
|15 mars 202615 min de lecture2.8k Mots|

Votre base de données ERP est optimisée pour les transactions : insertion de commandes, mise à jour des stocks, traitement des paiements. Votre plate-forme de commerce électronique est optimisée pour servir les pages de produits et traiter les paiements.

Fait partie de notre série Analyse de données et BI

Lire le guide complet

Votre base de données ERP est optimisée pour les transactions : insertion de commandes, mise à jour des stocks, traitement des paiements. Votre plate-forme de commerce électronique est optimisée pour servir les pages de produits et traiter les paiements. Ni l’un ni l’autre n’est optimisé pour répondre aux questions qui orientent les décisions commerciales : quelles catégories de produits sont les plus rentables après les retours ? Quels segments de clientèle ont une valeur à vie croissante ? Où sont les goulots d’étranglement dans notre chaîne d’approvisionnement ?

C’est cette lacune que comble un entrepôt de données. Et le schéma en étoile est le modèle de conception qui rend les requêtes analytiques rapides, intuitives et maintenables.

Points clés à retenir

  • Le schéma en étoile sépare les mesures commerciales (faits) du contexte descriptif (dimensions), rendant les requêtes intuitives et rapides
  • Les analyses ERP et e-commerce nécessitent généralement quatre à six tableaux de faits et huit à douze tableaux de dimensions pour couvrir les principales questions commerciales.
  • Les pipelines ETL doivent utiliser un chargement incrémentiel avec des dimensions qui changent lentement pour gérer l'analyse historique sans retraiter toutes les données
  • Un schéma en étoile bien conçu réduit la complexité des requêtes de 60 à 80 % par rapport à l'interrogation directe de bases de données opérationnelles normalisées.

Pourquoi ne pas interroger directement l'ERP ?

Avant d'investir dans un entrepôt de données distinct, de nombreuses entreprises tentent d'exécuter des requêtes analytiques sur leur base de données opérationnelle. Cela échoue pour trois raisons.

Performances. Les requêtes analytiques analysent des millions de lignes, calculent des agrégations et joignent de nombreuses tables. Leur exécution sur la base de données de production ralentit l'ERP pour chaque utilisateur. Un rapport qui analyse six mois de données de commande peut verrouiller les tables et dégrader les performances de paiement de votre boutique Shopify.

Complexité. Les bases de données opérationnelles sont normalisées --- conçues pour minimiser la redondance des données. Une question simple telle que « revenu total par catégorie de produits et par mois » peut nécessiter de joindre huit tables dans la base de données PostgreSQL d'Odoo. Dans un schéma en étoile, la même requête joint deux tables.

Historique. Les systèmes opérationnels écrasent les données. Lorsqu'un client change d'adresse, l'ancienne adresse disparaît. Lorsqu'un produit est recatégorisé, les rapports historiques changent rétroactivement. Un entrepôt de données préserve l’historique à travers des dimensions qui changent lentement.

Multi-source. Les entreprises de taille intermédiaire exploitent généralement trois à sept systèmes contenant des données commerciales. L’entrepôt de données les consolide tous. Notre guide sur les pipelines ETL pour les données ERP couvre l'extraction et le chargement en détail.


Principes fondamentaux du schéma en étoile

Un schéma en étoile organise les données en deux types de tables : les tables de faits et les tables de dimensions. Les tables de faits se trouvent au centre (le corps de l'étoile) et les tables de dimensions les entourent (les pointes de l'étoile).

Tableaux de faits

Les tableaux de faits stockent des événements commerciaux mesurables : des choses qui se sont produites. Chaque ligne représente un événement au grain significatif le plus bas.

Caractéristiques :

  • Contenir des mesures numériques (quantité, montant, durée, nombre)
  • Contenir des clés étrangères aux tables de dimensions
  • Sont généralement les plus grandes tables de l'entrepôt
  • Croissance continue à mesure que de nouveaux événements se produisent
  • Doit être au meilleur grain pour répondre aux questions commerciales

Tableaux de dimensions

Les tables de dimensions stockent le contexte descriptif : qui, quoi, où, quand et comment des événements commerciaux.

Caractéristiques :

  • Contenir des attributs textuels et des hiérarchies
  • Sont relativement petits (des milliers à des millions de lignes, pas des milliards)
  • Change lentement au fil du temps
  • Sont dénormalisés pour simplifier les requêtes
  • Fournir les étiquettes, les filtres et les regroupements pour les rapports

La forme d'étoile

                    Dim: Customer
                         |
    Dim: Product ---  Fact: Sales  --- Dim: Time
                         |
                    Dim: Location

Une requête telle que « revenu total par catégorie de produits, par trimestre et par région » joint la table de faits sur les ventes aux tables à trois dimensions. Pas de sous-requêtes, pas de jointures imbriquées complexes --- juste des jointures en étoile simples.


Conception de tableaux de faits pour l'ERP et le commerce électronique

Une entreprise de taille intermédiaire typique exécutant Odoo ERP et Shopify eCommerce a besoin de quatre à six tableaux de faits pour couvrir les principaux cas d'utilisation analytiques.

Fait : Ventes

Le tableau des faits sur les ventes est la pierre angulaire. Chaque ligne représente un élément de campagne sur une commande client.

ColonneTapezDescriptif
clé_venteGRANDEClé de substitution
clé_dateINTFK à Dim : Temps
clé_clientINTFK à Dim : Client
clé_produitINTFK à Dim : Produit
clé_emplacementINTFK à Dim : Emplacement
clé_canalINTFK à Dim : Canal
clé_vendeurINTFK à Dim : Employé
quantitéDÉCIMALUnités vendues
prix_unitéDÉCIMALPrix ​​par unité
montant_de réductionDÉCIMALRemise appliquée
montant_taxeDÉCIMALTaxe facturée
montant_netDÉCIMALChiffre d'affaires après escompte, avant impôt
coût_montantDÉCIMALCoût des marchandises vendues
marge_grossièreDÉCIMALmontant_net moins montant_coût

Grain : Une ligne par élément de campagne de commande et par jour.

Fait : Inventaire

Suit les niveaux de stock sous forme d’instantanés périodiques plutôt que d’événements.

ColonneTapezDescriptif
clé_inventaireGRANDEClé de substitution
clé_dateINTFK à Dim : Heure (date de l'instantané)
clé_produitINTFK à Dim : Produit
clé_entrepôtINTFK à Dim : Entrepôt
quantité_on_handDÉCIMALStock actuel
quantité_réservéeDÉCIMALAffecté aux commandes
quantité_disponibleDÉCIMALEn main moins réservé
reorder_pointDÉCIMALMinimum avant commande
valeur_stockDÉCIMALQuantité multipliée par le coût unitaire

Grain : Une rangée par produit, par entrepôt et par jour.

Fait : Production

Pour les entreprises manufacturières, les faits de production suivent les bons de travail.

ColonneTapezDescriptif
clé_de_productionGRANDEClé de substitution
clé_dateINTFK à Dim : Temps
clé_produitINTFK à Dim : Produit
clé_centre de travailINTFK à Dim : Poste de travail
quantité_planifiéeDÉCIMALSortie cible
quantité_actuelleDÉCIMALProduction réelle
quantité_de_ferrailleDÉCIMALDéchets
durée_planifiée_heuresDÉCIMALHeure prévue
durée_actuelle_heuresDÉCIMALHeure réelle
taux_de rendementDÉCIMALquantité réelle/prévue

Grain : Une ligne par bon de travail, par produit et par jour.

Tableaux de faits supplémentaires

  • Fait : Achats --- dépenses d'approvisionnement par fournisseur, produit et durée.
  • Fait : tickets d'assistance --- volume de tickets, temps de réponse, temps de résolution par agent, client et catégorie.
  • Fait : Trafic Web --- pages vues, sessions, conversions par page, source et campagne. Utile pour l'analyse d'attribution marketing.

Conception de tables de dimensions

Les tables de dimensions fournissent le contexte qui donne du sens aux numéros des tables de faits. Le principe clé est la dénormalisation : le stockage des données redondantes pour simplifier les requêtes.

Dim : Heure

La dimension temporelle est présente dans chaque schéma en étoile. Pré-calculez les attributs du calendrier pour éviter les fonctions de date complexes dans les requêtes.

ColonneExempleObjectif
clé_date20260315Clé entière (AAAAMMJJ)
date_complète2026-03-15Valeur de date
jour_de_semainedimancheRegroupement
jour_du_mois15Regroupement
semaine_de_l'année11Regroupement
nom_moisMarsRegroupement
numéro_mois3Tri
trimestreT1Regroupement
année2026Regroupement
trimestre_fiscalQ4Alignement de l'année fiscale
année_fiscaleExercice 2026Alignement de l'année fiscale
est_week-endVRAIFiltrage
est_holidayFAUXFiltrage

Dim : Client

Dénormalisez les attributs des clients des systèmes CRM, de comptabilité et de commerce électronique en une seule dimension.

ColonneDescriptif
clé_clientClé de substitution
identifiant_clientClé naturelle (Odoo ID)
nom_clientNom complet
client_emailAdresse e-mail
segment_clientEntreprise, PME, Particulier
industrieFabrication, vente au détail, services
paysNom du pays
régionRégion géographique
villeVille
acquisition_sourceOrganique, payant, parrainage
date_acquisitionDate du premier achat
rfm_segmentChampion, fidèle, à risque
life_value_tierÉlevé, moyen, faible

Les colonnes rfm_segment et lifetime_value_tier sont des champs calculés dérivés de l'analyse RFM, mis à jour périodiquement par le pipeline ETL.

Dim : Produit

ColonneDescriptif
clé_produitClé de substitution
id_produitClé naturelle
nom_produitNom d'affichage
ugUnité de gestion des stocks
catégorie_l1Catégorie supérieure
catégorie_l2Sous-catégorie
catégorie_l3Sous-sous-catégorie
marqueNom de marque
coût_unitéCoût standard actuel
liste_prixPrix ​​catalogue actuel
poidsPoids d'expédition
est_actifActuellement à vendre

Dimensions qui changent lentement

Lorsqu'un client déménage de New York à Londres, que doit faire l'entrepôt de données ? La réponse dépend de la question commerciale.

Type 1 : écraser

Remplacez l'ancienne valeur par la nouvelle valeur. La ville du client devient Londres et toutes les commandes historiques affichent désormais Londres. Utilisez-le lorsque l’exactitude historique de l’attribut n’a pas d’importance.

Type 2 : Ajouter une nouvelle ligne

Créez une nouvelle ligne pour le client avec la nouvelle ville, une date d'effet et une date d'expiration. Les commandes historiques pointent toujours vers l’ancienne ligne (New York) et les nouvelles commandes pointent vers la nouvelle ligne (Londres). Il s'agit de l'approche la plus courante pour les attributs qui affectent l'analyse : segment de clientèle, service d'employé, catégorie de produit.

clé_clientidentifiant_clientvilledate_effetdate_expirationest_actuel
1001CUST-042New York2024-01-152026-02-28FAUX
1002CUST-042Londres2026-03-019999-12-31VRAI

Type 3 : Ajouter une nouvelle colonne

Stockez les anciennes et les nouvelles valeurs dans des colonnes séparées. Utile lorsque vous avez besoin de comparer avant et après mais que vous n’avez pas besoin d’un historique complet. Moins courant dans la pratique.

Pour les entreprises de taille moyenne, utilisez le type 2 pour le segment de clientèle, le service des employés, la catégorie de produits et les attributs géographiques. Utilisez le type 1 pour tout le reste afin de simplifier l'entrepôt.


Modèles de conception ETL

Le processus ETL (Extract, Transform, Load) déplace les données des systèmes sources vers l'entrepôt. Les modèles de conception qui fonctionnent bien pour les données ERP et de commerce électronique sont les suivants.

Chargement incrémentiel

Plutôt que de recharger toutes les données à chaque exécution, suivez le dernier horodatage chargé avec succès et ne traitez que les enregistrements modifiés depuis lors. Le champ write_date d'Odoo et le paramètre updated_at de Shopify rendent cela simple.

1. Query source: SELECT * FROM sale_order_line WHERE write_date > last_load_timestamp
2. Transform: Map source fields to warehouse columns, look up dimension keys
3. Load: INSERT new rows, UPDATE changed rows (upsert)
4. Update: Set last_load_timestamp to current run start time

Gestion des clés de substitution

Les tables de dimensions utilisent des clés de substitution (entiers à incrémentation automatique) au lieu de clés naturelles (ID Odoo, ID Shopify). Cela dissocie l'entrepôt des formats de clé du système source et gère la consolidation multi-source où différents systèmes ont des schémas d'identification contradictoires.

Dimensions arrivant tardivement

Parfois, un enregistrement de faits arrive avant l'enregistrement de dimension correspondant : une commande fait référence à un nouveau client qui n'a pas encore été synchronisé. Gérez cela avec une ligne de dimension d'espace réservé qui est mise à jour lorsque l'enregistrement de dimension complet arrive.

Actualisation de la planification

Type de donnéesFréquence de rafraîchissementJustification
Opérations de venteToutes les 15 à 60 minutesSuivi des revenus en temps quasi réel
Instantanés d'inventaireToutes les 4 à 6 heuresÉquilibrer la précision par rapport à la charge de la base de données
Dimension clientQuotidienLes changements sont rares
Dimensions du produitQuotidienLes changements sont rares
Données financièresQuotidien (après clôture)Dépend des flux de travail comptables
Données marketingToutes les 1 à 4 heuresL'optimisation des campagnes nécessite des données plus récentes

Pour connaître les exigences en temps réel, consultez notre guide sur l'analyse de streaming.


Optimisation des performances des requêtes

Un schéma en étoile bien conçu fonctionne déjà bien grâce à ses modèles de jointure simples. Les optimisations supplémentaires sont les suivantes.

Index. Créez des index sur toutes les clés étrangères de dimension dans les tables de faits et sur les attributs de dimension couramment filtrés (plages de dates, segments de clientèle, catégories de produits).

Vues matérialisées. Requêtes courantes pré-agrégées : revenus quotidiens par catégorie de produits, niveaux de stocks hebdomadaires par entrepôt, acquisition mensuelle de clients par canal. Actualisez les vues matérialisées après chaque chargement ETL.

Partitionnement. Partitionnez les grandes tables de faits par date (mensuelle ou trimestrielle). Les requêtes filtrées par plage de dates analysent uniquement les partitions pertinentes.

Statistiques de colonne. Gardez les statistiques PostgreSQL à jour avec ANALYZE après les chargements groupés afin que le planificateur de requêtes prenne des décisions optimales.

Ces optimisations prennent en charge l'expérience BI en libre-service dans laquelle les utilisateurs professionnels exécutent des requêtes ad hoc sans problèmes de performances.


Questions fréquemment posées

Quelle doit être la taille de l'entreprise pour justifier un entrepôt de données ?

Il n'y a pas de taille minimale, mais l'investissement en vaut la peine lorsque vous devez combiner plusieurs sources de données pour l'analyse, lorsque les requêtes de bases de données opérationnelles ralentissent les systèmes de production ou lorsque vous consacrez plus de 10 heures par semaine à la collecte manuelle de données et à la création de rapports. La plupart des entreprises comptant 30 employés ou plus et au moins deux systèmes (ERP plus eCommerce) bénéficient d'un entrepôt.

Devrions-nous utiliser un entrepôt de données cloud comme Snowflake ou BigQuery ?

Pour les entreprises de taille moyenne, PostgreSQL gère bien la plupart des charges de travail analytiques et coûte beaucoup moins cher. Les entrepôts cloud comme Snowflake deviennent attrayants lorsque vos données dépassent 1 To, lorsque vous devez séparer le calcul du stockage pour optimiser les coûts ou lorsque vous avez des exigences complexes en matière de partage de données entre les organisations. Commencez avec PostgreSQL et migrez lorsque vous êtes devenu trop petit.

Combien de temps faut-il pour créer un entrepôt de données ?

Un entrepôt minimum viable avec une table de faits (ventes), quatre tables de dimensions et un pipeline ETL reliant Odoo et Shopify prend quatre à huit semaines pour une équipe expérimentée. L'ajout de tables de faits, l'évolution lente des dimensions et la surveillance de la qualité des données prennent encore quatre à huit semaines par table de faits. Prévoyez trois à six mois pour un entrepôt complet couvrant tous les principaux domaines d’activité.


Quelle est la prochaine étape

Un schéma en étoile bien conçu constitue la base de chaque fonctionnalité d'analyse, des tableaux de bord en libre-service aux modèles prédictifs en passant par les analyses intégrées. Cela fait partie d'une stratégie BI plus large qui transforme la façon dont votre entreprise prend des décisions.

ECOSIRE crée des entrepôts de données et des pipelines d'analyse pour les entreprises exécutant Odoo, Shopify et GoHighLevel. Notre équipe Odoo consultancy conçoit des schémas d'entrepôt adaptés à votre modèle commercial, et nos OpenClaw AI services superposent l'analyse prédictive.

Contactez-nous pour discuter de l'architecture de votre entrepôt de données.


Publié par ECOSIRE --- aider les entreprises à évoluer avec des solutions basées sur l'IA dans Odoo ERP, Shopify eCommerce et OpenClaw AI.

E

Rédigé par

ECOSIRE Research and Development Team

Rédaction technique

L'équipe de rédaction technique d'ECOSIRE traite d'Odoo ERP, de l'e-commerce avec Shopify, des agents IA, de l'analytique avec Power BI, de l'automatisation avec GoHighLevel et des bonnes pratiques du logiciel d'entreprise. Nos guides aident les entreprises à prendre des décisions technologiques éclairées.

ECOSIRE

Transformez votre entreprise avec Odoo ERP

Implémentation, personnalisation et assistance expertes d'Odoo pour rationaliser vos opérations.

Plus de Analyse de données et BI

KPI comptables : 30 indicateurs financiers que chaque entreprise devrait suivre

Suivez 30 KPI comptables essentiels, notamment des indicateurs de rentabilité, de liquidité, d'efficacité et de croissance tels que la marge brute, l'EBITDA, le DSO, le DPO et la rotation des stocks.

Entrepôt de données pour la Business Intelligence : architecture et mise en œuvre

Créez un entrepôt de données moderne pour la business intelligence. Comparez Snowflake, BigQuery, Redshift, apprenez ETL/ELT, la modélisation dimensionnelle et l'intégration de Power BI.

Analyse client Power BI : segmentation RFM et valeur à vie

Implémentez la segmentation RFM, l'analyse de cohorte, la visualisation des prévisions de désabonnement, le calcul CLV et la cartographie du parcours client dans Power BI avec les formules DAX.

Power BI vs Excel : quand mettre à niveau vos analyses commerciales

Comparaison Power BI et Excel pour l'analyse commerciale couvrant les limites des données, la visualisation, l'actualisation en temps réel, la collaboration, la gouvernance, les coûts et la migration.

Analyse prédictive pour les entreprises : un guide de mise en œuvre pratique

Mettez en œuvre des analyses prédictives dans les domaines des ventes, du marketing, des opérations et des finances. Sélection du modèle, exigences en matière de données, intégration de Power BI et guide de la culture des données.

Création de tableaux de bord financiers avec Power BI

Guide étape par étape pour créer des tableaux de bord financiers dans Power BI couvrant les connexions de données aux systèmes comptables, les mesures DAX pour les KPI, les visualisations P&L et les meilleures pratiques.