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

Ce document décrit la qualité automatique des données 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 par rapport à des règles définies et enregistrer des alertes si vos données 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, ce qui améliore l'intégrité des pipelines de production de données.

Vous pouvez commencer à utiliser les recommandations de règles de profilage des données Dataplex ou à créer des règles personnalisées dans la console Google Cloud . Dataplex fournit la surveillance, le dépannage et les alertes Cloud Logging, qui sont intégrés à la qualité automatique des données de Dataplex.

Modèle conceptuel

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

Une analyse des données est une tâche Dataplex qui échantillonne les données de BigQuery et de Cloud Storage, et infère différents types de métadonnées. Pour mesurer la qualité d'une table à l'aide de la qualité automatique des données, 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 les ressources d'un projet de locataire Google. Vous n'avez donc pas besoin de configurer votre propre infrastructure.

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

  1. Définir des règles de qualité des données
  2. Configurer l'exécution des règles
  3. Analyser les résultats de l'analyse de qualité des données
  4. Configurer la surveillance et les alertes
  5. Résoudre les problèmes de qualité des données

Définition de la règle

Les règles de qualité des données associées à une analyse de qualité des données définissent les attentes en termes de 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: au niveau des lignes ou agrégées.

Au niveau de la ligne

Pour les règles de catégorie au niveau des lignes, l'attente est appliquée à chaque ligne de données. Chaque ligne passe ou échoue indépendamment à la condition. Par exemple, column_A_value < 1.

Les vérifications au niveau des lignes nécessitent de spécifier un seuil de réussite. Lorsque le pourcentage de lignes qui respectent la règle est inférieur à la valeur de seuil, la règle échoue.

Agréger

Pour les règles agrégées, l'attente est appliquée à 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 agrégées ne fournissent pas de nombre de réussites ou d'échecs indépendants 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.
  • Dimension 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 au niveau des lignes ou agrégation Description Types de colonnes compatibles Paramètres spécifiques à la règle
RangeExpectation
(Vérification de la plage)
Au niveau de la ligne Vérifiez si la valeur est comprise entre la valeur minimale et la valeur maximale. Toutes les colonnes de type numérique, date et horodatage. Obligatoire:
  • Pourcentage du seuil de réussite
  • Valeurs min ou max: spécifiez au moins une valeur.
Facultatif:
  • Activer strict min: si cette option est activée, la vérification de la règle utilise ">" au lieu de ">=".
  • Activer strict max: si cette option 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
(Contrôle de valeurs nulles)
Au niveau de la ligne Vérifiez que les valeurs des colonnes ne sont pas NULL. Tous les types de colonnes acceptés. Obligatoire:
  • Pourcentage du seuil de réussite.
SetExpectation
(Définir la vérification)
Au niveau de la ligne 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 du 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.
RegexExpectation
(Vérification des expressions régulières)
Au niveau de la ligne Comparez les valeurs à une expression régulière spécifiée. Chaîne Obligatoire:
  • Modèle d'expression régulière utilisé pour la vérification.
  • Pourcentage du seuil de réussite.
  • Remarque: SQL standard Google permet d'utiliser des expressions régulières à l'aide de la bibliothèque re2. Consultez la documentation de cette bibliothèque pour en savoir plus sur la syntaxe d'expression régulière à utiliser.
Facultatif:
  • Activer ignore null: si cette option est activée, les valeurs nulles sont ignorées lors de la vérification des règles.
