Snowflake는 설정된 시스템 규모로 어카운트에 할당하는 것이 아니라 저장한 데이터 만큼 스토리지를 할당하고, 필요한 만큼 컴퓨팅 자원을 쓰고 반환합니다. 따라서 시스템 자원을 한정하여 구성하지 않고 무한한 클라우드의 자원을 필요한 만큼 활용합니다.
일반적으로 쿼리가 실행되는 데에는 데이터가 저장된 Storage layer, 연산과 집계가 실행되는 computing layer, 사용자 세션을 관리하고 쿼리를 옵티마이징하는 Cloud service layer로 구분됩니다.

가상 웨어하우스(Virtual Warehouse)는 Snowflake 아키텍쳐 구성 요소 중 컴퓨팅 영역에 해당됩니다.

Admin > Warehouse 로 이동하여 현재 어카운트에 생성된 가상 웨어하우스 목록과 상태를 확인할 수 있습니다.

Admin > Warehouse에서 + Warehouse를 클릭하고 웨어하우스 정보를 입력합니다

// 웨어하우스 생성 CREATE WAREHOUSE demo_wh WAREHOUSE_SIZE = 'xsmall' AUTO_RESUME = TRUE AUTO_SUSPEND = 300 MIN_CLUSTER_COUNT = 1 MAX_CLUSTER_COUNT = 3 ;
USE WAREHOUSE my_wh ;
웨어하우스 Scale-up
ALTER WAREHOUSE my_wh SET WAREHOUSE_SIZE = MEDIUM ;
사용자에게 사용할 기본 웨어하우스 지정
ALTER USER sicentist SET DEFAULT_WAREHOUSE = 'my_wh' ;
Task를 등록해서 주기적으로 가상 웨어하우스의 크기를 변경하도록 스케줄링
이 예시에서는 매일 오후 6시에서 9시 사이에는 my_wh를 LARGE 크기로 변경하여 사용하도록 스케줄링하였습니다
// 웨어하우스 크기를 18시에 Large로 변경하는 태스크 생성 CREATE OR REPLACE TASK set_my_wh_to_large WAREHOUSE = my_wh SCHEDULE = 'USING CRON 0 18 * * * Asia/Seoul' AS ALTER WAREHOUSE my_wh SET WAREHOUSE_SIZE = 'LARGE'; // 태스크 실행 ALTER TASK set_my_wh_to_large RESUME; // 웨어하우스 크기를 21시에 small로 변경하는 태스크 생성 CREATE OR REPLACE TASK set_my_wh_to_small WAREHOUSE = my_wh SCHEDULE = 'USING CRON 0 21 * * * Asia/Seoul' AS ALTER WAREHOUSE my_wh SET WAREHOUSE_SIZE = 'SMALL'; // 태스크 실행 ALTER TASK set_my_wh_to_small RESUME;