- 类别:
FRESHNESS(系统数据指标函数)¶
返回时间戳列的最大值与数据指标函数运行时的计划时间之间的差值(秒)。
本主题提供直接调用该函数的语法。要了解如何将该函数与表或视图关联以使其定期运行,请参阅 关联 DMF 以自动执行数据质量检查。
语法¶
SNOWFLAKE.CORE.FRESHNESS(<query>)
实参¶
query
指定一个 SQL 查询,该查询仅投射单个列。
允许的数据类型¶
query
投射的列必须具有以下数据类型之一:
DATE
TIMESTAMP_LTZ
TIMESTAMP_TZ
返回¶
该函数返回一个数据类型为 NUMBER 的标量值。
访问控制要求¶
要使用系统 DMF,请选择以下访问控制方法之一:
将 DATA_METRIC_USER 数据库角色授予给表所有者角色,该角色对表具有 OWNERSHIP 权限。此数据库角色对 SNOWFLAKE.CORE 架构具有 USAGE 权限,对 SNOWFLAKE.CORE 架构中的所有系统 DMFs 具有 USAGE 权限。
此外,向表所有者角色授予以下权限:
权限
对象
备注
EXECUTE DATA METRIC FUNCTION
账户
通过此权限,您可以控制哪些角色有权访问无服务器计算资源,以调用系统 DMF。
USAGE
数据库、架构
这些对象是包含与 DMF 关联的 table.referenced 表的数据库和架构。
向表所有者角色授予对 SNOWFLAKE 数据库的 IMPORTED PRIVILEGES。有关信息,请参阅 允许其他角色使用 SNOWFLAKE 数据库中的架构。
使用 ACCOUNTADMIN 角色。
有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色。
示例¶
通过测量 TIMESTAMP
列来确定表中数据的新鲜度,300 秒或 5 分钟:
SELECT SNOWFLAKE.CORE.FRESHNESS(
SELECT
timestamp
FROM hr.tables.empl_info
) < 300;
+---------------------------------------------------------------------+
| SNOWFLAKE.CORE.FRESHNESS(SELECT timestamp FROM hr.tables.empl_info) |
+---------------------------------------------------------------------+
| True |
+---------------------------------------------------------------------+