Saltar a contenido

Data Contracts

Contratos de datos versionados productor-consumidor para todos los productos Gold.

Estructura

Cada contrato vive en su propio archivo <contract_id>.yml siguiendo la spec en _schema.json.

Workflow

  1. Cambio propuesto: abrir PR modificando el contrato.
  2. CI ejecuta:
  3. Lint del YAML contra el schema.
  4. Schema diff vs producción → detecta breaking changes.
  5. Si breaking: requiere aprobación de cada consumidor listado.
  6. Merge: trigger a producción actualizado tras merge.
  7. Runtime: Soda/Great Expectations verifica conformidad en cada run; falla si SLA violado.

Comandos útiles

# Validar localmente
datacontract lint governance/data-contracts/*.yml

# Schema diff
python scripts/contract_diff.py --base origin/main --head HEAD

# Generar dbt yml a partir del contrato
python scripts/contract_to_dbt.py governance/data-contracts/customer_dim.yml

# Verificar runtime
datacontract test governance/data-contracts/customer_dim.yml --target prod

Versionado

Semantic versioning: - MAJOR — breaking changes (drop column, type change, FK removal). - MINOR — additive (nueva columna opcional, nueva métrica). - PATCH — descriptiva (mejor description, no cambio de schema).