Cette page explique comment créer une analyse de la qualité des données Dataplex.
Pour en savoir plus sur les analyses de la qualité des données, consultez la page À propos de la qualité automatique des données.
Avant de commencer
Activez l'API Dataplex.
Facultatif: si vous souhaitez que Dataplex génère des recommandations pour les règles de qualité des données en fonction des résultats d'une analyse de profilage des données, créez et exécutez l'analyse de profilage des données.
Rôles requis
Pour exécuter une analyse de qualité des données sur une table BigQuery, vous devez disposer de l'autorisation de lire la table BigQuery et de créer un job BigQuery dans le projet utilisé pour analyser la table.
Si la table BigQuery et l'analyse de qualité des données se trouvent dans des projets différents, vous devez attribuer au compte de service Dataplex du projet contenant l'analyse de qualité des données l'autorisation de lecture pour la table BigQuery correspondante.
Si les règles de qualité des données font référence à des tables supplémentaires, le compte de service du projet d'analyse doit disposer d'autorisations de lecture sur les mêmes tables.
Pour obtenir les autorisations nécessaires pour exporter les résultats de l'analyse vers une table BigQuery, demandez à votre administrateur d'accorder au compte de service Dataplex le rôle IAM "Éditeur de données BigQuery" (
roles/bigquery.dataEditor
) sur l'ensemble de données et la table des résultats. Cela accorde les autorisations suivantes:bigquery.datasets.get
bigquery.tables.create
bigquery.tables.get
bigquery.tables.getData
bigquery.tables.update
bigquery.tables.updateData
Si les données BigQuery sont organisées dans un lac Dataplex, attribuez au compte de service Dataplex les rôles IAM Lecteur de métadonnées Dataplex (
roles/dataplex.metadataReader
) et Lecteur Dataplex (roles/dataplex.viewer
). Vous devez également disposer de toutes les autorisations suivantes:dataplex.lakes.list
dataplex.lakes.get
dataplex.zones.list
dataplex.zones.get
dataplex.entities.list
dataplex.entities.get
dataplex.operations.get
Si vous analysez une table externe BigQuery à partir de Cloud Storage, attribuez au compte de service Dataplex le rôle Cloud Storage
roles/storage.objectViewer
pour le bucket. Vous pouvez également attribuer au compte de service Dataplex les autorisations suivantes:storage.buckets.get
storage.objects.get
Si vous souhaitez publier les résultats de l'analyse de qualité des données sur les pages BigQuery et Data Catalog de la console Google Cloud pour les tables sources, vous devez disposer du rôle IAM Éditeur de données BigQuery (
roles/bigquery.dataEditor
) pour la table. Vous devez également disposer de toutes les autorisations suivantes:bigquery.tables.get
bigquery.tables.update
bigquery.tables.updateData
bigquery.tables.delete
Si vous devez accéder à des colonnes protégées par des stratégies d'accès au niveau des colonnes BigQuery, attribuez les autorisations du compte de service Dataplex à ces colonnes. L'utilisateur qui crée ou met à jour une analyse de données a également besoin d'autorisations pour les colonnes.
Si des règles d'accès BigQuery au niveau des lignes sont activées pour une table, vous ne pouvez analyser que les lignes visibles par le compte de service Dataplex. Notez que les droits d'accès de l'utilisateur individuel ne sont pas évalués pour les règles au niveau des lignes.
Rôles de numérisation des données requis
Pour utiliser la qualité automatique des données, vous devez disposer des autorisations nécessaires pour exécuter des analyses de données ou d'un rôle avec des autorisations prédéfinies pour exécuter des analyses de données.
Le tableau suivant répertorie les autorisations DataScan
:
Nom de l'autorisation | Accorde l'autorisation d'effectuer les opérations suivantes: |
---|---|
dataplex.datascans.create |
Créer un objet DataScan |
dataplex.datascans.delete |
Supprimer un objet DataScan |
dataplex.datascans.get |
Afficher les métadonnées opérationnelles, telles que l'ID ou la planification, mais pas les résultats ni les règles |
dataplex.datascans.getData |
Afficher les détails de DataScan , y compris les règles et les résultats |
dataplex.datascans.list |
Lister les DataScan |
dataplex.datascans.run |
Exécuter un DataScan |
dataplex.datascans.update |
Mettre à jour la description d'un DataScan |
dataplex.datascans.getIamPolicy |
Afficher les autorisations IAM actuelles de l'analyse |
dataplex.datascans.setIamPolicy |
Définir les autorisations IAM sur l'analyse |
Attribuez aux utilisateurs un ou plusieurs des rôles suivants:
- Accès complet aux ressources
DataScan
: administrateur Dataplex DataScan (roles/dataplex.dataScanAdmin
) - Accès en écriture aux ressources
DataScan
: Éditeur Dataplex DataScan (roles/dataplex.dataScanEditor
) - Accès en lecture aux ressources
DataScan
, à l'exception des règles et des résultats : Lecteur Dataplex DataScan (roles/dataplex.dataScanViewer
) - Accès en lecture aux ressources
DataScan
, y compris aux règles et aux résultats : Lecteur de données Dataplex DataScan (roles/dataplex.dataScanDataViewer
)
Définir des règles de qualité des données
Vous pouvez définir des règles de qualité des données à l'aide de règles intégrées ou de contrôles SQL personnalisés. Si vous utilisez la Google Cloud CLI, vous pouvez définir ces règles dans un fichier JSON ou YAML.
Les exemples des sections suivantes montrent comment définir différentes règles de qualité des données. Les règles valident un exemple de table contenant des données sur les transactions des clients. Supposons que la table présente le schéma suivant:
Nom de colonne | Type de colonne | Description de la colonne |
---|---|---|
transaction_timestamp | Horodatage | Code temporel de la transaction. La table est partitionnée en fonction de ce champ. |
customer_id | Chaîne | Numéro client au format 8 lettres suivies de 16 chiffres. |
transaction_id | Chaîne | L'ID de transaction doit être unique dans la table. |
currency_id | Chaîne | L'une des devises acceptées.Le type de devise doit correspondre à l'une des devises disponibles dans la table de dimension dim_currency .
|
amount | float | Montant de la transaction. |
discount_pct | float | Pourcentage de remise. Cette valeur doit être comprise entre 0 et 100. |
Définir des règles de qualité des données à l'aide de types de règles intégrés
Les exemples de règles suivants sont basés sur des types de règles intégrés. Vous pouvez créer des règles basées sur des types de règles intégrés à l'aide de la console Google Cloud ou de l'API. Dataplex peut vous recommander certaines de ces règles.
Nom de la colonne | Type de règle | Dimension suggérée | Paramètres de la règle |
---|---|---|---|
transaction_id |
Vérification de l'originalité | Unicité | "Threshold" (Seuil) : Not Applicable |
amount |
Contrôle des valeurs NULL | Exhaustivité | "Threshold" (Seuil) : 100% |
customer_id |
Vérification de l'expression régulière | Validité | Expression régulière: ^[0-9]{8}[a-zA-Z]{16}$ Seuil: 100%
|
currency_id |
Vérification de l'ensemble de valeurs | Validité | Ensemble de: USD,JPY,INR,GBP,CAN Seuil: 100%
|
Définir des règles de qualité des données à l'aide de règles SQL personnalisées
Pour créer des règles SQL personnalisées, utilisez le framework suivant:
Lorsque vous créez une règle qui évalue une ligne à la fois, créez une expression qui génère le nombre de lignes réussies lorsque Dataplex évalue la requête
SELECT COUNTIF(CUSTOM_SQL_EXPRESSION) FROM TABLE
. Dataplex compare le nombre de lignes réussies au seuil.Lorsque vous créez une règle qui évalue les lignes ou utilise une condition de table, créez une expression qui renvoie un résultat de succès ou d'échec lorsque Dataplex évalue la requête
SELECT IF(CUSTOM_SQL_EXPRESSION) FROM TABLE
.Lorsque vous créez une règle qui évalue l'état non valide d'un ensemble de données, fournissez une instruction qui renvoie des lignes non valides. Si des lignes sont renvoyées, la règle échoue. Omettre le point-virgule final de l'instruction SQL.
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 une règle, au lieu de mentionner explicitement la table source et ses filtres. Exemples de filtres de précondition : filtres de ligne, pourcentages d'échantillonnage et filtres incrémentaux. Le paramètre${data()}
est sensible à la casse.
Les exemples de règles suivants sont basés sur des règles SQL personnalisées.
Type de règle | Description de la règle | Expression SQL |
---|---|---|
État de la ligne | Vérifie si la valeur de discount_pct est comprise entre 0 et 100.
|
0 <discount_pct AND discount_pct < 100
|
État de la ligne | Vérification de référence pour vérifier que currency_id est l'une des devises acceptées.
|
currency_id in (select id from my_project_id.dim_dataset.dim_currency)
|
État de la table | Expression SQL agrégative qui vérifie si la discount_pct moyenne se situe entre 30% et 50%.
|
30<avg(discount) AND avg(discount) <50
|
État de la ligne | Vérifie si une date n'est pas dans le futur. | TIMESTAMP(transaction_timestamp) < CURRENT_TIMESTAMP()
|
État de la table |
Fonction définie par l'utilisateur dans BigQuery (UDF, user-defined function)
pour vérifier que le montant moyen des transactions est inférieur à une valeur
par pays. Créez la UDF (JavaScript) en exécutant la commande suivante:
CREATE OR REPLACE FUNCTION myProject.myDataset.average_by_country ( country STRING, average FLOAT64) RETURNS BOOL LANGUAGE js AS R""" if (country = "CAN" && average < 5000){ return 1 } else if (country = "IND" && average < 1000){ return 1 } else { return 0 } """; |
Exemple de règle pour vérifier le montant moyen des transactions pour country=CAN .
myProject.myDataset.average_by_country( "CAN", (SELECT avg(amount) FROM myProject.myDataset.transactions_table WHERE currency_id = 'CAN' )) |
État de la table | Clause de prédiction BigQuery ML pour identifier les anomalies dans discount_pct . Il vérifie si une remise doit être appliquée en fonction de customer , currency et transaction . La règle vérifie si la prédiction correspond à la valeur réelle, au moins 99% du temps. Hypothèse: Le modèle de ML est créé avant d'utiliser la règle. Créez le modèle de ML à l'aide de la commande suivante:
CREATE MODEL model-project-id.dataset-id.model-name OPTIONS(model_type='logistic_reg') AS SELECT IF(discount_pct IS NULL, 0, 1) AS label, IFNULL(customer_id, "") AS customer, IFNULL(currency_id, "") AS currency, IFNULL(amount, 0.0) AS amount FROM `data-project-id.dataset-id.table-names` WHERE transaction_timestamp < '2022-01-01'; |
La règle suivante vérifie si la précision de la prédiction est supérieure à 99%.
SELECT accuracy > 0.99 FROM ML.EVALUATE (MODEL model-project-id.dataset-id.model-name, ( SELECT customer_id, currency_id, amount, discount_pct FROM data-project-id.dataset-id.table-names WHERE transaction_timestamp > '2022-01-01'; ) ) |
État de la ligne | Une fonction de prédiction BigQuery ML pour identifier les anomalies dans discount_pct . La fonction vérifie si une remise doit être appliquée en fonction de customer , currency et transaction .
La règle identifie toutes les occurrences où la prédiction ne correspond pas.
Hypothèse: Le modèle de ML est créé avant d'utiliser la règle. Créez le modèle ML à l'aide de la commande suivante:
CREATE MODEL model-project-id.dataset-id.model-name OPTIONS(model_type='logistic_reg') AS SELECT IF(discount_pct IS NULL, 0, 1) AS label, IFNULL(customer_id, "") AS customer, IFNULL(currency_id, "") AS currency, IFNULL(amount, 0.0) AS amount FROM `data-project-id.dataset-id.table-names` WHERE transaction_timestamp < '2022-01-01'; |
La règle suivante vérifie si la prévision de remise correspond à la remise réelle pour chaque ligne.
IF(discount_pct > 0, 1, 0) =(SELECT predicted_label FROM ML.PREDICT( MODEL model-project-id.dataset-id.model-name, ( SELECT customer_id, currency_id, amount, discount_pct FROM data-project-id.dataset-id.table-names AS t WHERE t.transaction_timestamp = transaction_timestamp LIMIT 1 ) ) ) |
Assertion SQL | Vérifie si la valeur discount_pct est supérieure à 30% pour aujourd'hui en vérifiant si des lignes existent avec un pourcentage de remise inférieur ou égal à 30. |
SELECT * FROM my_project_id.dim_dataset.dim_currency WHERE discount_pct <= 30 AND transaction_timestamp >= current_date() |
Assertion SQL (avec paramètre de référence de données) | Vérifie si la Le filtre de date Le paramètre de référence de données |
SELECT * FROM ${data()} WHERE discount_pct > 30 |
Définir des règles de qualité des données à l'aide de la CLI gcloud
L'exemple de fichier YAML suivant utilise certaines des mêmes règles que les exemples de règles utilisant des types intégrés et les exemples de règles SQL personnalisées. Vous pouvez utiliser ce fichier YAML comme entrée pour la commande gcloud CLI.
rules:
- uniquenessExpectation: {}
column: transaction_id
dimension: UNIQUENESS
- nonNullExpectation: {}
column: amount
dimension: COMPLETENESS
threshold: 1
- regexExpectation:
regex: '^[0-9]{8}[a-zA-Z]{16}$'
column : customer_id
ignoreNull : true
dimension : VALIDITY
threshold : 1
- setExpectation :
values :
- 'USD'
- 'JPY'
- 'INR'
- 'GBP'
- 'CAN'
column : currency_id
ignoreNull : true
dimension : VALIDITY
threshold : 1
- rangeExpectation:
minValue : '0'
maxValue : '100'
column : discount_pct
ignoreNull : true
dimension : VALIDITY
threshold : 1
- rowConditionExpectation:
sqlExpression : 0 < `discount_pct` AND `discount_pct` < 100
column: discount_pct
dimension: VALIDITY
threshold: 1
- rowConditionExpectation:
sqlExpression : currency_id in (select id from `my_project_id.dim_dataset.dim_currency`)
column: currency_id
dimension: VALIDITY
threshold: 1
- tableConditionExpectation:
sqlExpression : 30 < avg(discount_pct) AND avg(discount_pct) < 50
dimension: VALIDITY
- rowConditionExpectation:
sqlExpression : TIMESTAMP(transaction_timestamp) < CURRENT_TIMESTAMP()
column: transaction_timestamp
dimension: VALIDITY
threshold: 1
- sqlAssertion:
sqlStatement : SELECT * FROM `my_project_id.dim_dataset.dim_currency` WHERE discount_pct > 100
dimension: VALIDITY
Créer une analyse de qualité des données
Console
Dans la console Google Cloud, accédez à la page Qualité des données.
Cliquez sur Créer une analyse de la qualité des données.
Dans la fenêtre Define scan (Définir l'analyse), renseignez les champs suivants:
Saisissez un nom à afficher.
L'ID de l'analyse est généré automatiquement si vous ne fournissez pas le vôtre. Consultez la convention d'attribution de noms aux ressources.
Facultatif : saisissez une Description.
Dans le champ Table, cliquez sur Parcourir, sélectionnez votre table, puis cliquez sur Sélectionner. Dataplex n'est compatible qu'avec les tables BigQuery standards.
Pour les tables des ensembles de données multirégionaux, choisissez une région dans laquelle créer l'analyse de données.
Pour parcourir les tables organisées dans le lac Dataplex, cliquez sur Parcourir les lacs Dataplex.
Dans le champ Champ d'application, sélectionnez Incrémentiel ou Intégralité des données.
- Si vous choisissez Incrémentiel: dans le champ Colonne d'horodatage, sélectionnez une colonne de type
DATE
ouTIMESTAMP
dans votre table BigQuery qui augmente de façon linéaire et permet d'identifier de nouveaux enregistrements. Il peut s'agir d'une colonne qui partitionne la table.
- Si vous choisissez Incrémentiel: dans le champ Colonne d'horodatage, sélectionnez une colonne de type
(Facultatif) Ajoutez des libellés. Les étiquettes sont des paires
key:value
qui vous permettent de regrouper des objets associés ou de les combiner à d'autres ressources Google Cloud .Pour filtrer vos données, cliquez sur Filtres. Cochez la case Filtrer les lignes. La valeur d'entrée du filtre de ligne doit être une expression SQL valide pouvant être utilisée dans une clause
WHERE
en syntaxe GoogleSQL. Par exemple,col1 >= 0
. Le filtre peut être une combinaison de plusieurs conditions de colonne. Par exemple,col1 >= 0 AND col2 < 10
.Pour échantillonner vos données, dans la liste Taille d'échantillonnage, sélectionnez un pourcentage d'échantillonnage. Choisissez une valeur comprise entre 0,0% et 100,0 %, avec trois chiffres après la virgule au maximum. Pour les ensembles de données plus volumineux, choisissez un pourcentage d'échantillonnage inférieur. Par exemple, pour une table d'environ 1 PB, si vous saisissez une valeur comprise entre 0,1% et 1%, Dataplex échantillonne entre 1 et 10 To de données. Pour les analyses de données incrémentielles, Dataplex applique l'échantillonnage au dernier incrément.
Pour publier les résultats de l'analyse de qualité des données sur les pages BigQuery et Data Catalog de la console Google Cloud pour la table source, cochez la case Publier les résultats dans les interfaces utilisateur de BigQuery et de Dataplex Catalog. Vous pouvez consulter les derniers résultats de l'analyse dans l'onglet Qualité des données des pages BigQuery et Data Catalog pour la table source. Pour permettre aux utilisateurs d'accéder aux résultats d'analyse publiés, consultez Partager les résultats publiés. L'option de publication peut ne pas être disponible dans les cas suivants:
- Vous ne disposez pas des autorisations nécessaires pour la table.
- Une autre analyse de qualité des données est configurée pour publier les résultats.
Pour en savoir plus sur les autorisations requises pour afficher les résultats publiés, consultez la section Autorisations.
Cliquez sur Continuer.
Dans la fenêtre Planifier, sélectionnez l'une des options suivantes:
Répéter: exécutez votre tâche d'analyse de la qualité des données selon un calendrier: quotidien, hebdomadaire, mensuel ou personnalisé. Spécifiez la fréquence d'exécution de l'analyse et l'heure. Si vous choisissez "Personnalisé", utilisez le format cron pour spécifier la planification.
À la demande: exécutez votre tâche d'analyse de la qualité des données à la demande.
Cliquez sur Continuer.
Dans la fenêtre Règles de qualité des données, définissez les règles à configurer pour cette analyse de la qualité des données. Cliquez sur Ajouter des règles, puis choisissez l'une des options suivantes.
Recommandations basées sur les profils: créez des règles à partir des recommandations basées sur une analyse de profil de données existante.
Choisir des colonnes: sélectionnez les colonnes pour lesquelles vous souhaitez obtenir des recommandations de règles.
Analyser un projet: recommandations basées sur une analyse de profilage de données existante. Par défaut, Dataplex sélectionne les analyses de profilage du même projet que celui dans lequel vous créez l'analyse de qualité des données. Si vous avez créé l'analyse dans un autre projet, vous devez spécifier le projet à partir duquel vous souhaitez extraire les analyses de profil.
Choisir les résultats de profil: en fonction des colonnes et du projet que vous sélectionnez, plusieurs résultats de profil s'affichent.
Sélectionnez un ou plusieurs résultats de profil, puis cliquez sur OK. Une liste de règles s'affiche.
Cochez les cases correspondant aux règles que vous souhaitez modifier, puis cliquez sur Sélectionner. Une fois sélectionnées, les règles sont ajoutées à votre liste de règles actuelle. Vous pouvez ensuite modifier les règles.
Types de règles intégrés: créez des règles à partir de règles prédéfinies. Consultez la liste des règles prédéfinies.
Choisir des colonnes: sélectionnez les colonnes pour lesquelles vous souhaitez définir des règles.
Choisir des types de règles: en fonction des colonnes que vous sélectionnez, plusieurs types de règles s'affichent.
Sélectionnez un ou plusieurs types de règles, puis cliquez sur OK. Une liste de règles s'affiche.
Cochez les cases correspondant aux règles que vous souhaitez modifier, puis cliquez sur Sélectionner. Une fois sélectionnées, les règles sont ajoutées à votre liste de règles actuelle. Vous pouvez ensuite modifier les règles.
Règle de vérification des lignes SQL: créez une règle SQL personnalisée à appliquer à chaque ligne (règle de vérification des lignes SQL personnalisée).
Dans Dimension, choisissez une dimension.
Dans Seuil de réussite, choisissez un pourcentage d'enregistrements qui doivent réussir la vérification.
Dans Nom de la colonne, choisissez une colonne.
Dans le champ Fournissez une expression SQL, saisissez une expression SQL qui renvoie la valeur booléenne
true
(PASS) oufalse
(ÉCHEC). Pour en savoir plus, consultez la section Types de règles SQL personnalisées compatibles et les exemples de la section Définir des règles de qualité des données de ce document.Cliquez sur Ajouter.
Règle de vérification des agrégations SQL: créez une règle de condition de table SQL personnalisée.
Dans Dimension, choisissez une dimension.
Dans Nom de la colonne, choisissez une colonne.
Dans le champ Fournissez une expression SQL, saisissez une expression SQL qui renvoie la valeur booléenne
true
(PASS) oufalse
(ÉCHEC). Pour en savoir plus, consultez la section Types de règles SQL personnalisées compatibles et les exemples de la section Définir des règles de qualité des données de ce document.Cliquez sur Ajouter.
Règle d'assertion SQL: créez une règle d'assertion SQL personnalisée pour vérifier l'état non valide des données.
Dans Dimension, choisissez une dimension.
Facultatif: dans Nom de la colonne, sélectionnez une colonne.
Dans le champ Fournir une instruction SQL, saisissez une instruction SQL qui renvoie les lignes correspondant à l'état non valide. Si des lignes sont renvoyées, cette règle échoue. Omettre le point-virgule final de l'instruction SQL Pour en savoir plus, consultez la section Types de règles SQL personnalisées compatibles et les exemples de la section Définir des règles de qualité des données de ce document.
Cliquez sur Ajouter.
Dataplex permet d'utiliser des noms personnalisés pour les règles de qualité des données à des fins de surveillance et d'alerte. Pour toute règle de qualité des données, vous pouvez éventuellement attribuer un nom et une description personnalisés. Pour ce faire, modifiez une règle et spécifiez les informations suivantes:
- Nom de la règle: saisissez un nom de règle personnalisé de 63 caractères maximum. Le nom de la règle peut inclure des lettres (a-z, A-Z), des chiffres (0-9) et des traits d'union (-). Il doit commencer par une lettre et se terminer par un chiffre ou une lettre.
- Description: saisissez une description de la règle d'une longueur maximale de 1 024 caractères.
Cliquez sur Continuer.
Facultatif: exportez les résultats de l'analyse vers une table standard BigQuery. Dans la section Exporter les résultats d'analyse vers une table BigQuery, cliquez sur Parcourir pour sélectionner un ensemble de données BigQuery existant dans lequel stocker les résultats de l'analyse de la qualité des données.
Si la table spécifiée n'existe pas, Dataplex la crée pour vous. Si vous utilisez une table existante, assurez-vous qu'elle est compatible avec le schéma de la table d'exportation.
Facultatif: Configurez des rapports de notification par e-mail pour alerter les utilisateurs de l'état et des résultats d'une analyse de la qualité des données. Dans la section Rapport sur les notifications, cliquez sur
Ajouter un ID d'adresse e-mail, puis saisissez jusqu'à cinq adresses e-mail. Sélectionnez ensuite les scénarios pour lesquels vous souhaitez envoyer des rapports:- Niveau de qualité (<=): envoie un rapport lorsqu'une tâche aboutit avec un niveau de qualité des données inférieur au niveau cible spécifié. Saisissez un score de qualité cible compris entre 0 et 100.
- Échecs de la tâche: envoie un rapport lorsque la tâche elle-même échoue, quel que soit le résultat de la qualité des données.
- Achèvement de la tâche (réussite ou échec): envoie un rapport à la fin de la tâche, quel que soit le résultat de la qualité des données.
Cliquez sur Créer.
Une fois l'analyse créée, vous pouvez l'exécuter à tout moment en cliquant sur Run now (Exécuter maintenant).
gcloud
Pour créer une analyse de qualité des données, utilisez la commande gcloud dataplex datascans create data-quality
.
Si les données sources sont organisées dans un lac Dataplex, incluez l'indicateur --data-source-entity
:
gcloud dataplex datascans create data-quality DATASCAN \
--location=LOCATION \
--data-quality-spec-file=DATA_QUALITY_SPEC_FILE \
--data-source-entity=DATA_SOURCE_ENTITY
Si les données sources ne sont pas organisées dans un lac Dataplex, incluez l'indicateur --data-source-resource
:
gcloud dataplex datascans create data-quality DATASCAN \
--location=LOCATION \
--data-quality-spec-file=DATA_QUALITY_SPEC_FILE \
--data-source-resource=DATA_SOURCE_RESOURCE
Remplacez les variables suivantes :
DATASCAN
: nom de l'analyse de la qualité des données.LOCATION
: région dans laquelle créer l'analyse de la qualité des données. Google CloudDATA_QUALITY_SPEC_FILE
: chemin d'accès au fichier JSON ou YAML contenant les spécifications de l'analyse de la qualité des données. Il peut s'agir d'un fichier local ou d'un chemin d'accès Cloud Storage avec le préfixegs://
. Utilisez ce fichier pour spécifier les règles de qualité des données pour l'analyse. Vous pouvez également spécifier des informations supplémentaires dans ce fichier, telles que des filtres, un pourcentage d'échantillonnage et des actions post-analyse, comme l'exportation vers BigQuery ou l'envoi de rapports de notification par e-mail. Consultez la documentation sur la représentation JSON.DATA_SOURCE_ENTITY
: entité Dataplex contenant les données pour l'analyse de la qualité des données. Exemple :projects/test-project/locations/test-location/lakes/test-lake/zones/test-zone/entities/test-entity
.DATA_SOURCE_RESOURCE
: nom de la ressource contenant les données pour l'analyse de la qualité des données. Exemple ://bigquery.googleapis.com/projects/test-project/datasets/test-dataset/tables/test-table
.
REST
Utilisez l'explorateur d'API pour créer une analyse de la qualité des données.
Si vous souhaitez créer des règles pour l'analyse de qualité des données à l'aide de recommandations de règles basées sur les résultats d'une analyse de profilage des données, obtenez les recommandations en appelant la méthode dataScans.jobs.generateDataQualityRules
sur l'analyse de profilage des données.
Exporter le schéma de la table
Pour exporter les résultats de l'analyse de la qualité des données vers une table BigQuery existante, assurez-vous qu'elle est compatible avec le schéma de table suivant:
Nom de la colonne | Type de données de la colonne | Nom du sous-champ (le cas échéant) |
Type de données du sous-champ | Mode | Exemple |
---|---|---|---|---|---|
analyse_qualité_données | struct/record |
resource_name |
string |
nullable | //dataplex.googleapis.com/projects/test-project/locations/europe-west2/datascans/test-datascan |
project_id |
string |
nullable | dataplex-back-end-dev-project |
||
location |
string |
nullable | us-central1 |
||
data_scan_id |
string |
nullable | test-datascan |
||
data_source | struct/record |
resource_name |
string |
nullable | Cas de l'entité://dataplex.googleapis.com/projects/dataplex-back-end-dev-project/locations/europe-west2/lakes/a0-datascan-test-lake/zones/a0-datascan-test-zone/entities/table1 Cas de la table : //bigquery.googleapis.com/projects/test-project/datasets/test-dataset/tables/test-table
|
dataplex_entity_project_id |
string |
nullable | dataplex-back-end-dev-project |
||
dataplex_entity_project_number |
integer |
nullable | 123456789 |
||
dataplex_lake_id |
string |
nullable | (Valable uniquement si la source est une entité)test-lake
|
||
dataplex_zone_id |
string |
nullable | (Valable uniquement si la source est une entité)test-zone |
||
dataplex_entity_id |
string |
nullable | (Valable uniquement si la source est une entité)test-entity |
||
table_project_id |
string |
nullable | test-project |
||
table_project_number |
integer |
nullable | 987654321 |
||
dataset_id |
string |
nullable | (Valide uniquement si la source est une table)test-dataset |
||
table_id |
string |
nullable | (Valide uniquement si la source est une table)test-table |
||
data_quality_job_id | string |
nullable | caeba234-cfde-4fca-9e5b-fe02a9812e38 |
||
data_quality_job_configuration | json |
trigger |
string |
nullable | ondemand /schedule |
incremental |
boolean |
nullable | true /false |
||
sampling_percent |
float |
nullable | (0-100)20.0 (indique 20%) |
||
row_filter |
string |
nullable | col1 >= 0 AND col2 < 10 |
||
job_labels | json |
nullable | {"key1":value1} |
||
job_start_time | timestamp |
nullable | 2023-01-01 00:00:00 UTC |
||
job_end_time | timestamp |
nullable | 2023-01-01 00:00:00 UTC |
||
job_rows_scanned | integer |
nullable | 7500 |
||
rule_name | string |
nullable | test-rule |
||
rule_type | string |
nullable | Range Check |
||
rule_evaluation_type | string |
nullable | Per row |
||
colonne_règle | string |
nullable | Rule only attached to a certain column |
||
rule_dimension | string |
nullable | UNIQUENESS |
||
job_quality_result | struct/record |
passed |
boolean |
nullable | true /false |
score |
float |
nullable | 90.8 |
||
job_dimension_result | json |
nullable | {"ACCURACY":{"passed":true,"score":100},"CONSISTENCY":{"passed":false,"score":60}}
|
||
rule_threshold_percent | float |
nullable | (0,0-100,0)Rule-threshold-pct in API * 100 |
||
rule_parameters | json |
nullable | {min: 24, max:5345} |
||
rule_pass | boolean |
nullable | True |
||
rule_rows_evaluated | integer |
nullable | 7400 |
||
rule_rows_passed | integer |
nullable | 3 |
||
rule_rows_null | integer |
nullable | 4 |
||
rule_failed_records_query | string |
nullable | "SELECT * FROM `test-project.test-dataset.test-table` WHERE (NOT((`cTime` >= '15:31:38.776361' and `cTime` <= '19:23:53.754823') IS TRUE));" |
||
rule_assertion_row_count | integer |
nullable | 10 |
Lorsque vous configurez BigQueryExport pour une tâche d'analyse de la qualité des données, suivez ces consignes:
- Pour le champ
resultsTable
, utilisez le format ://bigquery.googleapis.com/projects/{project-id}/datasets/{dataset-id}/tables/{table-id}
. - Utilisez une table standard BigQuery.
- Si la table n'existe pas au moment de la création ou de la mise à jour de l'analyse, Dataplex la crée pour vous.
- Par défaut, la table est partitionnée quotidiennement sur la colonne
job_start_time
. - Si vous souhaitez que la table soit partitionnée dans d'autres configurations ou si vous ne souhaitez pas de partitionnement, recréez la table avec le schéma et les configurations requis, puis fournissez la table précréée comme table de résultats.
- Assurez-vous que la table des résultats se trouve au même emplacement que la table source.
- Si VPC-SC est configuré sur le projet, le tableau des résultats doit se trouver dans le même périmètre VPC-SC que le tableau source.
- Si la table est modifiée lors de l'étape d'exécution de l'analyse, le job en cours d'exécution exporte les données vers la table de résultats précédente, et le changement de table prend effet à partir du prochain job d'analyse.
- Ne modifiez pas le schéma de la table. Si vous avez besoin de colonnes personnalisées, créez une vue sur le tableau.
- Pour réduire les coûts, définissez une date d'expiration sur la partition en fonction de votre cas d'utilisation. Pour en savoir plus, consultez la section Définir le délai d'expiration de la partition.
Exécuter une analyse de qualité des données
Console
Dans la console Google Cloud, accédez à la page Qualité des données.
Cliquez sur l'analyse de la qualité des données à exécuter.
Cliquez sur Exécuter maintenant.
gcloud
Pour exécuter une analyse de la qualité des données, utilisez la commande gcloud dataplex datascans run
:
gcloud dataplex datascans run DATASCAN \ --location=LOCATION \
Remplacez les variables suivantes :
LOCATION
: région dans laquelle l'analyse de la qualité des données a été créée. Google CloudDATASCAN
: nom de l'analyse de la qualité des données.
REST
Utilisez l'explorateur d'API pour exécuter votre analyse de qualité des données.
Afficher les résultats de l'analyse de la qualité des données
Console
Dans la console Google Cloud, accédez à la page Qualité des données.
Pour afficher les résultats détaillés d'une analyse, cliquez sur son nom.
La section Vue d'ensemble affiche des informations sur les sept dernières tâches, y compris la date et l'heure de l'exécution de l'analyse, le nombre d'enregistrements analysés dans chaque tâche, si toutes les vérifications de qualité des données ont réussi, s'il y a eu des échecs, le nombre d'échecs de vérification de la qualité des données et les dimensions concernées.
La section Configuration de l'analyse de la qualité des données affiche des informations sur l'analyse.
Pour afficher les scores de qualité des données qui indiquent le pourcentage de règles respectées, cliquez sur l'onglet Historique des tâches. Cliquez ensuite sur un ID de tâche.
gcloud
Pour afficher les résultats d'une tâche d'analyse de qualité des données, utilisez la commande gcloud dataplex datascans jobs describe
:
gcloud dataplex datascans jobs describe JOB \ --location=LOCATION \ --datascan=DATASCAN \ --view=FULL
Remplacez les variables suivantes :
JOB
: ID de la tâche d'analyse de la qualité des données.LOCATION
: région dans laquelle l'analyse de la qualité des données a été créée. Google CloudDATASCAN
: nom de l'analyse de qualité des données à laquelle la tâche appartient.--view=FULL
: pour afficher le résultat de l'analyse, spécifiezFULL
.
REST
Utilisez l'explorateur d'API pour afficher les résultats d'une analyse de qualité des données.
Afficher l'historique des résultats d'analyse
Dataplex enregistre l'historique des analyses de la qualité des données des 300 dernières tâches ou de l'année précédente, selon la première éventualité.
Console
Dans la console Google Cloud, accédez à la page Qualité des données.
Cliquez sur le nom d'une analyse.
Cliquez sur l'onglet Historique des tâches.
L'onglet Historique des tâches fournit des informations sur les tâches précédentes. Il liste toutes les tâches, le nombre d'enregistrements analysés dans chaque tâche, l'état de la tâche, l'heure à laquelle la tâche a été exécutée, si chaque règle a réussi ou échoué, et plus encore.
Pour afficher des informations détaillées sur une tâche, cliquez sur l'une des tâches de la colonne ID de tâche.
gcloud
Pour afficher toutes les tâches d'une analyse de qualité des données, exécutez la commande gcloud dataplex datascans jobs list
:
gcloud dataplex datascans jobs list \ --location=LOCATION \ --datascan=DATASCAN \
Remplacez les variables suivantes :
LOCATION
: région dans laquelle l'analyse de la qualité des données a été créée. Google CloudDATASCAN
: nom de l'analyse de qualité des données pour laquelle afficher toutes les tâches.
REST
Utilisez APIs Explorer pour afficher toutes les tâches d'analyse.
Partager les résultats publiés
Lorsque vous créez une analyse de qualité des données, si vous avez choisi de publier les résultats de l'analyse sur les pages BigQuery et Data Catalog de la console Google Cloud, les derniers résultats de l'analyse seront disponibles dans l'onglet Qualité des données de ces pages.
Vous pouvez autoriser les utilisateurs de votre organisation à accéder aux résultats de l'analyse publiés. Pour accorder l'accès aux résultats de l'analyse, procédez comme suit:
Dans la console Google Cloud, accédez à la page Qualité des données.
Cliquez sur l'analyse de qualité des données dont vous souhaitez partager les résultats.
Accédez à l'onglet Autorisations.
Cliquez sur Accorder l'accès.
Dans le champ Nouveaux comptes principaux, ajoutez le compte principal auquel vous souhaitez accorder l'accès.
Dans le champ Sélectionner un rôle, sélectionnez Lecteur de données Dataplex DataScan.
Cliquez sur Enregistrer.
Pour supprimer l'accès aux résultats d'analyse publiés pour un compte principal, procédez comme suit:
Dans la console Google Cloud, accédez à la page Qualité des données.
Cliquez sur l'analyse de qualité des données dont vous souhaitez partager les résultats.
Accédez à l'onglet Autorisations.
Sélectionnez le compte principal pour lequel vous souhaitez supprimer le rôle Lecteur de données Dataplex DataScan.
Cliquez sur Supprimer l'accès.
Cliquez sur Confirmer.
Définir des alertes dans Cloud Logging
Pour définir des alertes en cas de défaillances de qualité des données à l'aide des journaux de Cloud Logging, procédez comme suit:
Console
Dans la console Google Cloud, accédez à l'explorateur de journaux de Cloud Logging.
Dans la fenêtre Requête, saisissez votre requête. Consultez des exemples de requêtes.
Cliquez sur Exécuter la requête.
Cliquez sur Créer une alerte. Un panneau latéral s'ouvre.
Saisissez le nom de votre règle d'alerte, puis cliquez sur Suivant.
Examinez la requête.
Cliquez sur le bouton Aperçu des journaux pour tester votre requête. Les journaux correspondants s'affichent.
Cliquez sur Suivant.
Définissez le délai entre les notifications, puis cliquez sur Suivant.
Définissez les personnes qui doivent être averties de l'alerte, puis cliquez sur Enregistrer pour créer la règle d'alerte.
Vous pouvez également configurer et modifier vos alertes en accédant aux Accédez à Monitoring > Alertes dans la console Google Cloud.
gcloud
Non compatible
REST
Utilisez APIs Explorer pour définir des alertes dans Cloud Logging.
Exemples de requêtes pour définir des alertes au niveau de la tâche ou de la dimension
Exemple de requête pour définir des alertes sur les échecs globaux de qualité des données pour une analyse de qualité des données:
resource.type="dataplex.googleapis.com/DataScan" AND labels."dataplex.googleapis.com/data_scan_state"="SUCCEEDED" AND resource.labels.resource_container="projects/112233445566" AND resource.labels.datascan_id="a0-test-dec6-dq-3" AND NOT jsonPayload.dataQuality.passed=true
Exemple de requête pour définir des alertes en cas d'échec de la qualité des données pour une dimension (par exemple, l'unicité) d'une analyse de la qualité des données donnée:
resource.type="dataplex.googleapis.com/DataScan" AND labels."dataplex.googleapis.com/data_scan_state"="SUCCEEDED" AND resource.labels.resource_container="projects/112233445566" AND resource.labels.datascan_id="a0-test-dec6-dq-3" AND jsonPayload.dataQuality.dimensionPassed.UNIQUENESS=false
Exemple de requête pour définir des alertes en cas d'échec de la qualité des données pour une table.
Définissez des alertes en cas d'échec de la qualité des données pour une table BigQuery qui n'est pas organisée dans un lac Dataplex:
resource.type="dataplex.googleapis.com/DataScan" AND jsonPayload.dataSource="//bigquery.googleapis.com/projects/test-project/datasets/testdataset/table/chicago_taxi_trips" AND labels."dataplex.googleapis.com/data_scan_state"="SUCCEEDED" AND resource.labels.resource_container="projects/112233445566" AND NOT jsonPayload.dataQuality.passed=true
Définissez des alertes en cas d'échec de la qualité des données pour une table BigQuery organisée dans un lac Dataplex:
resource.type="dataplex.googleapis.com/DataScan" AND jsonPayload.dataSource="projects/test-project/datasets/testdataset/table/chicago_taxi_trips" AND labels."dataplex.googleapis.com/data_scan_state"="SUCCEEDED" AND resource.labels.resource_container="projects/112233445566" AND NOT jsonPayload.dataQuality.passed=true
Exemples de requêtes pour définir des alertes par règle
Exemple de requête pour définir des alertes sur toutes les règles de qualité des données défaillantes avec le nom de règle personnalisée spécifié pour une analyse de la qualité des données:
resource.type="dataplex.googleapis.com/DataScan" AND jsonPayload.ruleName="custom-name" AND jsonPayload.result="FAILED"
Exemple de requête pour définir des alertes sur toutes les règles de qualité des données non respectées d'un type d'évaluation spécifique pour une analyse de la qualité des données:
resource.type="dataplex.googleapis.com/DataScan" AND jsonPayload.evalutionType="PER_ROW" AND jsonPayload.result="FAILED"
Exemple de requête pour définir des alertes sur toutes les règles de qualité des données non respectées pour une colonne de la table utilisée pour une analyse de qualité des données:
resource.type="dataplex.googleapis.com/DataScan" AND jsonPayload.column="CInteger" AND jsonPayload.result="FAILED"
Résoudre un problème de qualité des données
Pour chaque tâche comportant des règles au niveau des lignes qui échouent, Dataplex fournit 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.
Console
Dans la console Google Cloud, accédez à la page Qualité des données.
Cliquez sur le nom de l'analyse dont vous souhaitez résoudre les enregistrements.
Cliquez sur l'onglet Historique des tâches.
Cliquez sur l'ID de la tâche qui a identifié des échecs de qualité des données.
Dans la fenêtre des résultats de la tâche qui s'ouvre, dans la section Règles, recherchez la colonne Requête pour obtenir les enregistrements ayant échoué. Cliquez sur Copier la requête dans le presse-papiers pour la règle ayant échoué.
Exécutez la requête dans BigQuery pour afficher les enregistrements à l'origine de l'échec de la tâche.
gcloud
Non compatible
REST
Utilisez APIs Explorer pour afficher la requête permettant d'obtenir les enregistrements ayant échoué pour les tâches ayant échoué.
Mettre à jour une analyse de la qualité des données
Console
Dans la console Google Cloud, accédez à la page Qualité des données.
Sur la ligne de la capture à modifier, cliquez sur les trois points verticaux > Modifier.
Modifiez les valeurs.
Cliquez sur Enregistrer.
gcloud
Pour modifier la description d'une analyse de qualité des données, utilisez la commande gcloud dataplex datascans update data-quality
:
gcloud dataplex datascans update data-quality DATASCAN \ --location=LOCATION \ --description=DESCRIPTION
Remplacez les éléments suivants :
DATASCAN
: nom de l'analyse de la qualité des données à mettre à jour.LOCATION
: région dans laquelle l'analyse de la qualité des données a été créée. Google CloudDESCRIPTION
: nouvelle description de l'analyse de la qualité des données.
REST
Utilisez l'explorateur d'API pour modifier votre analyse de la qualité des données.
Supprimer une analyse de la qualité des données
Console
Dans la console Google Cloud, accédez à la page Qualité des données.
Cliquez sur l'analyse que vous souhaitez supprimer.
Cliquez sur Supprimer.
gcloud
Pour supprimer une analyse de la qualité des données, utilisez la commande gcloud dataplex datascans delete
:
gcloud dataplex datascans delete DATASCAN \ --location=LOCATION \ --async
Remplacez les variables suivantes :
DATASCAN
: nom de l'analyse de qualité des données à supprimer.LOCATION
: région dans laquelle l'analyse de la qualité des données a été créée. Google Cloud
REST
Utilisez l'explorateur d'API pour supprimer votre analyse de la qualité des données.
Étape suivante
- Découvrez le profilage de données.
- Découvrez comment utiliser le profilage de données.
- Suivez un tutoriel pour gérer les règles de qualité des données en tant que code avec Terraform.