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

Contrats de données, définition

Les contrats de données sont des accords formels entre les producteurs et les consommateurs de données qui définissent la qualité, la structure, la sémantique et la disponibilité des données. La création et l’application de ces accords peuvent aider les entreprises à renforcer leur prise de décision basée sur les données.

 

À l’instar des contrats commerciaux traditionnels, les contrats de données incluent des termes et conditions régissant ce qui est livré d’une partie à l’autre. Dans un contrat de données, cela peut inclure des éléments tels que des règles de qualité des données, des définitions de schéma, des accords de niveau de service, des informations sur le producteur de données et des informations sur le serveur.

Toutefois, les contrats de données se distinguent véritablement par le fait qu’ils sont rédigés en code ; par conséquent, les accords peuvent être appliqués par le biais de l’automatisation plutôt que par des processus manuels.

L’impact des contrats de données sur l’ingénierie des données a été comparé à l’impact des interfaces de programmation d’applications (API) sur le développement logiciel. Les API définissent des règles permettant aux applications logicielles de communiquer entre elles, tandis que les contrats de données définissent des règles permettant aux consommateurs de données d’intégrer et d’utiliser avec succès des données provenant de diverses sources.

Et, tout comme les API sont reconnues pour améliorer la productivité et accélérer l’innovation dans le développement de logiciels, la mise en œuvre réussie de contrats de données peut apporter toute une série d’avantages aux entreprises et aux utilisateurs de données.

Le plus critique d’entre eux est la prévention des défaillances du pipeline de données : sans contrats de données, les changements en amont dans la production de données peuvent avoir des conséquences désastreuses pour les utilisateurs en aval. Les contrats de données peuvent garantir que ces changements radicaux sont identifiés et pris en compte avant qu’ils n’aient un impact sur les consommateurs de données.

Les contrats de données présentent d’autres avantages, notamment l’amélioration de la qualité des données, de la gouvernance des données et de l’évolutivité. Les contrats de données fournissent également un soutien fondamental aux produits de données et aux architectures de maillage de données qui permettent aux utilisateurs professionnels de trouver et de déverrouiller la valeur des données dans l’entreprise.

Il existe toute une série d’outils et de plateformes qui aident les entreprises à définir et à mettre en œuvre des contrats de données, notamment des outils de qualité des données et des plateformes de gouvernance des données.

Pourquoi les contrats de données sont-ils importants ?

Les pipelines de données fragiles et cassés sont le fléau de nombreux ingénieurs de données. Une étude a révélé que plus de la moitié des ingénieurs sont confrontés à des défaillances de pipeline dans leurs systèmes de données au moins une fois par mois, voire plus.1

Trop souvent, comme l’a fait remarquer un architecte de données, les pipelines sont « maintenus en place avec du ruban adhésif et du désespoir ». En cas d’échec, elles peuvent saper la prise de décision et les initiatives d’intelligence artificielle (IA) de manière désastreuse.

Les contrats de données peuvent contribuer à prévenir de telles conséquences en ciblant une source fréquente de défaillance du pipeline : le désalignement entre les producteurs et les consommateurs de données. Il y a désalignement lorsque les nouvelles données fournies par les producteurs de données ne répondent pas aux attentes des consommateurs, qui peuvent s’appuyer sur des types de données, des schémas et d’autres contraintes spécifiques pour répondre à leurs cas d’utilisation.

Les consommateurs en aval peuvent « douter de la stabilité des données qu’ils trouvent », selon Jean-Georges Perrin, champion IBM de longue date. « Pour créer de la confiance, le producteur ou le propriétaire des données doit présenter et garantir une promesse », a écrit Perrin

Une telle promesse, qu’il s’agisse de qualité des données, de validation, d’accès ou de structure des données, peut être garantie par la mise en œuvre de contrats de données. Lorsque les producteurs et les consommateurs de données s’alignent sur les exigences en matière de données et les codifient, cela peut prévenir les problèmes de qualité des données avant qu’ils n’affectent les workflows en aval.

Les contrats de données se révèlent particulièrement importants pour les workflows d’IA, car il est essentiel de disposer de données adaptées pour l’entraînement des modèles et l’analytique afin d’établir des prévisions précises.

« Vous obtenez de meilleures données dans vos systèmes, de sorte que vous n’avez pas de données de mauvaise qualité à l’entrée comme à la sortie », a déclaré M. Perrin.

Producteurs de données et consommateurs de données : différences clés et rôles

