Présentation de la qualité des données automatiques

Ce document décrit la qualité automatique des données de Dataplex, qui vous permet de définir et de mesurer la qualité de vos données. Vous pouvez automatiser l'analyse des données, les valider en fonction de règles définies et enregistrer des alertes si elles ne répondent pas aux exigences de qualité. Vous pouvez gérer les règles de qualité des données et les déploiements en tant que code pour améliorer l'intégrité des pipelines de production de données.

Pour commencer, utilisez les recommandations de règles de profilage de données Dataplex ou créez des règles personnalisées dans la console Google Cloud. Dataplex fournit des fonctionnalités de surveillance, de dépannage et d'alerte Cloud Logging intégrées à la qualité de données automatique Dataplex.

Modèle conceptuel

Une analyse de la qualité des données applique des règles de qualité aux données des tables pour générer des rapports sur les résultats.

Une analyse de données est une tâche Dataplex qui échantillonne des données à partir de BigQuery et de Cloud Storage et déduit différents types de métadonnées. Pour mesurer la qualité d'une table à l'aide de la qualité des données automatique, vous devez créer un objet DataScan de type data quality. L'analyse ne s'exécute que sur une seule table BigQuery. L'analyse utilise des ressources dans un projet locataire Google. Vous n'avez donc pas besoin de configurer votre propre infrastructure.

Pour créer et utiliser une analyse de la qualité des données, procédez comme suit:

  1. Définition de la règle
  2. Exécution de la règle
  3. Surveillance et alertes
  4. Dépannage

Définition de la règle

Les règles de qualité des données associées à une analyse de la qualité des données définissent les attentes concernant les données. Vous pouvez créer des règles de qualité des données de différentes manières:

Règles prédéfinies

Dataplex accepte deux catégories de règles prédéfinies: les lignes au niveau des lignes ou les règles d'agrégation.

Au niveau des lignes

Pour les règles de catégorie au niveau des lignes, les attentes s'appliquent à chaque ligne de données. Chaque ligne transmet ou échoue de manière indépendante. Par exemple, column_A_value < 1.

Les vérifications au niveau des lignes nécessitent que vous spécifiiez un seuil de réussite. Lorsque le pourcentage de lignes qui passent par la règle passe en dessous de la valeur du seuil, la règle échoue.

Agréger

Pour les règles d'agrégation, l'attente est appliquée par rapport à une seule valeur agrégée sur l'ensemble des données. (par exemple, Avg(someCol) >= 10) Pour réussir, la vérification doit renvoyer la valeur booléenne true. Les règles d'agrégation ne fournissent pas de nombre de réussite ou d'échec indépendant pour chaque ligne.

Pour les deux catégories de règles, vous pouvez définir les paramètres suivants:

  • Colonne à laquelle la règle s'applique.
  • Une dimension provenant d'un ensemble de dimensions prédéfinies.

Le tableau suivant répertorie les types de règles agrégées et au niveau des lignes compatibles:

Type de règle
(Nom dans la console Google Cloud)
Règle globale ou au niveau des lignes Description Types de colonnes compatibles Paramètres spécifiques aux règles
RangeExpectation
(Vérification de la plage)
Au niveau des lignes Vérifiez si la valeur est comprise entre les valeurs minimale et maximale. Toutes les colonnes de type numérique, date et code temporel. Obligatoire:
  • Passing threshold percentage
  • Valeurs mean, min ou max: spécifiez au moins une valeur.


Facultatif:
  • Activer strict min: si cette règle est activée, la vérification de la règle utilise ">" au lieu de ">=".
  • Activer strict max: si cette règle est activée, la vérification de la règle utilise "<" au lieu de "<=".
  • Activer ignore null: si cette option est activée, les valeurs nulles sont ignorées lors de la vérification des règles.
NonNullExpectation
(vérification null)
Au niveau des lignes Vérifiez que les valeurs des colonnes ne sont pas NULL. Tous les types de colonnes compatibles. Obligatoire:
Pourcentage de seuil de réussite.
SetExpectation
(Définir la vérification)
Au niveau des lignes Vérifiez si les valeurs d'une colonne correspondent à l'une des valeurs spécifiées dans un ensemble. Tous les types de colonnes compatibles, à l'exception de Record et Struct. Obligatoire:
  • Ensemble de valeurs de chaîne à comparer.
  • Pourcentage de seuil de réussite.



Facultatif:
  • Activer ignore null: si cette option est activée, les valeurs nulles sont ignorées lors de la vérification des règles.
  • Activer la condition invert: si cette option est activée, la règle vérifie si les valeurs ne proviennent pas de l'ensemble.
