dbt laten implementeren
We zetten dbt op met modellen in lagen, tests naast de code en releases via Git. Fokker Services Group gebruikt dbt in zijn dataplatform.
Bij Fokker Services Group wordt data uit veel bronnen opgeschoond en gemodelleerd, op Databricks met dbt
“Het dataplatform is voor ons dé centrale plek waar data samenkomt. Dit zorgt ervoor dat we bedrijf breed data kunnen bieden voor business insights en tegelijkertijd kunnen waarborgen dat er maar 1 versie van de werkelijkheid beschikbaar is” Daan Mastenbroek, Lead Data Engineer and Architect
Hoe kan het dat twee dashboards een andere omzet tonen voor dezelfde periode?
De omzetregel staat in een view die niemand durft aan te raken, in een Power BI-measure en in het notebook van een vertrokken collega. dbt zet die logica op één plek, als SQL-modellen in Git met tests erbij.
Je team houdt een dbt-project over dat het zelf kan lezen, testen en uitbreiden
Modellen in drie lagen
Staging hernoemt en typeert de bron, intermediate rekent, marts leveren tabellen per onderwerp. Zo staat elke berekening op één plek.
Tests naast de modellen
Data tests op sleutels en verwijzingen, unit tests op lastige logica. In het dataplatform van Vivara staat dbt naast Databricks en Terraform.
Releases via pull requests
Elke wijziging bouwt eerst in een eigen schema en doorloopt de tests. Pas na review en een groene check gaat hij naar productie.
Documentatie en lineage
dbt maakt uit de code documentatie en een afhankelijkheidsgrafiek. Voor het Koninklijk Concertgebouworkest werken we met dbt, Delta Lake en Unity Catalog.
Eerst gaan de cijfers over waarover nu discussie is, daarna de rest van de bron
-
Bestaande logica in kaart
We verzamelen de views, stored procedures en measures die nu rekenen, en kiezen welke cijfers als eerste overgaan.
-
Eerste modellen met tests
Bronnen, staging en een mart voor die cijfers, met tests en een CI-check op elke pull request.
-
Overdragen en uitbreiden
Je team bouwt mee, de afspraken staan in de repository en oude views gaan pas uit als de cijfers kloppen.
Is dbt de juiste laag voor onze transformaties?
Past als
Je data staat al in een warehouse of lakehouse, je team schrijft SQL en de rekenregels zitten verspreid over views, scripts en rapporten. dbt brengt ze samen, met versiebeheer en tests.
Past niet als
De data moet nog uit de bronsystemen komen: dbt laadt zelf niets in, daar is eerst een pipeline of connector voor nodig. Gaat het om een paar overzichten uit één systeem, dan volstaat vaak een Power BI-model.
Waar de omvang van afhangt
Het aantal bronnen en bestaande views, hoeveel logica nu in rapporten zit, of Git en een CI-straat er al zijn, welk platform eronder ligt en wie de modellen daarna onderhoudt.
Zitten we daarna vast aan dbt Labs?
De modellen zijn SQL- en YAML-bestanden in je eigen Git. dbt v1 en dbt OSS vallen onder de open-sourcelicentie Apache 2.0. Het gehoste dbt platform is een apart product met eigen voorwaarden.
Draaien we dbt Core zelf, kiezen we het dbt platform, of draait dbt in Databricks of Fabric?
dbt Core zelf draaien
Kies dit als je al een orkestrator en een CI-straat hebt, en je runs, documentatie en upgrades van dbt zelf wilt beheren.
Het dbt platform
Kies dit als meerdere teams en analisten in dbt werken. Je krijgt een IDE in de browser, planning, CI per pull request en gehoste documentatie.
In Databricks of Fabric
Kies dit als het platform al vastligt: een dbt-taak in Lakeflow Jobs of een dbt job in Fabric draait naast je pipelines. Ons advies voor één team.
We gebruiken dbt in de dataplatforms van Fokker Services Group, Vivara en het Concertgebouworkest
Data Science Lab werkt sinds 2016 met data en AI en is Databricks Partner en Microsoft Partner. We kiezen het platform bij je organisatie en zetten dbt daarop als de laag voor je transformaties.

