Table des matières

Publié

5 janv. 2024

Pourquoi les Data Contracts : 5 raisons pour lesquelles les dirigeants devraient commencer dès maintenant

Tom Baeyens

Tom Baeyens

Tom Baeyens

CTO et co-fondateur chez Soda

CTO et co-fondateur chez Soda

CTO et co-fondateur chez Soda

Qu'est-ce qu'un contrat de données ?

Un contrat de données est un accord formel entre les producteurs et les consommateurs de données qui définit à quoi ressemblent les données, comment elles doivent se comporter et quelles garanties chaque partie peut attendre.

Il spécifie la structure, les valeurs attendues, la fréquence de mise à jour et les seuils de qualité afin que les équipes sachent à quoi s'attendre avant que les données ne circulent en aval. Ils définissent :

  • Schéma et types – quelles colonnes ou champs existent et leurs formats autorisés.

  • Signification commerciale – ce que représente chaque attribut, y compris les plages ou catégories acceptées.

  • Critères de qualité – fraîcheur, exhaustivité, unicité et autres normes mesurables.

  • Gestion du changement – qui approuve ou communique les changements de schéma et comment.

Lorsque ces détails sont codifiés et contrôlés en version, les pipelines de données deviennent plus fiables, transparents et testables, à l’image de systèmes logiciels bien conçus.

Glossaire

Je vais utiliser le terme 'ensemble de données' pour désigner des données tabulaires comme un tableau.

Un 'composant de données' fait référence à un composant logiciel dans les pipelines de données qui a un ou plusieurs ensembles de données en sortie. Des exemples de composants de données incluent une extraction ou une transformation.

'Applications de données' désigne des applications comme les rapports ou les modèles d'apprentissage automatique qui consomment des données analytiques. Bien que cela s'écarte légèrement de la terminologie de data mesh, je pense que cela aide à mieux aligner le vocabulaire avec les concepts généraux d'ingénierie logicielle.

Pourquoi commencer par les contrats de données ?

Les contrats de données commencent à se faire remarquer dans le paysage des données, et pour une bonne raison ! Ils sont attendus depuis longtemps. Trop souvent, les équipes de données peinent à développer leur travail car les produits de données se cassent et les problèmes de données sont fréquents.

Les contrats sont l'API des données. C’est le conditionnement que nous manquions dans l’ingénierie des données pour atteindre l'encapsulation dans les pipelines de données. L'absence d'une telle interface a limité la scalabilité et la productivité des équipes de données.

C'est plus qu'une technologie.  C'est un état d'esprit architectural pour penser en termes d'interfaces. Cette réflexion manque souvent en ingénierie des données et la tendance aux contrats de données va apporter des pratiques plus évolutives aux équipes de données.

Voyons les 5 avantages les plus importants pouvant être obtenus en adoptant des contrats de données.

1. Clarifier la propriété des données

Les données analytiques sont souvent un réseau monolithique de pipelines en spaghetti, une situation qui ne se développe pas bien. Les symptômes des pipelines spaghetti incluent des problèmes de qualité des données et un manque de confiance dans les données. Lorsqu'un problème potentiel de données survient et qu'il n'existe pas de propriétaires clairement définis, le premier défi consiste à creuser dans le spaghetti et à trouver qui est capable de diagnostiquer et de résoudre le problème.

De nombreuses organisations ont du mal à établir la propriété de leurs ensembles de données analytiques. Cela se comprend car, bien souvent, l'équipe responsable des données est restreinte et tant l'équipe que ses règles de gouvernance des données ont évolué de manière organique et potentiellement un peu aléatoire. Mais à mesure que les équipes commencent à construire davantage de composants de données et que les membres de l'équipe se déplacent, il peut devenir difficile de trouver les bonnes personnes pour traiter les problèmes ou les nouvelles exigences lorsqu'ils surviennent.

