- 类别:
系统函数 (系统控制)
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 ]')
实参¶
pipe_name
管道恢复运行。
STALENESS_CHECK_OVERRIDE
指定恢复过时管道。如果管道的暂停时间超过管道所收到事件消息的有限保留期(默认为 14 天),则将管道视为过时。
备注
此实参仅适用于利用云消息传递触发数据加载的管道对象。
OWNERSHIP_TRANSFER_CHECK_OVERRIDE
指定在管道的所有权转移到另一个角色后恢复管道。
备注
为确保向后兼容性,将
pipe_name
作为唯一输入进行传递,在语法上等同于同时传递pipe_name
和OWNERSHIP_TRANSFER_CHECK_OVERRIDE
。
如果 STALENESS_CHECK_OVERRIDE
和 OWNERSHIP_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');
强制恢复名称区分大小写的管道:
SELECT SYSTEM$PIPE_FORCE_RESUME('mydb.myschema."myPipe"');
在过时管道所有权转移到另一个角色后,强制将它恢复:
SELECT SYSTEM$PIPE_FORCE_RESUME('mydb.myschema.stalepipe','staleness_check_override, ownership_transfer_check_override');