View a markdown version of this page

Détection d'anomalies dans AWS Glue Qualité des données - AWS Glue

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Détection d'anomalies dans AWS Glue Qualité des données

Les ingénieurs gèrent des centaines de pipelines de données simultanément. Chaque pipeline peut extraire des données de différentes sources et les charger dans le lac de données ou d’autres référentiels de données. Pour garantir la fourniture de données de haute qualité pour la prise de décision, ils établissent des règles de qualité des données. Ces règles évaluent les données sur la base de critères fixes reflétant l’état actuel de l’activité. Cependant, lorsque l’environnement métier change, les propriétés des données changent, ce qui rend ces critères fixes obsolètes et entraîne une mauvaise qualité des données.

Par exemple, un ingénieur des données d’une entreprise de vente au détail a établi une règle qui indique que les ventes quotidiennes doivent dépasser un seuil d’un million de dollars. Après quelques mois, les ventes quotidiennes ont dépassé les deux millions de dollars, rendant ainsi le seuil obsolète. L’ingénieur des données n’a pas pu mettre à jour les règles pour refléter les derniers seuils en raison de l’absence de notification et des efforts nécessaires pour analyser et mettre à jour manuellement la règle. Plus tard dans le mois, les utilisateurs métier ont remarqué une baisse de 25 % de leurs ventes. Après des heures d’enquête, les ingénieurs de données ont découvert qu’un pipeline ETL chargé d’extraire les données de certains magasins avait échoué sans générer d’erreurs. La règle dont les seuils étaient obsolètes a continué de fonctionner correctement sans que ce problème ne soit détecté.

Par ailleurs, des alertes proactives capables de détecter ces anomalies auraient pu permettre aux utilisateurs de repérer ce problème. En outre, le suivi de la saisonnalité dans l’activité peut mettre en évidence d’importants problèmes de qualité des données. Par exemple, les ventes au détail peuvent être les plus élevées le week-end et pendant les fêtes de fin d’année, alors qu’elles sont relativement faibles en semaine. Toute divergence par rapport à ce schéma peut indiquer des problèmes de qualité des données ou des changements dans le contexte métier. Les règles de qualité des données ne peuvent pas détecter les modèles saisonniers, car cela nécessite des algorithmes avancés capables de tirer des leçons des modèles précédents pour saisir la saisonnalité afin de détecter les écarts.

Enfin, les utilisateurs estiment qu’il est compliqué de créer et de maintenir des règles en raison de la nature technique du processus de création de règles et du temps nécessaire à leur création. Par conséquent, ils préfèrent d’abord explorer les informations relatives aux données avant de définir des règles. Les clients doivent pouvoir identifier facilement les anomalies, ce qui leur permet de détecter de manière proactive les problèmes de qualité et de prendre des décisions métier en toute confiance.

Comment ça marche

Note

La détection des anomalies est prise en charge à la fois dans AWS Glue ETL et dans le AWS Glue Data Catalog. Vous pouvez activer la détection des anomalies pour les tables enregistrées dans le catalogue de données en exécutant des exécutions d'évaluation avec la détection des anomalies activée ()ObservationScope: ALL.

La capture d’écran montre le processus de détection des anomalies liées à la qualité des données.

AWS Glue Data Quality combine la puissance de la qualité des données basée sur des règles et des capacités de détection des anomalies pour fournir des données de haute qualité. Pour commencer, configurez d’abord les règles et les analyseurs, puis activez la détection des anomalies.

Rules

Règles : les règles expriment les attentes à l’égard de vos données dans un langage ouvert appelé DQDL (Data Quality Definition Language). Un exemple de règle est illustré ci-dessous. Cette règle sera efficace s’il n’y a aucune valeur vide ou NULL dans la colonne `passenger_count` :

Rules = [ IsComplete "passenger_count" ]

Analyseurs

Dans les situations où vous connaissez les colonnes critiques, mais que vous ne connaissez pas suffisamment les données pour écrire des règles spécifiques, vous pouvez surveiller ces colonnes à l’aide d’analyseurs. Les analyseurs permettent de recueillir des statistiques de données sans définir de règles explicites. Un exemple de configuration des analyseurs est illustré ci-dessous :

Analyzers = [ AllStatistics "fare_amount", DistinctValuesCount "pulocationid", RowCount ]

Dans cet exemple, trois analyseurs sont configurés :

  1. Le premier analyseur, AllStatistics « fare_amount », capturera toutes les statistiques disponibles pour le champ fare_amount.

  2. Le second analyseur, DistinctValuesCount « pulocationid », capturera le nombre de valeurs distinctes dans la colonne « pulocationid ».

  3. Le troisième analyseur, `RowCount`, capturera le nombre total d'enregistrements de l'ensemble de données.