Les ensembles de données sans propriétaire sont instables et risquent de briser les actifs consommateurs en aval. En tant que consommateur, vous souhaitez idéalement n’utiliser que les ensembles de données qui ont un propriétaire, un humain réel que vous pouvez contacter en cas de problème ou de question.

Les contrats de données créent une séparation entre la mise en œuvre de la mise à jour continue d’un ensemble de données (lire : les pipelines) et les données résultantes qui sont mises à disposition en tant qu’ensemble de données à tous les consommateurs. C’est l’équipe qui est responsable de la construction et de l’opération des pipelines qui doit s’approprier l’ensemble de données résultant. Parce que les contrats de données aident à séparer l’implémentation de l’interface, ils aident à clarifier ce que signifie la propriété d’un ensemble de données.

L'acte de créer le contrat est le point de départ de la prise de propriété. C’est une déclaration disant que ce sont les données que nous nous engageons à livrer et que nous tiendrons à jour, quoi qu’il se passe en amont ou quelle que soit la façon dont nous souhaitons construire notre implémentation. Prendre pleinement possession d’un ensemble de données inclut :

  • Créer et publier un contrat de données permettra aux consommateurs de commencer à consommer vos données autant que possible de manière autonome, sans avoir besoin de poser de questions

  • Être transparent sur les garanties de stabilité

  • Établir un canal pour que les consommateurs posent des questions, des requêtes de changement ou de nouvelles demandes de fonctionnalités

  • Construire, déployer, et surveiller l’implémentation en production

  • Mettre en place des tests pour les nouvelles versions de l’implémentation

  • Surveiller la qualité des données

En bref, l’introduction des contrats de données commencera par la question suivante : Qui devrait créer et maintenir le contrat ?

En ce sens, les contrats de données aident à ancrer la notion de propriété et le modèle architectural de l’encapsulation.

2. Décomposer les pipelines de données monolithiques

Dans le contexte de pipelines de données monolithiques et spaghetti, il est difficile de prendre possession d'un ensemble de données.  Cela est dû au fait que les données d’entrée pour une transformation particulière peuvent ne pas être documentées et qu’il n’existe aucune garantie de stabilité. Dans ce cas, il est difficile de promettre quoi que ce soit concernant les données que vous produisez.

Mais si les entrées de votre transformation reçoivent toutes un contrat de données, cela change. Ajouter de la clarté et des garanties sur toutes les entrées sous forme de contrat de données facilite grandement la supervision de la responsabilité de la prise en charge de la propriété. Un ingénieur créant une seule transformation est désormais capable de fournir la même clarté et garanties sur les données de sortie. Cette stratégie de division et de conquête aide à décomposer les pipelines spaghetti monolithiques.

Data contracts provide clarity and guarantees for all inputs and outputs. They allow engineers to take ownership and improve predictability, scalability, and diagnostics.

Les contrats de données fournissent clarté et garanties pour toutes les entrées et sorties. Ils permettent aux ingénieurs de s’approprier et d’améliorer la prévisibilité, la scalabilité et le diagnostic.

Chaque étape de l'extraction et de la transformation des données analytiques peut, en fait, être considérée comme un système ou un composant individuel.  Avoir des interfaces claires entre tous ces composants est simplement une bonne pratique d'ingénierie, et c'est un excellent moyen de construire une architecture de données robuste. 

L'équipe de données sera plus prévisible dans ses sorties et plus évolutive dans la quantité de travail qu'elle peut gérer, tout comme les équipes de développement logiciel lorsqu'elles sont passées du code spaghetti à la programmation orientée objet.

La valeur de la décomposition des pipelines monolithiques en composants de données gérables augmente lorsque l'on considère le diagnostic des problèmes de données potentiels. Sans contrats, les ingénieurs doivent parcourir le pipeline en amont sans carte claire de ce à quoi devraient ressembler les données. Ils peuvent également perdre du temps sur un certain nombre d’ensembles de données internes qui ne sont qu’une source de distraction.

