Effizientes Datenmanagement durch Data Contracts
![Effizientes Datenmanagement durch Data Contracts](/content/images/size/w1200/2024/07/AD_4nXduHzfnffzWQ9PZpPvIc1cgDy67JnZIMOTrOz_uwY2jqyacCfnhHsIvVMy5rqxDhLzAuhpUbeaHTYUCWJIAovfd0pQqGjjzoymhQDpKv0WKMraTq4CD-LEETpef1tvTHWw0BWlKrD4TTWl1GLz5SQDJlAQ.png)
Mit rasant wachsenden Datenmenge und -quellen sowie der steigenden Bedeutung von Daten für die Entwicklung und Verwendung von KI Applikationen wird eine effiziente und klare Datenverwaltung immer wichtiger. Data Contracts sind ein Konzept, das die Art und Weise verändert, wie Daten in dezentralen Umgebungen verwaltet und ausgetauscht werden.
Was sind Data Contracts?
Ein Data Contract kann als API für Daten verstanden werden. Es handelt sich dabei um ein formales Dokument, das die Struktur, das Format, die Semantik, die Qualitätsanforderungen und die Nutzungsbedingungen für Daten definiert, die zwischen einem Daten-Anbieter und seinen Nutzern ausgetauscht werden. Anders als traditionelle APIs sind Data Contracts für Daten als Schnittstelle konzipiert und können in verschiedenen Datenumgebungen implementiert werden, beispielsweise in einem Data Mesh mit Datenprodukten oder älterer Data Warehouses.
Die wichtigsten Merkmale von Data Contracts:
- Struktur und Format: Definiert das Schema, die Datentypen und zulässigen Werte.
- Semantik: Erklärt die Bedeutung und den Kontext der Daten.
- Qualität: Setzt Erwartungen an die Genauigkeit, Vollständigkeit und Aktualität der Daten.
- Nutzungsbedingungen: Spezifiziert, wie die Daten genutzt werden dürfen, einschließlich Zugriffskontrollen und Compliance-Anforderungen.
Warum sind Data Contracts so relevant?
Dezentrale Datenarchitekturen und Data Mesh-Konzepte werden in der Software-Entwicklung immer populärer. Es gibt sehr viele Optionen, insbesondere komplexere Systeme zu strukturieren und Schnittstellen zwischen Teilsystemen - wie Self-Containend Systems und Microservices - klar zu definieren. Data Contracts sind ein äußerst hilfreiches Kommunikationsmittel, das sicherstellt, dass Datenanbieter und Datennutzer ein gemeinsames Verständnis über die Datenanforderungen haben, wodurch Missverständnisse reduziert und die Zusammenarbeit erleichtert wird.
Die Vorteile von Data Contracts:
- Verbesserte Kommunikation: Data Contracts machen die semantischen und qualitativen Erwartungen explizit und erleichtern die Zusammenarbeit zwischen Teams.
- Standardisierung: Sie bieten einen konsistenten Rahmen für den Datenaustausch, was in heterogenen Datenökosystemen entscheidend ist.
- Automatisierung: Data Contracts unterstützen automatisierte Prozesse wie Codegenerierung, Schema-Validierung und Qualitätsprüfungen, was die Effizienz und Genauigkeit erhöht.
- Governance: Sie spielen eine zentrale Rolle im Datenmanagement, da sie eine bessere Kontrolle und Überwachung der Datennutzung ermöglichen.
Wie werden Data Contracts aufgesetzt?
Um Data Contracts einzuführen, eignen sich Workshops, bei denen die Parteien die Data Contracts definieren und verfeinern, damit sie den Bedürfnissen aller Beteiligten gerecht werden. Ein hilfreiches Tool dabei ist der Data Contract Editor, um beim Schreiben direkt einen validen Data Contract zu erzeugen, inklusive HTML Live-Preview.
Daneben ist die Data Contract CLI zentral, ein Open-Source-Werkzeug, das bei der Entwicklung, Validierung und Durchsetzung der Data Contracts unterstützt.
Dieser kollaborative Ansatz stellt sicher, dass sowohl technische als auch geschäftliche Perspektiven berücksichtigt werden, was zu robusten und praktischen Data Contracts führt.
YAML-basierte Spezifikation:
Die Spezifikation der Data Contracts wird in einem YAML-Format ausgedrückt, wodurch sie plattformneutral ist. Egal, ob Du AWS S3, Google BigQuery, Azure, Databricks oder Snowflake verwendest, diese offene Initiative folgt Konventionen ähnlich zu OpenAPI und AsyncAPI und sorgt so für eine breite Anwendbarkeit und einfache Integration.
dataContractSpecification: 0.9.3
id: urn:datacontract:checkout:orders-latest
info:
title: Orders Latest
version: 1.0.0
description: Successful customer orders in the webshop.
owner: Checkout Team
contact:
name: John Doe (Data Product Owner)
url: https://teams.microsoft.com/l/channel/example/checkout
servers:
production:
type: s3
* location: s3://datacontract-example-orders-latest/data/{model}/.json
format: json
delimiter: newline
terms:
usage: Data can be used for reports, analytics and machine learning use cases.
limitations: Data may not be used to identify individual customers.
billing: 5000 USD per month
noticePeriod: P3M
models:
orders:
description: One record per order. Includes cancelled and deleted orders.
type: table
fields:
orderid:
title: Order ID
type: text
format: uuid
description: An internal ID that identifies an order in the online shop.
example: 243c25e5-a081-43a9-aeab-6d5d5b6cb5e2
pii: true
classification: restricted
required: true
unique: true
primary: true
ordertimestamp:
description: The business timestamp in UTC when the order was successfully registered in the source system and the payment was successful.
type: timestamp
required: true
example: "2024-09-09T08:30:00Z"
ordertotal:
description: Total amount the smallest monetary unit (e.g., cents).
type: long
required: true
example: "9999"
customerid:
description: Unique identifier for the customer.
type: text
minLength: 10
maxLength: 20
customeremailaddress:
description: The email address, as entered by the customer. The email address was not verified.
type: text
format: email
required: true
pii: true
classification: sensitive
servicelevels:
availability:
description: The server is available during support hours
percentage: 99.9%
retention:
description: Data is retained for one year
period: P1Y
unlimited: false
quality:
type: SodaCL
specification:
checks for orders:
- rowcount >= 5
- duplicatecount(orderid) = 0*
Beispiel eines Data Contracts als YAML
Best Practices
Automatisierung und Tools:
Der Einsatz von Tools wie dem Data Mesh Manager zur Automatisierung des Data Contract Managements vereinfachen nicht nur die Erstellung und Durchsetzung von Data Contracts, sondern unterstützen auch die laufende Überwachung und Validierung, wodurch die Datenqualität und Compliance sichergestellt werden. Sie unterstützen die Integration von Data Contracts in die übergreifende Datenmanagement-Strategie, mit Fokus auf die Verbesserung der Datenqualität und die Förderung der internen Zusammenarbeit.
Governance und Qualität an der Datenquelle:
Effektive Governance-Strukturen müssen geschaffen werden, um die Erstellung und Pflege von Data Contracts zu überwachen. Überdies kann die Verantwortung für die Datenqualität näher an die Datenquelle verlagert werden, was die Gesamtqualität der Daten erheblich verbessert.
Klein anfangen:
Beginne mit kleinen, überschaubaren Schritten, wie der Einführung von Data Contracts zwischen wenigen Teams. Dieser Ansatz kann den damit verbunden Change Prozess vorantreiben und die breitere Akzeptanz effektiver Datenpraktiken im gesamten Unternehmen fördern.
Fazit
Die Förderung einer datengesteuerten Entscheidungskultur und die Betonung der Bedeutung von Daten werden immer wichtiger für den Erfolg von Unternehmen.
Data Contracts stellen einen Paradigmenwechsel in der Datenverwaltung dar. Durch die Bereitstellung eines klaren, standardisierten Rahmens verbessern sie die Kommunikation, erhöhen die Datenqualität und ermöglichen Automatisierung. Da sich die Datenlandschaften weiterentwickeln, wird die Einführung von Data Contracts für Unternehmen, die eine effiziente und effektive Datenverwaltung anstreben, von entscheidender Bedeutung sein.
Diese Praktiken fördern nicht nur eine bessere Zusammenarbeit und Governance, sondern schaffen auch die Grundlage für eine skalierbare und robuste Dateninfrastruktur, die letztlich den langfristigen Erfolg datengetriebener Initiativen unterstützt.
Der Data Mesh Manager, ein SaaS Produkt von Dr. Simon Harrer und Jochen Christ, ist der Enterprise Data Marketplace für Unternehmen, die die Bedeutung von Daten für ihren Erfolg erkannt haben.
Autoren
Dr. Simon Harrer ist Berater bei INNOQ. Er ist Softwareentwickler im Herzen, der sich mittlerweile zur dunklen Seite, nämlich der Welt der Daten, zugewandt hat. Er hat datamesh-architecture.com mit ins Leben gerufen und das Data Mesh Buch von Zhamak Dehghani ins Deutsche übersetzt. Neben der tagtäglichen Data Mesh Beratung arbeitet er an dem Data Mesh Manager – ein SaaS Produkt, das Data Mesh Initiativen auf die Überholspur setzt.
Jochen Christ ist Senior Consultant bei INNOQ. Er ist ein erfahrener Software-Entwickler und Spezialist für Self-Contained Systems und Data Mesh. Als Technical Leader befähigt er Teams, nachhaltig erfolgreich Software zu liefern. Jochen ist Maintainer von datacontract.com, und Autor von datamesh-architecture.com.