◾️はじめに
https://dk521123.hatenablog.com/entry/2023/06/13/000000
の続き。 SnowflakeのAUTO_SUSPENDってのを知ったのでメモ。
目次
【1】AUTO_SUSPEND 1)公式ドキュメント 【2】Snowflakeのコスト改善案:AUTO_SUSPENDを下げる 【3】AUTO_SUSPENDを下げ過ぎることによるデメリット 【4】確認および設定方法 0)確認方法 - SHOW WAREHOUSES 1)設定方法 - CREATE WAREHOUSE 2)変更方法 - ALTER WAREHOUSE
【1】AUTO_SUSPEND
* ウェアハウスが自動的に停止するまでの時間[秒]
1)公式ドキュメント
https://docs.snowflake.com/ja/sql-reference/sql/alter-warehouse
AUTO_SUSPEND = { num | NULL }
ウェアハウスが自動的に中断されるまでの 非アクティブの秒数を指定します。
有効な値
任意の整数 0 以上、または NULL: ・ウェアハウスを中断するバックグラウンド処理は 約30秒ごとに実行されるため、このプロパティの設定は ウェアハウスの中断を正確に制御するためのものではありません。 ・30未満の値、または30の倍数でない値を設定することは可能ですが、 ウェアハウスの中断のポーリング間隔が30秒であるため、 期待した動作にならない可能性があります。 ・0 または NULL 値を設定すると、 ウェアハウスが一時停止されることはなくなります。
デフォルト
600 (ウェアハウスは、10分の非アクティブ後に自動的に一時停止します)
重要
クエリのワークロードが継続的に実行されるウェアハウスを必要としない限り、 AUTO_SUSPEND の値を 0 または NULL に設定することは推奨しません。 これにより、特に大規模なウェアハウスでは、クレジット(および対応する料金) が大幅に消費されることに注意してください。 詳細については、 ウェアハウスに関する考慮事項 をご参照ください。
【2】Snowflakeのコスト改善案:AUTO_SUSPENDを下げる
* デフォルトは600秒(=10分)なので、 その時間分のコンピューティングコストがかかる => よって、短ければ、コスト削減できる
https://docs.snowflake.com/ja/user-guide/warehouses-considerations#automating-warehouse-suspension
自動一時停止を有効にする場合は、Snowflakeが1秒あたりの請求を使用するため、 低い値(5または10分以下)に設定することをお勧めします。 これは、使用されていないときにウェアハウスが稼働しないように (そしてクレジットを消費しないように)します。
【3】AUTO_SUSPENDを下げ過ぎることによるデメリット
* 仮想ウェアハウスがサスペンドされているときに、新しいクエリが実行されると 自動的に再開するが、再開には数秒から数十秒かかることがある => 頻繁にサスペンドとリジュームが起こると、 そのたびに待ち時間が発生し、ジョブ全体の実行時間が長くなる => ウェアハウスがサスペンドされずに、そのまま起動していたら、 この「数秒から数十秒かかる」がなくなる
【4】確認および設定方法
0)確認方法 - SHOW WAREHOUSES
SHOW WAREHOUSES LIKE '%{your-warehouse}%';
1)設定方法 - CREATE WAREHOUSE
https://docs.snowflake.com/ja/sql-reference/sql/create-warehouse
CREATE WAREHOUSE IF NOT EXISTS {your-warehouse} WITH AUTO_SUSPEND=1;
2)変更方法 - ALTER WAREHOUSE
https://docs.snowflake.com/ja/sql-reference/sql/alter-warehouse
ALTER WAREHOUSE {your-warehouse} SET AUTO_SUSPEND=1;
参考文献
https://note.com/tokyobang/n/n024d76ea21b9
https://zenn.dev/kommy339/articles/2e9c4a27484712
関連記事
Snowflake ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2021/11/02/130111
Snowflake ~ 入門編 / Hello world ~
https://dk521123.hatenablog.com/entry/2021/11/22/212520
Snowflakeのコスト改善 ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2023/06/13/000000
Snowflake ~ ウェアハウス / Warehouse ~
https://dk521123.hatenablog.com/entry/2022/12/04/000000