Waar je rekenregels nu staan, bespreken we in een eerste gesprek
Stef Stoelwinder
Business DevelopmentStef is je eerste aanspreekpunt. In het eerste gesprek bespreken we je platform, waar de rekenregels nu staan en wie ze gaat onderhouden.
E-mail info@datasciencelab.nl
Telefoon +31 (0)20 3636 724
Welke berekeningen moeten als eerste naar dbt?
Beschrijf je platform en waar de transformaties nu draaien. Je krijgt antwoord per mail, of we plannen een eerste gesprek.
Bericht verstuurd
Bedankt voor je bericht. We nemen zo snel mogelijk contact met je op.
Veelgestelde vragen
dbt is een tool voor de T in ELT: hij transformeert data die al in je warehouse of lakehouse staat. Je schrijft een model als SQL-select of als Python-dataframe, en dbt maakt er een view of tabel van en regelt de DDL.
Modellen verwijzen naar elkaar met ref(), zodat dbt de volgorde en de lineage kent. Tests en documentatie staan naast de code. Inladen uit bronsystemen doet dbt niet. Het is een bouwsteen van je data fundament.
dbt Core is de opdrachtregelversie die je zelf installeert en draait. dbt Cloud is het gehoste product, dat dbt Labs nu het dbt platform noemt. Dat voegt een IDE in de browser, een planner voor jobs, CI per pull request, gehoste documentatie en meldingen toe. Catalog en de Semantic Layer zitten alleen in bepaalde abonnementen.
De engine kent nu twee generaties. dbt v1 is de Python-versie, nog onderhouden en Apache 2.0. dbt v2 draait op een nieuwe engine in Rust en is de standaardinstallatie; dbt OSS is daarvan de Apache 2.0-uitgave.
dbt Labs adviseert drie lagen. Staging maakt per brontabel één schoon model, met de prefix stg_. Intermediate combineert en rekent voor een specifiek doel. Marts leveren de entiteiten waar de organisatie over praat, zoals klanten en orders. Zo verschuift de data van de vorm van de bron naar de taal van het bedrijf.
Begin met views; maak tabellen van wat Power BI leest. Incrementele modellen, die alleen nieuwe rijen verwerken, gebruik je pas als runs te traag worden.
Data tests controleren de data na het bouwen: is een sleutel uniek, ontbreekt er niets, verwijst elke order naar een bestaande klant. Unit tests controleren je SQL-logica op een klein, vast voorbeeld vóór het bouwen; dbt Labs raadt aan die alleen in ontwikkeling en CI te draaien.
Voor modellen waar andere teams op bouwen, leg je een contract vast met kolomnamen en datatypes; klopt de uitkomst niet, dan bouwt het model niet. Welke regels je bewaakt, lees je bij datakwaliteit verbeteren.
Op Databricks gebruik je de adapter dbt-databricks en draai je het project als dbt-taak in Lakeflow Jobs, op een SQL warehouse. De identiteit waaronder de job draait, heeft in Unity Catalog rechten nodig op de catalogus, het schema en de tabellen die de modellen lezen en schrijven. Databricks raadt aan de adapterversie vast te zetten. Zie Databricks implementatie.
In Fabric is er een dbt job in Data Factory, nog in preview, die dbt Core draait op een warehouse of lakehouse. Zie Microsoft Fabric implementatie.
Met een snapshot. dbt legt dan elke wijziging vast als nieuwe rij, met de kolommen dbt_valid_from en dbt_valid_to: een slowly changing dimension van type 2. De voorkeur gaat naar een updated_at-kolom; ontbreekt die, dan vergelijkt dbt de kolommen die je opgeeft.
Komt de bron te laat binnen, dan meldt source freshness dat met een waarschuwing of een fout. Let op: dbt build draait die controle niet mee, je zet hem als eigen stap in de job.
Vaak op het één-op-één overzetten van oude views: dan staat dezelfde wirwar in dbt, alleen in Git. Ook zonder eigenaar per mart groeit het project uit tot een woud van modellen die niemand durft weg te halen.
Andere valkuilen zijn incrementele modellen te vroeg, geen CI-check zodat fouten pas in productie opvallen, en tests die altijd waarschuwen en daarom genegeerd worden. Het laden van de bronnen hoort bij data engineering; het onderhoud daarna kan bij ons via beheer en doorontwikkeling.
Als je een paar rapporten maakt uit één systeem en de logica in één Power BI-model past. Dan voegt dbt een laag toe die iemand moet onderhouden. Ook als het meeste werk streaming of zware verwerking in Spark is, hoort dat in pipelines; dbt past bij de modellen daarna.
En als niemand in het team SQL wil schrijven of reviewen, levert een dbt-project weinig op. Past een lichtere oplossing, dan zeggen we dat. Wil je eerst aanbieders vergelijken, bekijk dan ons overzicht van dataplatformbureaus.