Étant donné que le déséquilibre entre les producteurs et les consommateurs de données est en grande partie à l’origine de la nécessité de conclure des contrats de données, il est utile d’examiner de plus près ces deux groupes et leurs rôles au sein des écosystèmes de données.

  • Les producteurs de données sont souvent des ingénieurs logiciels qui collectent et stockent les données lorsqu’ils créent des applications. Ces données incluent souvent des événements transactionnels, tels que les commandes clients, qui peuvent varier énormément en termes de schéma, de taille, de contenu, etc.2

  • Les consommateurs de données comprennent les consommateurs techniques (ingénieurs en données, data scientists et autres membres des équipes data qui utilisent des langages de programmation pour transformer et analyser les données et construire des pipelines de données) ainsi que les consommateurs non techniques, à savoir les utilisateurs métier qui utilisent les données transformées pour prendre des décisions.

Les consommateurs de données comptent sur les producteurs pour rendre leurs données disponibles pour une utilisation en aval. Mais cette confiance ne suffit pas à établir une relation solide entre les consommateurs et les producteurs. En effet, les producteurs stockent les données dans les formats les mieux adaptés à leurs applications, et les besoins de gestion des données des consommateurs en aval ne font pas nécessairement partie de leurs priorités.

Par conséquent, lorsque les ingénieurs logiciels mettent à jour des applications et du code, ils peuvent ne pas tenir compte de l’impact de ces mises à jour sur les données qui sont finalement transmises aux consommateurs de données.

Lorsque de tels changements sont inattendus, même des changements relativement mineurs comme la suppression d’une seule colonne dans une table de 1 000 colonnes, le chaos peut s’ensuivre pour les consommateurs de données. Ces changements dits cassants peuvent perturber les flux de données et compromettre la compatibilité des jeux de données.

En conséquence, les scripts échouent, les tableaux de bord deviennent obsolètes ou inexacts, et les humains comme les agents IA sont privés des données fiables nécessaires aux décisions et aux opérations clés.

En établissant des accords définitifs entre les producteurs et les consommateurs de données, les contrats de données peuvent briser les silos séparant les deux groupes, évitant les désalignements et soutenant des pipelines de données plus fonctionnels.

Qu’incluent les contrats de données ?

Les contrats de données, comme le notent les défenseurs, transforment les hypothèses implicites en garanties explicites : ils détaillent exactement ce que les producteurs de données sont censés fournir aux consommateurs de données et comment ils sont censés assurer cette livraison. Les éléments clés des contrats de données incluent :

  • Notions de base
  • Schéma
  • Qualité des données
  • Chaînes d’assistance
  • Tarification
  • Équipe
  • Rôles
  • Accords de niveau de service (SLAs)
  • Infrastructures et serveurs

Notions de base

Les données fondamentales, également appelées données démographiques, comprennent des informations générales sur le contrat. Cela peut inclure des identifiants uniques, la version du contrat (1.0 ou 2.0, par exemple), le statut du contrat (comme « actif » ou « retiré »), l’objectif prévu des données, ainsi que les limitations légales liées à l’utilisation des données.

Schéma

Une définition de schéma détaille comment les données sont organisées. Il spécifie les objets (structures de données telles que des tables et des documents), les propriétés des objets (comme les colonnes d’un tableau) et les métadonnées des types de données inclus, tels que les horodatages et les limites de longueur de chaîne. Les registres de schémas, qui sont des référentiels centralisés pour la gestion des schémas, peuvent aider à soutenir les contrats de données.

Qualité des données

Les contrats de données définissent des règles et des paramètres pour garantir des données de haute qualité. Ils peuvent s’appliquer à plusieurs indicateurs de qualité des données, tels que la précision, la complétude, la validité et le taux de valeurs nulles. De plus, des règles personnalisées peuvent permettre des contrôles de qualité via des outils de qualité des données.

Canaux de support

Les contrats de données peuvent répertorier les sources d’assistance, telles que les chaînes Slack, les chaînes Teams, les chats Discord, les listes de diffusion par e-mail et les sites web, pour les consommateurs de données qui ont besoin d’aide.

Tarification

La section tarification d’un contrat de données indique les frais facturés à un consommateur de données pour un produit de données. Elle peut inclure la devise utilisée et l’unité de mesure (par exemple mégaoctets ou gigaoctets) servant au calcul des coûts.

Équipe

Appelée « parties prenantes » dans certains anciens modèles de contrats de données, la section équipe d’un contrat de données comprend des informations sur les membres de l’équipe propriétaire des données et leur relation avec le contrat.

Rôles

La section rôles d’un contrat de données énumère les rôles qui donnent aux consommateurs de données différents types d’accès (comme l’accès en lecture ou en écriture) à un jeu de données.

Accords de niveau de service (SLA)

Les contrats de données incluent des descriptions d’accords de niveau de service, qui définissent le niveau de performance que le prestataire est censé atteindre. Par exemple, les sections SLA peuvent indiquer des garanties sur le moment où les données sont disponibles et leur durée de conservation.

