Ce document décrit la qualité automatique des données Dataplex, 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 consigner les alertes les données ne répondent pas aux exigences de qualité. Vous pouvez gérer les règles de qualité des données des déploiements en tant que code, ce qui améliore l'intégrité des pipelines de production de données.
Vous pouvez commencer en utilisant Profilage de données Dataplex les recommandations de règles ou créer des règles personnalisées dans la console Google Cloud. Dataplex fournit des fonctionnalités de surveillance, de dépannage et Alertes Cloud Logging intégrées à Dataplex la qualité des données.
Modèle conceptuel
Une analyse des données est une tâche Dataplex qui échantillonne les données de BigQuery et de Cloud Storage, et infère divers types de métadonnées. Pour mesurer la qualité d'une table à l'aide de la qualité des données automatiques, vous créez
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 :
- Définir des règles de qualité des données
- Configurer l'exécution des règles
- Analyser les résultats de l'analyse de qualité des données
- Configurer la surveillance et les alertes
- 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 la qualité des données définissent les données à vos attentes. Vous pouvez créer des règles de qualité des données de différentes manières:
- Utiliser les recommandations du profilage de données Dataplex
- Utiliser les règles prédéfinies
- Créer des règles SQL personnalisées
Règles prédéfinies
Dataplex accepte deux catégories de règles prédéfinies: au niveau de la ligne ou agréger des donné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 d'agrégation, on s'attend à appliquée à une valeur unique 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éentrue
. 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 issue d'un ensemble de dimensions prédéfinies.
Le tableau suivant répertorie les types de règles d'agrégation et de niveau ligne compatibles:
Type de règle (nom dans la console Google Cloud) |
Règle au niveau de la ligne ou règle d'agrégation | Description | Types de colonnes acceptés | 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 code temporel. | Obligatoire:
|
NonNullExpectation (Vérification de la valeur nulle) |
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 (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 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érifier 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érifiez si la mesure statistique donnée correspond aux attentes concernant la plage. | Tous les types de colonnes numériques acceptés. | Obligatoire:
|
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 de la ligne ou règle d'agrégation | Description | Types de colonnes acceptés | Paramètres propres à la règle | Exemple |
---|---|---|---|---|---|
État de la ligne | Au niveau de la ligne | Spécifiez une attente pour chaque ligne en définissant un code SQL
dans une clause 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:
|
grossWeight <= netWeight |
Condition de table (expression SQL agrégée) |
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 : Utilisation d'une sous-requête d'expression pour comparer les valeurs d'une autre table : |
Assertion SQL | Agréger | Une règle d'assertion utilise une requête de qualité des données pour identifier les lignes qui échouent une ou plusieurs conditions spécifiées dans la requête. Fournissez une instruction SQL qui est évaluée pour renvoyer les lignes correspondant à l'état non valide. Si le 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:
|
Exemple d'agrégation simple pour s'assurer que Utilisation d'une sous-requête d'expression pour comparer les valeurs d'une autre table : |
Pour obtenir des exemples de règles, consultez les exemples de règles relatives à la qualité des données automatiques.
Pour connaître les fonctions SQL compatibles, consultez la documentation de référence GoogleSQL.
Dimensions
Les dimensions vous permettent de regrouper 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
- Précision
- Unicité
Saisie au clavier dans les règles
Tous les paramètres de valeur sont transmis sous forme de valeurs de chaîne à l'API. Dataplex exige que les entrées respectent le format spécifié par BigQuery.
Les paramètres de type binaire peuvent être transmis sous forme de 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] |
27-09-2014 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]] | 27-09-2014 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
de ses filtres de condition préalable à l'aide du 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 source.
tableau et ses filtres. Exemples de filtres de précondition : filtres de ligne, pourcentages d'échantillonnage et filtres incrémentaux.
Par exemple, supposons que vous ayez une table de source de données appelée
my_project_id.dim_dataset.dim_currency
Vous voulez exécuter un pipeline de données
de qualité qui n'analyse que les nouvelles données quotidiennes. Un filtre de ligne qui filtre
les entrées du jour, transaction_timestamp >= current_date()
, sont appliquées
tableau.
Voici 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 le
la mention de la table et de ses filtres de condition préalable avec ${data()}
:
discount_pct IN (SELECT discount_pct FROM ${data()})
Dataplex interprète le paramètre ${data()}
comme
à 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 fait uniquement référence aux
données.
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,
vous pouvez soit utiliser le paramètre de référence de données pour faire référence à la table source, soit omettre
la référence du tableau. Ne faites pas référence aux colonnes de la table source en utilisant un
référence directe à la table 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 de 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 de la règle
Vous pouvez planifier l'exécution des analyses de qualité des données à un intervalle spécifique ou exécuter une analyse à la demande. Pour gérer les analyses de la qualité des données, vous pouvez utiliser l'API ou console Google Cloud.
Lorsque vous exécutez une analyse de la qualité des données, Dataplex crée un job. Dans le cadre de la spécification d'une analyse de la qualité des données, vous pouvez spécifier la portée d'un job doit correspondre à 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. À
déterminez les incréments, fournissez une colonne
Date
/Timestamp
dans qui peut servir de repère. Généralement, il s'agit de la colonne sur laquelle 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 et le coût d'exécution, par exemple en filtrant les données avec un code temporel 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 la qualité des données un échantillon de données plus petit peut réduire le temps d'exécution et le coût lié à l'interrogation 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 cumulé 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 les pages BigQuery et Data Catalog de la console Google Cloud. Les résultats des dernières analyses sont disponibles sur le 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 respectées. Les scores sont indiqués au niveau global du poste, 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 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 jobs liés à la qualité des données à l'aide des
data_scan
et Journauxdata_quality_scan_rule_result
dans l'explorateur de journaux.Pour chaque tâche 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 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 ayant réussi contient un
data_quality_scan_rule_result
journal avec les informations détaillées suivantes sur chaque règle de cette tâche:- Informations de configuration, telles que le nom, le type de règle, le type d'évaluation et la dimension.
- Informations sur les résultats, telles que des réussites ou des échecs, le nombre total de lignes, la ligne de transmission le nombre de lignes, le nombre de lignes nulles et le nombre de lignes évalué.
Les informations des journaux sont disponibles via l'API et la console Google Cloud. Vous pouvez utiliser ces informations pour configurer des alertes. Pour Pour en savoir plus, consultez Définir des alertes dans Logging
Envoyer des notifications par e-mail
Vous pouvez envoyer des notifications par e-mail pour informer les utilisateurs de l'état et des résultats d'une tâche de qualité des données. Les notifications sont disponibles pour scénarios suivants:
- Le niveau de qualité des données est inférieur à un niveau cible spécifié
- Échec du job
- La tâche est terminée
Vous configurez les notifications lorsque vous Créer une analyse de la 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 récupérer les d'enregistrements. Exécutez cette requête pour afficher les enregistrements qui ne correspondent pas à votre règle. Pour 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 disponibles dans la gcloud CLI.
- Les dimensions choisies sont définies 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.
- Les notifications par e-mail ne sont compatibles qu'avec la CLI et l'API gcloud.
- 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 SKU de traitement Premium pour facturer les services la qualité des données. Pour en savoir plus, consultez les tarifs de Dataplex.
La publication des résultats de la qualité automatique des données dans Catalog n'est pas encore disponible. Quand devient disponible, elle sera facturée au même tarif que les métadonnées du catalogue les tarifs de stockage. Reportez-vous à la page Tarifs pour en savoir plus.
Le traitement Premium de Dataplex pour la qualité automatique des données est facturé par seconde avec une durée minimale d'une minute.
Aucuns frais ne sont facturés pour les analyses de qualité des données ayant échoué.
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 de la table, ainsi que de la fréquence de l'analyse gscan.
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 valeurDATA_QUALITY
.Pour filtrer 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
- Découvrez comment utiliser la qualité automatique des données.
- En savoir plus sur le profilage de données
- Découvrez comment utiliser le profilage de données.