Aller au contenu principal

Data Contracts avec dbt

Comment utiliser les Data Contracts dans un projet dbt ?

Par Dr. Simon Harrer · · vidéo de 2:24 · 7 diapositives

En bref

Gardez une seule copie du schéma : le Data Contract. La Data Contract CLI importe le premier contrat depuis le manifest dbt. Elle écrit ensuite le contrat dans le projet dbt sous forme de properties et de tests. En CI, une seconde synchronisation et un diff arrêtent la dérive.

Regarder sur YouTube
Diapositive 1 de l'épisode 10 d'Entropy Explains, Deux copies du schéma : Un projet dbt construit le modèle orders, et d'autres équipes l'utilisent.

Deux copies du schéma

Un projet dbt construit le modèle orders, et d'autres équipes l'utilisent. Le fichier properties décrit les colonnes, mais les Data Consumers ne lisent pas votre dépôt. Si vous écrivez un Data Contract à la main, vous avez deux copies du schéma. Elles divergent avec le temps.

Diapositive 2 de l'épisode 10 d'Entropy Explains, Partir du manifest : La commande dbt parse écrit le manifest.

Partir du manifest

La commande dbt parse écrit le manifest. La Data Contract CLI y importe le modèle orders, avec les colonnes, les descriptions, les clés primaires et les champs obligatoires. Vous retirez ensuite une colonne interne et ajoutez les valeurs autorisées, la devise et le format de l'e-mail.

Diapositive 3 de l'épisode 10 d'Entropy Explains, Synchroniser dans le projet : La commande datacontract dbt sync écrit le contrat dans le fichier properties : descriptions, types de données et tests.

Synchroniser dans le projet

La commande datacontract dbt sync écrit le contrat dans le fichier properties : descriptions, types de données et tests. Les contrôles que dbt ne peut pas exprimer, comme la longueur et le motif de l'e-mail, deviennent des tests SQL. Les colonnes qui ne sont pas dans le contrat restent dans le projet.

Diapositive 4 de l'épisode 10 d'Entropy Explains, Tester dans les termes du contrat : La commande datacontract dbt test lance les tests et affiche chaque contrôle avec le nom venu du contrat.

Tester dans les termes du contrat

La commande datacontract dbt test lance les tests et affiche chaque contrôle avec le nom venu du contrat. Si une commande a un statut que le contrat n'autorise pas, le contrôle échoue. La commande renvoie alors un code d'erreur, pour qu'un pipeline puisse s'arrêter.

Diapositive 5 de l'épisode 10 d'Entropy Explains, Arrêter la dérive en CI : En CI, le pipeline relance la synchronisation et examine la différence.

Arrêter la dérive en CI

En CI, le pipeline relance la synchronisation et examine la différence. Si quelqu'un modifie le fichier dbt et pas le contrat, la synchronisation réécrit la valeur du contrat. La différence n'est pas vide, et le build échoue sur ce commit.

Diapositive 6 de l'épisode 10 d'Entropy Explains, Publier les résultats : Si le contrat et le projet dbt concordent, les tests s'exécutent.

Publier les résultats

Si le contrat et le projet dbt concordent, les tests s'exécutent. Les résultats partent vers la marketplace de données, où les Data Consumers peuvent les voir. Chaque changement de schéma commence ainsi dans le Data Contract. L'épisode 6 montre le pipeline complet.

Diapositive 7 de l'épisode 10 d'Entropy Explains, Une seule copie du schéma : Le Data Contract est la seule copie du schéma.

Une seule copie du schéma

Le Data Contract est la seule copie du schéma. La commande de synchronisation l'écrit dans le projet dbt sous forme de properties et de tests. Les tests examinent les données, et la CI garantit que le contrat et le projet dbt ne divergent pas.