类别:

系统函数 (系统信息)

SYSTEM$SHOW_DYNAMIC_TABLES_CREATED_FOR_RESHARING

当列表的使用者将该列表的数据重新共享至另一区域时,Snowflake 会创建隐藏的动态表,以在目标区域自动履行列表。该系统函数用于返回 Snowflake 在 传出 视图下,为将导入的数据进行物化而创建的隐藏动态表的相关信息,以支持跨区域重新共享。

使用此函数可以:

  • 针对给定的传出视图,识别哪些已导入的对象具备支撑其运行的动态表。

  • 查看这些动态表的最新刷新时间(用于调试或成本/运行状况分析)。

另请参阅:

重新共享列表

语法

SYSTEM$SHOW_DYNAMIC_TABLES_CREATED_FOR_RESHARING( '<view_name>' )

实参

'view_name'

附加到列表或共享的传出视图的名称,其导入的数据正被自动物化为隐藏动态表以供重新共享。

您可以传递完全限定的视图名称,例如:

SYSTEM$SHOW_DYNAMIC_TABLES_CREATED_FOR_RESHARING(
  'RESHARER_DB.PUBLIC.SHARED_VIEW'
);

返回

返回一个包含对象数组的 JSON 字符串。每个对象代表在该指定视图下为重新共享创建的一个隐藏动态表:

字段

类型

描述

dtName

STRING

嵌套在传出视图下的隐藏动态表的完全限定名称(例如 _<id>_IMPORTED_DB.SCHEMA.TABLE_DT_FOR_RESHARING)。

dtSourceObject

STRING

正在被物化到此动态表以进行重新共享的已导入对象的完全限定名称(例如 IMPORTED_DB.SCHEMA.TABLE)。这对应于视图定义中引用的原始导入实体。

dtRefreshStartTimeMillis

NUMBER

此动态表最近一次刷新开始时的纪元时间戳(以毫秒为单位)。如果未发生刷新,则为 Null。使用 TO_TIMESTAMP_LTZ(value:dtRefreshStartTimeMillis::number, 3) 进行转换。

dtRefreshEndTimeMillis

NUMBER

此动态表最近一次刷新完成时的纪元时间戳(以毫秒为单位)。如果未发生刷新,则为 Null。使用 TO_TIMESTAMP_LTZ(value:dtRefreshEndTimeMillis::number, 3) 进行转换。

status

STRING

最近刷新的状态。如果未发生刷新,则为 Null。可能的值:SCHEDULEDEXECUTINGSUCCEEDEDFAILEDCANCELLEDUPSTREAM_FAILED。有关每种状态的说明,请参阅 DYNAMIC_TABLE_REFRESH_HISTORY 输出。

使用说明

  • 在以下情况下,不会创建动态表,并且该函数不返回任何行:

    • 该视图不引用任何导入的数据库。

    • 该视图使用不符合重新共享条件的导入数据。

    • 列表自动履行尚未处理该视图。

  • 此函数用于可观察性和调试。

示例

以下示例检索为重新共享的视图创建的动态表:

SELECT * FROM TABLE(FLATTEN(input =>
  PARSE_JSON(
    SYSTEM$SHOW_DYNAMIC_TABLES_CREATED_FOR_RESHARING(
      'RESHARER_DB.PUBLIC.SHARED_VIEW'
    )
  )
));

要获得具有正确时间戳的可读表,请执行以下操作:

SELECT
  value:dtName::STRING AS dt_name,
  value:dtSourceObject::STRING AS dt_source_object,
  TO_TIMESTAMP_LTZ(value:dtRefreshStartTimeMillis::NUMBER, 3) AS dt_refresh_start_time,
  TO_TIMESTAMP_LTZ(value:dtRefreshEndTimeMillis::NUMBER, 3) AS dt_refresh_end_time,
  value:status::STRING AS status
FROM TABLE(FLATTEN(input =>
  PARSE_JSON(
    SYSTEM$SHOW_DYNAMIC_TABLES_CREATED_FOR_RESHARING(
      'RESHARER_DB.PUBLIC.SHARED_VIEW'
    )
  )
));

示例输出:

+----------------------------------------------------------+----------------------------+-------------------------------+-------------------------------+-------------------+
| DT_NAME                                                  | DT_SOURCE_OBJECT           | DT_REFRESH_START_TIME         | DT_REFRESH_END_TIME           | STATUS            |
+----------------------------------------------------------+----------------------------+-------------------------------+-------------------------------+-------------------+
| _12345_IMPORTED_DB.PUBLIC.TABLE_A_DT_FOR_RESHARING       | IMPORTED_DB.PUBLIC.TABLE_A | 2026-03-19 10:00:00.000 -0700 | 2026-03-19 10:00:05.000 -0700 | SUCCEEDED |
| _12345_IMPORTED_DB.PUBLIC.VIEW_B_DT_FOR_RESHARING        | IMPORTED_DB.PUBLIC.VIEW_B  | 2026-03-19 10:00:01.000 -0700 | 2026-03-19 10:00:04.000 -0700 | SUCCEEDED |
+----------------------------------------------------------+----------------------------+-------------------------------+-------------------------------+-------------------+