Les analyseurs constituent un moyen simple de recueillir des statistiques de données pertinentes sans définir de règles complexes. En surveillant ces statistiques, vous pouvez obtenir des informations sur la qualité des données et identifier les problèmes ou les anomalies potentiels qui peuvent nécessiter une enquête plus approfondie ou la création de règles spécifiques.

Statistiques relatives aux données

Les analyseurs et les règles de AWS Glue Data Quality collectent des statistiques de données, également appelées profils de données. Ces statistiques fournissent des informations sur les caractéristiques et la qualité de vos données. Les statistiques collectées sont stockées au fil du temps dans le service AWS Glue, ce qui vous permet de suivre et d'analyser les modifications apportées à vos profils de données.

Vous pouvez facilement récupérer ces statistiques et les écrire sur Amazon S3 pour obtenir une analyse plus approfondie ou un stockage à long terme en invoquant les API appropriées. Cette fonctionnalité vous permet d’intégrer le profilage des données dans vos flux de travail de traitement des données et d’exploiter les statistiques collectées à diverses fins, telles que le suivi de la qualité des données et la détection des anomalies.

En stockant les profils de données dans Amazon S3, vous pouvez tirer parti de la capacité de mise à l’échelle, de la durabilité et de la rentabilité du service de stockage d’objets d’Amazon. En outre, vous pouvez tirer parti d'autres AWS services ou d'outils tiers pour analyser et visualiser les profils de données, ce qui vous permet de mieux comprendre la qualité de vos données et de prendre des décisions éclairées en matière de gestion et de gouvernance des données.

Voici un exemple de statistiques de données stockées au fil du temps.

La capture d’écran montre un graphique linéaire des statistiques sur la qualité des données au fil du temps.
Note

AWS Glue Data Quality ne collectera les statistiques qu'une seule fois, même si vous avez à la fois Rule et Analyzer pour les mêmes colonnes, ce qui rend le processus de génération de statistiques efficace.

Détection des anomalies

AWS Glue Data Quality nécessite au moins trois points de données pour détecter les anomalies. Le service utilise un algorithme de machine learning pour tirer des leçons des tendances passées, puis prévoir les valeurs futures. Lorsque la valeur réelle ne se situe pas dans la plage prévue, AWS Glue Data Quality crée une observation d'anomalie. Elle offre une représentation visuelle de la valeur réelle et des tendances. Quatre valeurs sont affichées sur le graphique ci-dessous.

La capture d’écran montre un graphique linéaire des événements de détection d’anomalies de qualité des données au fil du temps.
  1. La statistique réelle et son évolution dans le temps.

  2. Une tendance dérivée en tirant des leçons de la tendance réelle. Cette donnée est utile pour comprendre l’orientation de la tendance.

  3. Limite supérieure possible pour la statistique.

  4. Limite inférieure possible pour la statistique.

  5. Règles de qualité des données recommandées permettant de détecter ces problèmes à l’avenir.

Quelques points importants sont à noter concernant les anomalies :

  • Lorsque des anomalies sont générées, les scores de qualité des données ne sont pas affectés.

  • Lorsqu’une anomalie est détectée, elle est considérée comme normale pour les exécutions suivantes. L’algorithme de machine learning considérera cette valeur anormale comme entrée, sauf si elle est explicitement exclue.

Modes de détection des anomalies

AWS Glue Data Quality prend en charge deux modes de détection d'anomalies qui contrôlent la façon dont le modèle d'apprentissage automatique prévoit les valeurs attendues. Vous pouvez choisir le mode qui correspond le mieux aux caractéristiques de vos données et à vos modèles de surveillance.

  • Linéaire (par défaut) : modélise les tendances et la saisonnalité de vos données au fil du temps. Le modèle apprend les modèles de croissance et les comportements cycliques à partir de points de données historiques et les extrapole vers l'avenir. Utilisez ce mode lorsque vos données présentent des tendances constantes à la hausse ou à la baisse, des tendances saisonnières hebdomadaires ou quotidiennes, ou lorsque vous effectuez des évaluations selon un calendrier régulier.

  • Corrigé — Traite tous les points de données comme étant espacés de manière égale, quels que soient les intervalles de temps réels entre les cycles d'évaluation. Le modèle établit une base de référence à partir des valeurs observées sans supposer de croissance ou de décroissance temporelle. Utilisez ce mode lorsque vos données sont stables ou fluctuent de manière aléatoire, lorsque vous exécutez des évaluations à intervalles irréguliers ou pour des analyses exploratoires dans des environnements de blocs-notes.

Choix d'un mode

Le tableau suivant indique quand utiliser chaque mode.

