La qualité automatique des données de Dataplex Universal Catalog vous permet de définir et de mesurer la qualité des données dans vos tables BigQuery. 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 et les déploiements de qualité des données en tant que code, ce qui améliore l'intégrité des pipelines de production de données.
Pour commencer, vous pouvez utiliser les recommandations de règles de profilage des données Dataplex Universal Catalog ou créer des règles personnalisées dans la console Google Cloud . Dataplex Universal Catalog fournit des fonctionnalités de surveillance, de dépannage et d'alertes Cloud Logging intégrées à la qualité des données automatique de Dataplex Universal Catalog.
Modèle conceptuel
Une analyse de données est une tâche Dataplex Universal Catalog qui échantillonne les données de BigQuery et 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 n'est exécutée 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 :
- Définir des règles de qualité des données
- Configurer l'exécution des règles
- Analyser les résultats d'analyse de qualité des données
- Configurer la surveillance et les alertes
- Résoudre les échecs de qualité des données
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 en termes de données. Vous pouvez créer des règles de qualité des données de différentes manières :
- Utiliser les recommandations du profilage des données Dataplex Universal Catalog
- Utiliser les règles prédéfinies
- Créer des règles SQL personnalisées
Règles prédéfinies
Dataplex Universal Catalog 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 réussit ou échoue indépendamment à la condition. 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 respectant la règle est inférieur à la valeur seuil, la règle échoue.
- Agréger
Pour les règles d'agrégation, 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éennetrue
. Les règles d'agrégation ne fournissent pas de nombre indépendant de réussites ou d'échecs pour chaque ligne.
Pour les deux catégories de règles, vous pouvez définir les paramètres suivants :
- Colonne à laquelle s'applique la règle
- Une dimension
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égée | Description | Types de colonnes acceptés | Paramètres spécifiques aux règles |
---|---|---|---|---|
RangeExpectation (Vérification de la plage) |
Au niveau de la ligne | Vérifiez si la valeur est comprise entre le minimum et le maximum. | Toutes les colonnes de type numérique, date et code temporel. | Obligatoire:
|
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:
|
SetExpectation (Vérification de l'ensemble) |
Au niveau de la ligne | Vérifier si les valeurs d'une colonne font partie d'un ensemble de valeurs spécifié. | Tous les types de colonnes acceptés, sauf Record et Struct . |
Obligatoire:
|
RegexExpectation (Vérification des expressions régulières) |
Au niveau de la ligne | Vérifiez les valeurs par rapport à une expression régulière spécifiée. | Chaîne | Obligatoire:
|
Uniqueness (Vérification de l'originalité) |
Agréger | Vérifiez si toutes les valeurs d'une colonne sont uniques. | Tous les types de colonnes acceptés, sauf Record et Struct . |
Obligatoire:
|
StatisticRangeExpectation (Vérification des statistiques) |
Agréger | Vérifie si la mesure statistique donnée correspond à la plage attendue. | Tous les types de colonnes numériques acceptés. | Obligatoire:
|
Types de règles SQL personnalisées acceptés
Les règles SQL offrent la possibilité d'é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égée | Description | Types de colonnes acceptés | Paramètres spécifiques aux règles | Exemple |
---|---|---|---|---|---|
Condition de ligne | Au niveau de la ligne | Spécifiez une attente pour chaque ligne en définissant une expression SQL dans une clause L'expression peut inclure une référence à une autre table, par exemple pour créer des vérifications de l'intégrité référentielle. |
Toutes les colonnes | Obligatoire:
|
grossWeight <= netWeight |
Condition de table (expression SQL d'agrégation) |
Agréger | Ces règles sont exécutées une fois par table. Fournissez une expression SQL qui renvoie la valeur booléenne L'expression SQL peut inclure une référence à un autre tableau à l'aide de sous-requêtes d'expression. |
Toutes les colonnes | Obligatoire:
|
Exemple d'agrégation simple : Utiliser une sous-requête d'expression pour comparer des valeurs dans une autre table : |
Assertion SQL | Agréger | Une règle d'assertion utilise une requête de qualité des données pour trouver 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. Omettez le point-virgule de fin 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:
|
Exemple d'agrégat simple pour s'assurer que Utiliser une sous-requête d'expression pour comparer des valeurs dans une autre table : |
Pour obtenir des exemples de règles, consultez Exemples de règles de qualité automatique des données.
Pour connaître les fonctions SQL compatibles, consultez la documentation de référence sur GoogleSQL.
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 Universal Catalog fournit les dimensions suivantes :
- Actualisation
- La fraîcheur indique la date de la dernière mise à jour des données. Ces informations peuvent vous aider à déterminer si les données sont suffisamment récentes pour être utiles.
- Volume
- Le volume indique si toutes les données attendues sont présentes.
- Exhaustivité
- L'exhaustivité évalue si les données contiennent toutes les informations requises pour leur objectif.
- Validité
- La validité évalue si les données sont conformes aux normes prédéfinies concernant le format, les plages acceptables ou d'autres critères. Par exemple, si une date valide doit être au format
YYYY/mm/dd
, alors 08-12-2019 est une donnée non valide. Autre exemple : si un prix soldé valide pour un article est compris entre 10 $et 20 $, un prix soldé de 100 $est une donnée non valide. - Cohérence
- La cohérence fait référence à l'utilisation des mêmes valeurs pour les données dans plusieurs instances, telles que les tables et les colonnes. Une incohérence des données se produit, par exemple, lorsque les revenus d'un produit diffèrent selon qu'ils sont lus dans une base de données de ventes ou dans une base de données d'utilisation.
- Précision
- La justesse reflète l'exactitude des données. Notez que des données valides ne sont pas nécessairement exactes. Par exemple, la couleur de cheveux "brun" peut être une donnée valide, mais si une personne n'a pas les cheveux bruns, il s'agit d'une donnée inexacte.
- Unicité
- L'unicité mesure si les données sont distinctes et ne contiennent pas de doublons.
Saisie au clavier dans les règles
Tous les paramètres de valeur sont transmis à l'API sous forme de chaînes. Le catalogue universel Dataplex exige que les entrées respectent le format spécifié pour BigQuery.
Les paramètres de type binaire peuvent être transmis sous forme de chaîne encodée en base64.
Type | Formats compatibles | Exemples |
---|---|---|
Binaire | Valeur encodée en base64 | YXBwbGU= |
Horodatage | AAAA-[M]M-[J]J[( |T)[H]H:[M]M:[S]S[.F]] [time_zone] OU AAAA-[M]M-[J]J[( |T)[H]H:[M]M:[S]S[.F]][time_zone_offset] |
2014-09-27 12:30:00.45-08 |
Date | AAAA-M[M]-J[J] | 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éconditions 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 Universal Catalog interprète le paramètre comme une référence à la table source et à ses filtres. Les filtres de préconditions incluent les filtres de lignes, les pourcentages d'échantillonnage et les 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 incrémentielle de la qualité des données 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.
Voici à quoi ressemble une règle SQL personnalisée permettant de trouver les lignes avec discount_pct
pour aujourd'hui :
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éconditions par le paramètre ${data()}
:
discount_pct IN (SELECT discount_pct FROM ${data()})
Dataplex Universal Catalog interprète le paramètre ${data()}
comme une référence à la table de source de données avec les entrées du jour, my_project_id.dim_dataset.dim_currency WHERE transaction_timestamp >= current_date()
.
Dans cet exemple, le paramètre de référence de 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 à des colonnes de la table source, utilisez le paramètre de référence aux données pour faire référence à la table source ou omettez la référence à la table. Ne faites pas référence aux colonnes de la table source en utilisant une référence directe à la table dans la clause WHERE
.
Recommandations :
Utilisez le paramètre de référence aux 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 )
Omettez la référence à la table :
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 à une table 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 des règles
Vous pouvez programmer des analyses de la qualité des données pour qu'elles s'exécutent à un intervalle spécifique ou les exécuter à la demande. Pour gérer les analyses de la 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 Universal Catalog crée un job. Lorsque vous spécifiez une analyse de la qualité des données, vous pouvez définir le champ d'application d'un job sur l'une des valeurs suivantes :
- Table complète
- Chaque job valide l'intégralité de la table.
- Incrémentielle
- Chaque job valide les données incrémentielles. Pour déterminer les incréments, fournissez une colonne
Date
/Timestamp
dans le tableau qui peut servir de repère. Il s'agit généralement de la colonne par rapport à laquelle la table est partitionnée.
Filtrer les données
Dataplex Universal Catalog 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 donnée. L'utilisation de filtres peut réduire le temps d'exécution et les coûts. Par exemple, vous pouvez filtrer les données dont le code temporel est antérieur à une certaine date.
Exemples de données
Dataplex Universal Catalog 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. La création d'analyses de la qualité des données sur un échantillon de données plus petit peut réduire le temps d'exécution et le coût par rapport à l'interrogation de l'ensemble de données.
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 Universal Catalog. 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 en tant que métadonnées Dataplex Universal Catalog
Vous pouvez publier les résultats de l'analyse de la qualité des données en tant que métadonnées Dataplex Universal Catalog. Les derniers résultats sont enregistrés dans l'entrée Dataplex Universal Catalog qui représente la table source, sous le type d'aspect système
data-quality-scorecard
. Vous pouvez afficher les résultats sur les pages BigQuery et Dataplex Universal Catalog de la table source dans la console Google Cloud , sous l'onglet Qualité des données. Vous pouvez également récupérer les résultats à l'aide de l'API.Pour en savoir plus sur les métadonnées de Dataplex Universal Catalog, consultez À propos de la gestion du catalogue de données dans Dataplex Universal Catalog.
Examiner les scores 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 respectées. Les scores sont indiqués au niveau global du job, au niveau de la colonne (si la règle est évaluée par rapport à une colonne) et au 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 Afficher les résultats d'analyse de qualité des données.
Surveillance et alertes
Vous pouvez surveiller les analyses de la qualité des données et recevoir des alertes à leur sujet à l'aide des méthodes suivantes :
Définir des alertes dans Cloud Logging
Vous pouvez surveiller les jobs de qualité des données à l'aide des journaux
data_scan
etdata_quality_scan_rule_result
dans l'explorateur de journaux.Pour chaque job de qualité des données, le journal
data_scan
avec le champdata_scan_type
défini surDATA_QUALITY
contient les informations suivantes :- Source de données utilisée pour l'analyse des données.
- Détails de l'exécution du job, tels que l'heure de création, l'heure de début, l'heure de fin et l'état du job.
- Résultat du job d'évaluation de la qualité des données : réussite ou échec.
- Indique si la dimension a réussi ou échoué.
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, le type et le type d'évaluation de la règle, ainsi que la dimension.
- Informations sur les résultats, telles que la réussite ou l'échec, le nombre total de lignes, le nombre de lignes réussies, le nombre de lignes nulles et le nombre de lignes évaluées.
Les informations contenues dans les journaux sont disponibles via l'API et la consoleGoogle Cloud . Vous pouvez utiliser ces informations pour configurer des alertes. Pour en savoir plus, consultez Définir des alertes dans Logging.
Envoyer des rapports de 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'un job de qualité des données. Les rapports de notification sont disponibles pour les scénarios suivants :
- Le niveau de qualité des données est inférieur à un score cible spécifié
- Échec du job
- La tâche est terminée
Vous configurez les rapports de notification lorsque vous créez une analyse de la qualité des données.
Résoudre les échecs de qualité des données
Lorsqu'une règle échoue, Dataplex Universal Catalog génère une requête pour obtenir les enregistrements ayant échoué. Exécutez cette requête pour afficher les enregistrements qui ne correspondaient pas à votre règle. Pour en savoir plus, consultez Résoudre un échec de qualité des données.
Limites
- La publication des résultats d'analyse de la qualité des données en tant que métadonnées Dataplex Universal Catalog n'est pas prise en charge dans la console Google Cloud .
- Les recommandations de règles ne sont pas disponibles dans 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 signalés au niveau des colonnes ne sont acceptés que dans l'API.
Tarifs
Dataplex Universal Catalog utilise le code SKU de traitement Premium pour facturer la qualité des données automatique. Pour en savoir plus, consultez les tarifs de Dataplex Universal Catalog.
Le traitement Premium de Dataplex Universal Catalog pour la qualité automatique des données est facturé à la seconde, avec un minimum d'une minute.
Les analyses de la qualité des données qui échouent ne sont pas facturées.
Les frais dépendent du nombre de lignes et 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 de la table, ainsi que de la fréquence de l'analyse.
Plusieurs options permettent de réduire le coût des analyses automatiques de la qualité des données :
Pour séparer les frais liés à la qualité des données des autres frais dans le SKU de traitement premium Dataplex Universal Catalog, utilisez le libellé
goog-dataplex-workload-type
avec la valeurDATA_QUALITY
dans le rapport sur la facturation Cloud.Pour filtrer les frais agrégé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
- Découvrez comment utiliser la qualité automatique des données.
- En savoir plus sur le profilage des données
- Découvrez comment utiliser le profilage de données.