Inteligencia de datos

Contratos de datos: definición, componentes y guía de implementación

guía sobre contratos de datos

Un contrato de datos es un acuerdo formal entre un productor de datos y un consumidor de datos que define la estructura, los estándares de calidad, la titularidad, los acuerdos de nivel de servicio (SLA) y las condiciones de uso de un conjunto de datos concreto, de modo que los equipos posteriores puedan confiar en lo que reciben y los equipos anteriores sepan exactamente qué deben entregar.

Sin un contrato de datos, un cambio en el esquema de un sistema fuente provoca, de forma silenciosa, un fallo en un informe posterior. Un canal de datos entrega los datos con dos horas de retraso sin previo aviso. Un campo del que dependen los analistas desaparece sin previo aviso. Los contratos de datos evitan estas tres situaciones al hacer que las expectativas sean explícitas, estén versionadas y sean exigibles antes de que los problemas lleguen al entorno de producción.


¿Qué es un contrato de datos?

Un contrato de datos es un documento —normalmente en formato YAML o JSON legible por máquina— que especifica qué datos va a proporcionar un productor, en qué formato, con qué nivel de calidad, con qué periodicidad y bajo qué condiciones de uso. Es el equivalente en el ámbito de los datos a un contrato de API: una interfaz definida entre el sistema que produce los datos y los sistemas que los consumen.

Mientras que un contrato de API regula la forma en que se comunican los sistemas de software, un contrato de datos regula el flujo de datos entre equipos, flujos de trabajo y sistemas. Cuando un productor y un consumidor acuerdan un contrato de datos y lo integran en sus flujos de trabajo, los cambios en el esquema activan alertas en lugar de provocar fallos silenciosos; las infracciones de calidad se detectan en el origen en lugar de descubrirse en un informe trimestral; y la responsabilidad se documenta en lugar de depender de la memoria institucional.


Qué incluye un contrato de datos

El estándar del sector para los contratos de datos es el Open Data Contract Standard (ODCS), un proyecto de la Fundación Linux del que se encarga Bitol. Un contrato de datos completo abarca siete componentes.

Componente Qué define Ejemplo
Conceptos básicos N.º de contrato, nombre, versión, estado y versión estándar utilizada id: orders-v1version: 1.0.0status: active
Esquema Estructura de la tabla, nombres de las columnas, tipos de datos, claves primarias y semántica de negocio de cada campo order_id: string, primary key / order_status: string, valid values: [pending, complete, cancelled]
Normas de calidad de los datos Comprobaciones de validación que deben superarse antes de que los datos se consideren aptos para su entrega Número de filas superior a 1.000 / porcentaje de valores nulos inferior al 2 % en los campos obligatorios / lógica de validación SQL personalizada
Equipo Quién es el titular del contrato y quién se encarga de su gestión, cuáles son sus funciones y cómo pueden ponerse en contacto con ellos los consumidores Responsable: ingeniería de datos / Gestor: análisis de ingresos / Asistencia: canal #data-contracts de Slack
SLA Plazos de entrega, garantía de frescura y compromisos de disponibilidad Datos actualizados diariamente a las 6:00 UTC / Disponibilidad del 99,5 % / Latencia máxima de 15 minutos
Condiciones de uso Lo que los consumidores pueden y no pueden hacer con los datos Autorizado para análisis internos / no autorizado para su divulgación externa / requiere el tratamiento de datos personales
Servidores Dónde se almacenan los datos y cómo acceder a ellos Referencia de la base de datos, el esquema y las tablas de Snowflake / Datos de conexión específicos del entorno

Un contrato básico puede comenzar con los aspectos fundamentales, el esquema y las normas de calidad. A medida que el programa va madurando, se van añadiendo los acuerdos de nivel de servicio (SLA), las condiciones de uso y los datos del servidor.


Contrato de datos frente a conceptos relacionados