Les contrats de données séparent les ensembles de données internes des transitions entre différents composants de données. Et pour ces ensembles de données, le contrat est une description claire de ce à quoi les données devraient ressembler. En ce sens, les contrats aident à accélérer considérablement les flux de diagnostic pour les ingénieurs.

L’aspect grossier ou finement détaillé de vos composants de données n’est pas vraiment un facteur important. Si vous partez d'un seul pipeline monolithique énorme, il sera déjà utile de créer des contrats pour les ensembles de données mis à la disposition des consommateurs, parfois appelés 'raffinés' ou 'dorés'.  De cette manière, les consommateurs construisant des applications de données peuvent voir si leurs attentes correspondent aux promesses faites.

Ensuite, aussi tôt que possible, à la source, est également un bon endroit pour commencer à introduire des contrats. Par la suite, vous pouvez aller plus loin et identifier des ensembles de données intermédiaires pour lesquels définir des contrats.

La bonne taille pour un composant de données est difficile à déterminer, tout comme il est très difficile de déterminer la bonne taille pour un composant logiciel ou un service avec une API REST.

Les contrats permettent une introduction progressive des contrats en tant qu’interfaces.  En ce sens, les contrats sont beaucoup plus faciles à adapter a posteriori par rapport aux API des composants logiciels. Cela permet de passer progressivement de grands composants de données à des composants plus petits.

3. Surveiller la qualité des données

Lorsque les analystes créent de nouvelles applications de données analytiques, il n'est souvent pas facile pour eux de trouver une description claire de l'apparence des données. Cela conduit à l'approche bien connue : 'Essayons et si ça marche, on suppose que tout va bien'.

Les contrats incluent un langage pour exprimer toute attente qu’un consommateur peut avoir sur les données. C'est la qualité des données.

Les attentes de base en matière de qualité des données sont le schéma, les données manquantes et les contraintes de validité. Les hypothèses plus avancées sur la qualité des données sont la distribution, la moyenne et d'autres agrégations, l’intégrité référentielle, etc.

Les contrats offrent un moyen de décrire plus en détail l’apparence des données que le système de stockage d'entrepôt analytique typique. Chaque fois que de nouvelles données sont produites, les nouvelles données peuvent être validées par rapport à toutes les assertions de qualité des données dans le contrat. Ceci est également appelé 'exécution', mais je considère que la vérification est un terme plus approprié.

Idéalement, la vérification est effectuée avec des disjoncteurs de circuit afin qu'aucune donnée incorrecte n'atteigne jamais les applications de données.  Le résultat est que les contrats offrent un langage plus riche pour exprimer les hypothèses sur la qualité des données qui peuvent être vérifiées en production.

De nombreuses personnes extérieures à l’équipe de production de données possèdent des connaissances spécialisées sur l’apparence de bonnes données. Dans le cadre d'une stratégie globale de qualité des données, elles devraient être autorisées à contribuer à une vision claire de l’aspect des bonnes données.

Les propriétaires des ensembles de données ou les équipes de production de données doivent mettre en place des canaux de communication afin que toute personne de l'organisation puisse proposer de nouveaux contrôles de qualité des données ou des modifications. Les équipes de production de données doivent les traduire dans le contrat et s'assurer qu'il fait partie du processus de surveillance.

Les contrats aident à surveiller la qualité des données car :

  • Il existe un langage riche pour décrire les assertions de qualité des données

  • Les équipes de production de données (lire : propriétaires) sont responsables de la vérification des contrats, y compris des assertions de qualité des données

  • Les consommateurs peuvent contribuer en proposant des attentes en matière de qualité des données sous forme de contrôles de qualité supplémentaires à ajouter au contrat

4. Augmenter la transparence des données

