类别:

数据指标函数

DATA_METRIC_SCHEDULED_TIME

返回计划运行 DMF 的时间戳,如果手动调用该函数,则返回当前时间戳。

您可以使用此 DMF 定义自定义指标,以衡量数据的新鲜度,或者结合已有 DMFs 定义增量指标。

语法

SNOWFLAKE.CORE.DATA_METRIC_SCHEDULED_TIME()
Copy

实参

无。

返回

该函数返回一个数据类型为 TIMESTAMP_LTZ 的标量值。

访问控制要求

要使用系统 DMF,请选择以下访问控制方法之一:

  • 将 DATA_METRIC_USER 数据库角色授予给表所有者角色,该角色对表具有 OWNERSHIP 权限。此数据库角色对 SNOWFLAKE.CORE 架构具有 USAGE 权限,对 SNOWFLAKE.CORE 架构中的所有系统 DMFs 具有 USAGE 权限。

    此外,还将下表中的权限授予给表所有者角色:

    权限

    对象

    备注

    EXECUTE DATA METRIC FUNCTION

    账户

    通过此权限,您可以控制哪些角色有权访问无服务器计算资源以调用系统 DMF。

    USAGE

    数据库、架构

    这些对象是在 query 中包含引用表的数据库和架构。

  • 将表中的权限授予给表所有者角色,并将以下权限授予给表所有者角色:

  • 使用 ACCOUNTADMIN 角色。

有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色

有关对 安全对象 执行 SQL 操作的相应角色和权限授予的一般信息,请参阅 访问控制概述

使用说明

在 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';
Copy

手动调用数据指标函数:

SELECT data_freshness_hour(SELECT last_updated FROM hr.tables.empl_info) < 60;
Copy

如果在过去一小时(60 分钟)内没有更新表,该语句将返回 True

如果表的更新发生在一个多小时前,该语句将返回 False

语言: 中文