类别:

Information Schema表函数

DCM_DEPLOYMENT_HISTORY

此表函数返回 DCM project 对象的部署历史记录。您可以用它来查询成功和失败的部署记录,包括时间戳、状态、错误详情以及汇总统计信息。该函数提供基于角色的访问和低延迟结果。

语法

DCM_DEPLOYMENT_HISTORY(
      [ PROJECT_NAME => '<string>' ]
      [, START_TIME_RANGE_START => <constant_expr> ]
      [, START_TIME_RANGE_END => <constant_expr> ]
      [, RESULT_LIMIT => <integer> ] )

实参

所有实参均为可选。

PROJECT_NAME => 'string'

DCM project 的完全限定名称。如果未提供,该函数将返回当前角色可访问的所有项目的历史记录。

START_TIME_RANGE_START => constant_expr

用于标识检索部署事件时间范围起始时间的时间戳(采用 TIMESTAMP_LTZ 格式)。

默认值:None。7 天前。

START_TIME_RANGE_END => constant_expr

用于标识检索部署事件时间范围结束时间的时间戳(采用 TIMESTAMP_LTZ 格式)。

默认值:当前时间戳。

RESULT_LIMIT => integer

要返回的最大行数。

默认:10000

输出

该函数返回以下列:

列名称

数据类型

描述

QUERY_UUID

VARCHAR

执行部署的查询的唯一标识符。

PROJECT_NAME

VARCHAR

已部署 DCM project 的名称。

START_TIMESTAMP

TIMESTAMP_LTZ

部署执行开始的时间戳。

END_TIMESTAMP

TIMESTAMP_LTZ

部署执行完成或失败的时间戳。

DEPLOYMENT_NAME

VARCHAR

内部部署标识符(例如,DEPLOYMENT$1DEPLOYMENT$2)。

DEPLOYMENT_ALIAS

VARCHAR

用户为部署指定的别名。如果未提供别名,则为空。

STATUS

VARCHAR

部署的结果。可能的值:SUCCESSFULFAILEDCANCELED

PHASE

VARCHAR

执行的阶段。可能的值:PLANDEPLOYINIT

CONFIGURATION_PROFILE

VARCHAR

用于部署的配置文件的名称。如果未指定配置,则为空。

ERROR_MESSAGE

VARCHAR

如果部署失败,则会出现错误消息。成功部署时为空。

ERROR_CODE

VARCHAR

部署失败时的错误代码。成功部署时为空。

DATABASE_NAME

VARCHAR

包含 DCM project 的数据库。

SCHEMA_NAME

VARCHAR

包含 DCM project 的架构。

EXECUTOR_ROLE

VARCHAR

执行部署命令的角色。

STATS

VARIANT

包含按类别细分的部署汇总统计信息的 JSON 对象。每个类别包含 createdaltereddropped 项目的计数。类别包括 entities``(托管对象)、``columnsgrants``dmfAttachments``(数据指标函数预期)。

使用说明

  • 当调用 Information Schema 表函数时,会话必须具有正在使用的 INFORMATION_SCHEMA 架构,或者函数名称必须受到完全限定。有关更多详细信息,请参阅 Snowflake Information Schema

示例

检索特定项目的部署历史记录,最多 3 个结果:

SELECT
  PROJECT_NAME,
  START_TIMESTAMP,
  DEPLOYMENT_NAME,
  DEPLOYMENT_ALIAS,
  STATUS,
  CONFIGURATION_PROFILE,
  EXECUTOR_ROLE
FROM
  TABLE (MY_DB.INFORMATION_SCHEMA.DCM_DEPLOYMENT_HISTORY(
    project_name => 'MY_DB.PROJECTS.MY_PROJECT',
    result_limit => 3
  ));
+----------------+-----------------------------+--------------+------------------+------------+-----------------------+------------------+
| PROJECT_NAME   | START_TIMESTAMP             | DEPLOYMENT   | DEPLOYMENT       | STATUS     | CONFIGURATION_PROFILE | EXECUTOR_ROLE    |
|                |                             | _NAME        | _ALIAS           |            |                       |                  |
+----------------+-----------------------------+--------------+------------------+------------+-----------------------+------------------+
| MY_PROJECT     | 2026-03-20 09:15:22.254     | DEPLOYMENT$3 | staging update   | SUCCESSFUL | STAGE                 | PROJECT_DEPLOYER |
| MY_PROJECT     | 2026-03-19 14:30:10.927     | DEPLOYMENT$2 |                  | FAILED     | DEV                   | PROJECT_DEPLOYER |
| MY_PROJECT     | 2026-03-18 11:00:05.339     | DEPLOYMENT$1 | initial deploy   | SUCCESSFUL | DEV                   | PROJECT_DEPLOYER |
+----------------+-----------------------------+--------------+------------------+------------+-----------------------+------------------+

STATS 列包含一个具有以下结构的 JSON 对象:

{
  "columns": {
    "altered": 0,
    "created": 12,
    "dropped": 0
  },
  "dmfAttachments": {
    "altered": 0,
    "created": 2,
    "dropped": 0
  },
  "entities": {
    "altered": 1,
    "created": 5,
    "dropped": 0
  },
  "grants": {
    "altered": 0,
    "created": 4,
    "dropped": 0
  }
}

检索当前角色在过去 24 小时内可访问的所有项目中的所有列:

SELECT *
FROM TABLE (INFORMATION_SCHEMA.DCM_DEPLOYMENT_HISTORY(
  start_time_range_start => DATEADD(hours, -24, CURRENT_TIMESTAMP())
));