Infrastructures et serveurs

Spécifier le serveur de données (tel que Kafka, Microsoft SQL, Google BigQuery ou IBM Db2)permet aux consommateurs de données de le découvrir tout en fournissant aux ingénieurs de la plateforme les informations dont ils ont besoin pour automatiser l’accès. Cette section peut également inclure des informations sur différents environnements, tels que le développement et la production.

Outre les valeurs de base des contrats de données, les parties prenantes peuvent ajouter des propriétés personnalisées aux contrats de données afin de répondre à leurs besoins spécifiques. Les versions récentes de modèles de contrats de données populaires incluent également la possibilité de documenter les relations entre les propriétés, de faire référence à des contrats externes et d’accéder à une bibliothèque de règles prédéfinies de qualité des données pour des contrôles de qualité cohérents.

Quel est le format des contrats de données ?

Les contrats de données se distinguent nettement des autres contrats par le fait qu’ils ne sont pas rédigés en langage naturel. Ils sont généralement écrits en YAML ou en JSON, des langages de sérialisation de données lisibles à la fois par l’humain et par la machine. (Pour les utilisateurs non familiarisés avec les langages de sérialisation, les contrats de données peuvent être créés dans Excel et convertis en fichiers YAML via l’outil open source Data Contract CLI.)

L’avantage de rédiger des contrats de données dans un langage de sérialisation est qu’il permet l’automatisation à la place de processus manuels fastidieux. Les contrats de données lisibles par machine peuvent être intégrés dans des plateformes de données et des outils d’application. Les entreprises peuvent déployer ces solutions pour tester si les jeux de données respectent les règles du contrat de données, ce qui permet de résoudre les problèmes avant qu’ils ne provoquent des défaillances de pipeline.

Comment les contrats de données sont-ils conçus ?

De nombreux contrats de données sont basés sur la norme Open Data Contract Standard (ODCS). Comme son nom l’indique, ODCS est un cadre open source permettant de normaliser les contrats de données. La norme est définie par Bitol, un projet bac à sable IA et Data de la Linux Foundation sous licence Apache 2.0, et est disponible sur GitHub.

Les partisans de cette initiative affirment qu’elle facilite l’innovation en permettant aux organisations de mettre en œuvre des contrats de données compatibles avec leur architecture de données sans risque d’enfermement propriétaire.

Quels sont les avantages des contrats de données ?

Les contrats de données peuvent résoudre de nombreux problèmes liés aux pipelines de données et permettre aux entreprises de valoriser leurs données. Les avantages des contrats de données incluent :

Qualité des données améliorée

Comme le dit le vieil adage, ce qui est mesuré est géré. L’établissement de normes en matière de précision, de validité, d’actualité et d’autres indicateurs de qualité des données dans un contrat de données peut améliorer la qualité des données fournies tout en réduisant la latence.

Transparence accrue pour les dépendances

Les contrats de données peuvent délimiter des relations entre des tâches interconnectées, ou des dépendances. En clarifiant ces dépendances, les producteurs de données peuvent éviter de procéder à des changements cassants.

Meilleure gestion du changement

Les contrats de données sont soumis à contrôle de version, ce qui signifie que de nouvelles versions de contrats sont créées pour refléter des changements importants. Cela peut aider les producteurs à apporter des modifications, telles que des changements de schéma, de manière « sûre », afin de donner aux consommateurs le temps de s’adapter à ces changements, réduisant ainsi le risque de ruptures soudaines de pipelines.

Collaboration améliorée

Le processus de création d’un contrat de données facilite la communication et l’accord entre les producteurs et les consommateurs de données. Une fois créé, le contrat sert de base à une collaboration continue, car les versions s’adaptent à l’évolution des données et des besoins.

Responsabilité accrue

Les contrats de données définissent les relations entre les parties prenantes et les données, notamment qui en est propriétaire, quels rôles peuvent y accéder et comment les utilisateurs peuvent obtenir de l’aide. Les contrats permettent de clarifier qui est responsable de quoi, garantissant ainsi une plus grande responsabilisation.

Gouvernance des données

Les contrats de données peuvent être considérés comme des outils de gouvernance des données car ils reflètent et appliquent des objectifs de gouvernance critiques, tels que garantir la qualité des données, la sécurité et la disponibilité tout au long du cycle de vie des données.

Mise à l’échelle plus facile

En soutenant la gouvernance des données et la collaboration, les contrats de données peuvent aider les entreprises et les unités commerciales à partager les données avec succès, même si les volumes de données augmentent à un rythme sans précédent.

AI Academy

La gestion des données est-elle le secret de l’IA générative ?

Découvrez pourquoi des données de haute qualité sont essentielles pour une utilisation réussie de l’IA générative.

