Snowpark Container Services: 失敗したバッチ再試行ロジックの変更とDESC FUNCTIONコマンド出力の新しい列の追加¶
バッチリクエスト失敗時の再試行ロジックに対する変更点¶
サービス関数を含むクエリを実行すると、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>' …
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がバッチリクエストを終了するまでに、1つの行のバッチが処理されるのを待つ最大時間(再試行および非同期リクエストポーリングを含む)。 |
Ref: 1938