{"id":13373,"date":"2026-05-12T11:10:00","date_gmt":"2026-05-12T10:10:00","guid":{"rendered":"https:\/\/sparkle.consulting\/medallion-architecture\/"},"modified":"2026-07-09T18:07:51","modified_gmt":"2026-07-09T17:07:51","slug":"medallion-architecture","status":"publish","type":"post","link":"https:\/\/sparkle.consulting\/fr\/medallion-architecture\/","title":{"rendered":"Architecture Medallion"},"content":{"rendered":"<p>Un mod\u00e8le de conception de donn\u00e9es en couches qui affine progressivement les donn\u00e9es brutes en insights propres et pr\u00eats pour le m\u00e9tier, en passant par les couches Bronze, Silver et Gold.<\/p>\n<h3>Principes de conception<\/h3>\n<p>L'architecture Medallion repose sur un ensemble de principes d'ing\u00e9nierie pratiques qui refl\u00e8tent les besoins r\u00e9els des \u00e9quipes data :<\/p>\n<ul>\n<li><strong>D\u00e9couplage<\/strong>, S\u00e9parer les donn\u00e9es en couches pr\u00e9serve la flexibilit\u00e9. Les changements dans un syst\u00e8me source ne se r\u00e9percutent pas en cascade sur votre couche de reporting.<\/li>\n<li><strong>Reporting op\u00e9rationnel et analytique<\/strong>, Les \u00e9quipes applicatives ont souvent besoin d'insights en temps quasi r\u00e9el \u00e0 partir des donn\u00e9es op\u00e9rationnelles, qui peuvent \u00e0 leur tour servir \u00e0 am\u00e9liorer les syst\u00e8mes op\u00e9rationnels eux-m\u00eames.<\/li>\n<li><strong>R\u00e9tention historique<\/strong>, Les \u00e9quipes doivent conserver les donn\u00e9es pendant des ann\u00e9es, pour l'analyse de tendances, l'am\u00e9lioration de la qualit\u00e9 et la capacit\u00e9 de recharger ou retraiter lorsque les pipelines changent.<\/li>\n<li><strong>Int\u00e9gration<\/strong>, Les questions m\u00e9tier vivent rarement dans un seul syst\u00e8me. Combiner des donn\u00e9es de plusieurs sources en perspectives int\u00e9gr\u00e9es est une raison fondamentale de l'existence de l'architecture.<\/li>\n<li><strong>Duplication pour la performance<\/strong>, Diff\u00e9rentes \u00e9quipes ont des sch\u00e9mas de lecture et des exigences de performance diff\u00e9rents. Dupliquer les donn\u00e9es entre les couches (par ex. une table Gold r\u00e9sum\u00e9e \u00e0 c\u00f4t\u00e9 d'une table Silver d\u00e9taill\u00e9e) est intentionnel, pas du gaspillage.<\/li>\n<\/ul>\n<hr>\n<h3>Pourquoi diviser les donn\u00e9es en couches ?<\/h3>\n<p>Le principe refl\u00e8te la pens\u00e9e classique du data warehouse (Inmon, Kimball, Data Vault). Medallion offre \u00e0 ces id\u00e9es de s\u00e9paration des responsabilit\u00e9s un foyer moderne et natif au lakehouse. Les \u00e9quipes ont besoin de donn\u00e9es historiques pour l'audit et le rechargement, de vues int\u00e9gr\u00e9es pour l'analytique et de lectures optimis\u00e9es pour la performance pour le reporting, souvent simultan\u00e9ment. Le d\u00e9coupage en couches rend chaque pr\u00e9occupation g\u00e9rable ind\u00e9pendamment.<\/p>\n<hr>\n<h3>Les trois couches<\/h3>\n<p><strong>\ud83d\udfe4 Bronze, Brut, \u00ab as-is \u00bb<\/strong> La zone d'atterrissage. Les donn\u00e9es sont ing\u00e9r\u00e9es telles quelles, immuables, et stock\u00e9es dans leurs formats d'origine (CSV, JSON, Parquet) avant d'\u00eatre converties en Delta. Enrichies de m\u00e9tadonn\u00e9es comme les horodatages d'ingestion et les libell\u00e9s de source. Prend en charge le batch et le streaming, et est pr\u00e9cieuse pour le d\u00e9bogage et les rechargements historiques.<\/p>\n<p><strong>\u26aa Silver, Nettoy\u00e9 et filtr\u00e9<\/strong> Les r\u00e8gles de qualit\u00e9 des donn\u00e9es sont appliqu\u00e9es ici : correction des dates, suppression des caract\u00e8res sp\u00e9ciaux, correction des erreurs de format. L'historisation est g\u00e9n\u00e9ralement g\u00e9r\u00e9e avec SCD2. La structure reste orient\u00e9e source mais est interrogeable et utilis\u00e9e par les \u00e9quipes d'analytique op\u00e9rationnelle. Les colonnes sont renomm\u00e9es pour la lisibilit\u00e9 et de l\u00e9g\u00e8res conformations aux standards d'entreprise sont appliqu\u00e9es.<\/p>\n<p><strong>\ud83d\udfe1 Gold, Raffin\u00e9 au niveau m\u00e9tier<\/strong> Les donn\u00e9es sont harmonis\u00e9es et int\u00e9gr\u00e9es entre les sources, g\u00e9n\u00e9ralement mod\u00e9lis\u00e9es selon le style dimensionnel Kimball (faits et dimensions). Les r\u00e8gles m\u00e9tier complexes, les calculs et les enrichissements vivent ici. La sortie consiste en produits de donn\u00e9es pr\u00eats \u00e0 consommer, avec r\u00e9trocompatibilit\u00e9 et contrats de donn\u00e9es pour les utilisateurs en aval.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/sparkle.consulting\/wp-content\/uploads\/2026\/05\/medallion.jpg\" alt=\"Medallion Architecture layers\"><\/p>\n<hr>\n<h3>Exemple pratique : analyse unifi\u00e9e du ROI publicitaire<\/h3>\n<p><strong>La question m\u00e9tier :<\/strong> Une entreprise e-commerce en croissance veut comprendre l'impact des d\u00e9penses marketing sur l'ensemble des canaux. Le projet : une analyse de ROI unifi\u00e9e pour des campagnes publicitaires multicanales.<\/p>\n<p><strong>Sources de donn\u00e9es :<\/strong> Facebook Ads and Google Ads.<\/p>\n<p><strong>Exigences de reporting :<\/strong> Co\u00fbt, impressions, clics, ventil\u00e9s par annonce, campagne, attribution (fen\u00eatre d'un jour) et donn\u00e9es d\u00e9mographiques (\u00e2ge, genre, appareil, plateforme).<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/sparkle.consulting\/wp-content\/uploads\/2026\/05\/appfabric.jpg\" alt=\"App Fabric\"><\/p>\n<hr>\n<h4>Bronze : tout charger<\/h4>\n<p>Facebook Insights expose 134 champs plus des combinaisons de param\u00e8tres suppl\u00e9mentaires. Google Ads expose 329 champs. La recommandation est simple : charger tout ce que les API renvoient.<\/p>\n<ul>\n<li><strong>Inconv\u00e9nient :<\/strong> Plus de stockage utilis\u00e9, mais le stockage est bon march\u00e9.<\/li>\n<li><strong>Avantage :<\/strong> Vous \u00e9vitez la classique <em>\u00ab Ce rapport est g\u00e9nial ! Pouvez-vous juste ajouter ce champ suppl\u00e9mentaire ? \u00bb<\/em> conversation.<\/li>\n<\/ul>\n<p>Les transformations \u00e0 ce stade sont minimales : supprimer les enregistrements corrompus ou inutilisables, convertir au format Delta, enrichir de m\u00e9tadonn\u00e9es (source, horodatage d'ingestion) et partitionner par date uniquement si le volume de donn\u00e9es devient un goulot d'\u00e9tranglement.<\/p>\n<hr>\n<h4>Silver : trois options de mod\u00e9lisation<\/h4>\n<p>C'est ici que se prennent les vraies d\u00e9cisions de conception. Facebook et Google utilisent des noms de champs diff\u00e9rents pour les m\u00eames concepts, <code>cost_micros<\/code> vs <code>spend<\/code>, <code>ad_group<\/code> vs <code>adset<\/code>, <code>segments.age_range<\/code> vs <code>age<\/code>, et certains champs n'existent tout simplement pas sur les deux plateformes.<\/p>\n<p><strong>Option 1, deux tables sources distinctes<\/strong> Conservez une table silver Facebook et une table silver Google, chacune nettoy\u00e9e et renomm\u00e9e selon une convention de nommage commune. Simple \u00e0 construire, pr\u00e9serve la nuance des sources, mais n\u00e9cessite un join ou une union plus tard.<\/p>\n<p><strong>Option 2, une table ads unifi\u00e9e<\/strong> Mappez les deux sources dans une seule table partag\u00e9e au niveau Silver. Plus simple pour les consommateurs en aval. Important : documentez clairement les d\u00e9cisions de mapping, <code>adset<\/code> et <code>ad_group<\/code> ne sont <em>pas<\/em> des concepts identiques.<\/p>\n<p><strong>Option 3, Data Vault<\/strong> Mod\u00e9lisez les entit\u00e9s en Hubs, les relations en Links et les m\u00e9triques en Satellites. Plus modulaire et meilleur pour suivre l'\u00e9volution des relations dans le temps. Le mieux adapt\u00e9 aux plateformes de donn\u00e9es d'entreprise complexes et durables.<\/p>\n<hr>\n<h4>Gold : deux options de service<\/h4>\n<p><strong>Option A, mod\u00e8le dimensionnel (Kimball)<\/strong> Construisez une table <code>Fact_Ad_Performance<\/code> jointe \u00e0 des tables de dimensions. Propre, bien comprise par les outils BI et facile \u00e0 d\u00e9couper. C'est l'approche la plus courante.<\/p>\n<p><strong>Option B, One Big Table (OBT)<\/strong> D\u00e9normalisez tout dans une seule table large. Plus facile pour les analystes et le reporting self-service, aucun join n\u00e9cessaire.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/sparkle.consulting\/wp-content\/uploads\/2026\/05\/layers.jpg\" alt=\"Data layers\"><\/p>\n<hr>\n<h3>D\u00e9fis<\/h3>\n<p><strong>Gouvernance des donn\u00e9es<\/strong>, Tout stocker dans Bronze peut devenir un probl\u00e8me RGPD. Les droits d'acc\u00e8s n\u00e9cessitent des politiques claires, surtout lorsque les tables silver contiennent des donn\u00e9es personnelles issues de plusieurs syst\u00e8mes sources.<\/p>\n<p><strong>Le facteur humain<\/strong>, Medallion est un cadre de nommage, pas un r\u00e8glement. Sans accords d'\u00e9quipe document\u00e9s sur ce qui appartient \u00e0 chaque couche, l'architecture se d\u00e9grade en incoh\u00e9rence et en pipelines fant\u00f4mes.<\/p>\n<hr>\n<h3>Points cl\u00e9s \u00e0 retenir<\/h3>\n<ul>\n<li>Chargez tout vers Bronze, le stockage est bon march\u00e9, mais il co\u00fbte cher de manquer un champ plus tard.<\/li>\n<li>Silver doit nettoyer et conformer ; Gold doit mod\u00e9liser et int\u00e9grer, r\u00e9sistez \u00e0 la tentation de fusionner ces responsabilit\u00e9s.<\/li>\n<li>Les choix de mod\u00e9lisation au niveau Silver (tables plates vs Data Vault) ont des cons\u00e9quences durables en aval.<\/li>\n<li>Documentez vos contrats de couche. La coh\u00e9rence entre les \u00e9quipes d\u00e9pend d'accords \u00e9crits et partag\u00e9s.<\/li>\n<\/ul>\n<p>L'architecture Medallion para\u00eet simple sur un diagramme, mais les vraies d\u00e9cisions de conception, surtout au niveau de la couche Silver, peuvent avoir des cons\u00e9quences durables. Si vous voulez r\u00e9fl\u00e9chir \u00e0 la bonne approche pour votre situation, n'h\u00e9sitez pas \u00e0 <a href=\"https:\/\/sparkle.consulting\/fr\/contact-us\/\"><strong>r\u00e9server un rendez-vous.<\/strong><\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Un mod\u00e8le de conception de donn\u00e9es en couches qui affine progressivement les donn\u00e9es brutes en insights propres et pr\u00eats pour le m\u00e9tier, en passant par les couches Bronze, Silver et Gold.<\/p>","protected":false},"author":16,"featured_media":13381,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","footnotes":""},"categories":[9,71],"tags":[],"class_list":["post-13373","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-news","category-fabric"],"acf":[],"uagb_featured_image_src":{"full":["https:\/\/sparkle.consulting\/wp-content\/uploads\/2026\/05\/medallionarch.png",2240,1260,false],"thumbnail":["https:\/\/sparkle.consulting\/wp-content\/uploads\/2026\/05\/medallionarch-150x150.png",150,150,true],"medium":["https:\/\/sparkle.consulting\/wp-content\/uploads\/2026\/05\/medallionarch-300x169.png",300,169,true],"medium_large":["https:\/\/sparkle.consulting\/wp-content\/uploads\/2026\/05\/medallionarch-768x432.png",768,432,true],"large":["https:\/\/sparkle.consulting\/wp-content\/uploads\/2026\/05\/medallionarch-1024x576.png",1024,576,true],"1536x1536":["https:\/\/sparkle.consulting\/wp-content\/uploads\/2026\/05\/medallionarch-1536x864.png",1536,864,true],"2048x2048":["https:\/\/sparkle.consulting\/wp-content\/uploads\/2026\/05\/medallionarch-2048x1152.png",2048,1152,true],"trp-custom-language-flag":["https:\/\/sparkle.consulting\/wp-content\/uploads\/2026\/05\/medallionarch.png",18,10,false]},"uagb_author_info":{"display_name":"Anneli Tomingas","author_link":"https:\/\/sparkle.consulting\/fr\/author\/anneli\/"},"uagb_comment_info":0,"uagb_excerpt":"A layered data design pattern that progressively refines raw data into clean, business-ready insights, moving through Bronze, Silver, and Gold layers.","_links":{"self":[{"href":"https:\/\/sparkle.consulting\/fr\/wp-json\/wp\/v2\/posts\/13373","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sparkle.consulting\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sparkle.consulting\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sparkle.consulting\/fr\/wp-json\/wp\/v2\/users\/16"}],"replies":[{"embeddable":true,"href":"https:\/\/sparkle.consulting\/fr\/wp-json\/wp\/v2\/comments?post=13373"}],"version-history":[{"count":4,"href":"https:\/\/sparkle.consulting\/fr\/wp-json\/wp\/v2\/posts\/13373\/revisions"}],"predecessor-version":[{"id":13694,"href":"https:\/\/sparkle.consulting\/fr\/wp-json\/wp\/v2\/posts\/13373\/revisions\/13694"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/sparkle.consulting\/fr\/wp-json\/wp\/v2\/media\/13381"}],"wp:attachment":[{"href":"https:\/\/sparkle.consulting\/fr\/wp-json\/wp\/v2\/media?parent=13373"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sparkle.consulting\/fr\/wp-json\/wp\/v2\/categories?post=13373"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sparkle.consulting\/fr\/wp-json\/wp\/v2\/tags?post=13373"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}