Utiliser la qualité automatique des données

Cette page explique comment créer une analyse de la qualité des données Dataplex Universal Catalog.

Pour en savoir plus sur les analyses de la qualité des données, consultez À propos de la qualité automatique des données.

Avant de commencer

  1. Activez l'API Dataplex.

    Activer l'API

  2. Facultatif : Si vous souhaitez que Dataplex Universal Catalog génère des recommandations pour les règles de qualité des données en fonction des résultats d'une analyse de profil de données, créez et exécutez l'analyse de profil de données.

Rôles requis

  • Pour exécuter une analyse de la 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 Universal Catalog 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 à d'autres tables, le compte de service du projet d'analyse doit disposer des autorisations de lecture sur ces 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 Universal Catalog le rôle IAM Éditeur de données BigQuery (roles/bigquery.dataEditor) sur l'ensemble de données et la table de 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 Universal Catalog, accordez au compte de service Dataplex Universal Catalog les rôles IAM Lecteur de métadonnées Dataplex (roles/dataplex.metadataReader) et Lecteur Dataplex (roles/dataplex.viewer). Sinon, vous devez 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, accordez au compte de service Dataplex Universal Catalog le rôle Cloud Storage roles/storage.objectViewer pour le bucket. Vous pouvez également attribuer les autorisations suivantes au compte de service Dataplex Universal Catalog :

    • storage.buckets.get
    • storage.objects.get
  • Si vous souhaitez publier les résultats de l'analyse de la qualité des données en tant que métadonnées du catalogue universel Dataplex, vous devez disposer du rôle IAM Éditeur de données BigQuery (roles/bigquery.dataEditor) pour la table et de l'autorisation dataplex.entryGroups.useDataQualityScorecardAspect sur le groupe d'entrées @bigquery au même emplacement que la table. Vous pouvez également vous voir attribuer le rôle d'éditeur du catalogue Dataplex (roles/dataplex.catalogEditor) pour le groupe d'entrées @bigquery au même emplacement que la table.

    Sinon, vous devez disposer de toutes les autorisations suivantes :

    • bigquery.tables.get
    • bigquery.tables.update
    • bigquery.tables.updateData
    • bigquery.tables.delete
    • dataplex.entryGroups.useDataQualityScorecardAspect

    Vous devez également disposer de toutes les autorisations suivantes :

    • dataplex.entries.update
    • dataplex.entryGroups.useDataQualityScorecardAspect
  • Si vous devez accéder à des colonnes protégées par des règles d'accès BigQuery au niveau des colonnes, attribuez les autorisations correspondantes au compte de service Dataplex Universal Catalog. L'utilisateur qui crée ou met à jour une analyse des données doit également disposer des 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 Universal Catalog. Notez que les droits d'accès de chaque utilisateur ne sont pas évalués pour les règles au niveau des lignes.

Rôles requis pour l'analyse des données

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 le calendrier, 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 sur 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 les règles et les 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 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 tableau 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 Un numéro client au format de huit lettres suivies de 16 chiffres.
transaction_id Chaîne L'ID de transaction doit être unique dans le tableau.
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 Universal Catalog peut 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 Vérification des valeurs NULL Exhaustivité "Threshold" (Seuil) : 100%
customer_id Vérification des expressions régulières Validité Expression régulière : ^[0-9]{8}[a-zA-Z]{16}$
Seuil : 100%
currency_id Vérification de la valeur définie Validité Ensemble : 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 Universal Catalog évalue la requête SELECT COUNTIF(CUSTOM_SQL_EXPRESSION) FROM TABLE. Dataplex Universal Catalog 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 Universal Catalog é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 les lignes non valides. Si des lignes sont renvoyées, la règle échoue. Omettez le point-virgule de fin de l'instruction SQL.

  • 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 une règle, au lieu de mentionner explicitement la table source et ses filtres. Les filtres de préconditions incluent, par exemple, les filtres de lignes, les pourcentages d'échantillonnage et les 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
Condition de ligne Vérifie si la valeur de discount_pct est comprise entre 0 et 100. 0 <discount_pct AND discount_pct < 100
Condition de ligne Vérifiez que currency_id fait partie des devises acceptées. currency_id in (select id from my_project_id.dim_dataset.dim_currency)
État de la table Expression SQL agrégée qui vérifie si la moyenne discount_pct est comprise entre 30 % et 50 %. 30<avg(discount) AND avg(discount) <50
Condition de 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 permettant de 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 BigQuery ML PREDICT permettant d'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 l'utilisation de 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';
         )
        )
    