De nos jours, les outils de découverte de données sont généralement connectés aux métadonnées d'un entrepôt. Cela pose quelques défis :

  • Tous les ensembles de données sont découverts, même les ensembles de données internes qui ne sont pas destinés à être utilisés par d'autres équipes.

  • Les métadonnées de l'entrepôt ne sont pas très détaillées ou ne sont pas disponibles. Par exemple, des vérifications simples telles que "La moyenne devrait être entre 20 et 50" ne sont ni partagées ni vérifiées.

Nous avons vu qu’un contrat de données inclut une description plus détaillée de l’apparence des données et que ces détails sont également vérifiés à mesure que de nouvelles données sont produites.

En tant que tel, les contrats de données sont la source idéale pour alimenter les outils de découverte de données tels que les catalogues. Ces outils sont l’endroit où les gens veulent trouver et comprendre les données. Les contrats contiennent des métadonnées plus riches sur l’apparence des données par rapport aux métadonnées de base trouvées dans les entrepôts analytiques.

En plus de cela, la présence d'un contrat sépare également les ensembles de données destinés à la consommation des ensembles de données internes ou intermédiaires. C’est quelque chose qui n’est pas capturé lorsque les outils de découverte de données ne font que gratter les métadonnées de l’entrepôt. Nous prévoyons que les outils de découverte de données migreront de l’ingestion directe des métadonnées de l’entrepôt vers l’ingestion des contrats.

De plus, les contrats de données sont des fichiers que vous pouvez gérer dans git ; vous pouvez installer des webhooks afin que chaque modification dans une branche de production d’un contrat soit poussée vers un outil de découverte de données.  De cette manière, les outils de découverte de données contiennent une image plus complète, à jour et fiable de l’apparence des données.

5. Construire une infrastructure de données immuable

Rendre disponibles des métadonnées riches aux consommateurs et surveiller la qualité des données sont deux ingrédients clés d'une plateforme de données.  Étant donné que les contrats de données sont des fichiers texte, ils peuvent être gérés en tant que code et versionnés dans git.

Lors de l'utilisation des contrats de données, les métadonnées riches dans les contrats et la surveillance de la qualité des données deviennent partie intégrante de l'infrastructure de données immuable. Cela rend facile la duplication des environnements pour le CI/CD et la reprise après sinistre, garantissant que les contrats de données et la qualité des données sont intégrés de manière transparente dans les processus de flux de travail d'ingénierie.

En plus de la surveillance de la qualité des données et du stockage des métadonnées pour les outils de découverte, d’autres outils peuvent utiliser le contrat comme point de départ pour leurs configurations.  Considérons les PII, la gestion des accès ou la rétention. Parce que la structure des contrats de données est basée sur le schéma, il est naturel d'inclure ces aspects également.

Conclusion

Les contrats de données sont un outil important pour aider les organisations à gérer la propriété et à décomposer les pipelines spaghetti monolithiques. Ils forment la base pour améliorer et surveiller la qualité des données.  Lorsqu'ils sont connectés aux outils de découverte, les contrats de données fournissent une transparence sur les données destinées à être partagées, et ils incluent une image détaillée de l’apparence des données de bonne qualité.  Les contrats de données s'intègrent dans les flux de travail d'ingénierie car ils aident à établir une infrastructure de données immuable et ils créent une meilleure coordination entre les équipes de données analytiques et le reste de l'entreprise.

Découvrez plus sur comment configurer des contrats de données avec Soda dans notre documentation.

Commencez à faire confiance à vos données. Aujourd'hui.

Soda répare les données. De bout en bout. De la détection à la résolution.
Tout est automatisé avec l'IA.

Demandez une démonstration

Commencez à faire confiance à vos données. Aujourd'hui.

Soda répare les données. De bout en bout. De la détection à la résolution.
Tout est automatisé avec l'IA.

Demandez une démonstration

Commencez à faire confiance à vos données. Aujourd'hui.