RegexExpectation
(vérification des expressions régulières)
Au niveau des lignes Vérifiez à nouveau les valeurs dans une expression régulière spécifiée. String Obligatoire:
  • Expression régulière utilisée pour la vérification.
  • Pourcentage de seuil de réussite.
  • Remarque: Le langage SQL standard de Google permet d'utiliser des expressions régulières à l'aide de la bibliothèque re2. Pour en savoir plus sur la syntaxe d'expression régulière à consulter, consultez cette documentation.
Uniqueness
(vérité d'unicité)
Agréger Vérifiez si toutes les valeurs d'une colonne sont uniques. Tous les types de colonnes compatibles, à l'exception de Record et Struct. Obligatoire:
Colonne et dimension des paramètres acceptés.
StatisticRangeExpectation
(vérification statistique)
Agréger Vérifiez si la mesure statistique donnée correspond à l'attente de la plage. Tous les types de colonnes numériques acceptés. Obligatoire:
mean, min ou max: spécifiez au moins une valeur.

Facultatif:
  • Activer strict min: si cette règle est activée, la vérification de la règle utilise ">" au lieu de ">=".
  • Activer strict max: si cette règle est activée, la vérification de la règle utilise "<" au lieu de "<=".
  • Activer ignore null: si cette option est activée, les valeurs nulles sont ignorées lors de la vérification des règles.

Types de règles SQL personnalisées compatibles

Les règles SQL permettent d'étendre la validation à l'aide d'une logique personnalisée. Il existe deux types de règles.

Type de règle Règle globale ou au niveau des lignes Description Types de colonnes compatibles Paramètres spécifiques aux règles Exemple
Condition de ligne Au niveau des lignes Vous pouvez spécifier une attente à partir de chaque ligne en définissant une expression SQL dans une clause where. L'expression SQL doit renvoyer le résultat true (réussite) ou false (échec) par ligne.
Dataplex calcule le pourcentage de lignes qui répondent à cette attente et le compare au pourcentage du seuil de réussite pour déterminer le succès ou l'échec de la règle.
Cela peut inclure une référence à une autre table, par exemple pour créer des vérifications d'intégrité référentielles.
Toutes les colonnes Obligatoire :
  • Condition SQL à utiliser
  • Pourcentage du seuil de réussite
  • Dimension

Facultatif: colonne à laquelle associer cette règle.
grossWeight <= netWeight
Expression SQL d'agrégation Agréger Ces règles sont exécutées une fois par table. Indiquez une expression SQL qui renvoie la valeur booléenne "true" (pass) ou "false" (faux).
L'expression SQL peut inclure une référence à une autre table à l'aide de sous-requêtes d'expression.
Toutes les colonnes Obligatoire
Condition SQL à utiliser
Dimension
Facultatif
Colonne à associer à cette règle
Exemple d'agrégation simple simple
avg(price) > 100

Utilisation d'une sous-requête d'expression pour comparer les valeurs d'une autre table
(SELECT COUNT(*) FROM `example_project.example_dataset.different-table`) < COUNT(*)

Pour voir des exemples de règles, consultez Règles automatiques relatives à la qualité des données.

Dimensions

Les dimensions vous permettent d'agréger les résultats de plusieurs règles de qualité des données pour la surveillance et les alertes. Vous devez associer chaque règle de qualité des données à une dimension. Dataplex accepte les dimensions suivantes:

  • Actualisation
  • Volume
  • Exhaustivité
  • Validité
  • Cohérence
  • Justesse
  • Originalité

Saisie de la valeur dans les règles

Tous les paramètres de valeur sont transmis à l'API en tant que valeurs de chaîne. Dataplex exige que les entrées respectent le format BigQuery spécifié.

Les paramètres de type binaire peuvent être transmis sous la forme d'une chaîne encodée base64.

Type Formats compatibles Examples
Binaire Valeur encodée en base64 YXBwbGU=
Code temporel AAAA-[M]M-[J]J[( |T)[H]H:[M]M:[S]S[.F]] [zone_heure]
OU AAAA-[M]M-[J]J[( |T)[H]H:[M]M:[S]S[.F]][heure_zone_offset]
27/09/2014 12:30:00.45-08
Date AAAA-M[M]-J[D] 2014-09-27
Heure [H]H:[M]M:[S]S[.DDDDDD] 12:30:00,45
DateTime AAAA-[M]M-[J]J [[H]H:[M]M:[S]S[.DDDDDD]] 27/09/2014 12:30:00.45

Exécution de la règle

Vous pouvez planifier des analyses de la qualité des données à un intervalle spécifique ou effectuer une analyse à la demande. Pour gérer les analyses de qualité des données, vous pouvez utiliser l'API ou la console Google Cloud.

Lorsque vous exécutez une analyse de la qualité des données, Dataplex crée une tâche. Dans le cadre de la spécification d'une analyse de la qualité des données, vous pouvez spécifier l'une des portées suivantes:

Table complète
Chaque tâche valide l'intégralité de la table.
Incrémentiel
Chaque tâche valide des données incrémentielles. Pour déterminer les incréments, fournissez dans le tableau une colonne Date / Timestamp qui pourra être utilisée comme repère. Il s'agit généralement de la colonne sur laquelle la table est partitionnée.

Filtrer les données

Dataplex peut filtrer les données à analyser en vue d'en déterminer la qualité à l'aide d'un filtre de ligne. Créer un filtre de ligne vous permet de vous concentrer sur les données associées à une période ou à un segment spécifique (une région spécifique, par exemple). L'utilisation de filtres peut réduire le temps et les coûts d'exécution, par exemple filtrer les données avec un horodatage avant une certaine date.

Exemples de données

Dataplex vous permet de spécifier un pourcentage d'enregistrements de vos données à échantillonner pour exécuter une analyse de la qualité des données. Créer des analyses de qualité des données sur un plus petit échantillon de données peut réduire le temps d'exécution et le coût d'interrogation de l'intégralité de l'ensemble de données.

Surveillance et alertes

Vous pouvez exporter les résultats d'analyse vers une table BigQuery pour une analyse plus approfondie. Pour personnaliser les rapports, vous pouvez associer les données de la table BigQuery à un tableau de bord Looker. Vous pouvez créer un rapport cumulé en utilisant le même tableau de résultats sur plusieurs analyses.

Vous pouvez surveiller les tâches liées à la qualité des données à l'aide des journaux data_scan et data_quality_scan_rule_result de l'explorateur de journaux.

Pour chaque tâche de qualité des données, le journal data_scan avec le champ data_scan_type défini sur DATA_QUALITY contient les informations suivantes:

  • Source de données utilisée pour l'analyse de données.
  • Détails d'exécution du job, tels que l'heure de création, l'heure de début, l'heure de fin et l'état de la tâche
  • Résultat de la tâche de qualité des données: réussite ou échec.
  • Réussite ou échec de la dimension.

Chaque tâche réussie contient un journal data_quality_scan_rule_result contenant les informations détaillées suivantes sur chaque règle de la tâche:

  • Informations de configuration, telles que le nom, le type, le type d'évaluation et la dimension de la règle.
  • Informations sur les résultats, telles que la réussite ou l'échec, le nombre total de lignes, le nombre de lignes transmises, le nombre de lignes nulles et le nombre de lignes évaluées.

Les informations contenues dans les journaux sont disponibles via l'API et Google Cloud Console. Vous pouvez utiliser ces informations pour configurer des alertes. Pour en savoir plus, consultez la section Définir des alertes dans Cloud Logging.

Résoudre les problèmes

En cas d'échec d'une règle, Dataplex génère une requête qui renvoie toutes les colonnes de la table (et pas uniquement la colonne ayant échoué).

Limites

  • Les résultats de l'analyse de la qualité des données ne sont pas publiés dans Data Catalog en tant que tags.
  • Les recommandations de règles ne sont compatibles qu'avec la console Google Cloud.
  • Les tables BigQuery à analyser ne doivent pas comporter plus de 300 colonnes.
  • Le choix des dimensions est défini sur l'une des sept dimensions prédéfinies.
  • Le nombre de règles par analyse de la qualité des données est limité à 1 000.

Tarifs

  • Dataplex utilise le code SKU de traitement premium pour facturer la qualité automatique des données. Pour en savoir plus, consultez la section Tarifs de Dataplex.

  • La publication automatique de résultats concernant la qualité des données dans le catalogue n'est pas encore disponible. Lorsqu'elles seront disponibles, elles seront facturées au même tarif que le stockage des métadonnées de catalogue. Reportez-vous à la page Tarifs pour en savoir plus.

  • Le traitement premium Dataplex pour la qualité automatique des données est facturé à la seconde avec un minimum d'une minute.

  • L'échec de l'analyse de la qualité des données est gratuit.

  • Les frais dépendent du nombre de lignes, du nombre de colonnes, de la quantité de données que vous avez analysées, de la configuration des règles de qualité des données, des paramètres de partitionnement et de clustering sur la table, et de la fréquence du balayage.

  • Il existe plusieurs façons de réduire le coût des analyses automatiques de la qualité des données:

  • Séparez les frais de qualité des données des autres frais dans le code SKU de traitement Premium de Dataplex, utilisez l'étiquette goog-dataplex-workload-type avec la valeur DATA_QUALITY.

  • Filtrez les frais cumulés. Utilisez les étiquettes suivantes:

    • goog-dataplex-datascan-data-source-dataplex-entity
    • goog-dataplex-datascan-data-source-dataplex-lake
    • goog-dataplex-datascan-data-source-dataplex-zone
    • goog-dataplex-datascan-data-source-project
    • goog-dataplex-datascan-data-source-region
    • goog-dataplex-datascan-id
    • goog-dataplex-datascan-job-id

Étape suivante