Catégories :

Fonctions de métrique des données

ACCEPTED_VALUES (fonction de métrique des données système)

Renvoie le nombre d’enregistrements dans lesquels la valeur d’une colonne ne correspond pas à une expression booléenne.

Syntaxe

SNOWFLAKE.CORE.ACCEPTED_VALUES ON ( <column>, <lambda-expression> )
Copy

Arguments

column

Spécifie la colonne qui contient les valeurs qui sont comparées à l’expression booléenne dans lambda-expression.

lambda-expression

Spécifie une expression lambda composée de la syntaxe suivante : column -> expression.

La fonction renvoie le nombre d’enregistrements où la valeur de column ne correspond pas à l’expression booléenne. Cette expression peut utiliser les opérations et fonctions suivantes :

column dans l’expression lambda correspond toujours à l’argument column.

Types de données autorisés

La colonne spécifiée dans les arguments column et lambda-expression peuvent contenir l’un des types de données suivants :

  • DATE

  • FLOAT

  • NUMBER

  • TIMESTAMP_LTZ

  • TIMESTAMP_NTZ

  • TIMESTAMP_TZ

  • VARCHAR

Renvoie

La fonction renvoie une valeur NUMBER.

Exigences en matière de contrôle d’accès

Pour utiliser une DMF système, choisissez l’une des approches de contrôle d’accès suivantes :

  • Attribuez le rôle de base de données DATA_METRIC_USER au rôle de propriétaire de la table, qui est le rôle disposant du privilège OWNERSHIP sur la table. Ce rôle de base de données dispose du privilège USAGE sur le schéma SNOWFLAKE.CORE et du privilège USAGE sur toutes les DMFs systèmes dans le schéma SNOWFLAKE.CORE.

    En outre, accordez les privilèges suivants au rôle de propriétaire de la table :

    Privilège

    Objet

    Remarques

    EXECUTE DATA METRIC FUNCTION

    Compte

    Ce privilège vous permet de contrôler les rôles qui ont accès aux ressources de calcul sans serveur pour appeler la DMF système.

    USAGE

    Base de données, schéma

    Ces objets sont la base de données et le schéma qui contiennent la table référencée à laquelle la DMF est associée.

  • Accorder IMPORTED PRIVILEGES sur la base de données SNOWFLAKE au rôle de propriétaire de la table. Pour plus d’informations, voir Permettre à d’autres rôles d’utiliser des schémas dans la base de données SNOWFLAKE.

  • Utilisez le rôle ACCOUNTADMIN.

Pour obtenir des instructions sur la création d’un rôle personnalisé avec un ensemble spécifique de privilèges, voir Création de rôles personnalisés.

Pour des informations générales sur les rôles et les privilèges accordés pour effectuer des actions SQL sur des objets sécurisables, voir Aperçu du contrôle d’accès.

Notes sur l’utilisation

  • Vous ne pouvez pas appeler cette fonction directement. Pour savoir comment associer la fonction à une table ou à une vue afin qu’elle s’exécute à intervalles réguliers, voir Association d’une DMF pour automatiser les contrôles de qualité des données.

    Vous pouvez utiliser la fonction SYSTEM$DATA_METRIC_SCAN pour exécuter la fonction ACCEPTED_VALUES avec une table sans l’associer.

  • Vous ne pouvez pas associer cette fonction à la même colonne plus d’une fois.

  • Renommer une colonne spécifiée dans la fonction ACCEPTED_VALUES rompt l’association entre la fonction et la table ou la vue de la colonne. Si vous renommez la colonne, vous devez réassocier la fonction à la table ou à la vue.

Exemples

Associer la fonction à la table t1 renvoie le nombre d’enregistrements où la valeur de la colonne age n’est pas égal à cinq.

ALTER TABLE t1
  ADD DATA METRIC FUNCTION SNOWFLAKE.CORE.ACCEPTED_VALUES ON (age, age -> age = 5);
Copy

Associer la fonction à la vue order_details renvoie le nombre d’enregistrements où la valeur de la colonne order_status n’est pas dans la liste de chaînes Pending, Dispatched et Delivered.

ALTER VIEW order_details
  ADD DATA METRIC FUNCTION SNOWFLAKE.CORE.ACCEPTED_VALUES ON (
    order_status,
    order_status -> order_status IN ('Pending', 'Dispatched', 'Delivered'));
Copy