Condition de ligne 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 l'utilisation de 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édiction 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 Valide si la valeur discount_pct est supérieure à 30 % pour aujourd'hui en vérifiant s'il existe des lignes 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 discount_pct est supérieur à 30 % pour toutes les devises acceptées actuellement.

Le filtre de date transaction_timestamp >= current_date() est appliqué en tant que filtre de ligne sur la table de source de données.

Le paramètre de référence de données ${data()} sert d'espace réservé pour my_project_id.dim_dataset.dim_currency WHERE transaction_timestamp >= current_date() et applique le filtre de ligne.

SELECT * FROM ${data()} WHERE discount_pct > 30

Définir des règles de qualité des données à l'aide de gcloud CLI

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

  1. Dans la console Google Cloud , accédez à la page Qualité des données.

    Accéder à la page "Qualité des données"

  2. Cliquez sur Créer une analyse de la qualité des données.

  3. Dans la fenêtre Définir l'analyse, renseignez les champs suivants :

    1. Saisissez un nom à afficher.

    2. L'ID d'analyse est généré automatiquement si vous n'en fournissez pas. Consultez la convention d'attribution de noms des ressources.

    3. Facultatif : saisissez une Description.

    4. Dans le champ Table, cliquez sur Parcourir, sélectionnez votre table, puis cliquez sur Sélectionner. Dataplex Universal Catalog 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 Universal Catalog, cliquez sur Parcourir les lacs Dataplex.

    5. 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 ou TIMESTAMP dans votre table BigQuery qui augmente de façon monotone et permet d'identifier de nouveaux enregistrements. Il peut s'agir d'une colonne qui partitionne la table.
    6. 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 .

    7. 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.

    8. Pour échantillonner vos données, sélectionnez un pourcentage d'échantillonnage dans la liste Taille d'échantillonnage. Choisissez un pourcentage compris entre 0,0 % et 100,0 %, avec un maximum de trois chiffres après la virgule. Pour les ensembles de données plus volumineux, choisissez un pourcentage d'échantillonnage plus faible. Par exemple, pour une table d'environ 1 PB, si vous saisissez une valeur comprise entre 0,1 % et 1 %, Dataplex Universal Catalog échantillonne entre 1 et 10 To de données. Pour les analyses de données incrémentielles, Dataplex Universal Catalog applique l'échantillonnage au dernier incrément.

    9. Pour publier les résultats de l'analyse de la qualité des données en tant que métadonnées Dataplex Universal Catalog, cochez la case Publier les résultats dans BigQuery et Dataplex Catalog.

      Vous pouvez consulter les derniers résultats de l'analyse dans l'onglet Qualité des données des pages BigQuery et Dataplex Universal 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.

    10. Cliquez sur Continuer.

  4. Dans la fenêtre Programmer, choisissez l'une des options suivantes :

    • Répéter : exécutez votre job d'analyse de la qualité des données selon une planification quotidienne, hebdomadaire, mensuelle ou personnalisée. Spécifiez la fréquence et l'heure d'exécution de l'analyse. Si vous choisissez "Personnalisé", utilisez le format cron pour spécifier la planification.

    • À la demande : exécutez votre job d'analyse de la qualité des données à la demande.

    Cliquez sur Continuer.

  5. 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 sélectionnez 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.

      1. Sélectionner des colonnes : sélectionnez les colonnes pour lesquelles vous souhaitez obtenir des règles recommandées.

      2. Analyser le projet : recommandations basées sur une analyse de profilage des données existante. Par défaut, Dataplex Universal Catalog sélectionne les analyses de profilage du même projet dans lequel vous créez l'analyse de la qualité des données. Si vous avez créé l'analyse dans un autre projet, vous devez spécifier le projet à partir duquel extraire les analyses de profil.

      3. Choisir les résultats de profil : plusieurs résultats de profil s'affichent en fonction des colonnes et du projet que vous sélectionnez.

      4. Sélectionnez un ou plusieurs résultats de profil, puis cliquez sur OK. Une liste de règles à sélectionner s'affiche.

      5. 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.

      1. Choisir des colonnes : sélectionnez les colonnes pour lesquelles vous souhaitez sélectionner des règles.

      2. Choisir des types de règles : en fonction des colonnes que vous sélectionnez, plusieurs types de règles s'affichent.

      3. Sélectionnez un ou plusieurs types de règles, puis cliquez sur OK. Une liste de règles s'affiche.

      4. 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).

      1. Dans Dimension, choisissez une dimension.

      2. Dans Seuil de réussite, choisissez le pourcentage d'enregistrements qui doivent réussir le contrôle.

      3. Dans Nom de la colonne, sélectionnez une colonne.

      4. Dans le champ Fournissez une expression SQL, saisissez une expression SQL qui renvoie la valeur booléenne true (succès) ou false (échec). Pour en savoir plus, consultez 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.

      5. Cliquez sur Ajouter.

    • Règle de vérification des agrégations SQL : créez une règle de condition de table SQL personnalisée.

      1. Dans Dimension, choisissez une dimension.

      2. Dans Nom de la colonne, sélectionnez une colonne.

      3. Dans le champ Fournissez une expression SQL, saisissez une expression SQL qui renvoie la valeur booléenne true (succès) ou false (échec). Pour en savoir plus, consultez 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.

      4. Cliquez sur Ajouter.

    • Règle d'assertion SQL : créez une règle d'assertion SQL personnalisée pour vérifier si les données sont dans un état non valide.

      1. Dans Dimension, choisissez une dimension.

      2. Facultatif : Dans Nom de la colonne, sélectionnez une colonne.

      3. Dans le champ Fournissez 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. Omettez le point-virgule de fin de l'instruction SQL. Pour en savoir plus, consultez 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.

      4. Cliquez sur Ajouter.

    Dataplex Universal Catalog permet d'attribuer des noms personnalisés aux règles de qualité des données pour la surveillance et les alertes. 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 de 1 024 caractères maximum.

    Cliquez sur Continuer.

  6. Facultatif : exportez les résultats de l'analyse vers une table BigQuery standard. 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 Universal Catalog 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.

  7. Facultatif : Configurez des rapports de notification par e-mail pour informer les utilisateurs de l'état et des résultats d'un job d'analyse de la qualité des données. Dans la section Rapport sur les notifications, cliquez sur Ajouter une adresse e-mail et 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'un job réussit 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 jobs : envoie un rapport en cas d'échec du job lui-même, quels que soient les résultats de la qualité des données.
    • Achèvement de jobs (réussite ou échec) : envoie un rapport à la fin du job, quels que soient les résultats de la qualité des données.
  8. Cliquez sur Créer.

    Une fois l'analyse créée, vous pouvez l'exécuter à tout moment en cliquant sur Exécuter maintenant.