Contrato de datos Regla de calidad de los datos SLA Esquema
Qué es Un acuerdo formal que regula el esquema, la calidad, la titularidad, los acuerdos de nivel de servicio (SLA) y las condiciones de uso de un conjunto de datos Una única comprobación de validación aplicada a un campo o una tabla Un compromiso de nivel de servicio (tiempo de actividad, actualidad, plazo de entrega) La definición estructural de una tabla o un conjunto de datos
Alcance De principio a fin: del productor al consumidor Una única dimensión de calidad Solo entrega y disponibilidad Solo estructura
¿Quién lo establece? Acordado entre el productor y el consumidor Establecido por el departamento de ingeniería de datos o de gestión de datos Establecido por el equipo de ingeniería de datos o el equipo de la plataforma Establecido por ingeniería de datos
¿Cómo se aplica? Validación de procesos, alertas y flujos de trabajo de gobernanza Controles de calidad automatizados Supervisión y alerta Registro de esquemas, DDL
Relación Un contrato de datos contiene normas de calidad, acuerdos de nivel de servicio (SLA) y un esquema como componentes. Un componente de un contrato de datos Un componente de un contrato de datos Un componente de un contrato de datos

Contrato de datos frente a política de gobernanza de datos:Una política de gobernanza de datos establece normas a nivel de toda la organización sobre cómo se gestionan los datos. Un contrato de datos aplica esas normas a un conjunto de datos concreto que se intercambia entre un productor y un consumidor específicos. Las políticas de gobernanza son de carácter organizativo; los contratos de datos se refieren a conjuntos de datos concretos.

Contrato de datos frente a catálogo de datos:un catálogo de datos recoge los activos de datos existentes y sus metadatos. Un contrato de datos formaliza los compromisos que asume un productor respecto a un activo concreto. Una entrada del catálogo describe un conjunto de datos; un contrato de datos regula su entrega.


Cómo funcionan los contratos de datos

Sin contrato de datos: Un equipo de ingeniería de datos modifica el esquema de la orders tabla — cambio de nombre customer_id a cust_id y eliminando el discount_code campo. El cambio se implementa un martes. Para el miércoles por la mañana, tres tuberías de datos posteriores han fallado, dos paneles de control muestran valores nulos y un proceso de aprendizaje automático ha estado recibiendo silenciosamente ceros para un campo que utiliza como predictor clave. El equipo de análisis identifica el problema cuando un vicepresidente pregunta por la caída en las cifras de ingresos.

Con un contrato de datos: Ese mismo cambio en el esquema provoca un error de validación del contrato antes de que se aplique el cambio. El contrato de datos especifica que customer_id es un campo obligatorio de tipo cadena y que discount_code debe estar presente con una tasa de valores nulos inferior al 5 %. El equipo de ingeniería recibe una alerta en la que se indican qué consumidores posteriores dependen de los campos afectados. Coordinan el cambio con los consumidores, actualizan la versión del contrato y lo implementan siguiendo una ruta de migración. No se interrumpe ningún flujo de datos.


Cómo se implementan los contratos de datos

Paso 1: Definir el productor y el consumidor

Identifica el equipo propietario del activo de datos (el productor) y los equipos que lo utilizan (los consumidores). Los contratos de datos funcionan mejor cuando los productores y los consumidores negocian el contrato conjuntamente, en lugar de que se lo imponga una de las partes.

Paso 2: Redactar el contrato

Empieza por los tres componentes esenciales: los fundamentos (ID, versión, estado), el esquema (nombres de campos, tipos, restricciones) y las reglas de calidad (comprobaciones de validación). Utiliza un formato legible por máquina; YAML es el estándar para los contratos ODCS. Almacena el archivo del contrato en el sistema de control de versiones junto con el código del proceso que regula.

Ejemplo de contrato mínimo (formato ODCS):

apiVersion: v3.1.0
kind: DataContract
id: orders-daily
name: Orders
version: 1.0.0
status: active

schema:
  - name: orders
    physicalType: TABLE
    propiedades:
      - nombre: order_id
        tipo lógico: cadena de caracteres
        clave principal: true
      - nombre: order_status
        tipo lógico: cadena de caracteres
      - nombre: customer_id
        tipo lógico: cadena de caracteres
      - nombre: order_amount
        tipo lógico: número

calidad:
  - tipo: recuento de filas
    debe ser mayor que: 1000
  - tipo: integridad
    columna: id_pedido
    debe ser mayor que: 0,99

equipo:
  - nombre: Ingeniería de datos
    función: propietario

Paso 3: Integrar la validación en el proceso

