- 类别:
DATA_METRIC_SCHEDULED_TIME¶
返回计划运行 DMF 的时间戳,如果手动调用该函数,则返回当前时间戳。
您可以使用此 DMF 定义自定义指标,以衡量数据的新鲜度,或者结合已有 DMFs 定义增量指标。
语法¶
SNOWFLAKE.CORE.DATA_METRIC_SCHEDULED_TIME()
实参¶
无。
返回¶
该函数返回一个数据类型为 TIMESTAMP_LTZ 的标量值。
访问控制要求¶
要使用系统 DMF,请选择以下访问控制方法之一:
将 DATA_METRIC_USER 数据库角色授予给表所有者角色,该角色对表具有 OWNERSHIP 权限。此数据库角色对 SNOWFLAKE.CORE 架构具有 USAGE 权限,对 SNOWFLAKE.CORE 架构中的所有系统 DMFs 具有 USAGE 权限。
此外,还将下表中的权限授予给表所有者角色:
权限
对象
备注
EXECUTE DATA METRIC FUNCTION
账户
通过此权限,您可以控制哪些角色有权访问无服务器计算资源以调用系统 DMF。
USAGE
数据库、架构
这些对象是在
query
中包含引用表的数据库和架构。将表中的权限授予给表所有者角色,并将以下权限授予给表所有者角色:
对 SNOWFLAKE 数据库的 IMPORTED PRIVILEGES。有关信息,请参阅 为其他角色启用 SNOWFLAKE 数据库使用。
对系统 DMF 的 USAGE。
使用 ACCOUNTADMIN 角色。
有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色。
使用说明¶
在 SELECT 查询中手动调用此函数时,将返回与 CURRENT_TIMESTAMP 函数相同的值。
示例¶
创建自定义数据指标函数,以确定最近一小时表中的数据新鲜度:
CREATE OR REPLACE DATA METRIC FUNCTION data_freshness_hour( ARG_T TABLE (ARG_C TIMESTAMP_LTZ)) RETURNS NUMBER AS 'SELECT TIMEDIFF( minute, MAX(ARG_C), SNOWFLAKE.CORE.DATA_METRIC_SCHEDULED_TIME()) FROM ARG_T';
手动调用数据指标函数:
SELECT data_freshness_hour(SELECT last_updated FROM hr.tables.empl_info) < 60;如果在过去一小时(60 分钟)内没有更新表,该语句将返回
True
。如果表的更新发生在一个多小时前,该语句将返回
False
。