Snowpark Container Services: alterações na lógica de nova tentativa de lote com falha e novas colunas na saída do comando DESC FUNCTION

Atenção

Essa mudança de comportamento está no pacote 2025_02.

Para saber o status atual do pacote, consulte Histórico do pacote.

Alterações na lógica de nova tentativa para uma solicitação de lote com falha

Quando você executa uma consulta que inclui uma função de serviço, o Snowflake envia uma série de solicitações de HTTP, cada uma contendo um lote de linhas para o serviço. Se o serviço retornar erros (os erros de HTTP 404, 429, 500, 502, 503 ou 504), o Snowflake tentará novamente a solicitação. Quando o Snowflake tenta novamente, ele reenvia o mesmo lote após um atraso determinado por um algoritmo de backoff exponencial.

Antes da mudança:

Se o tempo total de espera entre as novas tentativas atingir uma hora, o Snowflake marcará a execução do lote como falha e a execução da função de serviço também falhará.

Após a mudança:

Por padrão, o Snowflake tenta novamente o lote com falha três vezes. Opcionalmente, você pode especificar o número de vezes que deseja que o Snowflake tente novamente o lote executando o comando CREATE FUNCTION ou ALTER FUNCTION com o parâmetro MAX_BATCH_RETRIES. Por exemplo:

  • Para o comando CREATE FUNCTION, especifique o parâmetro MAX_BATCH_RETRIES, conforme mostrado abaixo:

    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
  • Para o comando ALTER FUNCTION, use SET MAX_BATCH_RETRIES = integer para definir o número de novas tentativas:

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

Comando DESCRIBE FUNCTION (Snowpark Container Services): novas colunas na saída

Quando esse pacote de alteração de comportamento é habilitado, a saída do comando DESCRIBE FUNCTION (Snowpark Container Services) inclui as seguintes novas colunas:

Nome da coluna

Descrição

MAX_BATCH_RETRIES

O número máximo de novas tentativas para cada lote de linhas processadas pela função de serviço.

ON_BATCH_FAILURE

O comportamento da função de serviço quando um lote de linhas atinge o limite máximo de tentativas.

BATCH_TIMEOUT_SECS

O tempo máximo que o Snowflake aguarda para que um único lote de linhas seja processado (incluindo novas tentativas e pesquisa de solicitação assíncrona) antes de encerrar a solicitação de lote.

Ref: 1938