¿Qué es un contrato de datos?

Contratos de datos, definidos

Los contratos de datos son acuerdos formales entre productores y consumidores de datos que definen la calidad, la estructura, la semántica y la disponibilidad de los datos. La creación y aplicación de estos acuerdos puede ayudar a las empresas a reforzar su toma de decisiones basada en datos.

 

Al igual que los contratos comerciales tradicionales, los contratos de datos incluyen términos y condiciones que regulan lo que se entrega de una parte a otra. En un contrato de datos, esto puede incluir elementos como normas de calidad de los datos, definiciones de esquemas, acuerdos de nivel de servicio, información sobre los proveedores de datos e información sobre los servidores.

Sin embargo, donde los contratos de datos realmente difieren es en que están escritos en código; por lo tanto, los acuerdos se pueden hacer cumplir mediante la automatización en lugar de procesos manuales.

El impacto de los contratos de datos en la ingeniería de datos se ha comparado con el impacto de las interfaces de programación de aplicaciones (API) en el desarrollo de software. Las API definen reglas que permiten que las aplicaciones de software se comuniquen entre sí, mientras que los contratos de datos definen reglas que permiten a los consumidores de datos integrar y utilizar con éxito datos de diversas fuentes.

Y, al igual que a las API se les atribuye la mejora de la productividad y la aceleración de la innovación en el desarrollo de software, la implementación exitosa de contratos de datos puede generar una serie de beneficios para las empresas y los usuarios de datos.

El más crítico de ellos es la prevención de fallos en el pipeline de datos: sin contratos de datos, los cambios en la producción de datos pueden tener consecuencias desastrosas para los usuarios posteriores. Los contratos de datos pueden garantizar que estos cambios importantes se identifiquen y aborden antes de que afecten a los consumidores de datos.

Otros beneficios de los contratos de datos incluyen mejoras en calidad de los datos, gobierno de datos y escalabilidad. Los contratos de datos también proporcionan un soporte fundamental a productos de datos y arquitecturas de malla de datos que permiten a los usuarios empresariales encontrar y desbloquear valor de los datos en toda la organización.

Hay una variedad de herramientas y plataformas que ayudan a las empresas a definir y hacer cumplir los contratos de datos, incluidas las herramientas de calidad de los datos y las plataformas de gobierno de datos.

¿Por qué son importantes los contratos de datos?

Los pipelines de datos frágiles y rotos son la pesadilla de muchos ingenieros de datos. Un estudio descubrió que más de la mitad de los ingenieros se encuentran con fallos de pipeline en sus sistemas de datos al menos una vez al mes, si no más.1

Con demasiada frecuencia, como señaló un arquitecto de datos, los pipelines "se mantienen unidas con cinta aislante y desesperación". Cuando fallan, pueden socavar las iniciativas de toma de decisiones y de inteligencia artificial (IA) de forma desastrosa.

Los contratos de datos pueden ayudar a prevenir tales consecuencias al dirigirse a una fuente frecuente de fallos en los pipelines: la desalineación entre productores y consumidores de datos. La desalineación se produce cuando los nuevos datos proporcionados por los productores de datos no cumplen las expectativas de los consumidores, que pueden depender de tipos de datos específicos, esquemas y otras restricciones para adaptarse a sus casos de uso.

Es comprensible que los consumidores intermedios puedan "dudar de la estabilidad de los datos que encuentran", según Jean-Georges Perrin, campeón vitalicio de IBM. "Para crear confianza, el productor o el propietario de los datos debe demostrar y garantizar una promesa", escribió Perrin. 

Dicha promesa, ya sea sobre la calidad de los datos, la validación, el acceso o la estructura, puede garantizarse mediante la implementación de contratos de datos. Cuando los productores y consumidores de datos se alinean y codifican los requisitos de datos, esto puede evitar problemas de calidad de los datos antes de que afecten a los flujos de trabajo posteriores.

Los contratos de datos se están convirtiendo en algo especialmente importante para los flujos de trabajo de la IA, porque garantizar los datos correctos para el entrenamiento de modelos y el análisis de datos es crucial para obtener predicciones precisas.

“Se obtienen mejores datos en los sistemas, de modo que si entran datos basura, salen datos basura”, dijo Perrin.

Productores y consumidores de datos: diferencias y roles clave

