类别:

系统函数表函数

SYSTEM$DATA_METRIC_SCAN

返回由 数据质量指标 标识为包含未通过数据质量检查的数据的行。例如,如果您将 NULL_COUNT 数据指标函数用作实参,则该函数将返回表中在特定列中包含 NULL 值的行。

语法

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

实参

必填:

REF_ENTITY_NAME => 'object'

指定数据指标函数将运行的表或视图的名称。该函数返回此对象的行。

METRIC_NAME => 'data_metric_function'

您想要运行以评估指定表或视图的系统数据指标名称。仅支持以下系统函数:

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

指定表或视图中作为实参传递给指定数据指标函数的列名。

可选:

ARGUMENT_EXPRESSION => 'boolean-expression'

如果指定的数据指标函数为 ALLOWED_VALUES,则为必需。不允许所有其他 DMFs 使用。

指定一个布尔表达式,用于评估记录是通过还是未通过 ALLOWED_VALUES 数据质量检查。SYSTEM$DATA_METRIC_SCAN 函数返回与布尔表达式 匹配的记录。该表达式可以包含以下运算符和函数:

布尔表达式中的列必须与在 ARGUMENT_NAME 实参中指定的列相同。

如果 ALLOWED_VALUES DMF 与通过 REF_ENTITY_NAME 指定的 对象关联,SYSTEM$DATA_METRIC_SCAN 函数将会忽略在将 ALLOWED_VALUES 与该对象关联时指定的布尔表达式。

AT_TIMESTAMP => 'timestamp'

作为实参传递的时间戳,用于检查过去表或视图中 DMF 评估的结果。

返回

指定表或视图中的行。

访问控制权限

执行此函数需要以下权限:

  • 指定表中的 SELECT。

  • 指定数据指标函数中的 USAGE。

使用说明

  • 此函数不支持用户定义的指标。

  • 如果指定表受策略(如掩码策略或行访问策略)保护,则函数可能会返回意外或不完整的数据,因为结果取决于执行函数时用户的角色。

示例

考虑到 SNOWFLAKE.CORE.NULL_COUNT 系统指标返回特定列中 NULL 值的总数,以下返回 employeesTable 表中在 SSN 列中具有 NULL 值的行。

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

考虑到 SNOWFLAKE.CORE.BLANK_COUNT 系统指标返回列中空值的计数,以下内容返回了 employeesTable 表中 name 列在过去某一特定时间版本中为空值的行。

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

返回 age 列的值 等于五的行(即与 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
语言: 中文