DBT_PROJECT_EXECUTION_HISTORY¶
返回 Snowflake 上的 dbt 项目 的执行历史记录。
调用此函数可获取当前时间七天内过去 dbt 项目执行的元数据和结果。(可选)指定筛选结果所依据的值。
将此函数与以下系统函数结合使用,以编程方式访问 dbt 工件和日志:
有关更多信息,请参阅 以编程方式访问 dbt 工件和日志。
语法¶
实参¶
OBJECT_NAME = <name>执行所属的工作区或 dbt 项目对象的名称。
此外,标识符必须以字母字符开头,且不能包含空格或特殊字符,除非整个标识符字符串放在双引号内(例如,
"My object")。放在双引号内的标识符也区分大小写。有关更多信息,请参阅 标识符要求。
OBJECT_TYPE = { WORKSPACE | DBT PROJECT }执行所属的对象类型,WORKSPACE 或 DBT PROJECT。
START_TIME_RANGE_START | START_TIME_RANGE_END = timestamp用于筛选执行范围的时间戳。
RESULT_LIMIT = integer一个整数,指定函数返回的最大行数,范围从 1 到 10,000(含)。
默认值:100
COMMAND = dbt_command指定用于执行 dbt 项目对象的 dbt 命令 (https://docs.getdbt.com/reference/dbt-commands)。
USER_NAME = user_name启动了 dbt 项目对象执行的用户的名称。
DATABASE = db_name仅返回指定数据库的记录。
SCHEMA = schema_name仅返回指定架构的记录。
输出¶
该函数返回以下列。
要查看这些列,您必须使用拥有 MONITOR 权限的角色。
列名称 |
数据类型 |
描述 |
|---|---|---|
QUERY_ID |
TEXT |
查询的 ID。 |
QUERY_START_TIME |
TIMESTAMP_LTZ |
查询开始的时间。 |
QUERY_END_TIME |
TIMESTAMP_LTZ |
查询结束的时间。 |
USER_NAME |
TEXT |
创建了 dbt 项目对象的用户。 |
OBJECT_NAME |
TEXT |
执行所属的工作区或 dbt 项目对象的名称。 |
OBJECT_TYPE |
TEXT |
对象的类型,例如 WORKSPACE 或 DBT PROJECT。 |
DATABASE_NAME |
TEXT |
对象的数据库。 |
SCHEMA_NAME |
TEXT |
对象的架构。 |
COMMAND |
TEXT |
为对象运行的命令。 |
ARGS |
TEXT |
在对象的运行中使用的实参。 |
ERROR_CODE |
NUMBER |
运行的错误代码(如果适用)。 |
ERROR_MESSAGE |
TEXT |
如果适用,说明运行失败原因的错误消息。 |
WAREHOUSE |
TEXT |
用于对象的仓库。 |
STATE |
TEXT |
运行状态,例如 HANDLED_ERROR 或 SUCCESS。 |
DBT_VERSION |
TEXT |
用于此运行的特定版本。例如 |
DBT_SNOWFLAKE_VERSION |
TEXT |
此运行使用的特定 Snowflake dbt 项目版本及其补丁版本。例如 |
访问控制要求¶
此表函数仅包括来自您具有以下权限的工作区和 dbt 项目的运行:
对工作区的 OWNERSHIP、READ 或 WRITE 权限
dbt 项目上的 OWNERSHIP、USAGE 或 MONITOR
使用说明¶
使用确切的 dbt 项目对象名称(如果使用引号创建,则区分大小写)。如果没有行匹配(名称错误或尚未执行),您可能会得到
Inputs may not be null.错误。尽可能使用
DATABASE、SCHEMA和OBJECT_NAME等函数实参来筛选结果。这些筛选器会先于RESULT_LIMIT``(默认值:100 行)执行,因此使用它们可以确保您获得最相关的结果,而不是在可能已被截断的结果集上使用 ``WHERE子句进行筛选。
示例¶
以下示例审计了最近运行中使用的引擎版本:
有关如何结合系统函数使用 DBT_PROJECT_EXECUTION_HISTORY 表函数以通过程序化方式访问 dbt 构件和日志的详细示例,请参阅 以编程方式访问 dbt 工件和日志。