Saltar al contenido principal

Buenas prácticas de Data Contracts

¿Cuáles son las buenas prácticas para Data Contracts?

Por Dr. Simon Harrer · · video de 2:58 · 7 diapositivas

En resumen

Usa un Data Contract para un Output Port, con un esquema y un rol de lectura. Guarda el Data Contract en el repositorio Git del producto de datos. Versiónalo como una API y trata el Data Contract activo como la fuente de verdad.

Ver en YouTube
Diapositiva 1 del episodio 11 de Entropy Explains, Uno a uno: Un Data Contract en una versión mayor describe un Output Port.

Uno a uno

Un Data Contract en una versión mayor describe un Output Port. Ese Output Port es un esquema de base de datos con una o varias tablas y un rol de lectura. Puedes usar otra estructura, pero causa problemas. Con un Data Contract por tabla acabas con demasiados Data Contracts.

Diapositiva 2 del episodio 11 de Entropy Explains, Qué datos protege: Un Data Contract protege un esquema de base de datos con todas sus tablas.

Qué datos protege

Un Data Contract protege un esquema de base de datos con todas sus tablas. La sección schema del Data Contract enumera esas tablas. El Output Port, el esquema y el servidor tienen el mismo nombre. Cada nombre incluye la versión mayor y cada entorno tiene su propio servidor.

Diapositiva 3 del episodio 11 de Entropy Explains, Un solo rol de lectura: Cada Data Contract define un rol de lectura.

Un solo rol de lectura

Cada Data Contract define un rol de lectura. La plataforma crea ese rol de forma automática, con acceso de lectura solo a este esquema. Los Data Consumers piden acceso a ese rol, así saben qué pedir. Un segundo rol, por ejemplo para datos personales, es posible y causa pocos problemas.

Diapositiva 4 del episodio 11 de Entropy Explains, Dónde viven los Data Contracts: Los Data Contracts viven en el repositorio Git del producto de datos, junto al código.

Dónde viven los Data Contracts

Los Data Contracts viven en el repositorio Git del producto de datos, junto al código. El Data Contract del Output Port dice qué entrega el producto de datos. Un Data Contract de Input Port, opcional, dice qué usa el producto de datos de otro producto de datos. Puedes añadirle tus propias comprobaciones de calidad.

Diapositiva 5 del episodio 11 de Entropy Explains, Una columna nueva es una versión menor: Versiona el Data Contract como una API.

Una columna nueva es una versión menor

Versiona el Data Contract como una API. En sentido estricto, una columna nueva es un cambio incompatible, porque SELECT star devuelve entonces una columna más. No permitimos SELECT star. Así que una columna nueva es solo una versión menor.

Diapositiva 6 del episodio 11 de Entropy Explains, Un cambio incompatible pasa a v2: Un cambio incompatible recibe una versión mayor nueva.

Un cambio incompatible pasa a v2

Un cambio incompatible recibe una versión mayor nueva. La versión 2 tiene su propio Output Port, su propio esquema y su propio rol de lectura. La versión 1 queda deprecated y las dos versiones funcionan en paralelo durante un periodo de transición. Los Data Consumers pasan a la versión 2 a su propio ritmo. Después la versión 1 se apaga.

Diapositiva 7 del episodio 11 de Entropy Explains, La fuente de verdad: Cuando un Data Contract está activo, es la fuente de verdad.

La fuente de verdad

Cuando un Data Contract está activo, es la fuente de verdad. Si los datos y el Data Contract no concuerdan, los datos son incorrectos. Por eso cada cambio empieza en el Data Contract. Después siguen el código y los datos.