Dado que la desalineación entre productores y consumidores de datos impulsa en gran medida la necesidad de contratos de datos, es útil analizar más de cerca a ambos grupos y sus roles dentro de los ecosistemas de datos.

  • Los productores de datos suelen ser ingenieros de software que recopilan y almacenan datos a medida que construyen aplicaciones. A menudo estos datos incluyen eventos transaccionales, como pedidos de clientes, que pueden variar enormemente en cuanto a esquema, tamaño, contenido, etc.2

  • Los consumidores de datos incluyen consumidores de datos técnicos (ingenieros de datos, científicos de datos y otros miembros del equipo de datos que utilizan lenguajes de programación para transformar y analizar datos y construir pipelines de datos) y consumidores de datos no técnicos, es decir, usuarios empresariales que utilizan datos transformados para informar decisiones.

Los consumidores de datos confían en los productores para que sus datos estén disponibles para su uso posterior. Pero esta dependencia no establece por sí sola una relación sólida entre consumidores y productores. Esto se debe a que los productores tienden a almacenar los datos en los formatos más adecuados para sus aplicaciones; las necesidades de gestión de datos de los consumidores intermedios no forman parte inherente de su enfoque.

En consecuencia, cuando los ingenieros de software actualizan las aplicaciones y el código, es posible que no tengan en cuenta cómo afectan esas actualizaciones a los datos que, en última instancia, se entregan a los consumidores de datos.

Cuando tales cambios son inesperados (incluso cambios relativamente pequeños como eliminar una sola columna de una tabla de 1000 columnas) puede desatarse el caos para los consumidores de datos. Estos llamados cambios rotos pueden interrumpir los flujos de datos y poner en peligro la compatibilidad de conjuntos de datos.

Como resultado, los scripts fallan, los paneles de control se vuelven obsoletos o inexactos, y tanto los humanos como los agentes de IA se ven privados de los datos fiables necesarios para las decisiones y operaciones clave.

Al establecer acuerdos definitivos entre los productores y los consumidores de datos, los contratos de datos pueden romper los silos que separan a ambos grupos, evitando desalineaciones y apoyando pipelines de datos más funcionales.

¿Qué incluyen los contratos de datos?

Los contratos de datos, como señalan los defensores, convierten suposiciones implícitas en garantías explícitas: detallan exactamente qué se supone que deben entregar los productores de datos a los consumidores de datos y cómo se espera que logren esa entrega. Los elementos clave de los contratos de datos incluyen:

  • Fundamentos
  • Esquema
  • Calidad de los datos
  • Canales de soporte
  • precios
  • Equipo
  • Roles
  • Acuerdos de nivel de servicio (SLA)
  • Infraestructura y servidores

Fundamentos

Los fundamentos, también conocidos como datos demográficos, abarcan información general sobre el contrato. Esto puede incluir identificadores únicos, la versión del contrato (1.0 o 2.0, por ejemplo), el estado del contrato (como "activo" o "retirado"), el propósito previsto para los datos y las limitaciones legales para el uso de los datos.

Esquema

Una definición de esquema detalla cómo se organizan los datos. Especifica objetos (estructuras de datos como tablas y documentos), propiedades de objetos (como las columnas de una tabla) y metadatos para los tipos de datos incluidos, como marcas de tiempo y límites de longitud de cadena. Los registros de esquemas, que son repositorios centralizados para gestionar esquemas, pueden ayudar a respaldar los contratos de datos.

Calidad de los datos

Los contratos de datos definen reglas y parámetros para garantizar datos de alta calidad. Pueden abordar múltiples métricas de calidad de los datos, como precisión, integridad, validez y conteos nulos. Además, las reglas personalizadas pueden permitir comprobaciones de calidad mediante herramientas de calidad de los datos.

Canales de apoyo

Los contratos de datos pueden enumerar fuentes de asistencia (como canales de Slack, canales de Teams, chats de Discord, listas de distribución de correo electrónico y sitios web) para los consumidores de datos que necesitan ayuda con sus contratos de datos.

Precios

La sección de precios de un contrato de datos indica lo que se le cobra a un consumidor de datos por un producto de datos. Puede incluir la moneda que se utiliza y la unidad de medida (como megabytes o gigabytes) que puede utilizarse para calcular el coste.

Equipo

Conocida en algunas plantillas antiguas de contratos de datos como "stakeholders", la sección dedicada al equipo de un contrato de datos incluye información sobre los miembros del equipo propietario de los datos y su relación con el contrato de datos.

Roles

La sección de roles de un contrato de datos enumera los roles que proporcionan a los consumidores de datos diferentes tipos de acceso (como acceso de lectura o escritura) a un conjunto de datos.

Acuerdos de nivel de servicio (SLA)

Los contratos de datos incluyen descripciones de acuerdos de nivel de servicio, que definen el nivel de rendimiento que se espera que alcance el proveedor. Por ejemplo, las secciones de SLA pueden enumerar garantías sobre cuándo los datos están disponibles y cuánto tiempo se conservan.

