Wissen

Open Data Contract Standard (ODCS)

Der Open Data Contract Standard (ODCS) war früher als Data Contract Template bekannt, mit dem PayPal Datasets spezifizierte. Heute wird er von Bitol, einem Projekt der Linux Foundation AI & Data, gepflegt.

Wir sind Mitglied im Technical Steering Committee von Bitol und engagieren uns für die Unterstützung des ODCS-Standards in unseren Produkten.

Ab v3.0.0 unterstützt Entropy Data ODCS zur Definition von Data Contracts.

Details eines Data Contracts in Entropy Data

Details eines Data Contracts in Entropy Data

Beispiel eines Open Data Contract Standards

Beginnen wir mit einem Beispiel eines Data Contracts im ODCS-v3-Format:

apiVersion: v3.0.0
kind: DataContract

id: c176de03-8503-4859-bd0f-218cc413d958
name: Shipments
version: 1.0.0
domain: checkout
status: development

description:
  purpose: This data can be used for analytical purposes

schema:
- name: my_table
  physicalType: table
  properties:
    - name: shipment_id
      description: Unique identifier for each shipment.
      logicalType: string
      logicalTypeOptions:
        format: uuid
      physicalType: uuid
      primaryKey: true
      examples:
        - 03c35ea7-9a26-475f-a38a-0dad96f6de10
    - name: order_id
      description: Identifier for the order associated with the shipment.
      logicalType: string
      physicalType: text
      required: true
      unique: false
      examples:
        - ORD789012
    - name: delivery_date
      description: "The actual or expected delivery date of the shipment."
      logicalType: date
      physicalType: timestamp_tz
      required: false
      examples:
        - "2024-09-05T17:00:00Z"
      quality:
      - type: text
        description: Must be set, when status is "delivered".
    - name: carrier
      description: "The shipping carrier used for the delivery."
      logicalType: string
      physicalType: text
      examples:
        - DHL
        - UPS
    - name: tracking_number
      description: Tracking number provided by the carrier.
      logicalType: string
      logicalTypeOptions:
        minLength: 10
        maxLength: 36
      physicalType: text
      classification: restricted
      quality:
      - rule: duplicateCount
        mustBeLessThan: 1
        unit: percent
      examples:
        - 1Z9999W99999999999
    - name: status
      description: "Current status of the shipment."
      logicalType: string
      physicalType: text
      examples: ["pending", "shipped", "in_transit", "delivered", "returned", "canceled"]
  quality:
    - rule: rowCount
      name: Verify row count range
      mustBeBetween: [1000000, 5000000]

team:
  - username: john.doe@example.com
    role: Data Product Owner

servers:
  - server: production
    environment: production
    type: bigquery
    project: acme_shipments_prod
    dataset: shipments_v1

roles:
  - role: analyst_us_read
    access: read
  - role: analyst_eu_read
    access: read

Wer mit dem v2-Format vertraut war, wird einige bedeutende Änderungen bemerken. Das ODCS-v3-Format ist flexibler und für ein breiteres Spektrum von Datenprodukten einsetzbar.

Inhalt

Dies sind die Bausteine eines ODCS-Data-Contracts:

Grundlagen

Allgemeine Angaben zum Data Contract wie ID, Name, Version, Owner und Beschreibung.

Schema

Das Schema spezifiziert die logische und optional auch die physische Darstellung des Datenmodells. Mit ODCS v3 werden auch komplexe Datenstrukturen (z. B. JSON- und AVRO-Modelle) unterstützt.

Datenqualität

Qualitätsgarantien lassen sich jetzt als Klartext, als SQL oder über eine gepflegte Bibliothek vordefinierter Qualitätsattribute wie rowCount, unique, freshness und weitere definieren.

Pricing

Der Preis, den Data Consumers für die Nutzung des Datenprodukts zahlen. Optional.

Server

Der physische Speicherort des Datensatzes, also der konkrete Host, die Datenbank und das Schema. Die meisten Technologien und Datenplattformen werden unterstützt. Mehrere Server für unterschiedliche Umgebungen oder Versionen eines Datenprodukts sind möglich.

Rollen

Eine Liste von Rollen, für die Data Consumers Zugriff beantragen können. Unterschiedliche Rollen können unterschiedliche Zugriffsrechte für rollenbasierte Zugriffskontrolle (RBAC) bereitstellen.

SLAs

Service-Level Agreements (SLAs) können definiert werden, um die erwartete Verfügbarkeit und Performance des Datenprodukts festzulegen.

Custom Properties

Für individuelle Anforderungen oder tooling-spezifische Bedürfnisse können zusätzliche Properties ergänzt werden.

Entropy Data

Entropy Data ist ein Frontend für die Verwaltung von Data Contracts und Datenprodukten in einer Organisation. Es nutzt Data Contracts, um einen Datenprodukt-Marktplatz mit erweiterten Funktionen für Data Discovery, versionsgesteuerte Bearbeitung von Data Contracts, Contract Testing und automatisierte Data Governance aufzubauen.

Screenshot des Data-Contract-Editors für ODCS in Entropy Data

Screenshot des Data-Contract-Editors für ODCS in Entropy Data

Kostenlos registrieren oder die interaktive Demo von Entropy Data erkunden.