Categorias:

Funções do sistema, Funções de tabela

SYSTEM$DATA_METRIC_SCAN

Retorna as linhas identificadas por uma métrica de qualidade de dados como contendo dados que falharam em uma verificação de qualidade de dados. Por exemplo, se você usar a função de métrica de dados NULL_COUNT como argumento, a função retornará as linhas na tabela com um valor NULL em uma coluna específica.

Sintaxe

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

Argumentos

Obrigatório:

REF_ENTITY_NAME => 'object'

Nome da tabela ou exibição na qual a função de métrica de dados especificada será executada. A função retorna linhas deste objeto.

METRIC_NAME => 'data_metric_function'

Nome da métrica de dados do sistema que você deseja executar para avaliar a tabela ou exibição especificada. Somente as seguintes funções do sistema são compatíveis:

  • 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'

Nome da coluna na tabela ou exibição especificada que está sendo passada como um argumento para a função de métrica de dados especificada.

Opcional:

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:

A coluna na expressão booleana deve ser a mesma coluna especificada no argumento 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'

Carimbo de data/hora que está sendo passado como argumento para verificar os resultados de uma avaliação de DMF na tabela ou exibição no passado.

Retornos

Linhas da tabela ou exibição especificada.

Privilégios de controle de acesso

A execução desta função requer os seguintes privilégios:

  • SELECT na tabela especificada.

  • USAGE na função de métrica de dados especificada.

Notas de uso

  • Esta função não oferece suporte a métricas definidas pelo usuário.

  • Se a tabela especificada for protegida por uma política, como uma política de mascaramento ou uma política de acesso a linhas, a função poderá retornar dados inesperados ou incompletos porque os resultados dependem da função do usuário ao executar a função.

Exemplos

Dado que a métrica do sistema SNOWFLAKE.CORE.NULL_COUNT retorna o número total de valores NULL em uma coluna específica, o seguinte retorna as linhas da tabela employeesTable com valores NULL na coluna SSN.

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

Dado que a métrica do sistema SNOWFLAKE.CORE.BLANK_COUNT retorna a contagem de quantos valores em uma coluna estão em branco, o seguinte retorna as linhas da tabela employeesTable que tinham um valor em branco na coluna name na versão da tabela que existia em um momento específico no passado.

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

Retorna as linhas em que o valor da coluna age não é igual a cinco (ou seja, as linhas que não correspondem à condição especificada por 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