Infraestructura y servidores

Especificar el servidor de los datos (como Kafka, Microsoft SQL, Google BigQuery o IBM Db2) permite que sean detectables para los consumidores de datos, al tiempo que proporciona a los ingenieros de plataforma la información necesaria para automatizar el acceso. Esta sección también puede incluir información sobre diferentes entornos, como desarrollo y producción.

Además de los valores básicos de los contratos de datos, las partes interesadas pueden añadir propiedades personalizadas a los contratos de datos para satisfacer sus necesidades específicas. Las versiones recientes de las populares plantillas de contratos de datos también incluyen la posibilidad de documentar las relaciones entre propiedades, hacer referencia a contratos externos y acceder a una biblioteca de normas de calidad de los datos predefinidas para comprobar la calidad de forma coherente.

¿Cuál es el formato de los contratos de datos?

Los contratos de datos se diferencian en gran medida de otros contratos en que no están escritos en un lenguaje sencillo. Más bien, suelen estar escritos en YAML o JSON, lenguajes de serialización de datos legibles por humanos y máquinas. (Para usuarios no familiarizados con lenguajes de codificación de serialización, los contratos de datos pueden redactarse en Excel y convertirse a archivos YAML a través de la herramienta de código abierto Data Contract CLI.)

La ventaja de escribir contratos de datos en un lenguaje de serialización es que permite la automatización en lugar de laboriosos procesos manuales. Los contratos de datos legibles por máquina se pueden integrar en las plataformas de datos y en las herramientas de cumplimiento. Las organizaciones pueden implementar estas soluciones para comprobar si los conjuntos de datos cumplen con las reglas contractuales de datos, permitiéndoles abordar problemas antes de que provoquen fallos en la pipeline.

¿Cómo se diseñan los contratos de datos?

Muchos contratos de datos se basan en el Open Data Contract Standard (ODCS). Como su nombre indica, ODCS es un marco de código abierto para estandarizar contratos de datos. El estándar está definido por Bitol, un proyecto de entorno aislado de Linux Foundation AI & Data bajo la licencia Apache 2.0, y está disponible en GitHub.

Los defensores de la iniciativa dicen que ayuda a facilitar la innovación al permitir a las organizaciones implementar contratos de datos que respalden su arquitectura de datos sin el riesgo del vendor lock-in.

¿Cuáles son los beneficios de los contratos de datos?

Los contratos de datos pueden solucionar múltiples problemas en los flujos de datos, allanando el camino para que las organizaciones desbloqueen valor de sus activos de datos. Los beneficios de los contratos de datos incluyen:

Calidad de los datos mejorada

Como dice el viejo refrán, lo que se mide se gestiona. Establecer estándares de precisión, validez, puntualidad y otras métricas de calidad de los datos en un contrato de datos puede mejorar la calidad de los datos entregados y, al mismo tiempo, reducir la latencia.

Mayor transparencia para las dependencias

Los contratos de datos pueden delinear relaciones entre tareas interconectadas o dependencias. Con una aclaración sobre esas dependencias, los productores de datos pueden evitar hacer cambios importantes.

Mejor gestión del cambio

Los contratos de datos están controlados por versiones, lo que significa que se crean nuevas versiones de los contratos para reflejar cambios importantes. Esto puede ayudar a los productores a introducir modificaciones, como cambios de esquema, de una manera "segura" que proporcione a los consumidores tiempo para adaptarse a esos cambios, reduciendo el riesgo de interrupciones repentinas del pipeline.

Mejora de la colaboración

El proceso de creación de un contrato de datos facilita la comunicación y el acuerdo entre productores y consumidores de datos. Una vez creado, el contrato sirve como base para la colaboración continua, ya que el versionado adapta los datos y necesidades cambiantes.

Mayor rendición de cuentas

Los contratos de datos delinean las relaciones entre las partes interesadas y los datos, incluido quién es su propietario, qué roles pueden acceder a ellos y cómo los usuarios pueden obtener soporte. Los contratos ayudan a aclarar quién es responsable de qué, asegurando una mayor rendición de cuentas.

Gobierno de datos

Los contratos de datos pueden considerarse herramientas de gobierno de datos porque reflejan y hacen cumplir objetivos críticos de gobierno, como garantizar la calidad de los datos, seguridad y disponibilidad de los datos a lo largo de todo el ciclo de vida de los datos.

Escalabilidad más sencilla

Al respaldar el gobierno de datos y la colaboración, los contratos de datos pueden ayudar a las organizaciones y unidades de negocio a compartir datos con éxito incluso cuando los volúmenes de datos aumentan a un ritmo sin precedentes.

