TROCCOでSnowflakeのデータマート定義を作成する際、SQL実行時のステートメントタイムアウト (秒) を指定することができます。
デフォルトでは43200秒 (12時間) が設定されています。
この設定は、Snowflake側の STATEMENT_TIMEOUT_IN_SECONDS とは別に、TROCCO側でタイムアウト値を指定したい場合に利用します。
SnowflakeおよびTROCCOでは、以下の3種類のタイムアウト設定が関係します。
-
Snowflakeのユーザー/セッション/アカウントに設定されている
STATEMENT_TIMEOUT_IN_SECONDS -
Snowflakeのウェアハウスに設定されている
STATEMENT_TIMEOUT_IN_SECONDS -
TROCCOの「ステートメントタイムアウト」項目で指定した
timeoutパラメータ
優先ルールは以下の通りです。
-
TROCCOのステートメントタイムアウトに0以外の値を指定した場合
→ Snowflakeのユーザー/セッション/アカウントのSTATEMENT_TIMEOUT_IN_SECONDSはTROCCOの値で上書きされます -
TROCCOに0を指定した場合
→ Snowflakeのユーザー/セッション/アカウントの設定は上書きされません -
最終的に 「Snowflakeのウェアハウスの設定値」と「上記で決定したステートメントタイムアウト値」のうち、より小さい値 (※0を除く) が実際に適用 されます。
以下の例のように動作します。
例1
-
Snowflake Warehouse:
STATEMENT_TIMEOUT_IN_SECONDS = 60 -
TROCCOのステートメントタイムアウト:
3600 -
Snowflake (ユーザー/セッション/アカウント):
14400
→ 60秒と3600秒を比較し、小さい60秒が適用されます。
例2
-
Snowflake Warehouse:
STATEMENT_TIMEOUT_IN_SECONDS = 14400 -
TROCCOのステートメントタイムアウト:
0 -
Snowflake (ユーザー/セッション/アカウント):
3600
→ TROCCOでは上書きされないため、 14400秒と3600秒を比較し、小さい3600秒が適用されます。
補足
Snowflakeの各パラメータの値は以下のクエリで確認できます。
SHOW PARAMETERS LIKE 'STATEMENT_TIMEOUT_IN_SECONDS' IN WAREHOUSE ;
SHOW PARAMETERS LIKE 'STATEMENT_TIMEOUT_IN_SECONDS' IN SESSION;
SHOW PARAMETERS LIKE 'STATEMENT_TIMEOUT_IN_SECONDS' IN USER ;
SHOW PARAMETERS LIKE 'STATEMENT_TIMEOUT_IN_SECONDS' IN ACCOUNT;
コメント
0件のコメント
記事コメントは受け付けていません。