Snowpark Container Services: 실패한 배치 재시도 로직 및 DESC FUNCTION 명령 출력의 새로운 열 변경

주의

이 동작 변경은 2025_02 번들에 포함되어 있습니다.

번들의 현재 상태는 번들 기록 섹션을 참조하십시오.

실패한 배치 요청에 대한 재시도 로직 변경

서비스 함수가 포함된 쿼리를 실행하면 Snowflake는 각각 행 배치를 포함하는 일련의 HTTP 요청을 서비스로 보냅니다. 서비스에서 오류(HTTP 오류 404, 429, 500, 502, 503 또는 504)가 반환되면 Snowflake가 요청을 다시 시도합니다. Snowflake가 재시도하면 지수 백오프 알고리즘에 의해 결정된 지연 후 동일한 배치를 다시 전송합니다.

변경 전:

재시도 사이의 총 절전 시간이 1시간에 도달하면 배치 실행이 실패한 것으로 표시되고 서비스 함수 실행도 실패합니다.

변경 후:

기본적으로 Snowflake는 실패한 배치를 세 번 다시 시도합니다. 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가 단일 행 배치가 처리(재시도 및 비동기 요청 폴링 포함)될 때까지 기다리는 최대 시간입니다.

Ref: 1938