Snowpark Container Services: 실패한 배치 재시도 로직 및 DESC FUNCTION 명령 출력의 새로운 열 변경¶
실패한 배치 요청에 대한 재시도 로직 변경¶
서비스 함수가 포함된 쿼리를 실행하면 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>' …
ALTER FUNCTION 명령의 경우
SET MAX_BATCH_RETRIES = integer
를 사용하여 재시도 횟수를 설정합니다.ALTER FUNCTION [ IF EXISTS ] <name> ( [ <arg_data_type> , ... ] ) SET MAX_BATCH_RETRIES = <integer>
DESCRIBE FUNCTION (Snowpark Container Services) 명령: 출력의 새로운 열¶
이 동작 변경 번들이 활성화되면 DESCRIBE FUNCTION(Snowpark Container Services) 명령의 출력에 다음과 같은 새 열이 포함됩니다.
열 이름 |
설명 |
---|---|
MAX_BATCH_RETRIES |
서비스 함수가 처리하는 각 행 배치에 대한 최대 재시도 횟수입니다. |
ON_BATCH_FAILURE |
행 배치가 최대 재시도 제한에 도달했을 때 서비스 함수의 동작입니다. |
BATCH_TIMEOUT_SECS |
배치 요청을 종료하기 전에 Snowflake가 단일 행 배치가 처리(재시도 및 비동기 요청 폴링 포함)될 때까지 기다리는 최대 시간입니다. |
Ref: 1938