Uniqueness
(Vérification de l'originalité)
Agréger Vérifier 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 à partir des paramètres compatibles.
Facultatif:
  • Activer ignore null: si cette option est activée, les valeurs nulles sont ignorées lors de la vérification des règles.
StatisticRangeExpectation
(vérification des statistiques)
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:
  • Valeurs mean, min ou max: spécifiez au moins une valeur.
Facultatif:
  • Activer strict min: si cette option est activée, la vérification de la règle utilise ">" au lieu de ">=".
  • Activer strict max: si cette option est activée, la vérification de la règle utilise "<" au lieu de "<=".

Types de règles SQL personnalisées compatibles

Les règles SQL offrent la flexibilité nécessaire pour étendre la validation avec une logique personnalisée. Ces règles se présentent sous les types suivants.

Type de règle Règle au niveau des lignes ou agrégation Description Types de colonnes compatibles Paramètres spécifiques à la règle Exemple
État de la ligne Au niveau de la ligne

Spécifiez une attente pour chaque ligne en définissant une expression SQL dans une clause WHERE. L'expression SQL doit renvoyer la valeur true (pass) ou false (fail) par ligne. Dataplex calcule le pourcentage de lignes qui répondent à cette attente et compare cette valeur au pourcentage de seuil de réussite pour déterminer si la règle a réussi ou échoué.

L'expression peut inclure une référence à une autre table, par exemple pour créer des vérifications d'intégrité référentielle.

Toutes les colonnes Obligatoire:
  • Condition SQL à utiliser
  • Pourcentage du seuil de réussite
  • Dimension
Facultatif:
  • Colonne à laquelle associer cette règle.
grossWeight <= netWeight
Condition de table
(expression SQL agrégative)
Agréger

Ces règles sont exécutées une fois par table. Fournissez une expression SQL qui renvoie la valeur booléenne true (PASS) ou false (FAIL).

L'expression SQL peut inclure une référence à un autre tableau à l'aide de sous-requêtes d'expression.

Toutes les colonnes Obligatoire:
  • Condition SQL à utiliser
  • Dimension
Facultatif:
  • Colonne à laquelle associer cette règle

Exemple d'agrégation 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(*)

Assertion SQL Agréger

Une règle d'assertion utilise une requête de qualité des données pour rechercher les lignes qui ne respectent pas une ou plusieurs conditions spécifiées dans la requête. Fournissez une instruction SQL qui doit être évaluée afin de renvoyer les lignes qui correspondent à l'état non valide. Si la requête renvoie des lignes, la règle échoue.

Omettre le point-virgule final de l'instruction SQL.

L'instruction SQL peut inclure une référence à une autre table à l'aide de sous-requêtes d'expression.

Toutes les colonnes Obligatoire:
  • Instruction SQL pour vérifier l'état non valide
  • Dimension
Facultatif:
  • Colonne à laquelle associer cette règle.

Exemple d'agrégation simple pour vous assurer que discount_pct n'est pas supérieur à 100:
SELECT * FROM example_project.example_dataset.table WHERE discount_pct > 100

Utilisation d'une sous-requête d'expression pour comparer des valeurs dans une autre table:
SELECT * FROM `example_project.example_dataset.different-table` WHERE gross_weight > (SELECT avg(gross_weight) FROM `example_project.example_dataset.different-table`)

Pour obtenir des exemples de règles, consultez la section Exemples de règles de qualité automatique des données.

Pour connaître les fonctions SQL compatibles, consultez la documentation de référence GoogleSQL.

Dimensions

Les dimensions vous permettent d'agréger les résultats de plusieurs règles de qualité des données à des fins de surveillance et d'alerte. Vous devez associer chaque règle de qualité des données à une dimension. Dataplex est compatible avec les dimensions suivantes:

  • Actualisation
  • Volume
  • Exhaustivité
  • Validité
  • Cohérence
  • Précision
  • Unicité

Saisie au clavier dans les règles

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

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

Type Formats compatibles Examples
Binaire Valeur encodée en base64 YXBwbGU=
Horodatage AAAA-[M]M-[D]D[( |T)[H]H:[M]M:[S]S[.F]] [fuseau_horaire]
OU AAAA-[M]M-[D]D[( |T)[H]H:[M]M:[S]S[.F]][décalage_fuseau_horaire]
2014-09-27 12:30:00.45-08
Date AAAA-M[M]-D[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]] 2014-09-27 12:30:00.45

