Data Governance #12 – The Contract – Du kannst niemandem vertrauen. Wie Data Contracts Vertrauen schaffen und den Wert Ihrer Daten steigern.
Zur Klärung der zentralen Begriffe haben wir ein Glossar zur Beitragsreihe Data Governance für Sie eingerichtet.
Ein wichtiges Ziel von Data Governance ist die Datenqualität. Qualität schafft Vertrauen und genau darum soll es heute gehen. Was kann man konkret tun, um die Qualität der Daten und das Vertrauen zwischen Datenproduzenten und Datenkonsumenten zu steigern? Data Contracts können hier eine wichtige Rolle spielen.
In den vorherigen Episoden dieser Reihe haben wir bereits die Grundlagen von Data Governance beleuchtet, von der Bedeutung von Data Domains für die organisatorische Struktur über die Transparenz durch einen Data Catalog bis hin zur kritischen Rolle der Datenqualität und der Nachvollziehbarkeit mittels Data Lineage. Heute ergänzen wir diesen Pfeiler ebendieses entscheidende Element, das all diese Aspekte zusammenführt: den Data Contract.
Was sind Data Contracts?
Ein Data Contract ist im Wesentlichen eine formelle Vereinbarung zwischen einem Datenproduzenten und seinen Konsumenten:innen. Stellt euch vor, ihr liefert bei der Blockbuster Bytes AG Daten aus der rental-Tabelle (Mietaktivitäten) an das Marketing-Team, das daraus Data Products wie die „Top-Performer-Filme“ generiert. Ohne eine klare Vereinbarung können hier schnell Missverständnisse über die Bedeutung, Qualität oder Aktualität der Daten entstehen.
Ein solcher Vertrag beschreibt eine strukturierte, wiederverwendbare und dokumentierte Bereitstellung von Daten oder Datenservices. Er behandelt Daten wie ein echtes Produkt und umfasst typischerweise mehrere wichtige Sektionen, wie z. B.:
- Grundlagen: Wer sind die beteiligten Parteien? Was ist der Zweck des Datenprodukts?
- Schema: Das genaue Format und die Struktur der Daten (z. B. Spaltennamen, Objekt- und Datentypen).
- Datenqualität: Klare Standards und Regeln für die Qualität der Daten, inklusive Metriken und Schwellenwerte.
- Support & Kommunikationskanäle: Wie können Probleme gemeldet oder Fragen beantwortet werden?
- Team & Rollen: Wer ist verantwortlich (z. B. Data Domain Owner oder Data Steward)?
- Service-Level Agreement (SLA): Erwartungen an Verfügbarkeit und Aktualität der Daten.
- Infrastrukturen & Server: Wo werden die Daten gehostet?
- Preise (falls zutreffend) und benutzerdefinierte Eigenschaften.
Das „Open Data Contract Standard (ODCS)“ ist ein Standard, der eine solche Struktur für Data Contracts beschreibt und sogar von Unternehmen wie PayPal zur Implementierung von Data Mesh verwendet wird.
Warum sind Data Contracts hilfreich für die Blockbuster Bytes AG?
Für die Blockbuster Bytes AG bieten Data Contracts eine Reihe von entscheidenden Vorteilen, die über die reine technische Bereitstellung von Daten hinausgehen:
1. Schaffung von Klarheit und Transparenz:
Ein Data Contract beseitigt Unklarheiten darüber, was die Daten bedeuten und wie sie interpretiert werden müssen (!), woher sie kommen und wie sie genutzt werden dürfen. Für unser KI-Team, das Modelle zur Vorhersage von Filmverkäufen trainieren möchte, ist es entscheidend, genau zu wissen, welche Daten in der MySQL sakila-Datenbank für ihre Analysen relevant und verlässlich sind.
Der Vertrag sorgt für eine einheitliche Nomenklatur und klare Definitionen, was die Auffindbarkeit von Daten im Data Catalog erheblich erleichtert.
2. Sicherung der Datenqualität:
Im Vertrag werden explizite Regeln und Metriken für die Datenqualität festgelegt. Dies stellt sicher, dass die Daten die geforderten Eigenschaften wie Genauigkeit, Vollständigkeit, Konsistenz und Aktualität erfüllen.
Denken Sie an unser Beispiel aus Episode #04, wo wir Regeln definiert haben, um die Anzahl inaktiver Kunden unter einem Schwellenwert zu halten. Solche Qualitätsregeln können Teil des Data Contracts sein und gewährleisten, dass das Marketing-Team stets mit „guten Daten“ arbeitet, um Gutscheine an die richtigen Adressen zu versenden. Genauso können Regeln definiert werden, welche die Aktualität oder Quantität der Daten betrachten.
3. Aufbau von Vertrauen und Zuverlässigkeit:
Wenn Datenkonsument:innen wissen, dass die Daten eine vertraglich zugesicherte Qualität und Herkunft haben, steigt das Vertrauen in diese Daten. Dieses Vertrauen ist das Fundament für fundierte Geschäftsentscheidungen – sei es bei der Planung des Filmportfolios oder der Optimierung der Filialbestände. Darüber hinaus sind die Verantwortlichkeiten klar geregelt. Sollte es einmal Qualitätsprobleme geben, so ist den Konsument:innen über den Vertrag transparent gemacht, an wen sie sich wenden können.
Data Contracts unterstützen somit massiv die Data Culture, in der Daten als wertvolle Ressource anerkannt und gepflegt werden.
4. Effizienz und Skalierbarkeit:
Durch die klaren Vereinbarungen können Data Products wie unser „Top-Performer-Filme"-Bericht schneller und effizienter entwickelt und bereitgestellt werden. Die Notwendigkeit manueller Klärungsschleifen wird reduziert.
Die Integration von Data Contracts in Tools wie OpenMetadata ermöglicht eine automatisierte Pflege und Überwachung der Metadaten und der Datenqualität. Bei der Weiterentwicklung von Data Produkten kann beim Deployment automatisch auf den Contract geprüft werden. Nehmen wir einmal an, dass ein:e Entwickler:in eine Daten-Spalte in einem unserer Produkte entfernen möchte, die per Vertrag zugesichert ist, so kann diese bereits beim „Deployen" festgestellt und die Produktivsetzung der neuen, vertragsverletzenden Version des Produktes unterbunden werden.
5. Klare Rollen und Verantwortlichkeiten:
Data Contracts definieren, wer für welche Aspekte der Daten verantwortlich ist – vom Data Domain Owner bis zum Data Steward. Dies fördert die bereichsübergreifende Zusammenarbeit und stellt sicher, dass jede:r weiß, an wen sie/er sich bei Datenfragen wenden kann.
Im Kontext des Identity and Access Management (IAM) können Data Contracts auch definieren, welche Zugriffsrechte für bestimmte Datenprodukte oder -elemente gelten.
6. Verbesserte Compliance und Sicherheit:
Data Contracts helfen, regulatorische Anforderungen (z. B. DSGVO) zu erfüllen, indem sie festhalten, welche Daten als sensibel oder persönlich identifizierbar (PII) klassifiziert sind, wie lange sie aufbewahrt werden müssen und welche Löschrichtlinien gelten.
Sie dienen als Nachweis für die Einhaltung von Sicherheitsrichtlinien und unterstützen die Rückverfolgbarkeit von Daten (Data Lineage) im Falle eines Problems.
Data Contracts in der Praxis der Blockbuster Bytes AG
Nehmen wir an, die Blockbuster Bytes AG möchte einen Data Contract für ihre Kundendaten (customer-Tabelle) einführen. Dieser Vertrag würde festlegen, dass E-Mail-Adressen als hochsensible PII-Daten klassifiziert sind, die eine strikte Formatvalidierung und Domain-Verifizierung erfordern. Er würde die Aufbewahrungsfrist (z. B. „Aufbewahrung für die Dauer der Geschäftsbeziehung plus 5 Jahre für die Einhaltung gesetzlicher Vorschriften“) und Löschrichtlinien definieren. Zudem würde er festhalten, dass der Data Steward Max Mustermann für die tägliche Pflege dieser Daten verantwortlich ist.
Ein weiteres Beispiel wäre ein Data Contract für unser „Top-Performer-Filme“ Data Product. Hier würde der Vertrag definieren, dass die Daten wöchentlich aktualisiert werden, aus den Tabellen film
, inventory
und rental
stammen und dass Qualitätskontrollen für fehlende Werte und Duplikate durchgeführt werden. Wenn dieses Data Product über z. B. Apache NiFi an das Marketing-Team bereitgestellt wird, könnte der Vertrag auch Details zur Integration und den verwendeten Tools enthalten.
Beispiel Data Contract
# Data contract example domain: analytics dataProduct: top_performer_movies version: 1.0.0 status: active id: 9f3c2b1e-4a2f-4c9e-9a7f-8e2c1f9d7a01 description: purpose: Aggregated data product identifying the most rented movies. limitations: Only rental data included – no revenue or rating information. usage: Used for marketing analysis, inventory decisions, and BI dashboards. authoritativeDefinitions: - type: businessDefinition url: https://blockbusterbytes.com/analytics/top_movies.pdf tenant: sakilaDB kind: DataContract apiVersion: v3.0.2 servers: - server: sakiladb type: mysql host: sakiladb.ordix.de port: 3306 database: sakila schema: - name: top_performer_movies physicalName: vw_top_performer_movies physicalType: view businessName: Top Performer Movies description: List of movies with the highest number of rentals in a given period. tags: [ 'movies', 'rentals', 'top-performer' ] dataGranularityDescription: Aggregated by film ID and time period properties: - name: film_id physicalName: film_id businessName: Film ID logicalType: integer physicalType: int required: true description: Unique identifier of the movie primaryKey: true classification: internal tags: [ 'id', 'film#', 'movie#' ] - name: title physicalName: title businessName: Movie Title logicalType: string physicalType: varchar(255) required: true description: Title of the movie classification: public - name: rental_count physicalName: rental_count businessName: Rental Count logicalType: integer physicalType: int required: true description: Total number of rentals classification: internal quality: - rule: nullCheck description: Must not be null dimension: completeness type: library severity: error businessImpact: analytics schedule: 0 6 * * * scheduler: cron - name: last_rental_date physicalName: last_rental_date businessName: Last Rental Date logicalType: date physicalType: date required: false description: Date of the most recent rental classification: internal quality: - rule: maxDate description: Must not be in the future dimension: validity type: library severity: warning businessImpact: analytics schedule: 0 6 * * * scheduler: cron quality: - rule: countCheck type: library description: Ensure row count is within expected range (min. 10 movies) dimension: completeness method: reconciliation severity: warning businessImpact: operational schedule: 0 6 * * * scheduler: cron customProperties: - property: business-key value: - film_id price: priceAmount: 1.00 priceCurrency: EUR priceUnit: access team: - username: m.jung role: Owner description: Responsible for data product and quality dateIn: "2025-06-01" - username: a.schmidt role: Data Engineer dateIn: "2025-06-15" roles: - role: bi_analyst access: read firstLevelApprovers: BI Management - role: data_engineer access: read_write firstLevelApprovers: Department Lead slaDefaultElement: top_performer_movies.last_rental_date slaProperties: - property: latency value: 1 unit: d - property: generalAvailability value: "2025-06-01T08:00:00+02:00" - property: retention value: 2 unit: y - property: frequency value: 1 unit: d - property: timeOfAvailability value: 08:00-18:00 driver: analytics support: - channel: '#data-support' tool: slack url: http://blockbusterbytes.com/contracts - channel: datacontracts@blockbusterbytes.com tool: email url: mailto:contracts@blockbusterbytes.com tags: - movies - analytics - governance customProperties: - property: refRulesetName value: sakila.ruleset.top_performer - property: lineage value: rental → inventory → film → aggregation - property: dataSensitivity value: internal contractCreatedTs: "2025-07-03T13:45:00+02:00"
Dies ist ein konstruiertes, erdachtes (nicht validiertes) Beispiel, um die Struktur und die möglichen Inhalte exemplarisch zu verdeutlichen. So wird hier z. B. zum Aufzeigen der Möglichkeiten auch ein "Pricing" definiert. Jeder Zugriff auf das Datenprodukt kostet in diesem „Setting“ 1,- €. Einen genauen Überblick über die möglichen Elemente (auch in Abhängigkeit des Quellsystems, wie z. B. einer Datenbank oder eines Cloud-Services) können dem ODCS entnommen werden: https://bitol-io.github.io/open-data-contract-standard/latest/
nach Autor
Ein Data Catalog wie OpenMetadata kann perspektivisch ggfs. als zentrale Plattform dienen, um diese Data Contracts zu verwalten und sichtbar zu machen. Gerade in der letzten Version 1.9.0 wurden Data Contracts als neues Feature (mit noch eingeschränkter Funktionalität) aufgenommen.
Fazit
Data Contracts sind ein entscheidender Schritt auf dem Weg zu einer reifen Data Governance. Sie übersetzen die abstrakte Welt der Daten in konkrete Vereinbarungen und schaffen eine solide Grundlage für datengetriebene Entscheidungen, schaffen Vertrauen und sorgen für Qualität. Für Unternehmen wie die Blockbuster Bytes AG bedeuten sie mehr als nur Regeln; sie sind ein strategischer Vorteil, der das Vertrauen in Daten stärkt, die Zusammenarbeit fördert und letztlich den Wert der Daten für Innovation und Wachstum freisetzt.
P.S. The Contract - Du kannst niemandem vertrauen (2006); https://www.imdb.com/de/title/tt0445946/
Seminarempfehlungen
MYSQL ADMINISTRATION DB-MY-01
Mehr erfahrenDATA WAREHOUSE GRUNDLAGEN DB-DB-03
Mehr erfahrenIT-ORGANISATION UND IT-GOVERNANCE - OPTIMIERUNG IHRER IT-ORGANISATION PM-28
Mehr erfahrenPrincipal Consultant bei ORDIX
Kommentare