gcloud

Pour créer une analyse de la 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 Universal Catalog, 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 Universal Catalog, 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 Google Cloud dans laquelle créer l'analyse de la qualité des données.
  • DATA_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éfixe gs://. 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 (par exemple, 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 Universal Catalog 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'APIs Explorer pour créer une analyse de la qualité des données.

Si vous souhaitez créer des règles pour l'analyse de la 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 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
data_quality_scan 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 d'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 tableau : //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
rule_column 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 suivant : //bigquery.googleapis.com/projects/{project-id}/datasets/{dataset-id}/tables/{table-id}.
  • Utilisez une table BigQuery standard.
  • Si la table n'existe pas lorsque l'analyse est créée ou mise à jour, Dataplex Universal Catalog 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 la partition, recréez la table avec le schéma et les configurations requis, puis fournissez la table précréée en tant que table de résultats.
  • Assurez-vous que la table de résultats se trouve au même emplacement que la table source.
  • Si le VPC-SC est configuré dans le projet, le tableau de 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 est exporté vers la table de résultats précédente et la modification de la 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 la table.
  • Pour réduire les coûts, définissez une date d'expiration pour 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 la qualité des données

Console

  1. Dans la console Google Cloud , accédez à la page Qualité des données.

    Accéder à la page "Qualité des données"

  2. Cliquez sur l'analyse de la qualité des données à exécuter.

  3. 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 Google Cloud dans laquelle l'analyse de la qualité des données a été créée.
  • DATASCAN : nom de l'analyse de la qualité des données.

