Catégories :

Fonctions système, Fonctions de table

SYSTEM$DATA_METRIC_SCAN

Renvoie les lignes identifiées par une métrique de qualité des données comme contenant des données qui échouent à un contrôle de qualité des données. Par exemple, si vous utilisez la fonction de métrique de données NULL_COUNT comme argument, la fonction renvoie les lignes de la table qui contiennent une valeur NULL dans une colonne spécifique.

Syntaxe

SYSTEM$DATA_METRIC_SCAN(
  REF_ENTITY_NAME  => '<object>'
  , METRIC_NAME  => '<data_metric_function>'
  , ARGUMENT_NAME => '<column>'
  [ , ARGUMENT_EXPRESSION => '<boolean-expression>' ]
  [ , AT_TIMESTAMP => '<timestamp>' ] )
Copy

Arguments

Obligatoire :

REF_ENTITY_NAME => 'object'

Nom de la table ou de la vue sur laquelle la fonction de métrique de données spécifiée s’exécutera. La fonction renvoie les lignes de cet objet.

METRIC_NAME => 'data_metric_function'

Nom de la métrique de données système que vous souhaitez exécuter pour évaluer la table ou la vue spécifiée. Seules les fonctions système suivantes sont prises en charge :

  • SNOWFLAKE.CORE.ACCEPTED_VALUES

  • SNOWFLAKE.CORE.BLANK_COUNT

  • SNOWFLAKE.CORE.BLANK_PERCENT

  • SNOWFLAKE.CORE.DUPLICATE_COUNT

  • SNOWFLAKE.CORE.NULL_COUNT

  • SNOWFLAKE.CORE.NULL_PERCENT

ARGUMENT_NAME => 'column'

Nom de la colonne dans la table ou la vue spécifiée qui est transmise en tant qu’argument à la fonction de métrique de données spécifiée.

Facultatif :

ARGUMENT_EXPRESSION => 'boolean-expression'

Required if the specified data metric function is ACCEPTED_VALUES. Disallowed for all other DMFs.

Specifies a Boolean expression used to evaluate whether a record passes or fails the ACCEPTED_VALUES data quality check. The SYSTEM$DATA_METRIC_SCAN function returns records that do not match the Boolean expression. The expression can include the following operators and functions:

La colonne de l’expression booléenne doit être la même colonne que celle spécifiée dans l’argument ARGUMENT_NAME.

If the ACCEPTED_VALUES DMF is associated with the object specified by REF_ENTITY_NAME, the SYSTEM$DATA_METRIC_SCAN function ignores the Boolean expression that was specified when ACCEPTED_VALUES was associated with the object.

AT_TIMESTAMP => 'timestamp'

Horodatage transmis en tant qu’argument pour vérifier les résultats d’une évaluation DMF sur la table ou la vue dans le passé.

Renvoie

Lignes de la table ou de la vue spécifiée.

Privilèges de contrôle d’accès

L’exécution de cette fonction nécessite les privilèges suivants :

  • SELECT sur la table spécifiée.

  • USAGE sur la fonction de métrique de données spécifiée.

Notes sur l’utilisation

  • Cette fonction ne prend pas en charge les métriques définies par l’utilisateur.

  • Si la table spécifiée est protégée par une politique, telle qu’une politique de masquage ou une politique d’accès aux lignes, la fonction peut renvoyer des données inattendues ou incomplètes car les résultats dépendent du rôle de l’utilisateur lors de l’exécution de la fonction.

Exemples

Comme la métrique système SNOWFLAKE.CORE.NULL_COUNT renvoie le nombre total de valeurs NULL dans une colonne particulière, ce qui suit renvoie les lignes de la table employeesTable qui ont des valeurs NULL dans la colonne SSN.

SELECT *
  FROM TABLE(SYSTEM$DATA_METRIC_SCAN(
    REF_ENTITY_NAME  => 'governance.sch.employeesTable',
    METRIC_NAME  => 'snowflake.core.null_count',
    ARGUMENT_NAME => 'SSN'
  ));
Copy

Comme la métrique système SNOWFLAKE.CORE.BLANK_COUNT renvoie le nombre de valeurs vides dans une colonne, ce qui suit renvoie les lignes de la table employeesTable qui avait une valeur vide dans la colonne name dans la version de la table qui existait à un moment précis dans le passé.

SELECT *
  FROM TABLE(SYSTEM$DATA_METRIC_SCAN(
    REF_ENTITY_NAME  => 'governance.sch.employeesTable',
    METRIC_NAME  => 'snowflake.core.blank_count',
    ARGUMENT_NAME => 'name',
    AT_TIMESTAMP => '2024-08-28 02:00:00 -0700'
  ));
Copy

Renvoie les lignes où la valeur de la colonne age n’est pas égale à cinq (c’est-à-dire les lignes qui ne répondent pas à la condition spécifiée par ARGUMENT_EXPRESSION).

SELECT *
  FROM TABLE(SYSTEM$DATA_METRIC_SCAN(
    REF_ENTITY_NAME  => 'governance.sch.employeesTable',
    METRIC_NAME  => 'snowflake.core.accepted_values',
    ARGUMENT_NAME => 'age',
    ARGUMENT_EXPRESSION => 'age = 5'
  ));
Copy