Utilisez le mode linéaire lorsque Utilisez le mode fixe lorsque
Vos données présentent des tendances constantes à la hausse ou à la baisse Vos données sont plates ou ne présentent aucun schéma prévisible
Vos données montrent des tendances saisonnières (hebdomadaires, quotidiennes) Vos données fluctuent de manière aléatoire
Vous effectuez des évaluations selon un calendrier régulier Vous effectuez des évaluations à des intervalles irréguliers ou imprévisibles
Vous devez détecter la rupture d'une tendance établie Vous effectuez des analyses exploratoires dans des blocs-notes
Il existe de longs intervalles entre les analyses et les données suivent un schéma connu. Les modifications apportées aux données sont dictées par les utilisateurs plutôt que de refléter des modèles commerciaux naturels

Configuration du mode d'observation

Vous pouvez définir le mode d'observation lorsque vous lancez une évaluation de la qualité des données.

Pour le catalogue de données AWS Glue, utilisez le ObservationMode champ du AdditionalRunOptions paramètre :

aws glue start-data-quality-ruleset-evaluation-run \ --data-source '{ "GlueTable": { "DatabaseName": "my_database", "TableName": "my_table" } }' \ --role "arn:aws:iam::123456789012:role/GlueServiceRole" \ --ruleset-names '["my_ruleset"]' \ --additional-run-options '{ "ObservationScope": "ALL", "ObservationMode": "FIXED" }'

Pour les tâches AWS Glue ETL, utilisez l'observations.modeoption suivante :

additional_options = { "observations.scope": "ALL", "observations.mode": "FIXED" } result = EvaluateDataQuality.process_rows( frame=dynamic_frame, ruleset=ruleset, publishing_options=publishing_options, additional_options=additional_options )

Si vous ne spécifiez aucun mode, la détection des anomalies utilise ce LINEAR mode par défaut.

Réentraînement

Il est essentiel de réentraîner le modèle de détection des anomalies pour détecter les bonnes anomalies. Lorsque des anomalies sont détectées, AWS Glue Data Quality inclut l'anomalie dans le modèle en tant que valeur normale. Pour garantir le bon fonctionnement de la détection des anomalies, il est important de fournir un feedback en reconnaissant ou en rejetant l'anomalie. AWS Glue Data Quality fournit des mécanismes à la fois dans AWS Glue Studio et dans les API pour fournir des commentaires au modèle. Pour en savoir plus, consultez la documentation sur la configuration de la détection des anomalies dans les pipelines AWS Glue ETL. Vous pouvez également activer la détection des anomalies pour les tableaux du catalogue de données AWS Glue en exécutant des cycles d'évaluation avec ObservationScope set toALL.

Détails de l’algorithme de détection des anomalies

  • L’algorithme de détection des anomalies examine les statistiques des données au fil du temps. L’algorithme prend en compte tous les points de données disponibles et ignore les statistiques explicitement exclues.

  • Ces statistiques de données sont stockées dans le service AWS Glue et vous pouvez fournir des AWS KMS clés pour les chiffrer. Consultez le Guide de sécurité pour savoir comment fournir des AWS KMS clés pour chiffrer les statistiques de qualité des données de AWS Glue.

  • La composante temporelle est cruciale pour l’algorithme de détection des anomalies. Sur la base des valeurs passées, AWS Glue Data Quality détermine les limites supérieure et inférieure. Au cours de cette détermination, elle prend en compte la composante temporelle. Les limites seront différentes pour les mêmes valeurs sur un intervalle d’une minute, un intervalle horaire ou un intervalle quotidien.

Capture la saisonnalité

AWS L'algorithme de détection des anomalies de Glue Data Quality peut capturer des tendances saisonnières. Par exemple, il peut comprendre que les schémas des jours de semaine diffèrent des schémas du week-end. Cela se voit dans l'exemple ci-dessous, où AWS Glue Data Quality détecte une tendance saisonnière dans les valeurs des données. Vous n’avez pas besoin de faire quoi que ce soit pour activer cette fonctionnalité. Au fil du temps, AWS Glue Data Quality apprend les tendances saisonnières et détecte les anomalies lorsque ces tendances ne sont pas respectées.

La capture d’écran montre un onglet de qualité des données présentant des anomalies lors de la capture des tendances saisonnières.

Cost

Vous serez facturé en fonction du temps nécessaire pour détecter les anomalies. Chaque statistique est facturée 1 DPU pour le temps nécessaire à la détection des anomalies. Reportez-vous à Tarification AWS Glue pour des exemples détaillés.

Considérations clés

Le stockage des statistiques est gratuit. Cependant, il existe une limite de 100 000 statistiques par compte. Ces statistiques seront conservées pendant deux ans au maximum.