Willkommen
Warum Datenkontrakte? ODCS, ODPS und was du bauen wirst.
Warum Datenkontrakte? ODCS, ODPS und was du bauen wirst.
Jede Datenpipeline beruht auf einem Versprechen: Die Daten sehen morgen auch noch so aus. Meist ist dieses Versprechen implizit. Es bricht unbemerkt, wenn eine Spalte umbenannt wird, sich ein Typ ändert oder eine Tabelle verschwindet. Datenkontrakte machen das Versprechen explizit, maschinenlesbar und testbar.
In diesem Tutorial arbeitest du ein realistisches Szenario komplett durch, auf deinem Laptop, in deinem Tempo.
Stell es dir vor wie eine API-Spezifikation (etwa OpenAPI), nur für Daten. Ein Kontrakt beantwortet:
order_total? In welcher Einheit?Beide Standards entstehen offen bei Bitol, einem Projekt der Linux Foundation.
| ODCS: Open Data Contract Standard | ODPS: Open Data Product Standard | |
|---|---|---|
| Beschreibt | die Schnittstelle eines Datenbestands | das Produkt hinter einer oder mehreren Schnittstellen |
| Enthält | Schema, Qualitätsregeln, Server, SLAs, Team | Zweck, Ownership, Input- und Output-Ports |
| Datei | orders_v1.odcs.yaml | orders.odps.yaml |
Ein Datenprodukt bietet seine Daten über Output-Ports an, jeder beschrieben durch einen Datenkontrakt. Baut ein Datenprodukt auf anderen auf, deklariert es das über Input-Ports.
Du arbeitest für ein E-Commerce-Unternehmen.
In Teil A bist du Owner der Orders-Daten: zwei PostgreSQL-Tabellen, orders und line_items.
Du nimmst sie unter Vertrag, veröffentlichst einen Breaking Change als neue Version und beschreibst das Datenprodukt.
In Teil B wechselst du die Seite. Das Einkaufsteam will wissen, wie oft jede SKU pro Jahr verkauft wird, um mit Lieferanten zu verhandeln. Du entwirfst ein consumer-aligned Datenprodukt, SKU Sales, auf Basis von Orders (contract-first) und implementierst es als SQL-View.
In Teil C automatisierst du alles in deinem GitHub-Fork: Jeder Push testet alle Kontrakte, jeder Pull Request wird auf Breaking Changes geprüft. Teil D ist optional: Du veröffentlichst alles auf einer Datenproduktplattform und verknüpfst deine Kontrakte mit fachlichen Begriffen.
Alle Werkzeuge sind Open Source und laufen lokal:
datacontract): Datenkontrakte erstellen, bearbeiten, linten, testen und vergleichendataproduct): ODPS-Datenprodukte erstellen und lintendatacontract edit im Browser öffnetentropy-data): nur für den optionalen Teil DJede Übung besteht aus Schritten. Markiere einen Schritt als erledigt, wenn du fertig bist. Erledigte Schritte klappen zu, dein Fortschritt wird in diesem Browser gespeichert. Befehle haben einen Kopieren-Button. Wo sich macOS/Linux und Windows unterscheiden, schaltest du per Tab um (die Auswahl wird gemerkt).
Du hängst fest? Die meisten Übungen haben einen Button Lösung anzeigen. Probier es zuerst selbst.
Voraussetzungen: Grundkenntnisse in YAML und SQL. Plane etwa 5–6 Stunden für die Teile A–C ein, plus etwa eine Stunde für den optionalen Teil D. Du musst nicht alles an einem Stück machen.
Bereit? Dann richten wir deine Umgebung ein.