<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>ELT | </title>
    <link>http://localhost:1313/tags/elt/</link>
      <atom:link href="http://localhost:1313/tags/elt/index.xml" rel="self" type="application/rss+xml" />
    <description>ELT</description>
    <generator>HugoBlox Kit (https://hugoblox.com)</generator><language>fr-FR</language><lastBuildDate>Thu, 02 Jul 2026 00:00:00 +0000</lastBuildDate>
    <image>
      <url>http://localhost:1313/media/logo.svg</url>
      <title>ELT</title>
      <link>http://localhost:1313/tags/elt/</link>
    </image>
    
    <item>
      <title>Migration ETL - de l&#39;ETL legacy vers dbt</title>
      <link>http://localhost:1313/ressources/migration-etl/migration-etl-vers-dbt/</link>
      <pubDate>Thu, 02 Jul 2026 00:00:00 +0000</pubDate>
      <guid>http://localhost:1313/ressources/migration-etl/migration-etl-vers-dbt/</guid>
      <description>&lt;p&gt;La migration vers dbt consiste à transformer des traitements ETL propriétaires en modèles SQL exécutés directement dans le moteur de données cible.&lt;/p&gt;
&lt;p&gt;















&lt;figure  &gt;
  &lt;div class=&#34;flex justify-center	&#34;&gt;
    &lt;div class=&#34;w-full&#34; &gt;
          &lt;img alt=&#34;img-big&#34; 
               srcset=&#34;http://localhost:1313/ressources/migration-etl/migration-etl-vers-dbt/etl_technologies_hu_570947d1352b81ab.webp 320w, http://localhost:1313/ressources/migration-etl/migration-etl-vers-dbt/etl_technologies_hu_cbc88a0f326e8926.webp 480w, http://localhost:1313/ressources/migration-etl/migration-etl-vers-dbt/etl_technologies_hu_194d6a576d2fd3eb.webp 760w&#34;
               sizes=&#34;(max-width: 480px) 100vw, (max-width: 768px) 90vw, (max-width: 1024px) 80vw, 760px&#34;
               src=&#34;http://localhost:1313/ressources/migration-etl/migration-etl-vers-dbt/etl_technologies_hu_570947d1352b81ab.webp&#34;
               width=&#34;760&#34;
               height=&#34;197&#34;
               loading=&#34;lazy&#34; data-zoomable /&gt;&lt;/div&gt;
  &lt;/div&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p&gt;Avant toute conversion, &lt;strong style=&#34;color:#C00000;&#34;&gt;{openAudit}&lt;/strong&gt; analyse les flux, les dépendances et les usages afin d&amp;rsquo;identifier le périmètre réellement utile.&lt;/p&gt;



  
  &lt;blockquote class=&#34;border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6&#34;&gt;
    &lt;p&gt;&lt;strong&gt;Point clé :&lt;/strong&gt; la migration commence par une phase de rationalisation du patrimoine existant.&lt;/p&gt;

  &lt;/blockquote&gt;

&lt;h2 id=&#34;analyse-des-flux&#34;&gt;Analyse des flux&lt;/h2&gt;
&lt;p&gt;Les traitements ETL sont analysés pour reconstruire les dépendances, les transformations et les usages.&lt;/p&gt;
&lt;p&gt;Le data lineage est utilisé pour identifier les flux actifs, les branches mortes et les composants non consommés.&lt;/p&gt;
&lt;p&gt;Cette phase permet de réduire le volume de traitements à migrer.&lt;/p&gt;



  
  &lt;blockquote class=&#34;border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6&#34;&gt;
    &lt;p&gt;&lt;strong&gt;Résultat :&lt;/strong&gt; un périmètre de migration recentré sur les traitements réellement utilisés.&lt;/p&gt;

  &lt;/blockquote&gt;

&lt;h2 id=&#34;conversion-vers-sql&#34;&gt;Conversion vers SQL&lt;/h2&gt;
&lt;p&gt;Les jobs ETL sont décomposés en opérations élémentaires : filtres, jointures, agrégations, lookups, calculs métier et transformations.&lt;/p&gt;
&lt;p&gt;Ces composants sont convertis en SQL documenté et indépendant de la technologie source.&lt;/p&gt;
&lt;p&gt;Le SQL devient la représentation pivot des traitements.&lt;/p&gt;



  
  &lt;blockquote class=&#34;border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6&#34;&gt;
    &lt;p&gt;&lt;strong&gt;Point clé :&lt;/strong&gt; la logique métier est reconstruite en SQL avant génération du projet dbt.&lt;/p&gt;

  &lt;/blockquote&gt;

&lt;h2 id=&#34;génération-des-modèles-dbt&#34;&gt;Génération des modèles dbt&lt;/h2&gt;
&lt;p&gt;Les traitements SQL sont organisés sous forme de modèles dbt.&lt;/p&gt;
&lt;p&gt;Les dépendances entre modèles sont générées automatiquement à partir des flux identifiés pendant l&amp;rsquo;analyse.&lt;/p&gt;
&lt;p&gt;La structure du projet, les références entre modèles et la documentation peuvent être produites automatiquement.&lt;/p&gt;
&lt;h2 id=&#34;validation-progressive&#34;&gt;Validation progressive&lt;/h2&gt;
&lt;p&gt;La migration est réalisée par lots.&lt;/p&gt;
&lt;p&gt;Les modèles générés sont validés puis intégrés progressivement dans l&amp;rsquo;environnement cible.&lt;/p&gt;
&lt;p&gt;Les écarts peuvent être contrôlés traitement par traitement pendant la phase de transition.&lt;/p&gt;



  
  &lt;blockquote class=&#34;border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6&#34;&gt;
    &lt;p&gt;&lt;strong&gt;Usage typique :&lt;/strong&gt; migration progressive de plusieurs centaines de jobs ETL vers dbt.&lt;/p&gt;

  &lt;/blockquote&gt;

&lt;h2 id=&#34;architecture-cible&#34;&gt;Architecture cible&lt;/h2&gt;
&lt;p&gt;Les traitements deviennent des modèles SQL versionnables et maintenables.&lt;/p&gt;
&lt;p&gt;Les dépendances sont explicites, les transformations sont visibles et les traitements peuvent être exécutés directement par Snowflake, BigQuery, Databricks SQL, Redshift, PostgreSQL ou tout autre moteur compatible.&lt;/p&gt;



  
  &lt;blockquote class=&#34;border-l-4 border-neutral-300 dark:border-neutral-600 pl-4 italic text-neutral-600 dark:text-neutral-400 my-6&#34;&gt;
    &lt;p&gt;&lt;strong&gt;Point clé :&lt;/strong&gt; les traitements ne dépendent plus de la plateforme ETL historique mais d&amp;rsquo;un projet dbt basé sur du SQL ouvert.&lt;/p&gt;

  &lt;/blockquote&gt;

&lt;script&gt;
(function () {
  // Masque la date &#34;Last updated on&#34; et le bloc Auteur sur les pages
  // Ressources : ce ne sont pas des articles de blog (pas de date/signature).
  function hide() {
    document.querySelectorAll(&#34;time.mt-12.mb-8&#34;).forEach(function (el) {
      el.style.display = &#34;none&#34;;
    });
    document.querySelectorAll(&#34;div.flex.pt-12.pb-4&#34;).forEach(function (el) {
      if (el.querySelector(&#39;img[src*=&#34;/media/authors/&#34;]&#39;)) {
        el.style.display = &#34;none&#34;;
      }
    });
    // Filet de sécurité supplémentaire : masque aussi la ligne de partage
    // social et tout conteneur lié à la fiche auteur, par correspondance
    // sémantique plutôt que par nom de classe (plus robuste aux mises à jour
    // du thème).
    var shareHrefPatterns = [
      &#34;twitter.com/intent&#34;, &#34;x.com/intent&#34;, &#34;facebook.com/sharer&#34;,
      &#34;linkedin.com/sharing&#34;, &#34;wa.me/&#34;, &#34;api.whatsapp.com&#34;, &#34;mailto:?&#34;
    ];
    document.querySelectorAll(&#34;a[href]&#34;).forEach(function (a) {
      var href = a.getAttribute(&#34;href&#34;) || &#34;&#34;;
      if (shareHrefPatterns.some(function (p) { return href.indexOf(p) !== -1; })) {
        a.style.display = &#34;none&#34;;
      }
    });
    document.querySelectorAll(&#39;a[href=&#34;http://localhost:1313/authors/me/&#34;]&#39;).forEach(function (a) {
      var el = a.closest(&#34;div.flex&#34;) || a.parentElement;
      if (el) el.style.display = &#34;none&#34;;
    });
  }
  document.addEventListener(&#34;DOMContentLoaded&#34;, hide);
})();
&lt;/script&gt;
</description>
    </item>
    
  </channel>
</rss>
