类别:

系统函数 (系统控制)

SYSTEM$PIPE_FORCE_RESUME

强行恢复已使用 ALTER PIPE 暂停的管道。在以下任一情况下,这是必需的:

  • 管道所有者在管道暂停时将管道的所有权转移给另一个角色。

  • 允许暂停的管道过时。

    如果管道的暂停时间超过管道所收到事件消息的有限保留期(默认为 14 天),则将管道视为过时。当每个通知的保留期结束时,Snowflake 会安排从内部元数据中删除通知。如果管道稍后恢复,Snowpipe 可能会尽力处理超过 14 天的通知。Snowflake 不能保证这些较旧的通知得到处理。

    本场景仅适用于利用云消息传递来触发数据加载的管道对象(即,管道定义中 AUTO_INGEST = TRUE 时)。

执行此函数将恢复指定的管道。

若要确定排队的文件数,请查询 SYSTEM$PIPE_STATUS

有关更多信息,请参阅 Snowpipe

语法

SYSTEM$PIPE_FORCE_RESUME( '<pipe_name>' , '[ STALENESS_CHECK_OVERRIDE ] [ , OWNERSHIP_TRANSFER_CHECK_OVERRIDE ]')
Copy

实参

pipe_name

管道恢复运行。

STALENESS_CHECK_OVERRIDE

指定恢复过时管道。如果管道的暂停时间超过管道所收到事件消息的有限保留期(默认为 14 天),则将管道视为过时。

备注

此实参仅适用于利用云消息传递触发数据加载的管道对象。

OWNERSHIP_TRANSFER_CHECK_OVERRIDE

指定在管道的所有权转移到另一个角色后恢复管道。

备注

为确保向后兼容性,将 pipe_name 作为唯一输入进行传递,在语法上等同于同时传递 pipe_nameOWNERSHIP_TRANSFER_CHECK_OVERRIDE

如果 STALENESS_CHECK_OVERRIDEOWNERSHIP_TRANSFER_CHECK_OVERRIDE 都是必需的,则可以按任一顺序输入这些实参。

使用说明

  • 只有管道所有者(即对管道具有 OWNERSHIP 权限的角色):emph: 对管道具有 OPERATE 权限的角色才能调用这个 SQL 函数:

    对架构对象进行 SQL 操作还需要对包含该对象的数据库和架构具有 USAGE 权限。

  • pipe_name 是一个字符串,因此必须放在单引号内:

    • 请注意,整个名称必须放在单引号内,包括数据库和架构(如果名称是完全限定名称),即 '<db>.<schema>.<pipe_name>'

    • 如果管道名称区分大小写或包含任何特殊字符或空格,则需要使用双引号来处理大小写/字符。双引号必须放在单引号内,即 '"<pipe_name>"'

示例

强制恢复名称不区分大小写的管道:

SELECT SYSTEM$PIPE_FORCE_RESUME('mydb.myschema.mypipe');
Copy

强制恢复名称区分大小写的管道:

SELECT SYSTEM$PIPE_FORCE_RESUME('mydb.myschema."myPipe"');
Copy

在过时管道所有权转移到另一个角色后,强制将它恢复:

SELECT SYSTEM$PIPE_FORCE_RESUME('mydb.myschema.stalepipe','staleness_check_override, ownership_transfer_check_override');
Copy
语言: 中文