{"id":266,"date":"2026-09-24T11:18:36","date_gmt":"2026-09-24T11:18:36","guid":{"rendered":"https:\/\/acconsulting-france.fr\/blog\/historisation-donnees-scd\/"},"modified":"2026-09-24T12:40:50","modified_gmt":"2026-09-24T12:40:50","slug":"historisation-donnees-scd","status":"publish","type":"post","link":"https:\/\/acconsulting-france.fr\/blog\/historisation-donnees-scd\/","title":{"rendered":"Historisation des donn\u00e9es : m\u00e9thodes SCD et pi\u00e8ges de reprise"},"content":{"rendered":"<p class=\"wp-block-paragraph\">L\u2019historisation des donn\u00e9es ne consiste pas \u00e0 conserver toutes les lignes sans r\u00e8gle. Elle impose de choisir quels attributs changent, \u00e0 quelle date ils prennent effet et comment les faits restent rattach\u00e9s \u00e0 la bonne version. Le SCD Type 2 r\u00e9pond \u00e0 ce besoin, mais une reprise mal cadr\u00e9e fabrique des historiques incoh\u00e9rents.<\/p>\n\n<ul class=\"wp-block-list\"><li><strong>Le SCD Type 1<\/strong> remplace une valeur et supprime l\u2019\u00e9tat ant\u00e9rieur, ce qui convient aux corrections sans port\u00e9e analytique.<\/li><li><strong>Le SCD Type 2<\/strong> cr\u00e9e une version suppl\u00e9mentaire, avec une cl\u00e9 substitutive et des bornes temporelles, afin de conserver le contexte historique.<\/li><li>La reprise initiale est le point de fragilit\u00e9 principal, car les dates anciennes, les doublons et les cl\u00e9s m\u00e9tiers instables peuvent rendre l\u2019historique inutilisable.<\/li><li>La recette doit v\u00e9rifier les p\u00e9riodes de validit\u00e9, les jointures avec les faits et la coh\u00e9rence des r\u00e8gles de changement avant la bascule.<\/li><\/ul>\n\n<p class=\"wp-block-paragraph\">Le propos porte sur la gestion des historiques dans un Data Warehouse, les flux ETL et la reprise de donn\u00e9es depuis un socle d\u00e9cisionnel existant. Il ne traite ni de protection des donn\u00e9es personnelles ni de r\u00e8gles juridiques de conservation, qui rel\u00e8vent de votre DPO et de votre direction juridique.<\/p>\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_87 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Sommaire<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 eztoc-toggle-hide-by-default' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/acconsulting-france.fr\/blog\/historisation-donnees-scd\/#Quels_changements_doivent_reellement_declencher_une_historisation_des_donnees\" >Quels changements doivent r\u00e9ellement d\u00e9clencher une historisation des donn\u00e9es ?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/acconsulting-france.fr\/blog\/historisation-donnees-scd\/#Comment_choisir_entre_les_methodes_SCD_Type_1_Type_2_et_Type_3\" >Comment choisir entre les m\u00e9thodes SCD Type 1, Type 2 et Type 3 ?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/acconsulting-france.fr\/blog\/historisation-donnees-scd\/#Quelle_structure_de_dimension_SCD_Type_2_permet_de_relier_correctement_les_faits\" >Quelle structure de dimension SCD Type 2 permet de relier correctement les faits ?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/acconsulting-france.fr\/blog\/historisation-donnees-scd\/#Comment_construire_un_flux_ETL_SCD_Type_2_sans_creer_de_periodes_incoherentes\" >Comment construire un flux ETL SCD Type 2 sans cr\u00e9er de p\u00e9riodes incoh\u00e9rentes ?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/acconsulting-france.fr\/blog\/historisation-donnees-scd\/#Quels_pieges_de_reprise_de_donnees_compromettent_un_historique_deja_en_production\" >Quels pi\u00e8ges de reprise de donn\u00e9es compromettent un historique d\u00e9j\u00e0 en production ?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/acconsulting-france.fr\/blog\/historisation-donnees-scd\/#Comment_organiser_la_recette_des_dimensions_historiques_avant_la_bascule\" >Comment organiser la recette des dimensions historiques avant la bascule ?<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Quels_changements_doivent_reellement_declencher_une_historisation_des_donnees\"><\/span>Quels changements doivent r\u00e9ellement d\u00e9clencher une historisation des donn\u00e9es ?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<p class=\"wp-block-paragraph\">Une dimension ne m\u00e9rite pas automatiquement un historique complet. Le premier travail consiste \u00e0 identifier les attributs dont l\u2019\u00e9volution change le sens d\u2019un indicateur dans le temps. L\u2019adresse d\u2019exp\u00e9dition d\u2019un client, son segment commercial, son rattachement \u00e0 une agence ou la cat\u00e9gorie d\u2019un produit peuvent modifier une lecture historique. \u00c0 l\u2019inverse, la correction d\u2019une faute de frappe dans un nom ne justifie pas forc\u00e9ment une nouvelle version.<\/p>\n\n<p class=\"wp-block-paragraph\">Cette distinction doit \u00eatre formalis\u00e9e avant de configurer le moindre composant ETL. Lorsqu\u2019elle ne l\u2019est pas, le flux traite tous les \u00e9carts de la m\u00eame fa\u00e7on. Une modification de casse dans une ville cr\u00e9e alors une ligne suppl\u00e9mentaire, au m\u00eame titre qu\u2019un changement de r\u00e9gion commerciale. Apr\u00e8s plusieurs ann\u00e9es, la dimension grossit sans que l\u2019historique apporte une information exploitable.<\/p>\n\n<p class=\"wp-block-paragraph\">Dans une dimension Client, un statut comme \u00ab actif \u00bb, \u00ab suspendu \u00bb ou \u00ab r\u00e9sili\u00e9 \u00bb peut n\u00e9cessiter une Gestion des historiques si les rapports doivent expliquer la r\u00e9partition du portefeuille \u00e0 une date donn\u00e9e. En revanche, un num\u00e9ro de t\u00e9l\u00e9phone peut \u00eatre conserv\u00e9 en Type 1 si aucun rapport ne reconstruit les coordonn\u00e9es utilis\u00e9es lors d\u2019une transaction. Le choix d\u00e9pend du besoin de restitution, pas de la capacit\u00e9 technique de la base.<\/p>\n\n<p class=\"wp-block-paragraph\">La premi\u00e8re erreur consiste \u00e0 confondre source op\u00e9rationnelle et mod\u00e8le d\u00e9cisionnel. La source peut \u00e9craser une adresse d\u00e8s qu\u2019un client d\u00e9m\u00e9nage. Le Data Warehouse doit, lui, permettre d\u2019interpr\u00e9ter les commandes r\u00e9alis\u00e9es avant et apr\u00e8s ce changement. Sans r\u00e8gle explicite, les ventes historiques seront rattach\u00e9es \u00e0 l\u2019adresse actuelle, et non \u00e0 celle qui \u00e9tait connue lors de la commande.<\/p>\n\n<h3 class=\"wp-block-heading\">D\u00e9finir une matrice d\u2019attributs avant le d\u00e9veloppement ETL<\/h3>\n\n<p class=\"wp-block-paragraph\">Une matrice de d\u00e9cision rend ce choix v\u00e9rifiable. Elle liste chaque attribut de la dimension, son comportement attendu, la source de r\u00e9f\u00e9rence et la cons\u00e9quence d\u2019un changement. Cette matrice doit \u00eatre relue par les responsables de domaine avant que les mappings soient fig\u00e9s. Elle \u00e9vite que le d\u00e9veloppeur ETL porte seul une r\u00e8gle m\u00e9tier implicite.<\/p>\n\n<figure class=\"wp-block-table\"><table>\n<thead>\n<tr>\n<th>Attribut de dimension<\/th>\n<th>Traitement recommand\u00e9<\/th>\n<th>Raison analytique<\/th>\n<th>Contr\u00f4le de recette<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Segment commercial<\/td>\n<td>SCD Type 2<\/td>\n<td>Le segment modifie les analyses de portefeuille et de marge dans le temps.<\/td>\n<td>Comparer le segment attach\u00e9 aux faits avant et apr\u00e8s la date de changement.<\/td>\n<\/tr>\n<tr>\n<td>Adresse de livraison<\/td>\n<td>SCD Type 2 selon le besoin de reporting g\u00e9ographique<\/td>\n<td>Les analyses territoriales historiques peuvent d\u00e9pendre de l\u2019adresse alors connue.<\/td>\n<td>V\u00e9rifier la borne de validit\u00e9 de chaque version client.<\/td>\n<\/tr>\n<tr>\n<td>Orthographe du nom<\/td>\n<td>SCD Type 1<\/td>\n<td>Une correction typographique ne modifie pas le sens d\u2019un fait pass\u00e9.<\/td>\n<td>Contr\u00f4ler l\u2019absence de nouvelle cl\u00e9 substitutive.<\/td>\n<\/tr>\n<tr>\n<td>Code interne de chargement<\/td>\n<td>Hors dimension m\u00e9tier<\/td>\n<td>Cette donn\u00e9e rel\u00e8ve de la tra\u00e7abilit\u00e9 technique, pas de l\u2019analyse m\u00e9tier.<\/td>\n<td>Contr\u00f4ler le journal de batch.<\/td>\n<\/tr>\n<\/tbody>\n<\/table><\/figure>\n\n<p class=\"wp-block-paragraph\">Le tableau doit \u00eatre conserv\u00e9 avec le dictionnaire de donn\u00e9es du socle d\u00e9cisionnel. Un <a href=\"https:\/\/acconsulting-france.fr\/blog\/dictionnaire-donnees\/\">dictionnaire de donn\u00e9es exploitable<\/a> ne d\u00e9crit pas seulement le nom d\u2019une colonne. Il pr\u00e9cise aussi si elle est historis\u00e9e, quelle source la porte et quelle r\u00e8gle d\u00e9clenche une nouvelle version.<\/p>\n\n<p class=\"wp-block-paragraph\">Une reprise de donn\u00e9es rend ce travail encore plus n\u00e9cessaire. Les syst\u00e8mes anciens contiennent souvent des attributs recycl\u00e9s, des codes m\u00e9tiers modifi\u00e9s sans date de d\u00e9but, ou des valeurs absentes remplac\u00e9es par des libell\u00e9s techniques. Reprendre ces lignes sans qualification revient \u00e0 figer des d\u00e9fauts de source dans une structure qui sera ensuite pr\u00e9sent\u00e9e comme historique.<\/p>\n\n<p class=\"wp-block-paragraph\">La question utile n\u2019est donc pas \u00ab peut-on conserver ce champ ? \u00bb. Elle est \u00ab quelle d\u00e9cision serait fausse si cette valeur \u00e9tait projet\u00e9e dans le pass\u00e9 ? \u00bb. Quand aucune r\u00e9ponse m\u00e9tier pr\u00e9cise n\u2019existe, une historisation Type 2 cr\u00e9e surtout du volume, de la maintenance et des \u00e9carts de restitution difficiles \u00e0 expliquer.<\/p>\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1536\" height=\"1024\" src=\"https:\/\/acconsulting-france.fr\/blog\/wp-content\/uploads\/2026\/09\/historisation-donnees-methodes-reprise-illustration.jpg\" alt=\"Botiers de stockage empiles et cables ranges dans un atelier technique\" class=\"wp-image-268\" srcset=\"https:\/\/acconsulting-france.fr\/blog\/wp-content\/uploads\/2026\/09\/historisation-donnees-methodes-reprise-illustration.jpg 1536w, https:\/\/acconsulting-france.fr\/blog\/wp-content\/uploads\/2026\/09\/historisation-donnees-methodes-reprise-illustration-300x200.jpg 300w, https:\/\/acconsulting-france.fr\/blog\/wp-content\/uploads\/2026\/09\/historisation-donnees-methodes-reprise-illustration-1024x683.jpg 1024w, https:\/\/acconsulting-france.fr\/blog\/wp-content\/uploads\/2026\/09\/historisation-donnees-methodes-reprise-illustration-768x512.jpg 768w\" sizes=\"auto, (max-width: 1536px) 100vw, 1536px\" \/><figcaption class=\"wp-element-caption\">Illustration g\u00e9n\u00e9r\u00e9e par intelligence artificielle.<\/figcaption><\/figure>\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Comment_choisir_entre_les_methodes_SCD_Type_1_Type_2_et_Type_3\"><\/span>Comment choisir entre les m\u00e9thodes SCD Type 1, Type 2 et Type 3 ?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<p class=\"wp-block-paragraph\">Les M\u00e9thodes SCD r\u00e9pondent \u00e0 des besoins distincts. Les m\u00e9langer sans convention rend les dimensions impr\u00e9visibles pour les auteurs de rapports et pour les \u00e9quipes de recette. Le Type 1 \u00e9crase, le Type 2 versionne, et le Type 3 conserve un historique limit\u00e9 dans des colonnes s\u00e9par\u00e9es. Le bon choix d\u00e9pend du niveau de preuve attendu dans les restitutions historiques.<\/p>\n\n<p class=\"wp-block-paragraph\">Le SCD Type 1 est adapt\u00e9 lorsqu\u2019une valeur ancienne n\u2019a pas de signification pour l\u2019analyse. Une correction de format, une normalisation de libell\u00e9 ou le remplacement d\u2019un code obsol\u00e8te peuvent \u00eatre appliqu\u00e9s directement sur la ligne courante. Cette m\u00e9thode limite le volume de la dimension et all\u00e8ge les chargements, mais elle interdit toute reconstitution de la valeur pr\u00e9c\u00e9dente.<\/p>\n\n<p class=\"wp-block-paragraph\">Le SCD Type 2 est plus exigeant. Chaque \u00e9volution retenue ferme la version active puis ins\u00e8re une nouvelle ligne. La cl\u00e9 m\u00e9tier reste stable, tandis que la cl\u00e9 substitutive change. Les tables de faits doivent r\u00e9f\u00e9rencer cette cl\u00e9 substitutive pour rattacher chaque \u00e9v\u00e9nement \u00e0 la version correcte de la dimension.<\/p>\n\n<p class=\"wp-block-paragraph\">Le Type 3 a un usage plus \u00e9troit. Il conserve par exemple une colonne \u00ab r\u00e9gion actuelle \u00bb et une colonne \u00ab r\u00e9gion pr\u00e9c\u00e9dente \u00bb. Cette approche peut r\u00e9pondre \u00e0 une comparaison limit\u00e9e entre l\u2019\u00e9tat courant et l\u2019\u00e9tat ant\u00e9rieur. Elle devient insuffisante d\u00e8s qu\u2019un client a connu plusieurs changements ou qu\u2019une analyse doit remonter sur plusieurs exercices.<\/p>\n\n<h3 class=\"wp-block-heading\">Le SCD Type 2 ne doit pas devenir une r\u00e8gle par d\u00e9faut<\/h3>\n\n<p class=\"wp-block-paragraph\">Le Type 2 est souvent choisi par prudence, puis appliqu\u00e9 \u00e0 tous les attributs. Cette d\u00e9cision est co\u00fbteuse dans un parc ancien. Une dimension Produit de 80 000 r\u00e9f\u00e9rences peut g\u00e9n\u00e9rer plusieurs centaines de milliers de versions si le flux historise le prix, le libell\u00e9 marketing, le fournisseur, la disponibilit\u00e9 et des indicateurs techniques sans distinction.<\/p>\n\n<p class=\"wp-block-paragraph\">Le volume n\u2019est pas le seul probl\u00e8me. Les rapports doivent savoir quelle version utiliser. Une analyse des ventes par famille produit peut vouloir la famille connue au jour de la vente. Un rapport de portefeuille actuel peut au contraire vouloir la famille actuelle, appliqu\u00e9e \u00e0 l\u2019ensemble de l\u2019historique. Ces deux besoins sont l\u00e9gitimes, mais ils ne s\u2019appuient pas sur la m\u00eame jointure.<\/p>\n\n<p class=\"wp-block-paragraph\">Le mod\u00e8le doit donc exposer clairement les deux lectures. Une relation sur la cl\u00e9 substitutive donne le contexte historique de l\u2019\u00e9v\u00e9nement. Une relation sur la cl\u00e9 m\u00e9tier, ma\u00eetris\u00e9e et explicitement nomm\u00e9e, permet une lecture recalcul\u00e9e selon l\u2019\u00e9tat actuel. Dans un univers ou un mod\u00e8le s\u00e9mantique, masquer cette diff\u00e9rence derri\u00e8re un objet g\u00e9n\u00e9rique produit des chiffres contradictoires.<\/p>\n\n<figure class=\"is-provider-youtube is-type-video wp-block-embed wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Quelles M\u00e9thodes de collecte de donn\u00e9es ? (Extrait de formation)\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/-ROuDUAxQ5I?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n<p class=\"wp-block-paragraph\">Le Type 2 est pertinent lorsqu\u2019un changement modifie la qualification d\u2019un fait au moment o\u00f9 ce fait a \u00e9t\u00e9 enregistr\u00e9. Un changement de cat\u00e9gorie de produit, de responsable commercial ou de secteur g\u00e9ographique entre dans cette logique. \u00c0 l\u2019inverse, il faut conserver un Type 1 lorsque l\u2019ancienne valeur n\u2019a aucune port\u00e9e de gestion et ne doit jamais appara\u00eetre dans une restitution.<\/p>\n\n<p class=\"wp-block-paragraph\">Une dimension peut aussi combiner les approches. Le nom normalis\u00e9 d\u2019un client peut \u00eatre trait\u00e9 en Type 1, tandis que son segment, son r\u00e9seau commercial et son statut contractuel suivent une logique Type 2. Ce mod\u00e8le hybride est plus lisible qu\u2019une dimension o\u00f9 chaque colonne cr\u00e9e une nouvelle version, y compris lorsque l\u2019\u00e9cart ne porte que sur un accent ou un espace.<\/p>\n\n<p class=\"wp-block-paragraph\">Un socle d\u00e9cisionnel maintenable ne se juge pas au nombre de lignes historis\u00e9es. Il se juge \u00e0 la capacit\u00e9 d\u2019expliquer, dans un rapport, pourquoi une vente de janvier est rattach\u00e9e \u00e0 une cat\u00e9gorie, une agence ou un segment donn\u00e9.<\/p>\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Quelle_structure_de_dimension_SCD_Type_2_permet_de_relier_correctement_les_faits\"><\/span>Quelle structure de dimension SCD Type 2 permet de relier correctement les faits ?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<p class=\"wp-block-paragraph\">Une Slowly Changing Dimension Type 2 repose sur une s\u00e9paration nette entre la cl\u00e9 m\u00e9tier et la cl\u00e9 substitutive. La cl\u00e9 m\u00e9tier identifie l\u2019entit\u00e9 dans le syst\u00e8me source. Elle peut \u00eatre un code client, une r\u00e9f\u00e9rence produit ou un identifiant salari\u00e9. La cl\u00e9 substitutive identifie une version pr\u00e9cise de cette entit\u00e9 dans le Data Warehouse.<\/p>\n\n<p class=\"wp-block-paragraph\">Cette diff\u00e9rence para\u00eet technique, mais elle conditionne les r\u00e9sultats de restitution. Un m\u00eame client peut poss\u00e9der le code m\u00e9tier C-1045 pendant dix ans. S\u2019il change de segment commercial trois fois, la dimension contient quatre versions. Chacune a sa propre cl\u00e9 substitutive, mais toutes partagent la m\u00eame cl\u00e9 m\u00e9tier C-1045.<\/p>\n\n<p class=\"wp-block-paragraph\">Les colonnes de d\u00e9but et de fin de validit\u00e9 encadrent chaque version. Une colonne de type <strong>effective_from<\/strong> indique le premier instant de validit\u00e9. Une colonne <strong>effective_to<\/strong> porte la fin de validit\u00e9, ou une valeur conventionnelle lorsque la ligne reste active. Un indicateur <strong>is_current<\/strong> facilite l\u2019acc\u00e8s \u00e0 la version courante sans remplacer les contr\u00f4les de p\u00e9riode.<\/p>\n\n<h3 class=\"wp-block-heading\">Les colonnes qui doivent \u00eatre document\u00e9es dans la dimension<\/h3>\n\n<p class=\"wp-block-paragraph\">Une dimension Client Type 2 comprend habituellement une cl\u00e9 substitutive, une cl\u00e9 m\u00e9tier, les attributs historis\u00e9s, les dates de validit\u00e9 et les \u00e9l\u00e9ments d\u2019audit. Le hash d\u2019attributs peut compl\u00e9ter le dispositif. Il repr\u00e9sente une empreinte calcul\u00e9e sur les champs retenus pour la d\u00e9tection des changements.<\/p>\n\n<p class=\"wp-block-paragraph\">Le hash r\u00e9duit les comparaisons colonne \u00e0 colonne dans certains flux ETL, mais il ne d\u00e9cide pas de la r\u00e8gle m\u00e9tier. Si la composition de l\u2019empreinte inclut un champ technique volatile, chaque chargement d\u00e9tectera un changement artificiel. Si elle exclut un attribut qui devait \u00eatre historis\u00e9, le changement passera inaper\u00e7u.<\/p>\n\n<p class=\"wp-block-paragraph\">Un mod\u00e8le de dimension bien tenu comporte aussi des informations de chargement. La date du batch, l\u2019identifiant de flux et la source d\u2019origine rendent les corrections tra\u00e7ables. Ces colonnes ne remplacent pas les p\u00e9riodes m\u00e9tier. Une ligne peut \u00eatre charg\u00e9e aujourd\u2019hui pour refl\u00e9ter un changement qui a pris effet il y a plusieurs semaines.<\/p>\n\n<p class=\"wp-block-paragraph\">Ce dernier cas est fr\u00e9quent dans les reprises. Une direction commerciale peut r\u00e9gulariser tardivement le rattachement d\u2019un client. Si le flux utilise la date de chargement comme date d\u2019effet, le mod\u00e8le raconte que le changement s\u2019est produit \u00e0 la date de correction. Il faut distinguer la date de connaissance technique de la date de validit\u00e9 m\u00e9tier.<\/p>\n\n<p class=\"wp-block-paragraph\">Le sch\u00e9ma en \u00e9toile reste g\u00e9n\u00e9ralement le plus lisible pour cette m\u00e9canique. Les faits portent la cl\u00e9 substitutive de la version au moment de leur chargement. Les dimensions portent le contexte descriptif. Les principes de <a href=\"https:\/\/acconsulting-france.fr\/blog\/dwh-datawarehouse-structure\/\">structuration d\u2019un Data Warehouse<\/a> aident \u00e0 s\u00e9parer ces responsabilit\u00e9s, plut\u00f4t qu\u2019\u00e0 faire porter l\u2019historique par des colonnes \u00e9parses dans les tables de faits.<\/p>\n\n<p class=\"wp-block-paragraph\">Les cas tardifs demandent une d\u00e9cision explicite. Si un fait de f\u00e9vrier arrive en avril, il doit \u00eatre rattach\u00e9 \u00e0 la version active en f\u00e9vrier, pas \u00e0 la version active au jour du chargement. Cette recherche temporelle doit \u00eatre test\u00e9e dans le mapping. Elle ne peut pas \u00eatre laiss\u00e9e \u00e0 l\u2019interpr\u00e9tation d\u2019un rapport Webi ou d\u2019une mesure calcul\u00e9e.<\/p>\n\n<p class=\"wp-block-paragraph\">La structure devient fragile lorsque la cl\u00e9 m\u00e9tier elle-m\u00eame est r\u00e9utilis\u00e9e par la source. Certains progiciels recyclent un code client apr\u00e8s cl\u00f4ture. Dans ce cas, une simple recherche sur la cl\u00e9 m\u00e9tier fusionne deux entit\u00e9s distinctes. Il faut alors int\u00e9grer un identifiant source plus fiable, une p\u00e9riode de validit\u00e9 ou une r\u00e8gle de rupture document\u00e9e dans le flux.<\/p>\n\n<p class=\"wp-block-paragraph\">La cl\u00e9 substitutive ne prot\u00e8ge pas, \u00e0 elle seule, contre les ambigu\u00eft\u00e9s de la source. Elle garantit seulement qu\u2019une version reconnue comme distincte poss\u00e8de un identifiant distinct dans le mod\u00e8le d\u00e9cisionnel.<\/p>\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Comment_construire_un_flux_ETL_SCD_Type_2_sans_creer_de_periodes_incoherentes\"><\/span>Comment construire un flux ETL SCD Type 2 sans cr\u00e9er de p\u00e9riodes incoh\u00e9rentes ?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<p class=\"wp-block-paragraph\">Un flux ETL d\u2019historisation doit ex\u00e9cuter les op\u00e9rations dans un ordre contr\u00f4l\u00e9. Il re\u00e7oit la donn\u00e9e source, normalise les attributs, identifie la version courante, d\u00e9tecte les \u00e9carts retenus, ferme l\u2019ancienne version puis cr\u00e9e la nouvelle. Une inversion de ces \u00e9tapes peut cr\u00e9er deux lignes actives pour la m\u00eame cl\u00e9 m\u00e9tier ou des p\u00e9riodes qui se chevauchent.<\/p>\n\n<p class=\"wp-block-paragraph\">La zone de pr\u00e9paration est utile pour isoler les donn\u00e9es avant leur int\u00e9gration. Elle permet de d\u00e9doublonner les arriv\u00e9es, de contr\u00f4ler les cl\u00e9s absentes et de comparer la source \u00e0 la version actuelle de la dimension. Sans cette \u00e9tape, le traitement m\u00e9lange souvent anomalies source et r\u00e8gles de chargement dans une m\u00eame requ\u00eate difficile \u00e0 auditer.<\/p>\n\n<p class=\"wp-block-paragraph\">Les attributs doivent \u00eatre normalis\u00e9s avant comparaison. Un espace en fin de libell\u00e9, une casse diff\u00e9rente ou un format de t\u00e9l\u00e9phone variable ne doit pas provoquer une nouvelle version. La normalisation doit toutefois rester document\u00e9e. Transformer \u00ab SAS \u00bb et \u00ab SA \u00bb en une m\u00eame valeur n\u2019est plus un nettoyage technique, c\u2019est une r\u00e8gle m\u00e9tier qui peut modifier la lecture d\u2019un portefeuille.<\/p>\n\n<h3 class=\"wp-block-heading\">Fermer une version et ouvrir la suivante dans une m\u00eame op\u00e9ration<\/h3>\n\n<p class=\"wp-block-paragraph\">Lorsqu\u2019un changement est valid\u00e9, l\u2019ancienne ligne est cl\u00f4tur\u00e9e avec une date de fin coh\u00e9rente. La nouvelle version reprend la cl\u00e9 m\u00e9tier, re\u00e7oit une nouvelle cl\u00e9 substitutive et devient la seule ligne courante. Si la granularit\u00e9 est journali\u00e8re, une convention claire doit d\u00e9finir si la date de fin est incluse ou exclue. Cette convention doit \u00eatre identique dans tous les flux.<\/p>\n\n<p class=\"wp-block-paragraph\">Une convention fr\u00e9quente consiste \u00e0 consid\u00e9rer que la date de d\u00e9but est incluse et que la date de fin est exclue. Une version ouverte le 1er mars et ferm\u00e9e le 15 mars couvre alors les faits du 1er au 14 mars. La version suivante commence le 15 mars. Cette approche \u00e9vite les chevauchements, \u00e0 condition que les jointures temporelles utilisent les m\u00eames op\u00e9rateurs.<\/p>\n\n<p class=\"wp-block-paragraph\">Une transaction atomique est n\u00e9cessaire lorsque le moteur de donn\u00e9es le permet. La fermeture de la version pr\u00e9c\u00e9dente et l\u2019insertion de la suivante doivent r\u00e9ussir ensemble ou \u00eatre annul\u00e9es ensemble. Sinon, une interruption entre les deux op\u00e9rations peut laisser un client sans version active, ou produire une seule version courante alors que l\u2019attribut a d\u00e9j\u00e0 chang\u00e9 dans la source.<\/p>\n\n<figure class=\"is-provider-youtube is-type-video wp-block-embed wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"Slowly Changing Dimensions (SCD) Explained: Type 1, 2, &amp; 3\" width=\"500\" height=\"375\" src=\"https:\/\/www.youtube.com\/embed\/sZFCYpojP4I?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n<p class=\"wp-block-paragraph\">Les composants d\u00e9di\u00e9s \u00e0 la Gestion des historiques dans Talend ou Informatica peuvent acc\u00e9l\u00e9rer le param\u00e9trage, mais ils ne remplacent pas la conception. Un composant SCD ne sait pas si un attribut doit \u00eatre suivi en Type 1 ou Type 2 sans convention donn\u00e9e par le projet. Il ne sait pas non plus interpr\u00e9ter une date d\u2019effet m\u00e9tier absente de la source.<\/p>\n\n<p class=\"wp-block-paragraph\">Les charges parall\u00e8les exigent une vigilance particuli\u00e8re. Deux flux qui mettent \u00e0 jour la m\u00eame dimension avec des fen\u00eatres diff\u00e9rentes peuvent chacun identifier une version comme courante. Le contr\u00f4le final doit v\u00e9rifier qu\u2019il n\u2019existe qu\u2019une ligne <strong>is_current = 1<\/strong> par cl\u00e9 m\u00e9tier, sauf exception formalis\u00e9e.<\/p>\n\n<p class=\"wp-block-paragraph\">La journalisation de batch doit enregistrer le volume re\u00e7u, les lignes rejet\u00e9es, les insertions de nouvelles versions, les cl\u00f4tures et les anomalies de cl\u00e9. Ces chiffres servent \u00e0 la recette. Ils permettent aussi d\u2019identifier une d\u00e9rive, par exemple lorsque le nombre de versions cr\u00e9\u00e9es double apr\u00e8s une modification de format dans le syst\u00e8me source.<\/p>\n\n<p class=\"wp-block-paragraph\">Un flux SCD fiable ne se limite pas \u00e0 d\u00e9tecter les diff\u00e9rences. Il doit d\u00e9montrer que chaque diff\u00e9rence a produit une p\u00e9riode valide, une seule version active et une trace de chargement permettant de remonter \u00e0 la source.<\/p>\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Quels_pieges_de_reprise_de_donnees_compromettent_un_historique_deja_en_production\"><\/span>Quels pi\u00e8ges de reprise de donn\u00e9es compromettent un historique d\u00e9j\u00e0 en production ?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<p class=\"wp-block-paragraph\">Les Pi\u00e8ges de reprise apparaissent souvent lorsque le projet tente de reconstituer plusieurs ann\u00e9es d\u2019\u00e9volution \u00e0 partir d\u2019une source qui ne conserve que son \u00e9tat courant. Dans ce cas, charger la photographie disponible dans une dimension Type 2 ne recr\u00e9e pas le pass\u00e9. Cela cr\u00e9e une premi\u00e8re version dat\u00e9e de mani\u00e8re conventionnelle, et cette convention doit \u00eatre visible dans la documentation.<\/p>\n\n<p class=\"wp-block-paragraph\">Attribuer arbitrairement une date de d\u00e9but ancienne \u00e0 toutes les lignes donne l\u2019impression d\u2019un historique complet. Pourtant, cette date ne prouve rien sur l\u2019\u00e9tat r\u00e9el des attributs \u00e0 l\u2019\u00e9poque. Dans les rapports, les utilisateurs peuvent ensuite interpr\u00e9ter cette ligne comme une valeur historiquement certaine. Cette confusion est l\u2019une des causes les plus fr\u00e9quentes de contestation en recette.<\/p>\n\n<p class=\"wp-block-paragraph\">Une reprise de donn\u00e9es doit s\u00e9parer trois cat\u00e9gories. La premi\u00e8re contient les p\u00e9riodes prouv\u00e9es par des archives ou des journaux source. La deuxi\u00e8me contient les donn\u00e9es connues \u00e0 la date d\u2019extraction initiale. La troisi\u00e8me contient les zones inconnues, pour lesquelles aucune reconstitution fiable n\u2019est possible. Ces trois cat\u00e9gories ne doivent pas \u00eatre pr\u00e9sent\u00e9es sous le m\u00eame statut.<\/p>\n\n<h3 class=\"wp-block-heading\">Les doublons et les changements r\u00e9troactifs doivent \u00eatre trait\u00e9s avant le chargement<\/h3>\n\n<p class=\"wp-block-paragraph\">Les doublons de cl\u00e9s m\u00e9tiers constituent un risque imm\u00e9diat. Deux lignes source portant le m\u00eame identifiant client, avec des attributs divergents, ne peuvent pas \u00eatre charg\u00e9es m\u00e9caniquement dans une m\u00eame version active. Il faut identifier la r\u00e8gle de priorit\u00e9, la source de r\u00e9f\u00e9rence et la date \u00e0 laquelle chaque information a \u00e9t\u00e9 valid\u00e9e.<\/p>\n\n<p class=\"wp-block-paragraph\">Les changements r\u00e9troactifs posent un autre probl\u00e8me. Une correction peut indiquer qu\u2019un client a chang\u00e9 de segment le 1er f\u00e9vrier, alors que l\u2019information est re\u00e7ue le 20 mars. Si des faits existent entre ces deux dates, le flux doit savoir s\u2019il recalcule les rattachements historiques ou s\u2019il conserve la cl\u00e9 attribu\u00e9e au moment du chargement. Ce choix doit \u00eatre arbitr\u00e9 avant la bascule.<\/p>\n\n<p class=\"wp-block-paragraph\">Dans un socle ancien, les rapports peuvent aussi contenir des r\u00e8gles invisibles dans les tables. Un filtre de statut client pos\u00e9 au niveau d\u2019une condition d\u2019objet dans un univers BusinessObjects peut exclure des versions historiques sans appara\u00eetre dans le Webi. Reprendre seulement les tables et les rapports visibles ne suffit pas. Les conditions, contextes de requ\u00eate et objets calcul\u00e9s doivent \u00eatre inventori\u00e9s.<\/p>\n\n<p class=\"wp-block-paragraph\">Un <a href=\"https:\/\/acconsulting-france.fr\/blog\/infocentre-definition-role\/\">infocentre<\/a> conserve parfois des extractions qui ne sont plus disponibles dans le syst\u00e8me transactionnel. Ces jeux peuvent aider \u00e0 \u00e9tablir un \u00e9tat de r\u00e9f\u00e9rence, mais ils doivent \u00eatre qualifi\u00e9s. Une extraction mensuelle ne permet pas de dater un changement intervenu entre deux arr\u00eat\u00e9s. Elle atteste seulement l\u2019\u00e9tat observ\u00e9 \u00e0 chaque date d\u2019extraction.<\/p>\n\n<p class=\"wp-block-paragraph\">La reprise doit aussi traiter les suppressions. Une absence dans la source ne signifie pas toujours qu\u2019une entit\u00e9 doit \u00eatre ferm\u00e9e dans la dimension. Il peut s\u2019agir d\u2019un filtre, d\u2019un incident de chargement ou d\u2019un p\u00e9rim\u00e8tre source r\u00e9duit. Fermer automatiquement toutes les lignes absentes transforme une anomalie temporaire en historique m\u00e9tier erron\u00e9.<\/p>\n\n<p class=\"wp-block-paragraph\">Un protocole de reprise utilisable comporte au minimum les contr\u00f4les suivants.<\/p>\n\n<ol class=\"wp-block-list\"><li>Comparer le nombre de cl\u00e9s m\u00e9tiers distinctes entre l\u2019extraction source, la zone de pr\u00e9paration et la dimension cible.<\/li><li>V\u00e9rifier qu\u2019une cl\u00e9 m\u00e9tier ne poss\u00e8de qu\u2019une version courante apr\u00e8s chaque chargement.<\/li><li>Identifier les p\u00e9riodes qui se chevauchent ou pr\u00e9sentent une date de fin ant\u00e9rieure \u00e0 la date de d\u00e9but.<\/li><li>Isoler les lignes charg\u00e9es avec une date d\u2019effet conventionnelle, afin qu\u2019elles ne soient pas confondues avec des p\u00e9riodes prouv\u00e9es.<\/li><li>Tester les faits arriv\u00e9s tardivement sur des dates o\u00f9 la dimension poss\u00e8de plusieurs versions.<\/li><\/ol>\n\n<p class=\"wp-block-paragraph\">Une reprise ne devient pas fiable parce que toutes les lignes ont \u00e9t\u00e9 charg\u00e9es. Elle devient d\u00e9fendable lorsque le projet distingue ce qu\u2019il sait reconstituer, ce qu\u2019il suppose et ce qu\u2019il ne peut pas prouver.<\/p>\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Comment_organiser_la_recette_des_dimensions_historiques_avant_la_bascule\"><\/span>Comment organiser la recette des dimensions historiques avant la bascule ?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n<p class=\"wp-block-paragraph\">La recette d\u2019une dimension SCD ne doit pas se limiter \u00e0 compter les lignes ins\u00e9r\u00e9es. Un volume identique peut masquer des p\u00e9riodes invalides, des rattachements de faits erron\u00e9s ou des changements de Type 1 trait\u00e9s comme du Type 2. Le contr\u00f4le doit porter sur les versions, les dates d\u2019effet et les restitutions produites par les rapports.<\/p>\n\n<p class=\"wp-block-paragraph\">Le premier jeu de tests couvre la cr\u00e9ation initiale. Une nouvelle cl\u00e9 m\u00e9tier doit g\u00e9n\u00e9rer une seule version courante, avec des attributs conformes \u00e0 la source et une date de d\u00e9but attendue. Le second couvre l\u2019absence de changement. Une ligne strictement identique ne doit pas cr\u00e9er une version suppl\u00e9mentaire, m\u00eame si elle est recharg\u00e9e plusieurs fois.<\/p>\n\n<p class=\"wp-block-paragraph\">Le troisi\u00e8me jeu de tests couvre une modification sur un attribut historis\u00e9. L\u2019ancienne version doit \u00eatre ferm\u00e9e selon la convention d\u00e9finie. La nouvelle doit recevoir une cl\u00e9 substitutive diff\u00e9rente. Les faits ant\u00e9rieurs et post\u00e9rieurs \u00e0 la date d\u2019effet doivent \u00eatre rapproch\u00e9s de la bonne version, avec des r\u00e9sultats expliqu\u00e9s et accept\u00e9s par les m\u00e9tiers.<\/p>\n\n<h3 class=\"wp-block-heading\">Mettre en place un double run limit\u00e9 mais utile<\/h3>\n\n<p class=\"wp-block-paragraph\">Le double run consiste \u00e0 produire pendant une p\u00e9riode d\u00e9finie les restitutions depuis l\u2019ancien socle et depuis le nouveau. L\u2019objectif n\u2019est pas de promettre des chiffres identiques. Les mod\u00e8les, les calendriers, les r\u00e8gles de filtrage et les donn\u00e9es reprises peuvent diff\u00e9rer. L\u2019objectif est de mesurer les \u00e9carts, de les expliquer et de d\u00e9cider lesquels sont acceptables.<\/p>\n\n<p class=\"wp-block-paragraph\">Un contr\u00f4le utile compare les indicateurs \u00e0 une granularit\u00e9 suffisante. Une comparaison globale du chiffre d\u2019affaires peut \u00eatre rassurante tout en masquant un mauvais rattachement par segment ou par r\u00e9gion. Il faut croiser au moins une p\u00e9riode, une dimension historis\u00e9e et une mesure de fait. Le r\u00e9sultat doit distinguer les \u00e9carts de donn\u00e9es source, les \u00e9carts de r\u00e8gle et les d\u00e9fauts techniques.<\/p>\n\n<p class=\"wp-block-paragraph\">Les responsables de recette doivent conserver la trace des \u00e9carts accept\u00e9s. Un \u00e9cart li\u00e9 \u00e0 une correction de cl\u00e9 m\u00e9tier peut \u00eatre l\u00e9gitime. Un \u00e9cart caus\u00e9 par une jointure effectu\u00e9e sur la version actuelle au lieu de la version historique ne l\u2019est pas. Sans registre d\u2019\u00e9carts, les m\u00eames discussions reviennent \u00e0 chaque comit\u00e9 de validation.<\/p>\n\n<p class=\"wp-block-paragraph\">Les rapports critiques doivent \u00eatre class\u00e9s selon leur utilisation r\u00e9elle. Un rapport financier mensuel et un rapport ouvert deux fois par an ne portent pas le m\u00eame risque de bascule. Les logs d\u2019audit doivent couvrir une p\u00e9riode assez longue pour inclure les rapports trimestriels et annuels. Une fen\u00eatre de consultation trop courte exclut pr\u00e9cis\u00e9ment les restitutions qui ressortent lors des cl\u00f4tures.<\/p>\n\n<p class=\"wp-block-paragraph\">La documentation de recette doit pr\u00e9ciser les limites de l\u2019historique repris. Si les versions ant\u00e9rieures \u00e0 une date donn\u00e9e proviennent d\u2019une photographie initiale, ce point doit figurer dans les r\u00e8gles de restitution. Un utilisateur ne doit pas d\u00e9couvrir, apr\u00e8s la bascule, que les analyses de plusieurs exercices reposent sur un \u00e9tat reconstruit et non sur des \u00e9v\u00e9nements source dat\u00e9s.<\/p>\n\n<p class=\"wp-block-paragraph\">La bascule devient raisonnable lorsque les \u00e9carts significatifs sont identifi\u00e9s, que les p\u00e9riodes de validit\u00e9 sont contr\u00f4l\u00e9es et que les rapports de pilotage utilisent explicitement la lecture historique ou la lecture courante attendue.<\/p>\n\n<h3>Quelle diff\u00e9rence existe entre une cl\u00e9 m\u00e9tier et une cl\u00e9 substitutive dans un SCD Type 2 ?<\/h3>\n<p>La cl\u00e9 m\u00e9tier identifie l\u2019entit\u00e9 dans le syst\u00e8me source, par exemple un code client. La cl\u00e9 substitutive identifie une version pr\u00e9cise de cette entit\u00e9 dans le Data Warehouse. Plusieurs cl\u00e9s substitutives peuvent donc correspondre \u00e0 une seule cl\u00e9 m\u00e9tier lorsque les attributs historis\u00e9s changent.<\/p>\n<h3>Un SCD Type 2 doit-il historiser toutes les colonnes d\u2019une dimension ?<\/h3>\n<p>Non. Seuls les attributs dont l\u2019\u00e9volution modifie l\u2019interpr\u00e9tation d\u2019un fait pass\u00e9 doivent cr\u00e9er une nouvelle version. Les corrections techniques, les normalisations de forme ou les informations sans usage historique peuvent rester en Type 1.<\/p>\n<h3>Comment traiter une donn\u00e9e source dont la date de changement est inconnue ?<\/h3>\n<p>La ligne peut \u00eatre charg\u00e9e comme \u00e9tat initial \u00e0 la date de reprise, avec un statut documentaire explicite. Il ne faut pas lui attribuer une date ancienne pr\u00e9sent\u00e9e comme certaine si aucune archive ne permet de la prouver.<\/p>\n<h3>Pourquoi des faits historiques peuvent-ils \u00eatre rattach\u00e9s \u00e0 une mauvaise version de dimension ?<\/h3>\n<p>Cette erreur survient lorsqu\u2019une jointure utilise la version courante plut\u00f4t que la cl\u00e9 substitutive enregistr\u00e9e avec le fait, ou lorsqu\u2019un fait arriv\u00e9 tardivement n\u2019est pas recherch\u00e9 dans la plage de validit\u00e9 correspondant \u00e0 sa date m\u00e9tier.<\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>L\u2019historisation des donn\u00e9es ne consiste pas \u00e0 conserver toutes les lignes sans r\u00e8gle. Elle impose de choisir quels attributs changent, \u00e0 quelle date ils prennent effet et comment les faits restent rattach\u00e9s \u00e0 la bonne version. Le SCD Type 2 r\u00e9pond \u00e0 ce besoin, mais une reprise mal cadr\u00e9e fabrique des historiques incoh\u00e9rents. Le propos [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":267,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[16],"tags":[],"class_list":["post-266","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-chantiers-de-migration"],"_links":{"self":[{"href":"https:\/\/acconsulting-france.fr\/blog\/wp-json\/wp\/v2\/posts\/266","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/acconsulting-france.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/acconsulting-france.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/acconsulting-france.fr\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/acconsulting-france.fr\/blog\/wp-json\/wp\/v2\/comments?post=266"}],"version-history":[{"count":2,"href":"https:\/\/acconsulting-france.fr\/blog\/wp-json\/wp\/v2\/posts\/266\/revisions"}],"predecessor-version":[{"id":270,"href":"https:\/\/acconsulting-france.fr\/blog\/wp-json\/wp\/v2\/posts\/266\/revisions\/270"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/acconsulting-france.fr\/blog\/wp-json\/wp\/v2\/media\/267"}],"wp:attachment":[{"href":"https:\/\/acconsulting-france.fr\/blog\/wp-json\/wp\/v2\/media?parent=266"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/acconsulting-france.fr\/blog\/wp-json\/wp\/v2\/categories?post=266"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/acconsulting-france.fr\/blog\/wp-json\/wp\/v2\/tags?post=266"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}