Cardinaliteit - Power Bi
Cardinaliteit beschrijft hoe twee tabellen zich tot elkaar verhouden: één-op-veel, veel-op-één, één-op-één of veel-op-veel. In Power BI is h...
Lees meerEen data contract is een expliciete afspraak tussen de producent en consument van een dataset: welk schema, welke kwaliteit, welke frequentie, welke eigenaar. Zonder contract leeft data op goodwill, en dat schaalt niet.
Een data contract is een expliciete, machineleesbare afspraak tussen de producent van een dataset en de consumenten ervan. Het beschrijft het schema (kolommen, types, verplichte velden), de kwaliteitseisen (geen nulls op een sleutel, geen duplicaten), de frequentie van updates, de eigenaar en de procedure voor wijzigingen. Zodra je data produceert voor anderen, word je ook verantwoordelijk voor wat je belooft.
Data contracts zijn rond 2022 populair geworden binnen het data mesh-gedachtegoed, maar staan er los van: ook in klassieke datateams voegen ze veel waarde toe. Ze brengen dezelfde discipline die API's in softwareland al lang hebben naar de wereld van tabellen en streams.
Je kan een data contract vergelijken met een handelscontract tussen twee bedrijven. Mondelinge afspraken werken zolang de volumes klein blijven en iedereen elkaar kent. Zodra er meerdere partijen bij betrokken zijn of wanneer er veel geld op het spel staat, wil je zwart-op-wit wat er verwacht wordt.
Zonder data contract lopen datapipelines typisch tegen drie problemen aan.
Breaking changes zonder waarschuwing
Een databaseteam hernoemt een kolom of wijzigt een datatype. Downstream breekt er van alles. De producent wist niet dat jouw team op die kolom rekende.
Verwarring over semantiek
Is omzet inclusief btw of niet? Rekent de kantelingsdatum vanaf booking of vanaf delivery? Zonder expliciete definitie staat elke consumer een andere waarheid in zijn rapporten.
Geen duidelijke verantwoordelijkheid
Wanneer de data fout is, wie lost het op? Zonder contract wijst iedereen naar de volgende.
Een data contract zet al die afspraken vast en maakt ze testbaar. Een nieuwe release van de bron wordt geblokkeerd als ze het contract breekt. Net zoals bij een publieke API.
Schema
Alle velden met hun types, verplicht of optioneel, met betekenis per veld. Vaak geformuleerd in JSON Schema, Avro, Protobuf of een YAML-variant.
Semantische definitie
Wat betekent elk veld inhoudelijk, in bedrijfstermen? OrderDate is de datum waarop het order werd gecreëerd in het bronsysteem, niet de verzenddatum.
Kwaliteitseisen
Unieke sleutels, verwachte waardebereiken, referentiële integriteit, percentage nulls dat toegelaten is, verwachte volumes per run.
SLA
Wanneer is de data beschikbaar (elke dag om 07:00), hoe vers (niet ouder dan 15 minuten), hoe stabiel (beschikbaarheid 99,5 procent).
Eigenaar en contactpunt
Welk team is verantwoordelijk, via welk kanaal kunnen consumers vragen stellen, incidenten melden, wijzigingen aanvragen.
Versiebeheer
Hoe worden wijzigingen uitgerold? Welke garanties op backward compatibility, hoe lang blijft een oude versie draaien, hoe communiceer je deprecations.
Een gezonde workflow rond data contracts doorloopt meestal deze stappen:
Contract ontwerpen. Producer en consumers werken samen aan een eerste versie. Dit gesprek alleen al legt vaak misverstanden bloot die jaren onbesproken bleven.
Contract publiceren. Het contract komt in een repository (Git, een catalog, een speciale data contract tool). Het is versie-gecontroleerd.
Tests genereren. Het contract levert automatisch tests op in je ETL-pipeline. Bij elke run worden schema en kwaliteit gevalideerd. Failing tests blokkeren de verdere stappen.
Changes proposes via een pull request. Wie de bron wil wijzigen, stelt dat voor in het contract. Breaking changes vereisen expliciete toestemming van de consumers of een compatibiliteitsperiode.
Monitoring en incidenten. Wanneer een consument een SLA-overtreding meldt, gebeurt dat tegen het contract. Geen discussies over wat had moeten, enkel over wat afgesproken is.
Open Data Contract Standard
Een YAML-gebaseerde standaard die onder de Bitol-community leeft. Goede starter om schema, SLA en eigenaarschap te formaliseren.
dbt contracts
dbt ondersteunt contracts op modellen: kolomtypes en verplichte kolommen worden bij de build gecontroleerd.
Great Expectations, Soda Core
Datakwaliteitstools die kwaliteitsregels uit contracts kunnen afdwingen in de pipeline.
Schema registry's
Voor streaming-data (Kafka) bestaat de Confluent Schema Registry al langer en is vergelijkbaar met contracts op berichtniveau.
Microsoft Purview
In Microsoft-stacks kan Purview definities, classificaties en eigenaarschap vastleggen en koppelen aan data lineage. Nog niet volledig hetzelfde als een data contract, wel een bouwsteen.
Meerdere teams produceren en consumeren data van elkaar. Zodra je drie of meer teams hebt, worden informele afspraken onhoudbaar.
Data voedt klantgerichte producten. Een fout cijfer in een interne rapport is vervelend. Een fout cijfer in een klantendashboard of in een AI-agent is een crisis.
Compliance-gevoelige data. Financiële rapportering, medische gegevens, gegevens onder de GDPR. Het contract ondersteunt ook de audittrail.
Decentraal data-landschap. Data mesh of een federatief model werken niet zonder contracten. De autonomie van domeinen vereist duidelijke interfaces.
Contract als dictaat
Een contract dat de producent eenzijdig oplegt, wordt genegeerd. Beschouw het als een gesprek, niet als een document.
Te zware overhead
Voor interne, stabiele datasets met één consumer is een volledig contract overdreven. Reserveer het voor datasets met meerdere consumers of met externe impact.
Enkel schema, geen semantiek
Een contract dat alleen JSON Schema bevat, vangt syntactische breuken op, geen semantische. Price plots in euro in plaats van dollar glipt erdoor.
Geen consequenties
Als het contract kapotgaan geen build breekt, blijft het een goed idee zonder tanden. Koppel het aan CI/CD.
Owner changed teams
Teams reorganiseren en de owner in het contract klopt niet meer. Periodieke review is onderdeel van goede governance.
Cardinaliteit beschrijft hoe twee tabellen zich tot elkaar verhouden: één-op-veel, veel-op-één, één-op-één of veel-op-veel. In Power BI is h...
Lees meerData governance is het geheel van afspraken, rollen en processen dat bepaalt hoe een organisatie haar data beheert, beschermt en gebruikt. W...
Lees meerData lineage toont de volledige levensloop van data. Van bron tot rapport, met betekenis en context. Essentieel voor vertrouwen in cijfers.
Lees meerEen data mart is een kleinere, gerichte deelverzameling van je data warehouse, afgestemd op één afdeling of thema. Sales, finance of HR krij...
Lees meerData mesh is een organisatiemodel voor data waarbij elk businessdomein eigenaar wordt van zijn eigen datasets en die aanbiedt als producten....
Lees meer
Copilot in Power BI levert vooral waarde als je datamodel er klaar voor is. Wat werkt in 2026, wat werkt nog niet, en waarom IT en business ...
Process mining legt bloot waar cash vastzit in aankoop, voorraad en goedkeuringsflows. Zo maakt gerichte automatisatie werkkapitaal vrij bij...