¿Qué es un contrato de datos?

Definición de contratos de datos

Los contratos de datos son acuerdos formales entre los productores y los 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 fortalecer su toma de decisiones basada en datos.

 

Al igual que los contratos comerciales tradicionales, los contratos de datos incluyen términos y condiciones que rigen lo que se entrega de una parte a otra. En un contrato de datos, esto puede incluir componentes tales como reglas 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 a través de la automatización en lugar de procesos manuales.

El impacto de los contratos de datos en la ingeniería de datos se comparó 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 usar con éxito datos de diversas fuentes.

Y, así como 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 estos es la prevención de fallas en el pipeline de datos: sin contratos de datos, los cambios ascendentes en la producción de datos pueden tener consecuencias desastrosas para los usuarios intermedios. Los contratos de datos pueden garantizar que esos cambios que afectan a la compatibilidad se identifiquen y se resuelvan antes de que afecten a los usuarios de los datos.

Otros beneficios de los contratos de datos incluyen mejoras en la calidad de datos, gobernanza 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.

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

¿Por qué son importantes los contratos de datos?

Los pipelines de datos frágiles y dañados son la pesadilla de muchos ingenieros de datos. Un estudio encontró que más de la mitad de los ingenieros encuentran fallas en los pipelines 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, las tuberías se “mantienen unidas con cinta adhesiva y desesperación”. Cuando fallan, pueden socavar las iniciativas de toma de decisiones y de inteligencia artificial (IA) de manera desastrosa.

Los contratos de datos pueden prevenir tales consecuencias al dirigirse a una fuente frecuente de fallas en los pipelines: la desalineación entre los productores y consumidores de datos. La desalineación ocurre cuando los nuevos datos proporcionados por los productores de datos no cumplen con las expectativas de los consumidores, quienes 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 sobre la estabilidad de los datos que encuentran”, según Jean-Georges Perrin, un defensor de IBM desde siempre. “Para crear confianza, el productor de datos o el propietario de los datos debe mostrar y garantizar una promesa”, escribió Perrin.

Dicha promesa, ya sea sobre la calidad, la validación, el acceso o la estructura de los datos, 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 los flujos de trabajo posteriores.

Los contratos de datos están surgiendo como especialmente destacados para los flujos de trabajo de IA, porque garantizar los datos correctos para el entrenamiento de modelos y el analytics de datos es crucial para obtener predicciones precisas.

“Se obtienen mejores datos en sus sistemas, por lo que no hay basura dentro ni basura fuera”, dijo Perrin.

Productores y consumidores de datos: diferencias y funciones clave

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

  • Los productores de datos suelen ser ingenieros de software que recopilan y almacenan datos a medida que desarrollan aplicaciones. A menudo, estos datos incluyen eventos transaccionales, como los pedidos de los 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 fundamentar decisiones.

Los consumidores de datos confían en los productores para que sus datos estén disponibles para su uso posterior. Pero esta dependencia por sí sola no establece 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 son inherentemente parte de su enfoque.

En consecuencia, cuando los ingenieros de software actualizan las aplicaciones y el código, es posible que no consideren cómo esas actualizaciones afectan los datos que finalmente se entregan a los consumidores de datos.

Cuando tales cambios son inesperados, incluso cambios tan relativamente pequeños como eliminar una sola columna de una tabla de 1000 columnas, puede producirse un caos para los consumidores de datos. Estos cambios, denominados cambios disruptivos, pueden interrumpir los flujos de datos y poner en peligro la compatibilidad de los conjuntos de datos.

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

Al establecer acuerdos definitivos entre los productores y los consumidores de datos, los contratos de datos pueden eliminar 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 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 la gestión de esquemas, pueden facilitar la implementación de 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 datos, como precisión, integridad, validez y recuentos nulos. Además, las reglas personalizadas pueden permitir que las herramientas de control de calidad de los datos realicen comprobaciones de calidad.

Canales de soporte

Los contratos de datos pueden enumerar fuentes de soporte (como canales de Slack y 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 enumera 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 se puede utilizar para calcular el costo.

Equipo

Conocida en algunas plantillas de contratos de datos más antiguas como “stakeholders”, la sección de equipo de un contrato de datos incluye información sobre los miembros del equipo que poseen 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

Al especificar el servidor de datos )como Kafka, Microsoft SQL, Google BigQuery o IBM Db2), se garantiza que los usuarios de los datos puedan encontrarlo, al tiempo que se proporciona a los ingenieros de la plataforma la información que necesitan 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, los stakeholders pueden agregar propiedades personalizadas a los contratos de datos para satisfacer sus necesidades específicas. Las versiones recientes de plantillas de contratos de datos populares también incluyen la capacidad de documentar las relaciones entre propiedades, hacer referencia a contratos externos y acceder a una biblioteca de reglas de calidad de datos predefinidas para comprobaciones de calidad congruentes.

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

