Saltar al contenido principal

Data Contracts con dbt

¿Cómo usas Data Contracts en un proyecto dbt?

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

En resumen

Mantén una sola copia del esquema: el Data Contract. La Data Contract CLI importa el primer contrato desde el manifest de dbt. Después escribe el contrato en el proyecto dbt como properties y tests. En CI, una segunda sincronización y un diff frenan la desalineación.

Ver en YouTube
Diapositiva 1 del episodio 10 de Entropy Explains, Dos copias del esquema: Un proyecto dbt construye el modelo orders y otros equipos lo usan.

Dos copias del esquema

Un proyecto dbt construye el modelo orders y otros equipos lo usan. El archivo properties describe las columnas, pero los Data Consumers no leen tu repositorio. Si escribes un Data Contract a mano, tienes dos copias del esquema. Con el tiempo se desalinean.

Diapositiva 2 del episodio 10 de Entropy Explains, Empieza por el manifest: El comando dbt parse escribe el manifest.

Empieza por el manifest

El comando dbt parse escribe el manifest. La Data Contract CLI importa de ahí el modelo orders, con columnas, descripciones, claves primarias y campos obligatorios. Después quitas una columna interna y añades los valores permitidos, la moneda y el formato del correo.

Diapositiva 3 del episodio 10 de Entropy Explains, Sincroniza en el proyecto: El comando datacontract dbt sync escribe el contrato en el archivo properties: descripciones, tipos de datos y tests.

Sincroniza en el proyecto

El comando datacontract dbt sync escribe el contrato en el archivo properties: descripciones, tipos de datos y tests. Las comprobaciones que dbt no puede expresar, como la longitud y el patrón del correo, pasan a ser tests SQL. Las columnas que no están en el contrato se quedan en el proyecto.

Diapositiva 4 del episodio 10 de Entropy Explains, Prueba con las palabras del contrato: El comando datacontract dbt test ejecuta los tests y muestra cada comprobación con el nombre que viene del contrato.

Prueba con las palabras del contrato

El comando datacontract dbt test ejecuta los tests y muestra cada comprobación con el nombre que viene del contrato. Si un pedido tiene un estado que el contrato no permite, la comprobación falla. El comando devuelve entonces un código de error, para que un pipeline pueda detenerse.

Diapositiva 5 del episodio 10 de Entropy Explains, Frena la desalineación en CI: En CI, el pipeline vuelve a ejecutar la sincronización y examina la diferencia.

Frena la desalineación en CI

En CI, el pipeline vuelve a ejecutar la sincronización y examina la diferencia. Si alguien cambia el archivo dbt y no el contrato, la sincronización reescribe el valor del contrato. La diferencia no está vacía y el build falla en ese commit.

Diapositiva 6 del episodio 10 de Entropy Explains, Publica los resultados: Si el contrato y el proyecto dbt concuerdan, los tests se ejecutan.

Publica los resultados

Si el contrato y el proyecto dbt concuerdan, los tests se ejecutan. Los resultados van al marketplace de datos, donde los Data Consumers pueden verlos. Así, cada cambio en el esquema empieza en el Data Contract. El episodio 6 muestra el pipeline completo.

Diapositiva 7 del episodio 10 de Entropy Explains, Una sola copia del esquema: El Data Contract es la única copia del esquema.

Una sola copia del esquema

El Data Contract es la única copia del esquema. El comando de sincronización lo escribe en el proyecto dbt como properties y tests. Los tests examinan los datos y la CI garantiza que el contrato y el proyecto dbt no se desalineen.