Contrats de données, produits de données et maillage de données

Les contrats de données sont souvent mentionnés dans les discussions sur les produits de données et le maillage de données. Et ce pour une bonne raison : les contrats de données jouent un rôle clé dans le soutien de ces deux technologies.

Commençons par les produits de données. Un produit de données est un ensemble réutilisable et autonome qui combine des données, des métadonnées, de la sémantique et des modèles afin de prendre en charge divers cas d’utilisation métier. Les contrats de données peuvent servir de « contrôle de la qualité » pour les produits de données, en veillant à ce que les données qu’ils contiennent soient cohérentes, fiables et correctement formatées.

Perrin décrit la relation entre les produits de données et les contrats de données en termes familiaux : « Les contrats de données et les produits de données sont comme des cousins inséparables : ils travaillent toujours ensemble, sont toujours alignés et veillent toujours à ce que tout se déroule sans accroc. »

L’importance des contrats de données pour les produits de données les rend également importants pour la fonctionnalité du maillage de données. Un maillage de données est une architecture de données décentralisée qui organise les données par domaine métier, tel que le marketing, les ventes ou le service client.

Dans une architecture de maillage de données, les producteurs de données de domaine utilisent des produits de données qui permettent aux utilisateurs métier de trouver et d’utiliser des données provenant de différents services d’une entreprise. Ainsi, lorsque les contrats de données garantissent la performance des produits de données, ils soutiennent le succès d’un maillage de données dans son ensemble.

Comment les contrats de données sont-ils mis en œuvre et appliqués ?

Dans le livre Data Contracts, les experts en données Chad Sanderson, Mark Freeman et B. E. Schmidt décrivent le processus suivant pour le fonctionnement des contrats de données3 :

  • Les consommateurs de données identifient leurs besoins en données pour atteindre les objectifs de l’entreprise.

  • Les consommateurs de données techniques traduisent les exigences métier en exigences techniques relatives aux données.

  • Les consommateurs de données demandent aux producteurs de données des contrats de données basés sur ces exigences.

  • Les producteurs de données déterminent si les demandes sont viables.

  • Le contrat de données est rédigé sous forme de code, tel que YAML.

  • Les producteurs de données créent une pull request (une demande de modification dans un référentiel) lorsqu’ils doivent modifier un actif de données.

  • Des contrôles basés sur les contrats de données sont effectués sur le changement demandé dans un pipeline CI/CD afin de s’assurer qu’il n’enfreint pas les termes du contrat.

  • Les producteurs de données sont alertés si la modification enfreint le contrat, ce qui déclenche des mesures pour corriger la violation.

Solutions de contrats de données

Les entreprises peuvent choisir parmi une variété d’outils et de plateformes pour créer et gérer des contrats de données. Elles incluent :

  • Projets open source qui sérialisent et désérialisent des données, tels qu’Apache Avro et Google Protocol Buffers (protobuf)

  • Outils de qualité des données et de test, tels que Great Expectations et dbt

  • Registres de schémas pour vérifier la compatibilité des schémas, comme le registre Confluent

  • Plateformes de gouvernance des données dotées de fonctionnalités telles que le suivi de la traçabilité des données et les catalogues de données

Les besoins spécifiques d’une organisation et son infrastructure de données existante peuvent aider à déterminer quelles solutions de contrats de données, ou quelles combinaisons de solutions, sont les plus adaptées pour les soutenir.

Auteurs

Alice Gomstyn

Staff Writer

IBM Think

Alexandra Jonker

Staff Editor

IBM Think

Solutions connexes
IBM® watsonx.data intégration

Transformez les données brutes en données adaptées à l’IA, grâce à une expérience utilisateur simplifiée pour l’intégration de n’importe quelle donnée avec n’importe quel style;

Découvrir watsonx.data integration
Solutions d’intégration de données

Créez des pipelines de données résilients, performants et optimisés en termes de coûts pour vos initiatives d’IA générative, vos analyses en temps réel, la modernisation de vos entrepôts et vos besoins opérationnels avec les solutions d’intégration des données d’IBM.

Découvrir les solutions d’intégration de données
Services de conseil en données et en IA

Réussissez le passage à l’échelle de l’IA avec la bonne stratégie, les données, la sécurité et la gouvernance adaptées.

Découvrir les services de conseil en données et en IA
Passez à l’étape suivante

Intégrez à la fois des données structurées et des données non structurées à l’aide d’un mélange de styles, y compris les lots, la diffusion en continu en temps réel et la réplication, afin d’éviter de perdre du temps et de l’argent à passer d’un outil à l’autre.

  1. Découvrir IBM watsonx.data integration
  2. Découvrir les solutions d’intégration de données