Los contratos de datos se diferencian notablemente de otros contratos en que no están escritos en un lenguaje sencillo. Más bien, generalmente están escritos en YAML o JSON, lenguajes de serialización de datos legibles por humanos y máquinas. (Para los usuarios que no estén familiarizados con los lenguajes de serialización de programación, los contratos de datos se pueden crear en Excel y convertir a archivos YAML mediante 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 pueden integrarse en plataformas de datos y herramientas de cumplimiento. Las organizaciones pueden desplegar estas soluciones para probar si los conjuntos de datos se adhieren a las reglas del contrato de datos, lo que les permite abordar los problemas antes de que provoquen fallas en los pipelines.

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

Muchos contratos de datos se basan en 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 sandbox 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 que las organizaciones implementen contratos de datos que respalden su arquitectura de datos sin el riesgo de vendor lock-in (dependencia de proveedores).

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

Los contratos de datos pueden abordar múltiples puntos problemáticos en los pipelines de datos, lo que despeja el camino para que las organizaciones desbloqueen el valor de sus activos de datos. Los beneficios de los contratos de datos incluyen:

Mejor calidad de los datos

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 en las dependencias

Los contratos de datos pueden delinear relaciones entre tareas interconectadas o dependencias. Con la aclaración de tales dependencias, los productores de datos pueden evitar realizar cambios importantes.

Mejor gestión de cambios

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

Colaboración mejorada

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 control de versiones se adapta a los datos y necesidades cambiantes.

Mayor rendición de cuentas

Los contratos de datos delinean las relaciones entre los stakeholders y los datos, incluido quién es el 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é, lo que garantiza una mayor responsabilidad.

Gobernanza de datos

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

Escalabilidad más sencilla

Al respaldar la gobernanza 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.

Academia de IA

¿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 exitoso de la IA generativa.

Contratos de datos frente a 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 soporte de estas dos tecnologías.

Comencemos con los productos de datos. Un producto de datos es un paquete reutilizable e independiente que combina datos, metadatos, semántica y plantillas para admitir diversos casos de uso empresarial. Los contratos de datos pueden servir como “control de calidad” para los productos de datos, asegurando que los datos dentro de ellos sean congruentes y confiables y que 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 están trabajando juntos, siempre están alineados y siempre están asegurándose de que las cosas funcionen sin problemas”.

La importancia de los contratos de datos para productos de datos también los hace relevantes 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 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. Como tal, cuando los contratos de datos garantizan el rendimiento de los productos de datos, respaldan el éxito de una malla de datos en su conjunto.

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

En el libro Data Contracts, los expertos en datos Chad Sanderson, Mark Freeman y B.E. Schmidt describen el siguiente proceso sobre el funcionamiento de los contratos de datos.3

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

  • Los consumidores de datos técnicos traducen los requisitos de negocio en requisitos técnicos para los 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 solicitud de incorporación de cambios (una forma de proponer modificaciones en un repositorio) cuando necesitan modificar un activo de datos.

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

  • Los productores de datos reciben alertas 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 una variedad de herramientas y plataformas para crear y gestionar contratos de datos. Por ejemplo:

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

  • Herramientas de control de calidad y pruebas de datos, como Great Expectations y dBT

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

  • Plataformas de gobernanza 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 contrato 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® watsonx.data integration

Transforme los datos sin procesar en datos listos para la IA con una experiencia de usuario optimizada para integrar cualquier dato usando cualquier estilo.

Explore la integración de watsonx.data
Soluciones de integración de datos

Cree canalizaciones de datos resilientes, de alto rendimiento y con costos optimizados para sus iniciativas de IA generativa, análisis en tiempo real, modernización de almacenes y necesidades operativas con las soluciones de integración de datos de IBM.

Explore las soluciones de integración de datos
Servicios de consultoría de datos e IA

Escale con éxito la IA con la estrategia, los datos, la seguridad y la gobernanza adecuados.

Explore servicios de consultoría de datos e IA
Dé el siguiente paso

Integre datos estructurados y no estructurados mediante una combinación de estilos, que incluyen procesamiento por lotes, transmisión en tiempo real y replicación, para no perder tiempo ni dinero cambiando constantemente de herramientas.

  1. Explore IBM watsonx.data integration
  2. Explore las soluciones de integración de datos
Notas de pie de página