Übung 3 · Datenprodukt beschreiben
Das Datenprodukt hinter den Kontrakten mit ODPS beschreiben.
Das Datenprodukt hinter den Kontrakten mit ODPS beschreiben.
Deine Datenkontrakte beschreiben die Schnittstelle deiner Daten: Tabellen, Typen, Qualitätsregeln. Consumer wollen mehr wissen: Wofür sind die Daten gedacht? Wem gehören sie? Welche Versionen gibt es, und welche sollte ich nutzen? Das beschreibt das Datenprodukt, mit dem Open Data Product Standard (ODPS).
Die Data Product CLI legt eine Startdatei an:
dataproduct init orders.odps.yaml📄 data product written to orders.odps.yamlÖffne orders.odps.yaml in deiner IDE. Sie enthält Platzhalter und auskommentierte Abschnitte.
Ersetze den oberen Teil durch die Grunddaten deines Orders-Produkts:
apiVersion: v1.1.0
kind: DataProduct
id: orders
name: Orders
version: 1.0.0 # die Version des Datenprodukts, unabhängig von den Kontraktversionen
status: active
type: sourceAligned
domain: ecommerce
description:
purpose: # wofür ist dieses Datenprodukt gedacht?
limitations: # was sollten Consumer vor der Nutzung wissen?Ersetze die Kommentare bei purpose und limitations durch echten Text: Was muss ein Consumer wissen, bevor er Zugriff beantragt?
Ergänze pro Datenkontrakt einen Output-Port. Die contractId muss der id des Kontrakts entsprechen:
outputPorts:
- name: orders_v1
description: Orders and line items tables in PostgreSQL (v1, superseded by v2)
deprecated: true
version: 1.0.0
contractId: orders_v1
- name: orders_v2
description: # ...
version: 2.0.0
contractId: orders_v2Schreib die Beschreibung für orders_v2 selbst. Entferne den Beispiel-Port von dataproduct init.
deprecated: true (neu in ODPS 1.1) markiert den Port orders_v1 als nicht mehr empfohlen. Er bleibt für bestehende Consumer dokumentiert, neue Consumer wählen orders_v2.
Ergänze team und support. Übernimm, was du in deinen Kontrakten definiert hast:
team:
name: order_data_team
members:
- username: [email protected]
role: Owner
support:
- channel: "#order-data-help"
url: https://example.slack.com/archives/order-data-help
tool: slackValidiere gegen das offizielle ODPS-JSON-Schema:
dataproduct lint orders.odps.yaml✅ Data product is valid against ODPS v1.1.0
🟢 Data product is valid.Lass es einmal fehlschlagen: Ändere kind: DataProduct in kind: DataProdukt und linte erneut:
dataproduct lint orders.odps.yaml❌ Check that data product is valid against ODPS v1.1.0: kind: 'DataProdukt' is not one of
['DataProduct']
🔴 Data product is invalid.Die CLI nennt das falsche Feld und endet mit Exit-Code 1. Mach es danach rückgängig.
orders_v1 ist retired. Sollte sein als deprecated markierter Output-Port in der Produktbeschreibung bleiben oder entfernt werden? Wäge Transparenz für bestehende Consumer gegen einen aufgeräumten Katalog ab.context-Block für KI-Agenten, auf Produkt- und Output-Port-Ebene. Ergänze instructions, die einem Agenten sagen, welchen Port er nutzen soll.tags am Datenprodukt, z. B. ['orders', 'ecommerce'], und linte erneut.