Techniques populaires de validation des données pour l'analytique et pourquoi vous en avez besoin

Publié: 2022-12-19

NDLR : cet article a été initialement publié sur le blog Iteratively le 14 décembre 2020.


En fin de compte, vos analyses de données doivent être testées comme n'importe quel autre code. Si vous ne validez pas ce code - et les données qu'il génère - cela peut être coûteux (comme 9,7 millions de dollars par an, selon Gartner).

Pour éviter ce sort, les entreprises et leurs ingénieurs peuvent tirer parti d'un certain nombre de techniques de validation des données proactives et réactives. Nous recommandons fortement le premier, comme nous l'expliquerons ci-dessous. Une approche proactive de la validation des données aidera les entreprises à s'assurer que les données dont elles disposent sont propres et prêtes à l'emploi.

Techniques de validation des données réactives ou proactives : résolvez les problèmes de données avant qu'ils ne deviennent un problème

"Une once de prévention vaut mieux que guérir." C'est un vieil adage qui est vrai dans presque toutes les situations, y compris les techniques de validation des données pour l'analyse. Une autre façon de le dire est qu'il vaut mieux être proactif que réactif.

Le but de toute validation de données est d'identifier où les données pourraient être inexactes, incohérentes, incomplètes ou même manquantes.

Par définition, la validation réactive des données a lieu après coup et utilise la détection des anomalies pour identifier les problèmes que vos données peuvent avoir et pour aider à atténuer les symptômes de données erronées. Bien que ces méthodes soient mieux que rien, elles ne résolvent pas les problèmes de base à l'origine des mauvaises données.

Au lieu de cela, nous pensons que les équipes devraient essayer d'adopter des techniques proactives de validation des données pour leurs analyses, telles que la sécurité des types et la schématisation, afin de s'assurer que les données qu'elles obtiennent sont exactes, complètes et dans la structure attendue (et que les futurs membres de l'équipe n'ont pas lutter contre un mauvais code d'analyse).

Bien qu'il puisse sembler évident de choisir l'approche de validation la plus complète, de nombreuses équipes finissent par utiliser la validation réactive des données. Cela peut être pour un certain nombre de raisons. Souvent, le code d'analyse est une réflexion après coup pour de nombreuses équipes non chargées des données et n'est donc pas testé.

Il est également courant, malheureusement, que des données soient traitées sans aucune validation. De plus, un code d'analyse médiocre n'est remarqué que lorsqu'il est vraiment mauvais, généralement des semaines plus tard, lorsque quelqu'un remarque qu'un rapport est manifestement erroné ou même manquant.

Les techniques de validation réactive des données peuvent ressembler à la transformation de vos données dans votre entrepôt avec un outil comme dbt ou Dataform.

Bien que toutes ces méthodes puissent vous aider à résoudre vos problèmes de données (et souvent avec des outils objectivement excellents), elles ne vous aideront toujours pas à guérir la cause principale de vos mauvaises données (par exemple, une gouvernance ou des analyses de données fragmentaires qui sont mises en œuvre sur un projet- projet par projet sans communication inter-équipes) en premier lieu, vous obligeant à y revenir à chaque fois.