Conecta el contrato al canal que genera los datos. Las reglas de calidad del contrato se ejecutan automáticamente cuando se ejecuta el canal. Si una regla falla —número de filas inferior al umbral, tasa de valores nulos superior al límite, discrepancia en el esquema—, el canal avisa al responsable y, opcionalmente, detiene la entrega en lugar de propagar datos erróneos a las etapas posteriores.

Paso 4: Asignar una versión al contrato

Cuando cambien el esquema o los estándares de calidad, aumenta la versión del contrato. Mantén la compatibilidad con versiones anteriores siempre que sea posible. Cuando sea inevitable un cambio que rompa la compatibilidad, comunícalo a todos los usuarios identificados en el contrato antes de que se implemente el cambio. El historial de versiones en el control de código fuente proporciona un registro de auditoría de cada cambio y de quién lo aprobó.

Paso 5: Publicar en el catálogo de datos

Registra el contrato en el catálogo de datos para que los usuarios puedan encontrarlo, consultar su estado actual y suscribirse a las notificaciones de cambios. Un contrato visible en el catálogo hace que los activos de datos se documenten por sí mismos: los usuarios pueden ver el esquema, los estándares de calidad, los acuerdos de nivel de servicio (SLA) y las condiciones de uso sin tener que preguntar directamente al equipo responsable de su elaboración.

Paso 6: Supervisar y velar por el cumplimiento

Configura un sistema de supervisión que compruebe el cumplimiento de los contratos en cada ejecución del proceso: validación del esquema, evaluación de las reglas de calidad y cumplimiento del SLA. Deriva las infracciones al flujo de trabajo de gestión del responsable. Realiza un seguimiento de las tasas de infracción a lo largo del tiempo como indicador del estado de la calidad.


Contratos de datos y Data Mesh

Los contratos de datos son un componente fundamental de la arquitectura de malla de datos. En una malla de datos, los equipos de dominio son responsables de los productos de datos y los publican para que otros dominios puedan utilizarlos. Un contrato de datos es la interfaz formal que permite utilizar un producto de datos: define qué ofrece el producto, con qué nivel de calidad y en qué condiciones, de modo que los dominios que lo consumen puedan basarse en él de forma fiable.

Sin contratos de datos, una malla de datos genera productos de datos de los que otros equipos temen depender. Con los contratos de datos, cada producto de datos cuenta con una interfaz versionada y exigible: el mismo principio que hace que las arquitecturas de microservicios sean fiables, aplicado a los datos.


Contratos de datos e inteligencia artificial

La gobernanza de la IA está generando una nueva demanda de contratos de datos. Cada conjunto de datos que se utiliza para entrenar o ajustar un modelo requiere los mismos compromisos que establece un contrato de datos: un esquema definido, normas de calidad documentadas, una titularidad clara y condiciones que regulen su uso adecuado.

Contratos de datos de entrenamiento: Un contrato de datos para un conjunto de datos de entrenamiento especifica qué campos se incluyen, qué umbrales de calidad deben cumplir, si el conjunto de datos contiene información de carácter personal (y, en caso afirmativo, bajo qué requisitos de tratamiento) y quién lo ha certificado para su uso en IA. Este contrato se convierte en el documento de referencia necesario para cumplir los requisitos de reproducibilidad del modelo y de auditoría de la IA.

Contratos de flujos de trabajo RAG: Los flujos de trabajo de generación aumentada mediante recuperación (RAG) incorporan documentos y conjuntos de datos a las ventanas de contexto de los modelos de lenguaje a gran escala (LLM) en el momento de la consulta. Un contrato de datos para un conjunto de datos apto para RAG especifica qué campos se pueden recuperar, en qué condiciones de acceso y con qué garantía de actualidad.

Contratos del almacén de características: Los flujos de características de aprendizaje automático transforman los datos sin procesar en características del modelo. Un contrato de datos entre el almacén de características y el flujo de entrenamiento del modelo especifica el esquema de características, las expectativas de distribución estadística (base para la detección de desviaciones) y el acuerdo de nivel de servicio (SLA) de latencia para la entrega de características en el momento de la inferencia.


Contratos de datos en sectores regulados

