Snowflakeの仮想ウェアハウス
仮想ウェアハウスとは
仮想ウェアハウスとは,Snowflakeにおけるデータ処理を行うためのコンピューティングリソースの単位である.各ウェアハウスは,クエリの実行やデータのロード,およびその他の操作を処理するために必要な計算能力を提供する.
主な特徴
-
スケーラビリティ
- 仮想ウェアハウスはサイズを柔軟に変更できる.必要に応じてスケールアップやスケールダウンが可能である.
- サイズ変更は実行中のクエリには影響を与えない.
-
複数のウェアハウス
- 複数の仮想ウェアハウスを作成することで,異なるユーザやワークロードを分離できる.
- ウェアハウスごとに独立したリソースが割り当てられるため,パフォーマンスが干渉しない.
-
自動停止と再開
- 非アクティブ状態が一定期間続いた場合,仮想ウェアハウスは自動的に停止する設定が可能である.
- 停止中は課金が発生しない.
- クエリの実行要求があると,自動的に再開される.
仮想ウェアハウスのサイズ
仮想ウェアハウスのサイズは,計算リソースの量を指定するものである.以下はSnowflakeが提供する典型的なサイズの一覧である:
- X-Small: 最小の計算リソースを提供
- Small: 小規模なワークロード向け
- Medium: 中規模のワークロード向け
- Large以上: 大規模なワークロードや並列処理向け
サイズが大きくなるほど,並列処理の能力が向上し,クエリの処理速度が速くなる.
仮想ウェアハウスの管理
作成
以下のコマンドで仮想ウェアハウスを作成できる.
CREATE WAREHOUSE my_warehouse
WITH WAREHOUSE_SIZE = 'SMALL'
AUTO_SUSPEND = 300
AUTO_RESUME = TRUE;
-
WAREHOUSE_SIZE
: ウェアハウスのサイズ -
AUTO_SUSPEND
: 非アクティブ状態が続いた場合の自動停止までの時間(秒) -
AUTO_RESUME
: クエリ実行時に自動的に再開する設定
スケールアップとダウン
サイズ変更には以下のコマンドを使用する.
ALTER WAREHOUSE my_warehouse
SET WAREHOUSE_SIZE = 'MEDIUM';
停止
ウェアハウスを手動で停止するには以下のコマンドを使用する.
ALTER WAREHOUSE my_warehouse SUSPEND;
再開
手動で再開する場合は以下のコマンドを使用する.
ALTER WAREHOUSE my_warehouse RESUME;
仮想ウェアハウスの監視
仮想ウェアハウスの使用状況やパフォーマンスを監視するために,Snowflakeの履歴ビューやクエリプロファイルを利用することが推奨される.
- 履歴ビュー: 過去のクエリ実行状況を確認できる.
- クエリプロファイル: 各クエリの詳細な実行ステータスを提供する.
ベストプラクティス
- 必要最小限のサイズでウェアハウスを作成し,負荷に応じてスケールアップする.
- 自動停止と再開を有効にして,コストを最小限に抑える.
- 複数のウェアハウスを利用して,異なるチームやワークロードを分離する.