REST

Utilisez l'APIs Explorer pour exécuter votre analyse de qualité des données.

Afficher les résultats de l'analyse de la qualité des données

Console

  1. Dans la console Google Cloud , accédez à la page Qualité des données.

    Accéder à la page "Qualité des données"

  2. Pour afficher les résultats détaillés d'une analyse, cliquez sur son nom.

    • La section Présentation affiche des informations sur les sept derniers jobs, y compris la date d'exécution de l'analyse, le nombre d'enregistrements analysés dans chaque job, si tous les contrôles de qualité des données ont réussi, s'il y a eu des échecs, le nombre de contrôles de qualité des données qui ont échoué et les dimensions qui ont échoué.

    • La section Configuration de l'analyse de la qualité des données affiche des informations sur l'analyse.

  3. Pour afficher les scores de qualité des données qui indiquent le pourcentage de règles réussies, cliquez sur l'onglet Historique des tâches. Cliquez ensuite sur un ID de job.

gcloud

Pour afficher les résultats d'un job d'analyse de la 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 du job d'analyse de la qualité des données.
  • LOCATION : région Google Cloud dans laquelle l'analyse de la qualité des données a été créée.
  • DATASCAN : nom de l'analyse de la qualité des données à laquelle appartient le job.
  • --view=FULL : pour afficher le résultat du job d'analyse, spécifiez FULL.

REST

Utilisez APIs Explorer pour afficher les résultats d'une analyse de qualité des données.

Afficher l'historique des résultats d'analyse

Dataplex Universal Catalog enregistre l'historique des analyses de la qualité des données des 300 derniers jobs ou de l'année écoulée, selon la première échéance.

Console

  1. Dans la console Google Cloud , accédez à la page Qualité des données.

    Accéder à la page "Qualité des données"

  2. Cliquez sur le nom d'une analyse.

  3. Cliquez sur l'onglet Historique des jobs.

    L'onglet Historique des jobs fournit des informations sur les jobs passés. Il liste tous les jobs, le nombre d'enregistrements analysés dans chaque job, l'état du job, l'heure à laquelle le job a été exécuté, si chaque règle a été respectée ou non, et plus encore.

  4. 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 tous les jobs d'une analyse de qualité des données, utilisez la commande gcloud dataplex datascans jobs list :

gcloud dataplex datascans jobs list \
--location=LOCATION \
--datascan=DATASCAN \

Remplacez les variables suivantes :

  • LOCATION : région Google Cloud dans laquelle l'analyse de la qualité des données a été créée.
  • DATASCAN : nom de l'analyse de la qualité des données pour laquelle afficher tous les jobs.

REST

Utilisez APIs Explorer pour afficher tous les jobs d'analyse.

Partager les résultats publiés

Lorsque vous créez une analyse de qualité des données, si vous choisissez de publier les résultats de l'analyse en tant que métadonnées Dataplex Universal Catalog, les derniers résultats de l'analyse sont disponibles sur les pages BigQuery et Dataplex Universal Catalog de la consoleGoogle Cloud , dans l'onglet Qualité des données de la table.

Vous pouvez autoriser les utilisateurs de votre organisation à accéder aux résultats d'analyse publiés. Pour accorder l'accès aux résultats de l'analyse, procédez comme suit :

  1. Dans la console Google Cloud , accédez à la page Qualité des données.

    Accéder à la page "Qualité des données"

  2. Cliquez sur l'analyse de la qualité des données dont vous souhaitez partager les résultats.

  3. Accédez à l'onglet Autorisations.

  4. Cliquez sur Accorder l'accès.

  5. Dans le champ Nouveaux comptes principaux, ajoutez le compte principal auquel vous souhaitez accorder l'accès.

  6. Dans le champ Sélectionner un rôle, sélectionnez Lecteur de données Dataplex DataScan.

  7. Cliquez sur Enregistrer.

Pour supprimer l'accès aux résultats d'analyse publiés pour un compte principal, procédez comme suit :

  1. Dans la console Google Cloud , accédez à la page Qualité des données.

    Accéder à la page "Qualité des données"

  2. Cliquez sur l'analyse de la qualité des données dont vous souhaitez partager les résultats.

  3. Accédez à l'onglet Autorisations.

  4. Sélectionnez le compte principal pour lequel vous souhaitez supprimer le rôle Lecteur de données Dataplex DataScan.

  5. Cliquez sur Supprimer l'accès.

  6. Cliquez sur Confirmer.