Servicios financieros:La norma BCBS 239 exige a los bancos que demuestren la exactitud y el origen de los datos para la presentación de informes de riesgos. Un contrato de datos entre un sistema fuente y el proceso de presentación de informes de riesgos formaliza los estándares de calidad y los compromisos relativos al esquema que exige la norma BCBS 239, y genera la documentación que solicitan los auditores como resultado de las operaciones diarias.

Sanidad:La HIPAAexige que se documente la responsabilidad sobre la información médica protegida (PHI). Un contrato de datos para un conjunto de datos que contenga PHI especifica la clasificación de sensibilidad, las restricciones de acceso, los requisitos de tratamiento y los usos autorizados. Cuando en una auditoría se pregunta cómo se gestionó la PHI en un proceso concreto, el contrato de datos proporciona la respuesta.

Productos farmacéuticos: La norma 21 CFR Parte 11 de la FDA y las normativas GxP exigen la integridad de los datos clínicos. Los contratos de datos aplicados a los conjuntos de datos clínicos documentan el esquema, los estándares de calidad y la cadena de custodia que exigen los requisitos de integridad de los datos.

Preguntas frecuentes

Un contrato de datos es un acuerdo formal entre un productor de datos y un consumidor de datos que define el esquema, los estándares de calidad, la titularidad, los acuerdos de nivel de servicio (SLA) de entrega y las condiciones de uso de un conjunto de datos concreto. Este contrato deja claras las expectativas y garantiza su cumplimiento, de modo que los equipos posteriores puedan trabajar de forma fiable con los datos que reciben.

Un SLA abarca una dimensión de un contrato de datos: el calendario de entrega, la garantía de actualidad y el compromiso de disponibilidad. Un contrato de datos tiene un alcance más amplio: incluye el SLA, además de la definición del esquema, las normas de calidad, la titularidad y las condiciones de uso. Un SLA indica a los usuarios cuándo se recibirán los datos; un contrato de datos les indica qué contendrán y qué estándares cumplirán.

El Estándar de Contratos de Datos Abiertos (ODCS) es un proyecto de la Fundación Linux, gestionado por Bitol, que define un formato legible por máquina para los contratos de datos. Abarca los aspectos fundamentales, el esquema, las normas de calidad, la titularidad del equipo, los acuerdos de nivel de servicio (SLA), las condiciones de uso y la configuración del servidor en un documento YAML. Se trata del estándar emergente del sector para los contratos de datos en las pilas de datos modernas.

No, en la mayoría de los casos. Los contratos de datos son documentos de gobernanza interna que se utilizan para coordinar y garantizar el cumplimiento de las normas entre equipos. No son contratos legales en el sentido comercial. Su valor es operativo: dejan claras las expectativas, establecen la responsabilidad y permiten el cumplimiento automatizado.

El productor de datos redacta el borrador inicial en colaboración con los usuarios de los datos. El productor define lo que se compromete a entregar; el usuario define lo que necesita. El contrato refleja el resultado negociado. Un responsable de datos o un responsable de gobernanza puede revisar y aprobar el contrato antes de su publicación.

Al integrar la validación del esquema y de la calidad directamente en el proceso que genera los datos. Cuando un contrato especifica que un campo debe estar presente con una tasa de valores nulos inferior al 2 % y el proceso genera datos con una tasa de valores nulos del 15 %, la validación del contrato falla y se avisa al responsable antes de que los datos erróneos lleguen a los consumidores posteriores. Los cambios en el esquema que podrían afectar a los procesos de los consumidores se detectan antes de la implementación, en lugar de después.

Las reglas de calidad de los datos son un componente de un contrato de datos. El contrato define los umbrales de calidad que deben cumplir los datos; la capa de validación de calidad se encarga de hacerlos cumplir en el momento de la ejecución del proceso. Un contrato de datos sin reglas de calidad solo regula el esquema y la entrega; no garantiza que los datos contenidos en el esquema sean fiables.

En una red de datos (data mesh), los equipos de dominio son los responsables de los productos de datos y se encargan de publicarlos. Un contrato de datos es la interfaz formal que permite el uso de un producto de datos: define el esquema, los estándares de calidad, los acuerdos de nivel de servicio (SLA) y las condiciones de uso en los que pueden confiar los dominios que los utilizan. Sin contratos de datos, los productos de la red de datos son «cajas negras» sin documentación. Con ellos, cada producto cuenta con una interfaz versionada y exigible.