<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Archives des dbt core - BiiR</title>
	<atom:link href="https://www.biir.fr/tag/dbt-core/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.biir.fr/tag/dbt-core/</link>
	<description></description>
	<lastBuildDate>Fri, 24 Oct 2025 15:44:04 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://www.biir.fr/wp-content/uploads/2019/03/cropped-BIIR_logo_base_BLEU-32x32.jpg</url>
	<title>Archives des dbt core - BiiR</title>
	<link>https://www.biir.fr/tag/dbt-core/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Transformer ses données sans se prendre la tête : le pari de BiiR avec dbt Core</title>
		<link>https://www.biir.fr/2025/10/24/le-pari-de-biir-avec-dbt-core/</link>
					<comments>https://www.biir.fr/2025/10/24/le-pari-de-biir-avec-dbt-core/#respond</comments>
		
		<dc:creator><![CDATA[Aurore Grand-Moursel]]></dc:creator>
		<pubDate>Fri, 24 Oct 2025 15:34:01 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[bi]]></category>
		<category><![CDATA[BO]]></category>
		<category><![CDATA[Data]]></category>
		<category><![CDATA[dbt]]></category>
		<category><![CDATA[dbt core]]></category>
		<guid isPermaLink="false">https://www.biir.fr/?p=1270</guid>

					<description><![CDATA[<p>Envie de connaitre et comprendre l'outil dbt core ? Vous êtes au bon endroit !</p>
<p>L’article <a href="https://www.biir.fr/2025/10/24/le-pari-de-biir-avec-dbt-core/">Transformer ses données sans se prendre la tête : le pari de BiiR avec dbt Core</a> est apparu en premier sur <a href="https://www.biir.fr">BiiR</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wpb-content-wrapper"><div class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="vc_empty_space"  style="height: 32px" >
	<span class="vc_empty_space_inner">
		<span class="empty_space_image"  ></span>
	</span>
</div>
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<h2 id="Introduction" data-renderer-start-pos="85"><strong data-renderer-mark="true"><span class="fabric-text-color-mark" data-renderer-mark="true" data-text-custom-color="#0747a6">Introduction</span></strong></h2>
<p data-renderer-start-pos="99">Le monde de la donnée évolue à grande vitesse. Les architectures traditionnelles, souvent lourdes et rigides, laissent place à des approches plus agiles, principalement pensée pour des environnements cloud et collaboratives.</p>
<p>Chez <strong data-renderer-mark="true">BiiR</strong>, experts de la data, nous avons souhaité tester et comprendre une technologie déjà très présente : <strong data-renderer-mark="true">dbt Core</strong>, composante incontournable de la <strong data-renderer-mark="true">Modern Data Stack</strong>.<br />
Nous avons décidé d’évaluer sa pertinence à travers un <strong data-renderer-mark="true">Proof of Concept </strong>(POC) concret, en migrant une partie de nos traitements Talend Open Studio vers dbt core. Voici notre retour d’expérience.</p>

		</div>
	</div><div class="vc_empty_space"  style="height: 22px" >
	<span class="vc_empty_space_inner">
		<span class="empty_space_image"  ></span>
	</span>
</div><div class="separator  normal   " style=""></div><div class="vc_empty_space"  style="height: 22px" >
	<span class="vc_empty_space_inner">
		<span class="empty_space_image"  ></span>
	</span>
</div>
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<p data-renderer-start-pos="692">Avant de vous dévoiler notre étude, il serait pertinent d’apporter du contexte en définissant les points importants :</p>
<h2 id="La-Modern-Data-Stack,-une-révolution-dans-l’architecture-data" data-renderer-start-pos="811"><strong data-renderer-mark="true"><span class="fabric-text-color-mark" data-renderer-mark="true" data-text-custom-color="#0747a6">La Modern Data Stack, une révolution dans l’architecture data</span></strong></h2>
<p data-renderer-start-pos="874">La <strong data-renderer-mark="true">Modern Data Stack </strong>désigne une architecture moderne et <strong data-renderer-mark="true">modulaire</strong>, entièrement pensée pour le cloud et orientée vers la <strong data-renderer-mark="true">flexibilité, la collaboration et la rapidité d’évolution</strong>.</p>
<p data-renderer-start-pos="1054">Principes clés :</p>
<ul>
<li data-renderer-start-pos="1074"><strong data-renderer-mark="true">Flexibilité</strong> : chaque brique est indépendante et remplaçable. (Architecture sur mesure)</li>
<li data-renderer-start-pos="1164"><strong data-renderer-mark="true">Scalabilité</strong> : la puissance s’adapte à la demande, sans gestion d’infrastructure.</li>
<li data-renderer-start-pos="1248"><strong data-renderer-mark="true">Accessibilité</strong> : les outils sont conçus autant pour les métiers que pour les équipes techniques.</li>
<li data-renderer-start-pos="1347"><strong data-renderer-mark="true">Gouvernance automatisée</strong> : la donnée est documentée, tracée et contrôlée.</li>
</ul>
<p>&nbsp;</p>
<p data-renderer-start-pos="1423">Les briques caractéristique d’une Modern Data Stack :</p>
<ol>
<li style="list-style-type: none;">
<ol>
<li data-renderer-start-pos="1480"><strong>Ingestion</strong> : récupération de données de sources hétérogènes (API, fichiers, bases de données, IoT, applications métier…).</li>
<li data-renderer-start-pos="1604"><strong>Stockage</strong> : centralisation et conservation des données dans un système cible, souvent un Data Warehouse ou un Data Lake (Snowflake, BigQuery, Redshift, etc.).</li>
<li data-renderer-start-pos="1765"><strong>Transformation / Modélisation</strong> : transformation des données brutes directement au sein du système de stockage, pour les rendre exploitables et conformes aux besoins métiers (via dbt, Airflow, etc.).</li>
<li data-renderer-start-pos="1966"><strong>Analyse &amp; Déploiement</strong> : valorisation des données à travers des outils de visualisation et de reporting (Power BI, Tableau…) ou opérationnels (CRM, outils marketing, etc.).</li>
<li data-renderer-start-pos="2141"><strong>Gouvernance &amp; Sécurité</strong> : catalogage, traçabilité et gestion de la conformité des données.</li>
</ol>
</li>
</ol>
<p>&nbsp;</p>
<p data-renderer-start-pos="2234">La Modern Data Stack s’appuie largement sur le paradigme <strong data-renderer-mark="true">ELT</strong>, qui redéfinit la manière de transformer les données directement dans les entrepôts cloud.</p>

		</div>
	</div><div class="vc_empty_space"  style="height: 32px" >
	<span class="vc_empty_space_inner">
		<span class="empty_space_image"  ></span>
	</span>
</div>
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<h2 id="ELT-:-la-transformation-moderne-des-données" data-renderer-start-pos="2387">ELT : la transformation moderne des données</h2>
<p data-renderer-start-pos="2432">Historiquement, les traitements suivaient le modèle <strong data-renderer-mark="true">ETL (Extract – Transform – Load)</strong> : les données étaient transformées avant d’être chargées dans la base cible.</p>
<p data-renderer-start-pos="2595">Le cloud a renversé cette logique avec le modèle <strong data-renderer-mark="true">ELT (Extract – Load – Transform)</strong> : les données brutes sont chargées dans la base de donnée cible, puis transformées directement à l’intérieur de celle-ci <u data-renderer-mark="true">grâce à sa puissance de calcul</u>.</p>
<p data-renderer-start-pos="2831">Avantages du modèle ELT :</p>
<ul>
<li data-renderer-start-pos="2860"><strong data-renderer-mark="true">Scalabilité accrue</strong> grâce aux ressources cloud.</li>
<li data-renderer-start-pos="2910">Les<strong> données sont chargées rapidement</strong> et transformées à la demande selon les besoins métiers.</li>
<li data-renderer-start-pos="3006"><strong data-renderer-mark="true">Flexibilité</strong> pour explorer et ajuster les modèles à la volée.</li>
</ul>
<p data-renderer-start-pos="3070">C’est dans cette approche qu’intervient <strong data-renderer-mark="true">dbt Core</strong>, une solution pensée pour la <strong data-renderer-mark="true">T</strong>ransformation des données. L’outil ne gère ni l’extraction ni le chargement.</p>

		</div>
	</div><div class="vc_empty_space"  style="height: 22px" >
	<span class="vc_empty_space_inner">
		<span class="empty_space_image"  ></span>
	</span>
</div><div class="separator  normal   " style=""></div><div class="vc_empty_space"  style="height: 22px" >
	<span class="vc_empty_space_inner">
		<span class="empty_space_image"  ></span>
	</span>
</div>
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<h2 id="dbt-Core-:-structurer-et-automatiser-la-transformation-des-données" data-renderer-start-pos="3228">dbt Core <span class="fabric-text-color-mark" data-renderer-mark="true" data-text-custom-color="#0747a6">: structurer et automatiser la transformation des données</span></h2>
<h4 data-renderer-start-pos="3296"></h4>
<p>&nbsp;</p>
<h4 id="Un-pilier-de-la-moderne-data-stack" data-renderer-start-pos="3296"><span style="color: #3366ff;"><strong><span class="fabric-text-color-mark" data-renderer-mark="true" data-text-custom-color="#4c9aff">Un pilier de la moderne data stack</span></strong></span></h4>
<p data-renderer-start-pos="3332"><strong data-renderer-mark="true">dbt Core (data build tool)</strong> est un outil <u data-renderer-mark="true">open source</u> rependu des architectures data modernes.<br />
Son rôle : <strong data-renderer-mark="true">orchestrer les transformations de données directement dans le data warehouse</strong>, selon une logique <strong data-renderer-mark="true">ELT (Extract – Load – Transform)</strong>.<br />
Il ne s’occupe ni de l’extraction ni du chargement, mais optimise la <strong data-renderer-mark="true">phase de transformation, </strong><u data-renderer-mark="true">en tirant parti de la puissance de calcul de l’entrepôt</u> sans ajouter d’infrastructure supplémentaire.<br />
dbt Core se connecte à la plupart des entrepôts de données du marché (Snowflake, BigQuery, Redshift, Databricks, PostgreSQL, etc.), grâce à un large écosystème d’adaptateurs open source.</p>
<h4 id="Une-approche-“développeur”-de-la-data-:-prémices-du-rôle-d’Analytics-Engineer" data-renderer-start-pos="3951"><span style="color: #3366ff;"><strong><span class="fabric-text-color-mark" data-renderer-mark="true" data-text-custom-color="#4c9aff">Une approche “développeur” de la</span> data : prémices du rôle d’Analytics Engineer</strong></span></h4>
<p data-renderer-start-pos="4030">dbt Core se distingue par son <strong data-renderer-mark="true">approche orientée code</strong>, loin des interfaces visuelles classiques.<br />
Les transformations sont écrites en <strong data-renderer-mark="true">SQL</strong>, organisées dans une arborescence de fichiers claire et <strong data-renderer-mark="true">versionnées via des outils de CI/CD</strong>, à l’image des projets logiciels.</p>
<p data-renderer-start-pos="4293">Cette philosophie “software engineering” appliquée à la data introduit de bonnes pratiques dans la modélisation analytique :</p>
<ul>
<li style="list-style-type: none;">
<ul>
<li data-renderer-start-pos="4421"><strong data-renderer-mark="true">Modularité</strong> : Les macros Jinja permettent d’injecter de la logique Python dans le SQL, rendant les transformations dynamiques, paramétrables et réutilisables.</li>
<li data-renderer-start-pos="4582"><strong data-renderer-mark="true">Fiabilité</strong> : les <strong data-renderer-mark="true">tests automatiques (intégrés ou personnalisés) </strong>garantissent la qualité des données</li>
<li data-renderer-start-pos="4685"><strong data-renderer-mark="true">Collaboration</strong> : En intégrant Git et les principes de CI/CD, dbt rapproche les pratiques data de celles du développement logiciel, permettant aux équipes d&rsquo;analystes et de data engineers de travailler ensemble.</li>
<li data-renderer-start-pos="4898"><strong data-renderer-mark="true">Documentation intégrée</strong> : générée automatiquement à partir des modèles et paramétrables pour ajouter de la précision.</li>
</ul>
</li>
</ul>
<p>&nbsp;</p>
<h4 id="Un-outil-léger-mais-puissant" data-renderer-start-pos="5018"><span style="color: #3366ff;"><strong><span class="fabric-text-color-mark" data-renderer-mark="true" data-text-custom-color="#4c9aff">Un outil léger mais puissant</span></strong></span></h4>
<p data-renderer-start-pos="5048">dbt Core repose sur un moteur Python open source, piloté via une interface en CLI (ligne de commande).<br />
Quelques commandes suffisent pour créer un projet, exécuter les modèles, lancer les tests ou générer la documentation.<br />
Il s’installe simplement à l’image d’une librairie python classique (version python 3.8 ou plus), avec un adaptateur spécifique à l’entrepôt de données utilisé (PostgreSQL, Snowflake, BigQuery, Redshift, Databricks, etc.).</p>
<p data-renderer-start-pos="5494">Une fois configuré, dbt orchestre des requêtes SQL directement dans le data warehouse, produisant des <strong data-renderer-mark="true">vues</strong>, <strong data-renderer-mark="true">tables matérialisées</strong> ou <strong data-renderer-mark="true">tables incrémentales</strong>, selon les besoins.</p>
<p data-renderer-start-pos="5669">Cette approche “SQL-first” repose sur trois briques complémentaires :</p>
<ul>
<li style="list-style-type: none;">
<ul>
<li data-renderer-start-pos="5742"><strong data-renderer-mark="true">SQL</strong>, pour décrire les transformations et la logique métier ;</li>
<li data-renderer-start-pos="5806"><strong>YAML</strong>, langage de configuration, permettant définir les sources, les tests et la documentation ;</li>
<li data-renderer-start-pos="5905"><strong>Jinja</strong>, syntaxe de template basée sur du python permettant d&rsquo;introduire de la logique réutilisable (macros, variables, conditions).</li>
</ul>
</li>
</ul>
<p data-renderer-start-pos="6039">L’ensemble permet de construire des pipelines <strong data-renderer-mark="true">robustes, performants et maintenables</strong>, en tirant parti de la puissance du warehouse sans infrastructure supplémentaire.<br />
Enfin, dbt génère automatiquement un <strong>graphe DAG</strong> (Directed Acyclic Graph), qui visualise les dépendances entre modèles et facilite la compréhension et le débogage des flux de données.</p>
<h4 id="Composition-d’un-projet-dbt-core" data-renderer-start-pos="6389"><span style="color: #3366ff;"><strong><span class="fabric-text-color-mark" data-renderer-mark="true" data-text-custom-color="#4c9aff">Composition d’un projet dbt core</span></strong></span></h4>
<p data-renderer-start-pos="6423">Un projet dbt s’organise autour d’une <strong data-renderer-mark="true">arborescence claire et standardisée</strong>, qui reflète les différentes étapes du pipeline de transformation.<br />
Chaque dossier a un rôle précis :</p>
<ul>
<li style="list-style-type: none;">
<ul>
<li data-renderer-start-pos="6601"><strong data-renderer-mark="true">models/</strong> : contient les fichiers SQL décrivant les transformations de données.</li>
<li data-renderer-start-pos="6682"><strong data-renderer-mark="true">tests/</strong> : regroupe les règles de qualité (unicité, non-nullité, cohérence entre tables).</li>
<li data-renderer-start-pos="6773"><strong data-renderer-mark="true">macros/</strong> : stocke les fonctions réutilisables écrites en Jinja, permettant de factoriser le code SQL.</li>
<li data-renderer-start-pos="6877"><strong data-renderer-mark="true">snapshots/</strong> : conserve l’historique des tables, utile pour suivre l’évolution des données dans le temps.</li>
<li data-renderer-start-pos="6984"><strong data-renderer-mark="true">seeds/</strong> : héberge les tables de référence statiques ou de paramétrage.</li>
<li data-renderer-start-pos="7057"><strong data-renderer-mark="true">logs/</strong> et <strong data-renderer-mark="true">target/</strong> : contiennent respectivement les journaux d’exécution et les fichiers compilés.</li>
</ul>
</li>
</ul>
<p data-renderer-start-pos="7157">La définition du projet repose sur plusieurs fichiers <strong data-renderer-mark="true">YAML</strong> qui décrivent les modèles, les sources et les tests associés.<br />
Le fichier central <code class="_ca0qyh40 _u5f3m5ip _n3tdyh40 _19bvm5ip _2rkofajl _11c81u0j _1reo1wug _18m91wug _1dqoglyw _1e0c1nu9 _bfhktkvp _16d9qvcn _syaz1fxt _vwz41kw7 _1i4q1hna _o5721jtm" data-renderer-mark="true">dbt_project.yml</code> définit la structure globale, les chemins et les paramètres de compilation, tandis que <code class="_ca0qyh40 _u5f3m5ip _n3tdyh40 _19bvm5ip _2rkofajl _11c81u0j _1reo1wug _18m91wug _1dqoglyw _1e0c1nu9 _bfhktkvp _16d9qvcn _syaz1fxt _vwz41kw7 _1i4q1hna _o5721jtm" data-renderer-mark="true">profiles.yml</code> gère la connexion à la base de données.</p>
<p data-renderer-start-pos="7454">Cette structuration permet d’appliquer les bonnes pratiques du développement logiciel à la transformation de données : code versionné et organisé, documentation intégrée et tests automatisés.</p>
<h4 id="Pourquoi-les-équipes-data-l’adoptent" data-renderer-start-pos="7647"><span style="color: #3366ff;"><strong><span class="fabric-text-color-mark" data-renderer-mark="true" data-text-custom-color="#4c9aff">Pourquoi les équipes data l’adoptent</span></strong></span></h4>
<p data-renderer-start-pos="7685">En standardisant les transformations SQL, dbt Core :</p>
<ul>
<li style="list-style-type: none;">
<ul>
<li data-renderer-start-pos="7741">simplifie la <strong data-renderer-mark="true">gouvernance et la traçabilité</strong> des flux de données ;</li>
<li data-renderer-start-pos="7809">s’intègre parfaitement à l’architecture modulaire de la moderne data stack;</li>
<li data-renderer-start-pos="7888">favorise une <strong data-renderer-mark="true">culture data agile et collaborative</strong>.</li>
</ul>
</li>
</ul>
<p data-renderer-start-pos="7941">De plus, l’outil bénéficie d’une communauté très active, apportant des packages permettant d’élargir les possibilités de dbt core.</p>

		</div>
	</div><div class="vc_empty_space"  style="height: 22px" >
	<span class="vc_empty_space_inner">
		<span class="empty_space_image"  ></span>
	</span>
</div><div class="separator  normal   " style=""></div><div class="vc_empty_space"  style="height: 22px" >
	<span class="vc_empty_space_inner">
		<span class="empty_space_image"  ></span>
	</span>
</div>
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<h2 id="POC-BiiR-:-migrer-un-flux-Talend-vers-dbt-Core" data-renderer-start-pos="8074"><strong data-renderer-mark="true"><span class="fabric-text-color-mark" data-renderer-mark="true" data-text-custom-color="#0747a6">POC BiiR : migrer un flux Talend vers dbt Core</span></strong></h2>
<p>&nbsp;</p>
<h4 id="Objectif" data-renderer-start-pos="8122"><span style="color: #3366ff;"><strong><span class="fabric-text-color-mark" data-renderer-mark="true" data-text-custom-color="#4c9aff">Objectif</span></strong></span></h4>
<p data-renderer-start-pos="8132">Plutôt que de rester sur une approche théorique, nous avons voulu confronter dbt Core à un cas concret pour en mesurer les apports et les limites.</p>
<p data-renderer-start-pos="8280">L’idée : remplacer une partie de notre reporting interne, historiquement construit avec Talend Open Studio, par une architecture plus moderne, basée sur Python pour l’ingestion et dbt Core pour la transformation. L’enjeu n’était pas de tout réinventer, mais de valider l’efficacité, la maintenabilité et la simplicité de ce nouvel écosystème dans un contexte opérationnel.</p>
<h4 id="Stack-technique-mise-en-place" data-renderer-start-pos="8654"><span style="color: #3366ff;"><strong data-renderer-mark="true"><span class="fabric-text-color-mark" data-renderer-mark="true" data-text-custom-color="#4c9aff">Stack technique mise en place</span></strong></span></h4>
<p data-renderer-start-pos="8685">Nous avons opté pour une architecture minimale mais représentative, afin de concentrer le POC sur la mise en œuvre de dbt Core plutôt que sur la complexité de l’écosystème.</p>

		</div>
	</div>
	<div class="wpb_single_image wpb_content_element vc_align_center">
		<div class="wpb_wrapper">
			
			<div class="vc_single_image-wrapper   vc_box_border_grey"><img fetchpriority="high" decoding="async" width="1613" height="577" src="https://www.biir.fr/wp-content/uploads/2025/10/schema_dbt_core.png" class="vc_single_image-img attachment-full" alt="" title="schema_dbt_core" srcset="https://www.biir.fr/wp-content/uploads/2025/10/schema_dbt_core.png 1613w, https://www.biir.fr/wp-content/uploads/2025/10/schema_dbt_core-300x107.png 300w, https://www.biir.fr/wp-content/uploads/2025/10/schema_dbt_core-1024x366.png 1024w, https://www.biir.fr/wp-content/uploads/2025/10/schema_dbt_core-768x275.png 768w, https://www.biir.fr/wp-content/uploads/2025/10/schema_dbt_core-1536x549.png 1536w, https://www.biir.fr/wp-content/uploads/2025/10/schema_dbt_core-700x250.png 700w" sizes="(max-width: 1613px) 100vw, 1613px" /></div>
		</div>
	</div>
<div class="vc_empty_space"  style="height: 32px" >
	<span class="vc_empty_space_inner">
		<span class="empty_space_image"  ></span>
	</span>
</div><div      class="vc_row wpb_row section vc_row-fluid vc_inner " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-3"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="vc_empty_space"  style="height: 100px" >
	<span class="vc_empty_space_inner">
		<span class="empty_space_image"  ></span>
	</span>
</div></div></div></div><div class="wpb_column vc_column_container vc_col-sm-6"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="vc_empty_space"  style="height: 100px" >
	<span class="vc_empty_space_inner">
		<span class="empty_space_image"  ></span>
	</span>
</div>
	<div class="wpb_raw_code wpb_raw_html wpb_content_element" >
		<div class="wpb_wrapper">
			<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Tableau Stylé</title>
<style>



  table {
    border-collapse: separate; /* pour permettre les coins arrondis */
    border-spacing: 0;
    text-align: center;
    box-shadow: 0 4px 10px rgba(0,0,0,0.2); /* léger effet 3D */
    border-radius: 12px; /* coins arrondis du tableau */
    overflow: hidden; /* pour que les arrondis fonctionnent */
  }

  th, td {
    padding: 12px 20px;
    border-bottom: 1px solid #ccc;
    border-right: 1px solid #ccc;
  }

  /* Dernière colonne sans bordure à droite */
  th:last-child, td:last-child {
    border-right: none;
  }

  /* Dernière ligne sans bordure en bas */
  tr:last-child td, tr:last-child th {
    border-bottom: none;
  }

  /* Couleur de la première ligne */
  .header-row {
    background-color: #f28c28;
    color: white;
    font-weight: bold;
  }

  /* Couleur de la première colonne */
  .header-col {
    background-color: #6fa8dc;
    color: white;
    font-weight: bold;
  }

  /* Couleur de la case croisée */
  .corner {
    background-color: #e06666;
    color: white;
    font-weight: bold;
  }

  /* Couleur par défaut des autres cellules */
  td {
    background-color: #ffffff;
    color: #333333;
  }

  /* Effet 3D léger à l'intérieur des cellules */
  th, td {
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.5);
  }
</style>
</head>
<body>
    
<div style="display: flex; flex-wrap: wrap;">
    <table>
      <tr>
        <th class="corner">Etape</th>
        <th class="header-row">Avant (Talend)</th>
        <th class="header-row">Après (dbt Core)</th>
      </tr>
      <tr>
        <th class="header-col">Extraction</th>
        <td>Talend (API, fichiers, copy data)</td>
        <td>Scripts Python (API, fichiers, copy data)</td>
      </tr>
      <tr>
        <th class="header-col">Stockage</th>
        <td>SQL server</td>
        <td>PostgreSQL</td>
      </tr>
      <tr>
        <th class="header-col">Transformation</th>
        <td>Talend</td>
        <td>dbt Core</td>
      </tr>
      <tr>
        <th class="header-col">Visualisation</th>
        <td>Power BI</td>
        <td>Power BI</td>
      </tr>
      <tr>
        <th class="header-col">Orchestration</th>
        <td>Intégrée à Talend</td>
        <td>Scheduling Python (cron / scripts)</td>
      </tr>
    </table>
</div>

</body>
</html>

		</div>
	</div>
</div></div></div><div class="wpb_column vc_column_container vc_col-sm-3"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="vc_empty_space"  style="height: 100px" >
	<span class="vc_empty_space_inner">
		<span class="empty_space_image"  ></span>
	</span>
</div></div></div></div></div></div><div class="vc_empty_space"  style="height: 32px" >
	<span class="vc_empty_space_inner">
		<span class="empty_space_image"  ></span>
	</span>
</div>
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<h4 id="Notre-étude" data-renderer-start-pos="9218"><span class="fabric-text-color-mark" style="color: #3366ff;" data-renderer-mark="true" data-text-custom-color="#4c9aff">Notre étude</span></h4>
<p>&nbsp;</p>

		</div>
	</div><div      class="vc_row wpb_row section vc_row-fluid vc_inner " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-2"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="vc_empty_space"  style="height: 100px" >
	<span class="vc_empty_space_inner">
		<span class="empty_space_image"  ></span>
	</span>
</div></div></div></div><div class="wpb_column vc_column_container vc_col-sm-8"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_raw_code wpb_raw_html wpb_content_element" >
		<div class="wpb_wrapper">
			<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<title>Tableau Stylé</title>
<style>



  table {
    border-collapse: separate; /* pour permettre les coins arrondis */
    border-spacing: 0;
    text-align: center;
    box-shadow: 0 4px 10px rgba(0,0,0,0.2); /* léger effet 3D */
    border-radius: 12px; /* coins arrondis du tableau */
    overflow: hidden; /* pour que les arrondis fonctionnent */
  }

  th, td {
    padding: 12px 20px;
    border-bottom: 1px solid #ccc;
    border-right: 1px solid #ccc;
  }

  /* Dernière colonne sans bordure à droite */
  th:last-child, td:last-child {
    border-right: none;
  }

  /* Dernière ligne sans bordure en bas */
  tr:last-child td, tr:last-child th {
    border-bottom: none;
  }

  /* Couleur de la première ligne */
  .header-row {
    background-color: #f28c28;
    color: white;
    font-weight: bold;
  }

  /* Couleur de la première colonne */
  .header-col {
    background-color: #6fa8dc;
    color: white;
    font-weight: bold;
  }

  /* Couleur de la case croisée */
  .corner {
    background-color: #e06666;
    color: white;
    font-weight: bold;
  }

  /* Couleur par défaut des autres cellules */
  td {
    background-color: #ffffff;
    color: #333333;
  }

  /* Effet 3D léger à l'intérieur des cellules */
  th, td {
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.5);
  }