Soda répare les données. De bout en bout. De la détection à la résolution.
Tout est automatisé avec l'IA.

Demandez une démonstration

Trusted by the world’s leading enterprises

Real stories from companies using Soda to keep their data reliable, accurate, and ready for action.

At the end of the day, we don’t want to be in there managing the checks, updating the checks, adding the checks. We just want to go and observe what’s happening, and that’s what Soda is enabling right now.

Sid Srivastava

Director of Data Governance, Quality and MLOps

Investing in data quality is key for cross-functional teams to make accurate, complete decisions with fewer risks and greater returns, using initiatives such as product thinking, data governance, and self-service platforms.

Mario Konschake

Director of Product-Data Platform

Soda has integrated seamlessly into our technology stack and given us the confidence to find, analyze, implement, and resolve data issues through a simple self-serve capability.

Sutaraj Dutta

Data Engineering Manager

Our goal was to deliver high-quality datasets in near real-time, ensuring dashboards reflect live data as it flows in. But beyond solving technical challenges, we wanted to spark a cultural shift - empowering the entire organization to make decisions grounded in accurate, timely data.

Gu Xie

Head of Data Engineering

4,4 sur 5

Commencez à faire confiance à vos données. Aujourd'hui.

Trouvez, comprenez et corrigez tout problème de qualité des données en quelques secondes.
Du niveau de la table au niveau des enregistrements.

Adopté par

Trusted by the world’s leading enterprises

Real stories from companies using Soda to keep their data reliable, accurate, and ready for action.

At the end of the day, we don’t want to be in there managing the checks, updating the checks, adding the checks. We just want to go and observe what’s happening, and that’s what Soda is enabling right now.

Sid Srivastava

Director of Data Governance, Quality and MLOps

Investing in data quality is key for cross-functional teams to make accurate, complete decisions with fewer risks and greater returns, using initiatives such as product thinking, data governance, and self-service platforms.

Mario Konschake

Director of Product-Data Platform

Soda has integrated seamlessly into our technology stack and given us the confidence to find, analyze, implement, and resolve data issues through a simple self-serve capability.

Sutaraj Dutta

Data Engineering Manager

Our goal was to deliver high-quality datasets in near real-time, ensuring dashboards reflect live data as it flows in. But beyond solving technical challenges, we wanted to spark a cultural shift - empowering the entire organization to make decisions grounded in accurate, timely data.

Gu Xie

Head of Data Engineering

4,4 sur 5

Commencez à faire confiance à vos données. Aujourd'hui.

Trouvez, comprenez et corrigez tout problème de qualité des données en quelques secondes.
Du niveau de la table au niveau des enregistrements.

Adopté par

Trusted by the world’s leading enterprises

Real stories from companies using Soda to keep their data reliable, accurate, and ready for action.

At the end of the day, we don’t want to be in there managing the checks, updating the checks, adding the checks. We just want to go and observe what’s happening, and that’s what Soda is enabling right now.

Sid Srivastava

Director of Data Governance, Quality and MLOps

Investing in data quality is key for cross-functional teams to make accurate, complete decisions with fewer risks and greater returns, using initiatives such as product thinking, data governance, and self-service platforms.

Mario Konschake

Director of Product-Data Platform

Soda has integrated seamlessly into our technology stack and given us the confidence to find, analyze, implement, and resolve data issues through a simple self-serve capability.

Sutaraj Dutta

Data Engineering Manager

Our goal was to deliver high-quality datasets in near real-time, ensuring dashboards reflect live data as it flows in. But beyond solving technical challenges, we wanted to spark a cultural shift - empowering the entire organization to make decisions grounded in accurate, timely data.

Gu Xie

Head of Data Engineering

4,4 sur 5

Commencez à faire confiance à vos données. Aujourd'hui.

Trouvez, comprenez et corrigez tout problème de qualité des données en quelques secondes.
Du niveau de la table au niveau des enregistrements.

Adopté par