AI Academy

¿Es la gestión de datos el secreto de la IA generativa?

Explore por qué los datos de alta calidad son esenciales para el uso satisfactorio de la IA generativa.

Contratos de datos vs. productos de datos y malla de datos

Los contratos de datos se mencionan con frecuencia en los debates sobre productos de datos y redes de datos. Esto es por una buena razón: los contratos de datos desempeñan un papel clave en el apoyo a ambas tecnologías.

Comencemos con los productos de datos. Un producto de datos es un paquete reutilizable y autónomo que combina datos, metadatos, semántica y plantillas para dar soporte a diversos casos de uso empresarial. Los contratos de datos pueden servir como "control de calidad" de los productos de datos, garantizando que los datos que contienen sean coherentes, fiables y tengan el formato correcto.

Perrin describe la relación entre los productos de datos y los contratos de datos en términos familiares: "Los contratos de datos y los productos de datos son como primos inseparables: siempre trabajan juntos, siempre alineados y siempre se aseguran de que todo funcione sin problemas".

La importancia de los contratos de datos para los productos de datos también los hace importantes para la funcionalidad de la malla de datos. Una malla de datos es una arquitectura de datos descentralizada que organiza los datos por dominio empresarial, como marketing, ventas o servicio de atención al cliente.

En una arquitectura de malla de datos, los productores de datos de dominio utilizan productos de datos que permiten a los usuarios empresariales encontrar y utilizar datos de diferentes partes de una organización. Por tanto, cuando los contratos de datos aseguran el rendimiento de los productos de datos, apoyan el éxito de una malla de datos en su conjunto.

¿Cómo se implementan y hacen cumplir los contratos de datos?

En el libro Data Contracts, los expertos en datos Chad Sanderson, Mark Freeman y B.E. Schmidt delinean el siguiente proceso sobre cómo funcionan los contratos de datos.3

  • Los consumidores de datos identifican sus necesidades de datos para cumplir los objetivos empresariales.

  • Los consumidores de datos técnicos traducen los requisitos empresariales en requisitos técnicos de datos.

  • Los consumidores de datos solicitan contratos de datos a los productores de datos en función de estos requisitos.

  • Los productores de datos determinan si las solicitudes son viables.

  • El contrato de datos está escrito en código, como YAML.

  • Los productores de datos crean una pull request (una forma de proponer cambios en un repositorio) cuando necesitan modificar un activo de datos.

  • Como parte de un pipeline de CI/CD, se realizan comprobaciones basadas en contratos de datos sobre el cambio solicitado para garantizar que no infrinja los términos del contrato.

  • Los productores de datos reciben una alerta si el cambio infringe el contrato, lo que activa medidas para abordar la infracción.

Soluciones de contrato de datos

Las organizaciones pueden elegir entre diversas herramientas y plataformas para crear y gestionar contratos de datos. Entre ellas se incluyen:

  • Proyectos de código abierto que serializan y deserializan datos, como Apache Avro y Google Protocol Buffers (protobuf)

  • Herramientas de comprobación y calidad de los datos, como Great Expectations y dBT

  • Registros de esquemas para comprobar la compatibilidad de esquemas, como el registro de Confluent

  • Plataformas de gobierno de datos con características como el seguimiento del linaje de datos y los catálogos de datos

Las necesidades únicas de una organización y las pilas de datos existentes pueden ayudar a determinar qué soluciones de contratos de datos o combinación de soluciones son las mejores para respaldar sus contratos de datos.

Autores

Alice Gomstyn

Staff Writer

IBM Think

Alexandra Jonker

Staff Editor

IBM Think

Soluciones relacionadas
IBM StreamSets

Cree y gestione canalizaciones de datos de streaming inteligentes a través de una interfaz gráfica intuitiva, y facilite una integración de datos fluida en entornos híbridos y multinube.

Explore StreamSets
IBM watsonx.data

Watsonx.data le permite escalar la analítica y la IA con todos sus datos, residan donde residan, a través de un almacén de datos abierto, híbrido y gobernado.

Descubra watsonx.data
Servicios de asesoramiento sobre datos y análisis

Desbloquee el valor de los datos empresariales con IBM Consulting, y construya una organización impulsada por conocimientos que ofrezca ventajas empresariales.

Descubra los servicios de análisis
De el siguiente paso

Diseñe una estrategia de datos que elimine los silos, reduzca la complejidad y mejore la calidad de los datos para ofrecer experiencias excepcionales a clientes y empleados.

  1. Explore las soluciones de gestión de datos
  2. Descubra watsonx.data
Notas a pie de página