- Categorias:
ACCEPTED_VALUES (função de métricas de dados do sistema)¶
Retorna o número de registros em que o valor de uma coluna não corresponde a uma expressão booleana.
Sintaxe¶
SNOWFLAKE.CORE.ACCEPTED_VALUES ON ( <column>, <lambda-expression> )
Argumentos¶
column
Especifica a coluna que contém valores que são comparados com a expressão booleana em
lambda-expression
.lambda-expression
Especifica uma expressão lambda que consiste na seguinte sintaxe:
column -> expression
.A função retorna o número de registros em que o valor de
column
não corresponde à expressão booleana. Esta expressão pode usar as seguintes operações e funções:O
column
na expressão lambda sempre corresponde ao argumentocolumn
.
Tipos de dados permitidos¶
A coluna especificada nos argumentos column
e lambda-expression
podem conter qualquer um dos seguintes tipos de dados:
DATE
FLOAT
NUMBER
TIMESTAMP_LTZ
TIMESTAMP_NTZ
TIMESTAMP_TZ
VARCHAR
Retornos¶
A função retorna um valor NUMBER.
Requisitos de controle de acesso¶
Para usar uma DMF de sistema, escolha uma das seguintes abordagens de controle de acesso:
Conceda a função de banco de dados DATA_METRIC_USER à função do proprietário da tabela, que é a função com o privilégio OWNERSHIP na tabela. Esta função de banco de dados tem o privilégio USAGE sobre o esquema SNOWFLAKE.CORE e o privilégio USAGE em todas as DMFs do sistema no esquema SNOWFLAKE.CORE.
Além disso, conceda os seguintes privilégios à função de proprietário da tabela:
Privilégio
Objeto
Notas
EXECUTE DATA METRIC FUNCTION
Conta
Este privilégio permite que você controle quais funções têm acesso aos recursos de computação sem servidor para chamar a DMF do sistema.
USAGE
Banco de dados, esquema
Esses objetos são o banco de dados e o esquema que contêm a tabela. tabela referenciada com a qual o DMF está associado.
Conceda IMPORTED PRIVILEGES no banco de dados SNOWFLAKE à função de proprietário da tabela. Para obter mais informações, consulte Habilitando outras funções para usar esquemas no banco de dados SNOWFLAKE.
Use a função ACCOUNTADMIN.
Para instruções sobre como criar uma função personalizada com um conjunto específico de privilégios, consulte Criação de funções personalizadas.
Para informações gerais sobre concessões de funções e privilégios para executar ações de SQL em objetos protegíveis, consulte Visão geral do controle de acesso.
Notas de uso¶
Você não pode chamar esta função diretamente. Para saber como associar a função a uma tabela ou visualização para que seja executada em intervalos regulares, consulte Associe uma DMF para automatizar as verificações de qualidade dos dados.
Você pode usar a função SYSTEM$DATA_METRIC_SCAN para executar a função ACCEPTED_VALUES em uma tabela sem associá-la.
Você não pode associar esta função à mesma coluna mais de uma vez.
Como renomear uma coluna especificada na função ACCEPTED_VALUES quebra a associação entre a função e a tabela ou exibição da coluna. Se você renomear a coluna, deverá reassociar a função à tabela ou exibição.
Exemplos¶
Associar a função à tabela t1
para que retorne o número de registros em que o valor da coluna age
não é igual a cinco.
ALTER TABLE t1
ADD DATA METRIC FUNCTION SNOWFLAKE.CORE.ACCEPTED_VALUES ON (age, age -> age = 5);
Associar a função à visualização order_details
para que retorne o número de registros em que o valor da coluna order_status
não está na lista de strings Pending
, Dispatched
e Delivered
.
ALTER VIEW order_details
ADD DATA METRIC FUNCTION SNOWFLAKE.CORE.ACCEPTED_VALUES ON (
order_status,
order_status -> order_status IN ('Pending', 'Dispatched', 'Delivered'));