</style>
</head>
<body>

<table>
  <tr>
    <th class="corner">Axe évalué</th>
    <th class="header-row">Questions clés</th>
    <th class="header-row">Resultats observés</th>
  </tr>
  <tr>
    <th class="header-col">Facilité de prise en main</th>
    <td>La solution est-elle abordable pour tout profil technique ?</td>
    <td>Quelques notions techniques, notamment liées à l’environnement Python et à la structuration du projet dbt, requièrent une courte phase d’apprentissage, mais la documentation détaillée facilite grandement la prise en main.</td>
  </tr>
  <tr>
    <th class="header-col">Facilité de migration</th>
    <td>Quelle complexité pour transposer un flux Talend existant vers dbt Core ?</td>
    <td>Migration fluide : la logique métier s’est transposée facilement en SQL. 
Le SQL permet une meilleure lisibilité et maintenabilité du processus.</td>
  </tr>
  <tr>
    <th class="header-col">Simplicité de mise en place</th>
    <td>L’installation, la configuration et la prise en main sont-elles accessibles ?</td>
    <td>Installation rapide et intuitive.
Solution très documentée.
dbt Core s’intègre facilement à une chaîne existante (Python + PostgreSQL + Power BI).</td>
  </tr>
  <tr>
    <th class="header-col">Richesse fonctionnelle</th>
    <td>Quelles fonctionnalités natives améliorent la qualité et la gestion des modèles ?</td>
    <td>dbt intègre nativement les tests, la documentation et les snapshots. Ces outils renforcent la qualité, la fiabilité et la gouvernance des données.</td>
  </tr>
  <tr>
    <th class="header-col">Maintenabilité du code</th>
    <td>Le projet est-il structuré, traçable et collaboratif ?</td>
    <td>Le trio SQL + YAML + Jinja structure le projet et le rend lisible. Le versioning Git facilite le suivi et la collaboration entre équipes.</td>
  </tr>
  <tr>
    <th class="header-col">Modularité et adaptabilitée</th>
    <td>dbt facilite-t-il la réutilisation et la gestion multi-environnements ?</td>
    <td>Grâce aux macros Jinja et à une configuration souple, dbt permet de réutiliser les modèles et de gérer facilement plusieurs environnements (dev, test, prod).</td>
  </tr>
