Papel de los Contratos de Datos en la Canalización de Datos
Contratos de Datos en la Canalización de Datos
¿Qué son los Contratos de Datos?
Un contrato de datos es un acuerdo o conjunto de reglas que define cómo debe estructurarse y procesarse la información dentro de un sistema. Sirve como una herramienta de comunicación crucial entre diferentes partes de una organización o entre varios componentes de software. Se refiere a la gestión y uso previsto de los datos entre diferentes organizaciones o a veces dentro de una sola empresa.
El propósito principal de un contrato de datos es garantizar que los datos se mantengan consistentes y compatibles en diferentes versiones o componentes de un sistema. Un contrato de datos incluye lo siguiente:
- Términos de Servicio: Descripción de cómo se pueden utilizar los datos, ya sea para desarrollo, pruebas o implementación.
- Acuerdos de Nivel de Servicio (SLA): Los SLA describen la calidad de entrega de datos y pueden incluir tiempo de actividad, tasas de error, disponibilidad, etc.
Similar a cómo los contratos comerciales establecen responsabilidades entre proveedores y consumidores de un producto, los contratos de datos establecen y garantizan la calidad, usabilidad y confiabilidad de los productos de datos.
- Cómo solucionar problemas en scripts de Python con el módulo de registro
- El modelo base de CLIP
- Métodos de Monte Carlo
¿Qué metadatos deben incluirse en un contrato de datos?
- Esquema: El esquema proporciona información útil sobre el procesamiento y análisis de datos. Es un conjunto de reglas y restricciones aplicadas a las columnas de un conjunto de datos. Las fuentes de datos evolucionan y los productores deben asegurarse de que sea posible detectar y reaccionar a los cambios en el esquema. Los consumidores deben poder procesar datos con el esquema anterior.
- Semántica: La semántica captura las reglas de cada dominio empresarial. Incluyen aspectos como cómo las empresas hacen la transición hacia y desde diferentes etapas dentro de su ciclo de vida, cómo se relacionan entre sí, etc. Al igual que el esquema, la semántica también puede evolucionar con el tiempo.
- Acuerdos de Nivel de Servicio (SLA): Los SLA especifican la disponibilidad y frescura de los datos en un producto de datos. Ayudan a los profesionales de datos a diseñar eficazmente las canalizaciones de consumo de datos. Los SLA incluyen compromisos como el retraso máximo esperado, cuándo se espera que lleguen los nuevos datos al producto de datos y métricas como el tiempo medio entre fallos y el tiempo medio de recuperación.
¿Cuál es la importancia de los Contratos de Datos?
El principal beneficio de un contrato de datos es su papel en garantizar la compatibilidad y consistencia entre varias versiones de esquemas de datos. Específicamente, los contratos de datos ofrecen varias ventajas:
- Garantía de Compatibilidad: Cuando se establece un contrato de datos para definir la estructura y las reglas de los datos, se garantiza que los datos producidos y consumidos por diferentes componentes o versiones del sistema sigan siendo compatibles. Este enfoque proactivo minimiza las complicaciones en el procesamiento de datos durante la evolución del esquema.
- Aplicación de Consistencia: Los contratos de datos actúan como garantes de la consistencia en la representación de datos. Obligan a todos los productores y consumidores a adherirse al mismo esquema, promoviendo la corrección de datos y mejorando la confiabilidad del sistema.
- Control de Versiones: Los contratos de datos pueden ser versionados y rastreados a lo largo del tiempo. Esta capacidad permite una gestión estructurada de los cambios en los esquemas de datos, lo cual es invaluable para navegar sin problemas por la evolución del esquema.
- Comunicación Efectiva: Los contratos de datos son una herramienta de comunicación efectiva entre diversos equipos u componentes organizativos. Establecen una comprensión compartida de las estructuras y formatos de datos, fomentando la colaboración.
- Prevención de Errores: Un contrato de datos bien definido previene errores, especialmente en caso de discrepancias en los esquemas o alteraciones inesperadas. Facilita la detección temprana de problemas relacionados con el esquema.
Formas Prácticas de Aplicar los Contratos de Datos
En este proceso de procesamiento de datos, los cambios de esquema se gestionan dentro de un repositorio de Git y se aplican a las aplicaciones que producen datos, garantizando estructuras de datos consistentes. Las aplicaciones envían sus datos a los Temas de Kafka, separando los datos sin procesar de los flujos de Captura de Datos de Cambio (CDC). Una aplicación de Flink valida los datos según los esquemas del Registro de Esquemas a partir de los flujos de datos sin procesar. Cualquier dato inexacto se dirige al Tema de Buzón de Entrada, mientras que los datos válidos se envían al Tema de Datos Validados. Las aplicaciones en tiempo real pueden acceder directamente a los datos de estos temas validados.
Además, los datos del Tema de Datos Validados se almacenan para realizar controles adicionales, incluida la validación según acuerdos específicos de nivel de servicio (SLA). Posteriormente, estos datos se envían al Almacén de Datos para un análisis en profundidad. Si se incumple algún SLA, los consumidores y productores reciben alertas. Por último, las aplicaciones de Flink no validadas revisan los datos en tiempo real en busca de posibles soluciones con una aplicación de Flink de recuperación. Este proceso integral garantiza la consistencia, validación y confiabilidad de los datos en todo el proceso, facilitando un análisis y monitoreo eficientes de los datos.
Referencias
- https://towardsdatascience.com/data-contracts-ensure-robustness-in-your-data-mesh-architecture-69a3c38f07db
- https://www.montecarlodata.com/blog-data-contracts-explained/
- https://atlan.com/data-contracts/#what-is-inside-a-data-contract
- https://youtu.be/ZIJB8cs-cJU?si=zzMnf-aE-rO4Wcx7
- https://twitter.com/Aurimas_Gr/status/1693908146677330288
We will continue to update Zepes; if you have any questions or suggestions, please contact us!
Was this article helpful?
93 out of 132 found this helpful
Related articles
- Evaluando el Potencial de Conciencia en la IA Una Exploración Científica de las Propiedades Indicadoras Basadas en Teorías Neurocientíficas
- Pricing Dinámico con Aprendizaje por Reforzamiento desde Cero Q-Learning
- Conoce a TADA Un enfoque potente de IA para convertir descripciones verbales en un expresivo avatar 3D
- Aquí está lo que te estás perdiendo
- Métodos de aproximación de Monte Carlo ¿Cuál deberías elegir y cuándo?
- Cómo definir un problema de IA
- Científicos secuencian la última pieza del genoma humano el cromosoma Y