Paramètre de référence des données

Lorsque vous créez une règle SQL personnalisée, vous pouvez faire référence à une table de source de données et à tous ses filtres de précondition en utilisant le paramètre de référence de données ${data()} dans la règle, au lieu de mentionner explicitement la table source et ses filtres. Dataplex interprète le paramètre comme une référence à la table source et à ses filtres. Exemples de filtres de précondition : filtres de ligne, pourcentages d'échantillonnage et filtres incrémentaux.

Par exemple, supposons que vous disposiez d'une table de source de données appelée my_project_id.dim_dataset.dim_currency. Vous souhaitez exécuter une analyse de la qualité des données incrémentielle qui n'analyse que les nouvelles données quotidiennes. Un filtre de ligne qui filtre les entrées d'aujourd'hui, transaction_timestamp >= current_date(), est appliqué au tableau.

Une règle SQL personnalisée permettant de trouver les lignes avec discount_pct pour aujourd'hui se présente comme suit:

discount_pct IN (SELECT discount_pct FROM my_project_id.dim_dataset.dim_currency WHERE transaction_timestamp >= current_date())

Si vous utilisez le paramètre de référence de données, vous pouvez simplifier la règle. Remplacez la mention de la table et de ses filtres de précondition par le paramètre ${data()}:

discount_pct IN (SELECT discount_pct FROM ${data()})

Dataplex interprète le paramètre ${data()} comme une référence à la table de la source de données avec les entrées d'aujourd'hui, my_project_id.dim_dataset.dim_currency WHERE transaction_timestamp >= current_date(). Dans cet exemple, le paramètre de référence des données ne fait référence qu'aux données incrémentielles.

Le paramètre ${data()} est sensible à la casse.

Lorsque vous utilisez un alias dans une sous-requête pour faire référence aux colonnes de la table source, utilisez le paramètre de référence de données pour faire référence à la table source ou omettez la référence de table. Ne faites pas référence aux colonnes du tableau source à l'aide d'une référence directe au tableau dans la clause WHERE.

Recommandations :

  • Utilisez le paramètre de référence de données pour faire référence à la table source:

    discount_pct IN (
    SELECT discount_pct FROM
    `my_project_id.dim_dataset.dim_currency` AS temp-table
    WHERE
    temp-table.transaction_timestamp = ${data()}.timestamp
    )
    
  • Omettre la référence au tableau:

    discount_pct IN (
    SELECT discount_pct FROM
    `my_project_id.dim_dataset.dim_currency` AS temp-table
    WHERE
    temp-table.transaction_timestamp = timestamp
    )
    

Option déconseillée :

  • N'utilisez pas de référence directe à un tableau pour faire référence aux colonnes de la table source:

    discount_pct IN (
    SELECT discount_pct FROM
    `my_project_id.dim_dataset.dim_currency` AS temp-table
    WHERE
    temp-table.transaction_timestamp = `my_project_id.dim_dataset.dim_currency`.timestamp
    )
    

Exécution de règles

Vous pouvez planifier l'exécution d'analyses de qualité des données à un intervalle spécifique ou exécuter une analyse à la demande. Pour gérer les analyses de qualité des données, vous pouvez utiliser l'API ou la consoleGoogle 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 qualité des données, vous pouvez spécifier l'étendue d'une tâche comme suit:

Tableau complet
Chaque tâche valide l'intégralité de la table.
Incrémentielle
Chaque tâche valide les données incrémentielles. Pour déterminer les incréments, fournissez une colonne Date / Timestamp dans le tableau qui peut être utilisée comme repère. Il s'agit généralement de la colonne par rapport à laquelle la table est partitionnée.

Filtrer les données

Dataplex peut filtrer les données à analyser pour la qualité des données à l'aide d'un filtre de ligne. Créer un filtre de ligne vous permet de vous concentrer sur les données d'une période ou d'un segment spécifiques, comme une région. L'utilisation de filtres peut réduire le temps d'exécution et les coûts, par exemple en filtrant les données avec un code temporel antérieur à 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 la qualité des données sur un échantillon de données plus petit peut réduire le temps d'exécution et les coûts liés à l'interrogation de l'ensemble de données complet.