La validation réactive des données seule n'est pas suffisante ; vous devez utiliser des techniques proactives de validation des données afin d'être vraiment efficace et d'éviter les problèmes coûteux mentionnés précédemment. Voici pourquoi:

  • Les données sont un sport d'équipe. Ce n'est pas seulement à un département ou à une personne de s'assurer que vos données sont propres. Il faut que tout le monde travaille ensemble pour garantir des données de haute qualité et résoudre les problèmes avant qu'ils ne surviennent.
  • La validation des données doit faire partie du cycle de vie du développement logiciel (SDLC). Lorsque vous l'intégrez à votre SDLC et parallèlement à votre développement piloté par les tests existant et à votre processus d'assurance qualité automatisé (au lieu de l'ajouter après coup), vous gagnez du temps en évitant les problèmes de données plutôt qu'en les résolvant ultérieurement.
  • La validation proactive des données peut être intégrée dans vos outils existants et vos pipelines CI/CD. C'est facile pour vos équipes de développement car elles ont déjà investi dans l'automatisation des tests et peuvent maintenant l'étendre rapidement pour ajouter également une couverture pour l'analyse.
  • Les tests proactifs de validation des données sont l'un des meilleurs moyens pour les équipes en évolution rapide de fonctionner efficacement. Cela garantit qu'ils peuvent itérer rapidement et éviter la dérive des données et d'autres problèmes en aval.
  • La validation proactive des données vous donne la confiance nécessaire pour modifier et mettre à jour votre code selon vos besoins tout en minimisant le nombre de bogues que vous devrez éliminer plus tard. Ce processus proactif garantit que vous et votre équipe modifiez uniquement le code directement lié aux données qui vous intéressent.

Maintenant que nous avons établi pourquoi la validation proactive des données est importante, la question suivante est : comment procédez-vous ? Quels sont les outils et les méthodes que les équipes utilisent pour s'assurer que leurs données sont bonnes avant que des problèmes ne surviennent ?

Plongeons dedans.

Méthodes de validation des données

La validation des données n'est pas qu'une étape qui se produit à un moment précis. Cela peut se produire à plusieurs moments du cycle de vie des données : chez le client, sur le serveur, dans le pipeline ou dans l'entrepôt lui-même.

C'est en fait très similaire aux tests de logiciels en gros à bien des égards. Il y a cependant une différence essentielle. Vous ne testez pas les sorties seules ; vous confirmez également que les entrées de vos données sont correctes.

Examinons à quoi ressemble la validation des données à chaque emplacement, en examinant celles qui sont réactives et celles qui sont proactives.

Techniques de validation des données chez le client

Vous pouvez utiliser des outils comme Amplitude Data pour tirer parti de la sécurité des types, des tests unitaires et du linting (analyse de code statique) pour la validation des données côté client.

Maintenant, c'est un excellent point de départ, mais il est important de comprendre quel type de test ce type d'outil vous permet de faire à ce niveau. Voici une ventilation :

  • La sécurité des types se produit lorsque le compilateur valide les types de données et les instructions d'implémentation à la source, évitant ainsi les erreurs en aval dues à des fautes de frappe ou à des variables inattendues.
  • Les tests unitaires consistent à tester une sélection spécifique de code de manière isolée. Malheureusement, la plupart des équipes n'intègrent pas les analyses dans leurs tests unitaires lorsqu'il s'agit de valider leurs analyses.
  • Les tests A/B consistent à tester votre flux d'analyse par rapport à un ensemble de données à l'état d'or (une version de vos analyses que vous savez parfaite) ou à une copie de vos données de production. Cela vous aide à déterminer si les changements que vous apportez sont bons et une amélioration par rapport à la situation existante.

Techniques de validation des données en préparation

La validation des données dans le pipeline consiste à s'assurer que les données envoyées par le client correspondent au format de données de votre entrepôt. Si les deux ne sont pas sur la même page, vos consommateurs de données (chefs de produit, analystes de données, etc.) n'obtiendront pas d'informations utiles de l'autre côté.

Les méthodes de validation des données dans le pipeline peuvent ressembler à ceci :

  • Validation du schéma pour garantir que votre suivi des événements correspond à ce qui a été défini dans votre registre de schémas.
  • Intégration et tests de composants via des tests utilitaires clés relationnels, uniques et de substitution dans un outil comme dbt pour s'assurer que le suivi entre les plates-formes fonctionne bien.
  • Test de fraîcheur via un outil comme dbt pour déterminer à quel point vos données sources sont "fraîches" (c'est-à-dire à quel point elles sont à jour et saines).
  • Tests de distribution avec un outil comme Great Expectations pour recevoir des alertes lorsque les ensembles de données ou les échantillons ne correspondent pas aux entrées attendues et s'assurer que les modifications apportées à votre suivi ne perturbent pas les flux de données existants.

Techniques de validation des données dans l'entrepôt

Vous pouvez utiliser les tests dbt, les tests de formulaires de données et Great Expectations pour vous assurer que les données envoyées à votre entrepôt sont conformes aux conventions que vous attendez et dont vous avez besoin. Vous pouvez également effectuer des transformations au niveau de cette couche, y compris la vérification de type et la sécurité de type dans ces transformations, mais nous ne recommandons pas cette méthode comme technique de validation principale car elle est réactive.

À ce stade, les méthodes de validation disponibles pour les équipes consistent à valider que les données sont conformes à certaines conventions, puis à les transformer pour y correspondre. Les équipes peuvent également utiliser des tests de relation et de fraîcheur avec dbt, ainsi que des tests de valeur/gamme à l'aide de Great Expectations.

Toutes les fonctionnalités de cet outil se résument à quelques techniques clés de validation des données à cette couche :

  • Schématisation pour s'assurer que les données et les transformations CRUD sont conformes aux conventions définies.
  • Tests de sécurité pour garantir que les données sont conformes aux exigences de sécurité telles que le RGPD.
  • Test de relation dans des outils comme dbt pour s'assurer que les champs d'un modèle correspondent aux champs d'une table donnée (c'est-à-dire l'intégrité référentielle).
  • Tests de fraîcheur et de distribution (comme nous l'avons mentionné dans la section pipeline).
  • Vérification de la plage et du type qui confirme que les données envoyées par le client se situent dans la plage ou le format attendu de l'entrepôt.

Un bon exemple de bon nombre de ces tests en action peut être trouvé en fouillant dans le moteur de découverte et de métadonnées de Lyft, Amundsen. Cet outil permet aux consommateurs de données de l'entreprise de rechercher des métadonnées d'utilisateurs pour augmenter à la fois sa convivialité et sa sécurité. La principale méthode de Lyft pour garantir la qualité et la convivialité des données est une sorte de gestion des versions via une tâche Airflow de nettoyage des graphiques qui supprime les anciennes données en double lorsque de nouvelles données sont ajoutées à leur entrepôt.

Pourquoi est-il temps d'adopter de meilleures techniques de validation des données ?

Dans le passé, les équipes de données avaient du mal à valider les données parce que leurs organisations ne réalisaient pas l'importance de l'hygiène et de la gouvernance des données. Ce n'est plus le monde dans lequel nous vivons.

Les entreprises ont pris conscience que la qualité des données est essentielle. Il ne suffit pas de nettoyer les mauvaises données de manière réactive. Embaucher des équipes d'ingénieurs de données pour nettoyer les données par la transformation ou l'écriture de requêtes SQL sans fin est une utilisation inutile et inefficace du temps et de l'argent.

Auparavant, il était acceptable d'avoir des données exactes à 80 % (plus ou moins, selon le cas d'utilisation), laissant une marge d'erreur de 20 %. Cela peut convenir pour une analyse simple, mais ce n'est pas suffisant pour alimenter un moteur de recommandation de produits, détecter des anomalies ou prendre des décisions commerciales ou de produit critiques.

Les entreprises embauchent des ingénieurs pour créer des produits et faire un excellent travail. S'ils doivent passer du temps à traiter de mauvaises données, ils ne profitent pas au maximum de leur temps. Mais la validation des données leur permet de se concentrer sur ce qu'ils font le mieux : créer de la valeur pour l'organisation.

La bonne nouvelle est que des données de haute qualité sont à portée de main. Pour y parvenir, les entreprises doivent aider chacun à comprendre sa valeur en brisant les silos entre les producteurs de données et les consommateurs de données. Ensuite, les entreprises devraient jeter les feuilles de calcul et appliquer de meilleures pratiques d'ingénierie à leurs analyses, telles que la gestion des versions et la schématisation. Enfin, ils doivent s'assurer que les meilleures pratiques en matière de données sont suivies dans toute l'organisation avec un plan de suivi et de gouvernance des données.

Investissez dans la validation analytique proactive pour gagner des dividendes de données

Dans le monde d'aujourd'hui, les outils et méthodes réactifs et implicites de validation des données ne suffisent plus. Ils vous coûtent du temps, de l'argent et, peut-être le plus important, de la confiance.

Pour éviter ce sort, adoptez une philosophie de proactivité. Identifiez les problèmes avant qu'ils ne deviennent des problèmes coûteux en validant vos données d'analyse dès le début et tout au long du cycle de vie du développement logiciel.

Démarrer avec l'analyse des produits