Définir des alertes dans Cloud Logging

Pour définir des alertes en cas d'échec de la qualité des données à l'aide des journaux dans Cloud Logging, procédez comme suit :

Console

  1. Dans la console Google Cloud , accédez à l'explorateur de journaux de Cloud Logging.

    Accéder à l'explorateur de journaux

  2. Dans la fenêtre Requête, saisissez votre requête. Consultez des exemples de requêtes.

  3. Cliquez sur Exécuter la requête.

  4. Cliquez sur Créer une alerte. Un panneau latéral s'ouvre.

  5. Saisissez le nom de votre règle d'alerte, puis cliquez sur Suivant.

  6. Examinez la requête.

    1. Cliquez sur le bouton Prévisualiser les journaux pour tester votre requête. Les journaux correspondant aux conditions s'affichent.

    2. Cliquez sur Suivant.

  7. Définissez le délai entre les notifications, puis cliquez sur Suivant.

  8. Définissez qui doit être averti 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 à Monitoring > Alertes dans la consoleGoogle Cloud .

gcloud

Non compatible

REST

Utilisez APIs Explorer pour définir des alertes dans Cloud Logging.

Exemples de requêtes pour configurer des alertes au niveau du job ou de la dimension

  • Exemple de requête permettant de définir des alertes sur les échecs de qualité globale des données pour une analyse de la 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 permettant de définir des alertes sur les échecs de 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 permettant de configurer 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 Universal Catalog :

      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 Universal Catalog :

      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 permettant de définir des alertes pour toutes les règles de qualité des données en échec 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 permettant de définir des alertes pour toutes les règles de qualité des données en échec 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 permettant de définir des alertes pour toutes les règles de qualité des données non respectées pour une colonne dans la table utilisée pour une analyse de la 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 job avec des règles au niveau des lignes qui échouent, Dataplex Universal Catalog fournit une requête permettant d'obtenir les enregistrements ayant échoué. Exécutez cette requête pour afficher les enregistrements qui ne correspondaient pas à votre règle.

Console

  1. Dans la console Google Cloud , accédez à la page Qualité des données.

    Accéder à la page "Qualité des données"

  2. Cliquez sur le nom de l'analyse dont vous souhaitez résoudre les problèmes d'enregistrements.

  3. Cliquez sur l'onglet Historique des jobs.

  4. Cliquez sur l'ID du job qui a identifié des échecs de qualité des données.

  5. Dans la fenêtre des résultats du job 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é.

  6. Exécutez la requête dans BigQuery pour afficher les enregistrements qui ont entraîné l'échec du job.

gcloud

Non compatible

REST

Utilisez APIs Explorer pour afficher la requête permettant d'obtenir les enregistrements ayant échoué pour les jobs qui ont échoué.

Mettre à jour une analyse de la qualité des données

Vous pouvez modifier différents paramètres d'une analyse de la qualité des données existante, comme le nom à afficher, les filtres et la planification.

Console

  1. Dans la console Google Cloud , accédez à la page Qualité des données.

    Accéder à la page "Qualité des données"

  2. Sur la ligne contenant la fonctionnalité "Scanner pour modifier", cliquez sur les trois points verticaux > Modifier.

  3. Modifiez les valeurs.

  4. Cliquez sur Enregistrer.

gcloud

Pour modifier la description d'une analyse de la 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 Google Cloud dans laquelle l'analyse de la qualité des données a été créée.
  • DESCRIPTION : nouvelle description de l'analyse de la qualité des données.

REST

Utilisez APIs Explorer pour modifier votre analyse de la qualité des données.

Supprimer une analyse de la qualité des données

Console

  1. Dans la console Google Cloud , accédez à la page Qualité des données.

    Accéder à la page "Qualité des données"

  2. Cliquez sur l'analyse que vous souhaitez supprimer.

  3. 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 la qualité des données à supprimer.
  • LOCATION : région Google Cloud dans laquelle l'analyse de la qualité des données a été créée.

REST

Utilisez APIs Explorer pour supprimer votre analyse de la qualité des données.

Étape suivante