</table>

</body>
</html>

		</div>
	</div>
</div></div></div><div class="wpb_column vc_column_container vc_col-sm-2"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="vc_empty_space"  style="height: 100px" >
	<span class="vc_empty_space_inner">
		<span class="empty_space_image"  ></span>
	</span>
</div></div></div></div></div></div></div></div></div></div></div><div      class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="vc_empty_space"  style="height: 50px" >
	<span class="vc_empty_space_inner">
		<span class="empty_space_image"  ></span>
	</span>
</div><div class="separator  normal   " style=""></div>
	<div class="wpb_text_column wpb_content_element ">
		<div class="wpb_wrapper">
			<h2 id="Conclusion" data-renderer-start-pos="10883"><strong data-renderer-mark="true"><span class="fabric-text-color-mark" data-renderer-mark="true" data-text-custom-color="#0747a6">Conclusion</span></strong></h2>
<p data-renderer-start-pos="10895">Ce POC nous a permis de confirmer la <strong data-renderer-mark="true">pertinence de dbt Core</strong> dans une architecture data moderne.<br />
Son approche <em data-renderer-mark="true">SQL-first</em> s’est révélée efficace : les transformations sont lisibles, faciles à maintenir et compréhensibles par l’ensemble de l’équipe, qu’il s’agisse d’ingénieurs, d’analystes ou de profils métiers.<br />
La <strong>documentation automatique </strong>et les tests intégrés renforcent la qualité et la traçabilité, tandis que le versioning Git apporte une rigueur bienvenue inspirée du développement logiciel.</p>
<p data-renderer-start-pos="11393">Sur le plan technique, la combinaison <strong data-renderer-mark="true">Python + dbt + PostgreSQL</strong> facilite le déploiement tout en garantissant une architecture souple et pérenne.. Elle permet de s’affranchir d’un ETL graphique tout en favorisant une approche plus transparente et plus légère de la transformation de données.</p>
<p data-renderer-start-pos="11685">Bien sûr, dbt Core n’est pas une solution clé en main. Il faut penser <strong data-renderer-mark="true">orchestration</strong>, <strong data-renderer-mark="true">tests</strong>, et <strong data-renderer-mark="true">gestion d’environnements</strong> (dev, test, prod) dès le départ.<br />
Mais une fois ces fondations posées, la chaîne gagne en lisibilité, en robustesse et en agilité par rapport à une approche ETL classique.</p>
<p data-renderer-start-pos="11979">Chez <strong data-renderer-mark="true">BiiR</strong>, cette expérimentation nous a permis de consolider notre expertise sur les usages concrets de dbt : comment le positionner dans un écosystème existant, comment l’orchestrer, et surtout comment le faire vivre dans la durée.<br />
Nous accompagnons désormais nos clients dans la <strong data-renderer-mark="true">mise en place ou l’évolution de leur stack de transformation</strong>, en les aidant à tirer le meilleur de dbt Core aux côtés d’autres solutions (Python, orchestration, monitoring, visualisation). dbt Core constitue une solution robuste et efficace pour industrialiser la transformation de vos données.</p>

		</div>
	</div></div></div></div></div></div><div      class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper"><div class="vc_empty_space"  style="height: 32px" >
	<span class="vc_empty_space_inner">
		<span class="empty_space_image"  ></span>
	</span>
