<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Gemma Analytics Briefings</title>
    <link>https://gemmaanalytics.com/#briefings</link>
    <atom:link href="https://gemmaanalytics.com/briefings/feed.xml" rel="self" type="application/rss+xml"/>
    <description>Short, practical posts on data and AI from the Gemma Analytics team.</description>
    <language>de</language>
    <lastBuildDate>Thu, 05 Nov 2026 08:00:00 GMT</lastBuildDate>
    <item>
      <title>dbt Fusion in der Praxis: Warum wir erst skeptisch waren und jetzt umgestiegen sind</title>
      <link>https://gemmaanalytics.com/briefings/dbt-fusion-in-der-praxis</link>
      <guid isPermaLink="true">https://gemmaanalytics.com/briefings/dbt-fusion-in-der-praxis</guid>
      <pubDate>Thu, 05 Nov 2026 08:00:00 GMT</pubDate>
      <dc:creator>Anton Schwericke und Matthew Senyonyi</dc:creator>
      <dc:language>de</dc:language>
      <category>dbt</category><category>dbt Fusion</category><category>Data Engineering</category>
      <description>Was bringt dbt Fusion wirklich? Unser Erfahrungsbericht: Vorteile, ein Test, der schiefging, und was die Migration von dbt Core kostet.</description>
      <content:encoded><![CDATA[<p>Im Februar 2026 stand in unserem internen Tech-Radar ein klarer Satz: &quot;dbt Fusion ist nicht produktionsreif.&quot; Ende September haben wir trotzdem unser dbt-Template auf Fusion umgestellt, also die Vorlage, aus der wir jedes neue Datenprojekt aufsetzen (Ordnerstruktur, Konfiguration, Pakete, Style Guide). Jedes neue Projekt bei uns startet seitdem damit.</p>
<p>Widersprechen wir uns da? Nicht ganz. Beide Entscheidungen hatten damals gute Gründe. Hier steht, was Fusion im Alltag wirklich besser macht, warum unser erster Test schiefging, was eine Migration von dbt Core kostet und wann du besser noch wartest.</p>
<h2>Was ist dbt Fusion?</h2>
<p>dbt Fusion ist die neue Engine hinter dbt. dbt Labs hat sie von Grund auf neu geschrieben, in Rust statt in Python. Inzwischen spricht dbt Labs von &quot;dbt v2&quot;: Wer dbt heute neu installiert, bekommt standardmäßig diese Version (<a href="https://docs.getdbt.com/docs/fusion/supported-features">dbt Docs</a>).</p>
<p>Der wichtigste Unterschied steckt unter der Haube. dbt Core rendert dein Jinja zu SQL und schickt es an das Warehouse. Ob das SQL stimmt, merkst du erst, wenn das Warehouse einen Fehler zurückgibt. Fusion hingegen versteht SQL, es kennt Spalten, Typen und Abhängigkeiten, bevor irgendetwas läuft.</p>
<p>Praktisch für den Umstieg: Zum Ausprobieren installieren wir Fusion als eigenständiges Programm systemweit, nicht in der Python-Umgebung des Projekts. So läuft es problemlos neben einer bestehenden dbt-Core-Installation. Bei uns ruft der Befehl <code>dbtf</code> immer Fusion auf, <code>dbt</code> im aktiven venv weiterhin dbt Core. So kannst du beide an einem Projekt vergleichen, ohne etwas kaputt zu machen. Ist ein Projekt umgestellt, legen wir die Fusion-Version im Projekt selbst fest (mehr dazu bei der Migration).</p>
<h2>Was Fusion im Alltag besser macht</h2>
<p>Am meisten merken wir das schnellere Feedback beim Schreiben, mehr als die reine Geschwindigkeit. Vier Dinge fallen uns jeden Tag auf:</p>
<ol>
<li><strong>Fehler, bevor etwas läuft.</strong> Die offizielle dbt-Extension für VS Code markiert falsches SQL und kaputtes Jinja direkt im Editor. Ein vertippter Spaltenname fällt also beim Tippen auf, nicht nach drei Minuten Build. Die Extension braucht Fusion und ist kostenlos. Für einige Funktionen brauchst du ein ebenfalls kostenloses Konto bei dbt.</li>
<li><strong>Vorschau und Lineage im Editor.</strong> Du kannst dir Modelle und einzelne CTEs direkt im Editor ansehen, dazu die Lineage bis auf Spaltenebene. Der Wechsel ins Warehouse für schnelle Kontrollabfragen wird seltener.</li>
<li><strong>Schnelles Parsen.</strong> Zum Start hat dbt Labs mit bis zu 30-mal schnellerem Parsen geworben. Ehrlich gesagt war das Kompilieren bei uns selten der Engpass. Bei großen Projekten mit vielen Modellen spürst du den Unterschied aber, gerade in der CI.</li>
<li><strong>Schnelles Feedback auch ohne Editor.</strong> Immer mehr Arbeit an dbt-Projekten passiert im Terminal, oft mit KI-Agenten wie Claude Code. Die statische Analyse von Fusion läuft auch bei <code>dbtf compile</code>. Ein Agent erfährt so in Sekunden, dass sein SQL nicht passt, ohne eine einzige Abfrage im Warehouse. Wichtig: Im Standardmodus <code>baseline</code> sind die Funde nur Warnungen. Typfehler erkennt Fusion erst im Modus <code>strict</code>.</li>
</ol>
<p>Alte Projekte haben einen Haken: Die Fehlermarkierung folgt der aktuellen Syntax. Bei einem Repo auf einer alten dbt-Version wirst du anfangs mit Warnungen zugeschüttet. Das nervt, ist aber auch ein ziemlich deutlicher Hinweis, dass ein Update fällig ist.</p>
<h2>Unser erster Test: schneller und langsamer zugleich</h2>
<p>Im Februar 2026 haben wir Fusion an zwei Projekten ausprobiert. Das Ergebnis war widersprüchlich:</p>
<table>
<thead>
<tr>
<th>Projekt</th>
<th>dbt Core</th>
<th>dbt Fusion</th>
</tr>
</thead>
<tbody><tr>
<td>jaffle_shop (Demo-Projekt von dbt Labs)</td>
<td>ca. 25 s</td>
<td>ca. 10 s</td>
</tr>
<tr>
<td>Unser internes Projekt auf Snowflake</td>
<td>ca. 20 s</td>
<td>ca. 120 s</td>
</tr>
</tbody></table>
<p>Beim Demo-Projekt war Fusion mehr als doppelt so schnell. Bei unserem eigenen Projekt dauerte der Build sechsmal so lang.</p>
<p>Die Ursache war kein Fehler in unserem Code. Fusion hat damals die Einstellung <code>threads</code> für Snowflake ignoriert, als Teil seiner eigenen Performance-Optimierung. Es schickte also mehr Abfragen gleichzeitig ab, als wir eingestellt hatten. Unser kleines XS-Warehouse kam damit nicht hinterher, die Abfragen stauten sich. Mehr Parallelität hat das Ganze also langsamer gemacht.</p>
<p>Daher kam unser Urteil &quot;nicht produktionsreif&quot;. Die wichtigere Lehre war aber eine andere: Benchmarks aus Blogposts sagen wenig über dein Projekt (auch die aus diesem).</p>
<h2>Warum Fusion trotzdem unser Standard wurde</h2>
<p>Zwischen Februar und September hat sich einiges geändert. Mitte September hat dbt Labs Fusion als <a href="https://github.com/dbt-labs/dbt/releases/tag/v2.0.0">dbt v2.0.0</a> offiziell freigegeben. Seitdem erscheinen stabile Releases statt Preview-Versionen.</p>
<p>Auch das Threads-Problem aus unserem Test ist gelöst. Wir hatten es im Februar <a href="https://github.com/dbt-labs/dbt/issues/14285">bei dbt Labs gemeldet</a>, und nach und nach kamen viele Nutzer mit demselben Problem dazu, auch auf BigQuery und Redshift. Seit Mai 2026 behandelt Fusion <code>threads</code> als Obergrenze (<a href="https://docs.getdbt.com/docs/running-a-dbt-project/using-threads">dbt Docs</a>). Wer ein kleines Warehouse hat, kann die Parallelität also wieder begrenzen. Im November haben wir unseren Test mit denselben Einstellungen wiederholt. Diesmal war Fusion etwas schneller als dbt Core: rund 18 statt 22 Sekunden.</p>
<p>Und das Feedback im Editor lohnt sich jeden Tag, am meisten in der Einarbeitung. Wer neu im Team ist, sieht Fehler sofort und nicht erst im fehlgeschlagenen Build.</p>
<p>Unser neues internes Datenprojekt läuft komplett auf Fusion, auch die dbt-Jobs in unserem Airflow. Wir arbeiten also selbst mit dem, was wir unseren Kunden einrichten.</p>
<h2>Migration von dbt Core zu Fusion: Aufwand und Stolperfallen</h2>
<p>Wenn dein Projekt schon auf aktuellem dbt Core ohne Deprecation-Warnungen läuft, ist der Umstieg etwa so aufwendig wie ein normales Versions-Update. Genau das nennt dbt Labs auch als Voraussetzung. Fusion ist weitgehend rückwärtskompatibel. Bei älteren Projekten kommt zuerst die Arbeit, die du bei jedem größeren Update hättest. Unser Template sprang von 1.6 direkt auf Fusion. Diese Schritte waren nötig:</p>
<ol>
<li><strong>Versionsgrenze anpassen.</strong> In der <code>dbt_project.yml</code> steht jetzt <code>require-dbt-version: [&#39;&gt;=2.0.0-preview&#39;, &#39;&lt;3.0.0&#39;]</code>.</li>
<li><strong>Testparameter umziehen.</strong> Parameter von generischen Tests gehören unter <code>arguments:</code>. Wir haben dazu die Flag <code>require_generic_test_arguments_property: true</code> gesetzt, damit alte Schreibweisen sofort auffallen.</li>
<li><strong><code>tags</code> und <code>meta</code> unter <code>config:</code> schieben.</strong> Auch das ist eine reine Syntaxänderung, betrifft aber fast jede yaml.</li>
<li><strong>Pakete aktualisieren.</strong> <code>dbt deps</code> meldet, welche Pakete nicht kompatibel sind. Bei uns waren es <code>dbt_utils</code> (jetzt 1.4.1) und <code>dbt_snowflake_monitoring</code> (jetzt 5.x).</li>
<li><strong><code>sql_header</code> prüfen.</strong> Bei Snapshots, Seeds und Analysen bricht Fusion beim Parsen ab, wenn dort <code>+sql_header</code> gesetzt ist. Wir haben es dort entfernt. Für Modelle und Tests setzen wir die Zeitzone weiterhin per <code>+sql_header</code> in der <code>dbt_project.yml</code>.</li>
<li><strong>Version im Projekt festlegen.</strong> Zum Testen reicht das Binary (curl, brew oder winget). Im umgestellten Projekt installieren wir Fusion per <code>pip</code> oder <code>uv</code> in die Python-Umgebung des Projekts, mit fester Version, denn das Paket <code>dbt</code> installiert inzwischen dbt v2. So steht die Version im Repo, und jede Änderung läuft über einen Pull Request. dbt Core und Fusion können sich allerdings keine Python-Umgebung teilen. Für den Vergleich nebeneinander bleibt deshalb das Binary der einfachere Weg.</li>
</ol>
<p>Zwei Dinge haben wir erst später gelernt:</p>
<ul>
<li><strong>Pinne die Version überall gleich.</strong> Fusion entwickelt sich schnell. Bei einem Kunden hat das Release von Fusion 2.0 den CI-Build gebrochen. Wir legen die Version deshalb fest, und zwar lokal, in der CI und im Orchestrierungs-Image (bei uns Airflow) identisch. Am einfachsten geht das mit einer Lockfile im Repo, aus der alle drei installieren.</li>
<li><strong>SQLFluff passt nicht direkt zu Fusion.</strong> Wenn dein Team stark auf SQLFluff setzt, plane hier Zeit ein. dbt Labs beschreibt in der <a href="https://docs.getdbt.com/docs/fusion/supported-features">Dokumentation</a> mehrere Wege, aber keiner ist ein reines Plug-and-play.</li>
</ul>
<p>Der Rest unserer Struktur, Ordner und Konventionen blieb gleich. Den Großteil eines Projekts musst du also nicht anfassen.</p>
<h2>Wann du (noch) nicht wechseln solltest</h2>
<p>Fusion ist für uns der neue Standard, aber nicht für jedes Projekt sofort die richtige Wahl. In diesen Fällen würden wir abwarten:</p>
<ul>
<li><strong>Dein Warehouse wird nicht unterstützt.</strong> Fusion läuft mit Snowflake, BigQuery, Databricks und Redshift, dazu DuckDB lokal. ClickHouse und Spark sind noch in der Beta. Postgres oder Microsoft Fabric fehlen derzeit (<a href="https://docs.getdbt.com/docs/fusion/supported-features">Stand November 2026</a>).</li>
<li><strong>Deine Tools lesen die Logs von dbt Core.</strong> Fusion schreibt andere Logs. Monitoring oder Skripte, die genau dieses Format erwarten, musst du anpassen.</li>
<li><strong>Du brauchst Funktionen der dbt-Plattform, die v2 noch nicht kann</strong>, zum Beispiel Benachrichtigungen auf Modellebene.</li>
</ul>
<p>Auch wenn dein Projekt passt: Teste zuerst nebenher. Weil Fusion neben dbt Core läuft, zeigt dir <code>dbtf parse</code> ohne Risiko, wie viel Migrationsarbeit vor dir liegt, bevor du die CI umstellst.</p>
<h2>FAQ zu dbt Fusion</h2>
<p><strong>Ist dbt Fusion dasselbe wie dbt 2.0?</strong> Ja. Fusion ist die Engine, dbt Labs nennt die Version inzwischen dbt v2. dbt Core (v1) wird parallel weiter gepflegt.</p>
<p><strong>Ist dbt Fusion kostenlos?</strong> Die Engine und die VS-Code-Extension kannst du kostenlos nutzen. Einige Funktionen brauchen ein kostenloses Konto bei dbt. Die Standard-Distribution von dbt v2 ist allerdings proprietär und steht unter der Lizenz von dbt Labs. Brauchst du zwingend Open Source, gibt es mit dbt-oss eine Apache-2.0-Variante auf derselben Rust-Engine, mit weniger Funktionen. dbt Core (v1) bleibt ebenfalls Apache 2.0.</p>
<p><strong>Kann ich dbt Core und Fusion parallel nutzen?</strong> Ja. Installier Fusion als Binary systemweit und dbt Core wie gewohnt in deiner Python-Umgebung. Mit einem Alias wie <code>dbtf</code> rufst du gezielt Fusion auf.</p>
<p><strong>Ist Fusion immer schneller als dbt Core?</strong> Nein. Das Parsen ist deutlich schneller, die Laufzeit eines Builds hängt aber auch von deinem Warehouse ab. In unserem ersten Test im Februar 2026 war Fusion auf einem kleinen Snowflake-Warehouse sechsmal langsamer, weil es die Einstellung <code>threads</code> ignorierte. Das ist seit Mai 2026 behoben. Stell <code>threads</code> passend zu deinem Warehouse ein und vergleiche selbst.</p>
<p><strong>Lohnt sich Fusion, wenn ich mit KI-Agenten arbeite?</strong> Ja, vielleicht sogar mehr als im Editor. Ein Agent wie Claude Code prüft sein SQL mit <code>dbtf compile</code> in Sekunden und ohne Abfrage im Warehouse. Weil ein Agent pro Aufgabe oft dutzende Male kompiliert, zählt hier auch das schnelle Parsen. Im Standardmodus <code>baseline</code> sind die Funde nur Warnungen, die ein Agent leicht übersieht. Mit <code>static_analysis: strict</code> prüft Fusion gründlicher, zum Beispiel auch Datentypen.</p>
<p><strong>Wie aufwendig ist die Migration?</strong> Wenn dein Projekt auf aktuellem dbt Core ohne Deprecation-Warnungen läuft, etwa so wie ein normales Versions-Update. Die meisten Änderungen betreffen Syntax in YAML-Dateien und Paketversionen. dbt Labs bietet außerdem <a href="https://github.com/dbt-labs/dbt-agent-skills">Agent-Skills</a> an, die einen Teil der Migration automatisieren.</p>
<h2>Fazit: Testen, messen, dann umsteigen</h2>
<p>Unser erster Eindruck von Fusion war schlecht, und er war damals berechtigt. Sieben Monate später ist Fusion unser Standard für neue Projekte. Den Ausschlag gaben nicht die Benchmarks, sondern die tägliche Arbeit, im Editor wie im Terminal, und die Erfahrung aus echten Projekten.</p>
<p>Wenn du über den Umstieg nachdenkst, fang klein an: Installier Fusion neben dbt Core und lass <code>dbtf parse</code> laufen. Nach ein paar Minuten weißt du, wie weit dein Projekt von Fusion entfernt ist. Vieles davon behebt <a href="https://github.com/dbt-labs/dbt-autofix">dbt-autofix</a> automatisch, der Rest sind meist die Stolperfallen von oben.</p>
<p>Du willst ein bestehendes dbt-Projekt migrieren oder eine <a href="/leistungen/data-engineering-data-warehouse">neue Datenplattform</a> direkt auf Fusion aufsetzen? <a href="/#contact">Sprich mit uns</a>, wir sind diesen Weg schon mehrfach gegangen.</p>
]]></content:encoded>
    </item>
    <item>
      <title>dbt Fusion in practice: why we were sceptical at first and have now switched</title>
      <link>https://gemmaanalytics.com/en/briefings/dbt-fusion-in-practice</link>
      <guid isPermaLink="true">https://gemmaanalytics.com/en/briefings/dbt-fusion-in-practice</guid>
      <pubDate>Thu, 05 Nov 2026 08:00:00 GMT</pubDate>
      <dc:creator>Anton Schwericke and Matthew Senyonyi</dc:creator>
      <dc:language>en</dc:language>
      <category>dbt</category><category>dbt Fusion</category><category>Data Engineering</category>
      <description>What does dbt Fusion actually deliver? Our field report: the benefits, a test that went wrong, and what migrating from dbt Core costs.</description>
      <content:encoded><![CDATA[<p>In February 2026, our internal tech radar had one blunt line on it: &quot;dbt Fusion is not production-ready.&quot; At the end of September we switched our dbt template to Fusion anyway. The template is what we set up every new data project from (folder structure, configuration, packages, style guide), so every new project at Gemma now starts on Fusion.</p>
<p>Are we contradicting ourselves? Not quite. Both decisions had good reasons at the time. This piece covers what Fusion actually does better day to day, why our first test went wrong, what a migration from dbt Core costs, and when you&#39;re better off waiting.</p>
<h2>What is dbt Fusion?</h2>
<p>dbt Fusion is the new engine behind dbt. dbt Labs rewrote it from scratch, in Rust instead of Python, and now calls it &quot;dbt v2&quot;. If you install dbt fresh today, this is the version you get (<a href="https://docs.getdbt.com/docs/fusion/supported-features">dbt Docs</a>).</p>
<p>The big difference is under the hood. dbt Core renders your Jinja to SQL and sends it to the warehouse. Whether the SQL is correct, you only find out when the warehouse sends back an error. Fusion understands SQL. It knows columns, types and dependencies before anything runs.</p>
<p>Handy for the switch: to try Fusion out, we install it system-wide as a standalone program, not in the project&#39;s Python environment. That way it sits next to an existing dbt Core installation without getting in its way. For us, <code>dbtf</code> always calls Fusion, and <code>dbt</code> in the active venv still calls dbt Core. You can compare both on the same project without breaking anything. Once a project has switched, we pin the Fusion version in the project itself (more on that in the migration section).</p>
<h2>What Fusion improves day to day</h2>
<p>What we notice most is faster feedback while writing, more than raw speed. Four things stand out:</p>
<ol>
<li><strong>Errors before anything runs.</strong> The official dbt extension for VS Code flags bad SQL and broken Jinja right in the editor. A mistyped column name shows up as you type, not after a three-minute build. The extension needs Fusion and is free. Some features need a dbt account, also free.</li>
<li><strong>Preview and lineage in the editor.</strong> You can preview models and individual CTEs without leaving the editor, and see lineage down to column level. We switch to the warehouse for quick sanity checks less often.</li>
<li><strong>Fast parsing.</strong> At launch, dbt Labs advertised up to 30 times faster parsing. To be honest, compilation was rarely our bottleneck. On large projects with many models you do feel it, though, especially in CI.</li>
<li><strong>Fast feedback without an editor, too.</strong> More and more work on dbt projects happens in the terminal, often with AI agents like Claude Code. Fusion&#39;s static analysis also runs on <code>dbtf compile</code>, so an agent learns within seconds that its SQL doesn&#39;t fit, without a single query to the warehouse. One catch: in the default <code>baseline</code> mode, the findings are only warnings. Fusion only detects type errors in <code>strict</code> mode.</li>
</ol>
<p>Old projects have a catch of their own: the error highlighting follows the current syntax. Open a repo on an old dbt version and you&#39;ll be buried in warnings at first. That&#39;s annoying, but it&#39;s also a pretty clear hint that an upgrade is due.</p>
<h2>Our first test: faster and slower at the same time</h2>
<p>In February 2026 we tried Fusion on two projects. The results contradicted each other:</p>
<table>
<thead>
<tr>
<th>Project</th>
<th>dbt Core</th>
<th>dbt Fusion</th>
</tr>
</thead>
<tbody><tr>
<td>jaffle_shop (demo project by dbt Labs)</td>
<td>approx. 25 s</td>
<td>approx. 10 s</td>
</tr>
<tr>
<td>Our internal project on Snowflake</td>
<td>approx. 20 s</td>
<td>approx. 120 s</td>
</tr>
</tbody></table>
<p>On the demo project, Fusion was more than twice as fast. On our own project, the build took six times as long.</p>
<p>Our code wasn&#39;t the problem. At the time, Fusion ignored the <code>threads</code> setting for Snowflake as part of its own performance optimisation, so it fired off more queries at once than we had configured. Our small XS warehouse couldn&#39;t keep up and the queries piled up. More parallelism made everything slower.</p>
<p>That&#39;s where our &quot;not production-ready&quot; verdict came from. The more useful lesson was a different one: benchmarks from blog posts say little about your project (this one included).</p>
<h2>Why Fusion became our standard anyway</h2>
<p>A lot changed between February and September. In mid-September, dbt Labs officially released Fusion as <a href="https://github.com/dbt-labs/dbt/releases/tag/v2.0.0">dbt v2.0.0</a>, and stable releases have replaced the previews since then.</p>
<p>The threads problem from our test is solved, too. We had <a href="https://github.com/dbt-labs/dbt/issues/14285">reported it to dbt Labs</a> in February, and over the following months plenty of other users turned up with the same issue, on BigQuery and Redshift as well. Since May 2026, Fusion treats <code>threads</code> as an upper limit (<a href="https://docs.getdbt.com/docs/running-a-dbt-project/using-threads">dbt Docs</a>), so on a small warehouse you can cap parallelism again. In November we reran our test with the same settings. This time Fusion was slightly faster than dbt Core: around 18 seconds instead of 22.</p>
<p>And the editor feedback pays off every day, most of all during onboarding. Someone new to the team sees errors right away instead of in a failed build.</p>
<p>Our new internal data project runs entirely on Fusion, including the dbt jobs in our Airflow. We work with the same setup we build for our clients.</p>
<h2>Migrating from dbt Core to Fusion: effort and pitfalls</h2>
<p>If your project already runs on current dbt Core without deprecation warnings, the switch is about as much work as a normal version upgrade. That&#39;s also the prerequisite dbt Labs names. Fusion is largely backwards compatible. Older projects first need the work any major upgrade would bring. Our template jumped straight from 1.6 to Fusion, and these were the steps:</p>
<ol>
<li><strong>Adjust the version constraint.</strong> The <code>dbt_project.yml</code> now says <code>require-dbt-version: [&#39;&gt;=2.0.0-preview&#39;, &#39;&lt;3.0.0&#39;]</code>.</li>
<li><strong>Move test parameters.</strong> Parameters of generic tests go under <code>arguments:</code>. We set the flag <code>require_generic_test_arguments_property: true</code> so old notation shows up immediately.</li>
<li><strong>Move <code>tags</code> and <code>meta</code> under <code>config:</code>.</strong> Another pure syntax change, but it touches almost every YAML file.</li>
<li><strong>Update packages.</strong> <code>dbt deps</code> tells you which packages aren&#39;t compatible. For us that was <code>dbt_utils</code> (now 1.4.1) and <code>dbt_snowflake_monitoring</code> (now 5.x).</li>
<li><strong>Check <code>sql_header</code>.</strong> Fusion stops parsing if <code>+sql_header</code> is set on snapshots, seeds or analyses. We removed it there. For models and tests, we still set the time zone via <code>+sql_header</code> in the <code>dbt_project.yml</code>.</li>
<li><strong>Pin the version in the project.</strong> For testing, the binary (curl, brew or winget) is enough. In a project that has switched, we install Fusion with <code>pip</code> or <code>uv</code> into the project&#39;s Python environment, with a fixed version, since the <code>dbt</code> package now installs dbt v2. The version then lives in the repo, and every change to it goes through a pull request. dbt Core and Fusion can&#39;t share a Python environment, though, so for a side-by-side comparison the binary is still the simpler route.</li>
</ol>
<p>Two things we only learned later:</p>
<ul>
<li><strong>Pin the same version everywhere.</strong> Fusion moves fast. At one client, the Fusion 2.0 release broke the CI build. So we pin the version, and identically: locally, in CI and in the orchestration image (Airflow, in our case). The easiest way is a lockfile in the repo that all three install from.</li>
<li><strong>SQLFluff doesn&#39;t fit Fusion directly.</strong> If your team leans heavily on SQLFluff, plan time for this. dbt Labs describes several approaches in the <a href="https://docs.getdbt.com/docs/fusion/supported-features">documentation</a>, but none of them is plug-and-play.</li>
</ul>
<p>Everything else stayed the same: structure, folders, conventions. Most of a project you won&#39;t have to touch.</p>
<h2>When you shouldn&#39;t switch (yet)</h2>
<p>Fusion is our new standard, but it isn&#39;t the right call for every project right now. In these cases we&#39;d wait:</p>
<ul>
<li><strong>Your warehouse isn&#39;t supported.</strong> Fusion runs on Snowflake, BigQuery, Databricks and Redshift, plus DuckDB locally. ClickHouse and Spark are still in beta. Postgres and Microsoft Fabric are missing for now (<a href="https://docs.getdbt.com/docs/fusion/supported-features">as of November 2026</a>).</li>
<li><strong>Your tools read dbt Core&#39;s logs.</strong> Fusion writes different logs. Monitoring or scripts that expect exactly that format will need adapting.</li>
<li><strong>You need dbt platform features that v2 doesn&#39;t support yet</strong>, for example model-level notifications.</li>
</ul>
<p>Even if your project fits: test on the side first. Since Fusion runs alongside dbt Core, <code>dbtf parse</code> shows you, at no risk, how much migration work lies ahead before you touch your CI.</p>
<h2>FAQ about dbt Fusion</h2>
<p><strong>Is dbt Fusion the same as dbt 2.0?</strong> Yes. Fusion is the engine, and dbt Labs now calls the version dbt v2. dbt Core (v1) is still maintained in parallel.</p>
<p><strong>Is dbt Fusion free?</strong> The engine and the VS Code extension are free to use. Some features need a free dbt account. The standard distribution of dbt v2 is proprietary, though, and licensed by dbt Labs. If you need open source, dbt-oss is an Apache 2.0 variant on the same Rust engine, with fewer features. dbt Core (v1) also stays Apache 2.0.</p>
<p><strong>Can I use dbt Core and Fusion side by side?</strong> Yes. Install Fusion system-wide as a binary and dbt Core as usual in your Python environment. An alias like <code>dbtf</code> lets you call Fusion explicitly.</p>
<p><strong>Is Fusion always faster than dbt Core?</strong> No. Parsing is much faster, but how long a build runs also depends on your warehouse. In our first test in February 2026, Fusion was six times slower on a small Snowflake warehouse because it ignored the <code>threads</code> setting. That&#39;s been fixed since May 2026. Set <code>threads</code> to match your warehouse and compare for yourself.</p>
<p><strong>Is Fusion worth it if I work with AI agents?</strong> Yes, maybe even more than in the editor. An agent like Claude Code checks its SQL with <code>dbtf compile</code> in seconds, without querying the warehouse. And because an agent often compiles dozens of times per task, fast parsing matters here too. In the default <code>baseline</code> mode, the findings are only warnings, and an agent can easily miss them. With <code>static_analysis: strict</code>, Fusion checks more thoroughly, data types included.</p>
<p><strong>How much work is the migration?</strong> If your project runs on current dbt Core without deprecation warnings, about as much as a normal version upgrade. Most changes are YAML syntax and package versions. dbt Labs also offers <a href="https://github.com/dbt-labs/dbt-agent-skills">agent skills</a> that automate part of the migration.</p>
<h2>Conclusion: test, measure, then switch</h2>
<p>Our first impression of Fusion was bad, and back then it was justified. Seven months later, Fusion is our standard for new projects. Benchmarks weren&#39;t what tipped it. The daily work did, in the editor and in the terminal, along with what we saw in real projects.</p>
<p>If you&#39;re thinking about switching, start small. Install Fusion next to dbt Core and run <code>dbtf parse</code>. A few minutes later you&#39;ll know how far your project is from Fusion. <a href="https://github.com/dbt-labs/dbt-autofix">dbt-autofix</a> fixes a lot of that automatically, and the rest is usually the pitfalls above.</p>
<p>Want to migrate an existing dbt project, or set up a <a href="/en/services/data-engineering-data-warehouse">new data platform</a> on Fusion from day one? <a href="/#contact">Talk to us</a>. We&#39;ve been down this road several times.</p>
]]></content:encoded>
    </item>
    <item>
      <title>KI-Kompetenz messen: Der wahre Skill ist, KI richtig und ethisch zu verwenden</title>
      <link>https://gemmaanalytics.com/briefings/ki-kompetenz-messen</link>
      <guid isPermaLink="true">https://gemmaanalytics.com/briefings/ki-kompetenz-messen</guid>
      <pubDate>Thu, 05 Nov 2026 08:00:00 GMT</pubDate>
      <dc:creator>Bianca Frost</dc:creator>
      <dc:language>de</dc:language>
      <category>KI</category><category>KI-Kompetenz</category><category>EU AI Act</category>
      <description>KI-Kompetenz ist seit Februar 2025 Pflicht (Art. 4 EU AI Act). Doch wie misst man sie? Vier Fragen, mit denen jede und jeder bei sich anfangen kann.</description>
      <content:encoded><![CDATA[<p>KI zu nutzen ist längst Alltag. Wir lassen uns Mails formulieren, Code schreiben und Meetings zusammenfassen. Einen eigenen Agenten mit Claude oder ChatGPT zu bauen, dauert heute einen Nachmittag. Das ist großartig, aber kein Unterscheidungsmerkmal mehr. Wer heute sagt „Ich nutze KI“, sagt damit ungefähr so viel wie „Ich kann googeln“.</p>
<p>Die eigentliche Kompetenz liegt woanders: KI so einzusetzen, dass man für das Ergebnis geradestehen kann. Das ist gute Praxis und seit Februar 2025 auch gesetzlich gefordert. Laut <a href="/leistungen/ki-einfuehrung-schulung#ai-act">Artikel 4 des EU AI Act</a> müssen Unternehmen für ausreichende KI-Kompetenz ihrer Mitarbeitenden sorgen. Bleibt die Frage: Wie misst man das?</p>
<p>Am einfachsten fängt man bei sich selbst an.</p>
<h2>1. Kannst du das Ergebnis erklären?</h2>
<p>Wenn ein Modell SQL, eine Analyse oder einen Text liefert, könntest du jede Zeile vor einem Kunden vertreten? Wer KI-Output ungeprüft weitergibt, schiebt die Verantwortung und die Prüfarbeit an den Empfänger ab.</p>
<h2>2. Weißt du, wo deine Daten landen?</h2>
<p>Nicht jede Information gehört in jedes Tool. Bei uns laufen Kundendaten nur über Infrastruktur, die wir selbst kontrollieren. Wer nicht sagen kann, was mit einem Prompt nach dem Absenden passiert, hat ein Problem, auch wenn das Ergebnis gut aussieht.</p>
<h2>3. Weißt du, welche Entscheidungen auf deinem Ergebnis aufbauen?</h2>
<p>KI-Modelle übernehmen Verzerrungen (Bias) aus ihren Trainingsdaten. Bei einer Mail ist das egal. Entscheidet aber ein KI-generiertes Kundensegment, wer einen Rabatt bekommt, oder fließt eine Analyse in eine Personalentscheidung ein, reicht „sieht gut und/oder plausibel aus“ nicht. Ethisch zu handeln heißt dann, zwei Fragen zu stellen: Stimmt das Ergebnis, und ist es fair? Wer ist betroffen, wer könnte benachteiligt werden, und wer trägt die Verantwortung, wenn es falsch ist?</p>
<h2>4. Sagst du, wann KI beteiligt war?</h2>
<p>Transparenz kostet nichts und schafft Vertrauen. Ein Satz wie „Entwurf durch KI, fachlich von mir geprüft“ reicht dafür aus.</p>
<p>Die Zahl der Agenten oder der eingesparten Stunden erfasst also nur einen Teil der KI-Kompetenz. Der größere Teil steckt in den vier Fragen oben: Verstehst du das Ergebnis, weißt du, wo deine Daten landen, hast du die Folgen bedacht, und gehst du offen damit um?</p>
<blockquote>
<p>Die Frage ist nicht mehr „Nutzt du KI?“, sondern „Verantwortest du das Ergebnis?“</p>
</blockquote>
<p><em>Dieser Text wurde mit KI-Unterstützung skizziert und von Bianca Frost geprüft und überarbeitet.</em></p>
]]></content:encoded>
    </item>
    <item>
      <title>Measuring AI competence: the real skill is using AI correctly and ethically</title>
      <link>https://gemmaanalytics.com/en/briefings/measuring-ai-competence</link>
      <guid isPermaLink="true">https://gemmaanalytics.com/en/briefings/measuring-ai-competence</guid>
      <pubDate>Thu, 05 Nov 2026 08:00:00 GMT</pubDate>
      <dc:creator>Bianca Frost</dc:creator>
      <dc:language>en</dc:language>
      <category>AI</category><category>AI competence</category><category>EU AI Act</category>
      <description>AI literacy has been mandatory since February 2025 (Art. 4 EU AI Act). But how do you measure it? Four questions anyone can start with themselves.</description>
      <content:encoded><![CDATA[<p>Using AI has long been part of everyday work. We have it draft emails, write code and summarise meetings. Building your own agent with Claude or ChatGPT takes an afternoon today. That&#39;s great, but it&#39;s no longer a differentiator. Saying &quot;I use AI&quot; today says about as much as &quot;I can google&quot;.</p>
<p>The real competence lies elsewhere: using AI in a way that lets you stand behind the result. It&#39;s good practice, and since February 2025 it&#39;s also the law. Under <a href="/en/services/ai-adoption-training#ai-act">Article 4 of the EU AI Act</a>, companies must ensure that their employees have sufficient AI literacy. Which leaves the question: how do you measure that?</p>
<p>The easiest place to start is yourself.</p>
<h2>1. Can you explain the result?</h2>
<p>When a model delivers SQL, an analysis or a text, could you defend every line in front of a client? Pass AI output on unchecked, and you&#39;ve handed your responsibility, along with the review work, to whoever receives it.</p>
<h2>2. Do you know where your data ends up?</h2>
<p>Not every piece of information belongs in every tool. At Gemma, client data only runs through infrastructure we control ourselves. If you can&#39;t say what happens to a prompt after you hit send, you have a problem, even if the result looks good.</p>
<h2>3. Do you know which decisions build on your result?</h2>
<p>AI models pick up biases from their training data. In an email, that doesn&#39;t matter. But if an AI-generated customer segment decides who gets a discount, or an analysis feeds into a personnel decision, &quot;looks good and/or plausible&quot; isn&#39;t enough. Then acting ethically means asking two questions: is the result correct, and is it fair? Who is affected, who could be disadvantaged, and who is responsible if it&#39;s wrong?</p>
<h2>4. Do you say when AI was involved?</h2>
<p>Transparency costs nothing and builds trust. A sentence like &quot;Drafted by AI, reviewed for substance by me&quot; is enough.</p>
<p>Counting agents or hours saved only measures part of AI competence. The bigger part is in the four questions above: do you understand the result, do you know where your data goes, have you thought through the consequences, and are you open about it?</p>
<blockquote>
<p>The question is no longer &quot;Do you use AI?&quot; but &quot;Do you take responsibility for the result?&quot;</p>
</blockquote>
<p><em>This text was outlined with AI support and reviewed and revised by Bianca Frost.</em></p>
]]></content:encoded>
    </item>
  </channel>
</rss>