Résultats de l'analyse de la qualité des données

Les résultats de vos analyses de la qualité des données sont disponibles dans Dataplex. Vous pouvez également examiner et analyser les résultats de l'analyse à l'aide des méthodes suivantes:

  • Exporter les résultats vers BigQuery

    Vous pouvez exporter les résultats de l'analyse dans une table BigQuery pour une analyse plus approfondie. Pour personnaliser les rapports, vous pouvez connecter les données de la table BigQuery à un tableau de bord Looker. Vous pouvez créer un rapport agrégé en utilisant la même table de résultats pour plusieurs analyses.

  • Publier les résultats dans la console Google Cloud

    Vous pouvez publier les résultats de l'analyse de la qualité des données sur les pages BigQuery et Data Catalog de la table source dans la consoleGoogle Cloud . Les derniers résultats de l'analyse sont disponibles dans l'onglet Qualité des données de la table source.

  • Examiner les niveaux de qualité des données

    Chaque résultat d'analyse fournit des scores de qualité des données qui indiquent le pourcentage de règles acceptées. Les scores sont indiqués au niveau de la tâche globale, du niveau de la colonne (si la règle est évaluée par rapport à une colonne) et du niveau de la dimension. Utilisez les scores de qualité des données pour normaliser la qualité des données dans les tables ou les colonnes, suivre les tendances et identifier les données qui ne répondent pas aux exigences de qualité.

Pour en savoir plus, consultez la section Afficher les résultats de l'analyse de qualité des données.

Surveillance et alertes

Vous pouvez surveiller et recevoir des alertes sur les analyses de qualité des données à l'aide des méthodes suivantes:

  • Définir des alertes dans Cloud Logging

    Vous pouvez surveiller les tâches de qualité des données à l'aide des journaux data_scan et data_quality_scan_rule_result dans 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 des données.
    • Détails de l'exécution de la tâche, 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 du job d'évaluation de la qualité des données: réussite ou échec.
    • Échec ou réussite au niveau de la dimension.

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

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

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

  • Envoyer des rapports sur les notifications par e-mail

    Vous pouvez envoyer des rapports de notification par e-mail pour informer les utilisateurs de l'état et des résultats d'une tâche de qualité des données. Les rapports sur les notifications sont disponibles pour les scénarios suivants:

    • Le niveau de qualité des données est inférieur à un niveau cible spécifié
    • Échec de la tâche
    • La tâche est terminée

    Vous configurez les rapports de notification lorsque vous créez une analyse de qualité des données.

Résoudre les problèmes de qualité des données

Lorsqu'une règle échoue, Dataplex génère une requête pour obtenir les enregistrements ayant échoué. Exécutez cette requête pour afficher les enregistrements qui ne correspondent pas à votre règle. Pour en savoir plus, consultez Résoudre un problème de qualité des données.

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 pas compatibles avec gcloud CLI.
  • Le choix des dimensions est limité à 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.
  • Les scores de qualité des données qui sont signalés au niveau de la colonne ne sont acceptés que dans l'API.

Tarifs

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

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

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

  • Les analyses de qualité des données qui échouent ne sont pas facturées.

  • 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 de la règle de qualité des données, des paramètres de partitionnement et de clustering du tableau, ainsi que de la fréquence de l'analyse.

  • Plusieurs options permettent de réduire les coûts des analyses automatiques de qualité des données:

  • Pour séparer les frais de qualité des données des autres frais dans le SKU de traitement premium Dataplex, dans le rapport Cloud Billing, utilisez le libellé goog-dataplex-workload-type avec la valeur DATA_QUALITY.

  • Pour filtrer les frais cumulés, utilisez les libellés suivants:

    • 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