</div></div></div></div></div></div><div      class="vc_row wpb_row section vc_row-fluid " style=' text-align:left;'><div class=" full_section_inner clearfix"><div class="wpb_column vc_column_container vc_col-sm-12"><div class="vc_column-inner"><div class="wpb_wrapper">
	<div class="wpb_raw_code wpb_raw_html wpb_content_element" >
		<div class="wpb_wrapper">
			<div style="max-width: 900px; margin: 2em auto; border-radius: 12px; overflow: hidden; box-shadow: 0 4px 12px rgba(0,0,0,0.1); font-family: 'Segoe UI', Roboto, sans-serif;">

  <div style="display: flex; flex-wrap: wrap;">
    <div style="flex: 1; min-width: 300px; background-color: #e8f8f0; padding: 20px;">
      <h3 style="color: #27ae60; margin-top: 0;">✅ Avantages observés</h3>

      <p><strong>Outil open source et modulaire :</strong> s’intègre facilement dans une stack existante, sans verrou technologique.</p>
      <hr style="border: none; border-top: 1px solid #cce8d7;">

      <p><strong>Approche SQL-first :</strong> transformations claires, lisibles et compréhensibles par tous les profils data.</p>
      <hr style="border: none; border-top: 1px solid #cce8d7;">

      <p><strong>Agilité :</strong> La flexibilité de dbt core permet de s’adapter facilement aux évolutions des besoins métier.</p>
      <hr style="border: none; border-top: 1px solid #cce8d7;">

      <p><strong>Pratiques software-first :</strong> dbt apporte à la data les standards du développement logiciel (Git, tests, documentation, CI/CD).</p>
      <hr style="border: none; border-top: 1px solid #cce8d7;">

      <p><strong>Connectivité :</strong> dbt Core s’adapte à la plupart des entrepôts de données modernes.</p>
    </div>

    <div style="flex: 1; min-width: 300px; background-color: #fdecea; padding: 20px;">
      <h3 style="color: #c0392b; margin-top: 0;">⚠️ Points d’attention</h3>

      <p><strong>Configuration initiale rigoureuse :</strong> pour tirer parti des tests et snapshots, une structuration claire du projet est nécessaire.</p>
      <hr style="border: none; border-top: 1px solid #f5c6c2;">

      <p><strong>Limité à la transformation :</strong> dbt ne gère que la transformation, il faut donc compléter le pipeline (ingestion, visualisation, monitoring...).</p>
      <hr style="border: none; border-top: 1px solid #f5c6c2;">

      <p><strong>Courbe d’apprentissage :</strong> certains concepts (macros, Jinja, tests personnalisés) demandent un peu de pratique.</p>
      <hr style="border: none; border-top: 1px solid #f5c6c2;">

      <p><strong>Pas d’interface graphique native :</strong> tout se fait en code, ce qui peut dérouter des profils non techniques.</p>
      <hr style="border: none; border-top: 1px solid #f5c6c2;">

      <p><strong>Dépendance au moteur SQL sous-jacent :</strong> dbt Core s’appuie sur le dialecte et les performances de l’entrepôt cible.</p>
    </div>
  </div>
</div>

		</div>
	</div>
</div></div></div></div></div>
</div><p>L’article <a href="https://www.biir.fr/2025/10/24/le-pari-de-biir-avec-dbt-core/">Transformer ses données sans se prendre la tête : le pari de BiiR avec dbt Core</a> est apparu en premier sur <a href="https://www.biir.fr">BiiR</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.biir.fr/2025/10/24/le-pari-de-biir-avec-dbt-core/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
