Snowpark Container Services:失败批处理重试逻辑和 DESC FUNCTION 命令输出中新列的变更(待定)

注意

此行为变更在 2025_02 捆绑包中。

有关捆绑包的当前状态,请参阅 捆绑包历史记录

失败批处理请求的重试逻辑的变更

当您执行包含服务函数的查询时,Snowflake 会发送一系列 HTTP 请求,每个请求都包含指向服务的一批行。如果服务返回错误(HTTP 错误 404、429、500、502、503 或 504),Snowflake 会重试请求。当 Snowflake 重试时,它会在指数回归算法确定的延迟后重新发送同一批次。

变更前:

如果重试之间的总睡眠时间达到 1 小时,Snowflake 会将批处理执行标记为失败,并且服务函数执行也会失败。

变更后:

默认情况下,Snowflake 会重试失败的批处理 3 次。您可以执行 CREATE FUNCTION 或 ALTER FUNCTION 命令与 MAX_BATCH_RETRIES 参数,选择性指定您希望 Snowflake 重试批处理的次数。例如:

  • 对于 CREATE FUNCTION 命令,指定 MAX_BATCH_RETRIES 参数,如下所示:

    CREATE [ OR REPLACE ] FUNCTION <name> ( [ <arg_name> <arg_data_type> ] [ , ... ] )
      RETURNS <result_data_type>
      
      [ MAX_BATCH_RETRIES = <integer> ]
      AS '<http_path_to_request_handler>'
      
    
    Copy
  • 对于 ALTER FUNCTION 命令,使用 SET MAX_BATCH_RETRIES = integer 设置重试次数:

    ALTER FUNCTION [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] ) SET MAX_BATCH_RETRIES = <integer>
    
    Copy

DESCRIBE FUNCTION (Snowpark Container Services) 命令:输出中的新列

启用此行为变更捆绑包后,DESCRIBE FUNCTION (Snowpark Container Services) 命令的输出包括以下新列:

列名称

描述

MAX_BATCH_RETRIES

服务函数处理的每批行的最大重试次数。

ON_BATCH_FAILURE

当一批行达到最大重试限制时,服务函数的行为。

BATCH_TIMEOUT_SECS

Snowflake 在终止批处理请求之前等待处理单批行(包括重试和异步请求轮询)的最长时间。

参考:1938

语言: 中文