핵심 규칙: 한 단계 커질 때마다 크레딧 2배 (XS=1 부터 시작)
| 사이즈 | 시간당 크레딧 |
|---|---|
| X-Small | 1 |
| Small | 2 |
| Medium | 4 |
| Large | 8 |
| X-Large | 16 |
| 2X-Large | 32 |
| 3X-Large | 64 |
| 4X-Large | 128 |
| 5X-Large | 256 |
| 6X-Large | 512 |
🎯 암기법:
1·2·4·8만 외우고 2배씩 → 1, 2, 4, 8, 16, 32, 64, 128...
XS=1, M=4, L=8, XL=16 이 시험에 가장 자주 나옴.
🎯 핵심: 최초 60초 최소 과금 → 이후 초당 과금
| 구분 | Scaling UP (Resize) | Scaling OUT (Multi-cluster) |
|---|---|---|
| 방향 | 수직 (사이즈 ↑) | 수평 (클러스터 수 ↑) |
| 목적 | 느린 쿼리 성능 / 데이터 로딩 | 동시성(concurrency) — 동시 사용자·쿼리 |
| 방법 | ALTER WAREHOUSE ... SET WAREHOUSE_SIZE | MIN/MAX_CLUSTER_COUNT |
| Edition | 모든 에디션 | Enterprise 이상 |
🎯 시험 함정: "쿼리가 느리다" → Scale UP / "동시 사용자가 많아 큐잉된다" → Scale OUT
ALTER WAREHOUSE MY_WH SET WAREHOUSE_SIZE=LARGE;
| 모드 | 조건 | 동작 |
|---|---|---|
| Maximized | MIN = MAX (단, >1) | 시작 시 모든 클러스터 동시 실행 |
| Auto-scale | MIN < MAX | 부하에 따라 동적으로 시작/종료 |
MIN=4 & MAX=4 → Maximized
MIN=1 & MAX=4 → Auto-scale
🎯 핵심 1: MIN=MAX → Maximized / MIN≠MAX → Auto-scale
🎯 핵심 2: Scaling Policy는 Auto-scale 모드에서만 적용!
(Maximized는 항상 다 켜져 있어 정책 불필요)
| 구분 | STANDARD (기본값) | ECONOMY |
|---|---|---|
| 우선순위 | 성능 (큐잉 최소화) | 비용 (크레딧 절약) |
| 클러스터 시작 | 쿼리 큐잉 시 즉시 추가 | 6분 이상 바쁠 부하 예상 시에만 |
| 클러스터 종료 | 낮은 부하 지속 후 가장 한가한 것 종료 | 남은 작업 6분 미만 추정 시 종료 표시 |
| 트레이드오프 | 크레딧 더 소비 | 큐 지연 가능 |
CREATE WAREHOUSE MY_MCW_1
MIN_CLUSTER_COUNT=1
MAX_CLUSTER_COUNT=4
SCALING_POLICY=STANDARD;
ALTER WAREHOUSE MY_MCW_1 SET SCALING_POLICY=ECONOMY;
🎯 숫자 암기: ECONOMY = "6분" (시작도 6분, 종료 판단도 6분). STANDARD = 즉시.
🎯 참고: 클러스터 수 >10이면 한 번에 여러 개 시작/종료, ≤10이면 1개씩.
핵심: 총 비용 = 실행 중인 모든 개별 클러스터 크레딧의 합
공식 계산 예시:
3X-Large 멀티클러스터가 1시간 동안 1개 클러스터, 다음 1시간 동안 2개 클러스터 실행
→ 총 청구 크레딧 = 192 (= 64 + 128)
🎯 계산 공식: 각 시간대마다 (실행된 클러스터 수 × 사이즈 크레딧) 을 더한다.
| 속성 | 기본값 | 의미 | 핵심 구분 |
|---|---|---|---|
| MAX_CONCURRENCY_LEVEL | 8 | 한 클러스터에서 동시 실행 가능 SQL 문 수 | 초과 시 큐잉 or 컴퓨팅 추가 |
| STATEMENT_QUEUED_TIMEOUT_IN_SECONDS | 0 (무한) | 큐 대기 중 취소되기까지 시간 | 대기 타임아웃 |
| STATEMENT_TIMEOUT_IN_SECONDS | 172800 (2일) | 실행 중 문이 취소되기까지 시간 | 실행 타임아웃 |
CREATE WAREHOUSE MY_MED_WH MAX_CONCURRENCY_LEVEL=6;
CREATE WAREHOUSE MY_MED_WH STATEMENT_QUEUED_TIMEOUT_IN_SECONDS=60;
CREATE WAREHOUSE MY_MED_WH STATEMENT_TIMEOUT_IN_SECONDS=600;
🎯 함정 구분: QUEUED_TIMEOUT = 대기(큐) / STATEMENT_TIMEOUT = 실행(running)
🎯 기본값: 동시성=8, 큐타임아웃=0(무제한), 실행타임아웃=172800초(2일)
🎯 두 타임아웃 모두 account/user/session/warehouse 레벨 설정 가능
→ 가장 낮은 레벨의 0이 아닌 값이 우선
| 속성 | 기본값 | 비고 |
|---|---|---|
| WAREHOUSE_SIZE | XSMALL | |
| AUTO_SUSPEND | 600초 (10분) | 0/NULL = 절대 안 멈춤(권장X) |
| AUTO_RESUME | TRUE | 쿼리 제출 시 자동 재개 |
| MAX_CLUSTER_COUNT | 1 | >1 → 멀티클러스터(Enterprise) |
| MIN_CLUSTER_COUNT | 1 | |
| SCALING_POLICY | STANDARD | |
| INITIALLY_SUSPENDED | FALSE | |
| WAREHOUSE_TYPE | STANDARD | (or Snowpark-optimized) |
🎯 AUTO_SUSPEND 함정: 백그라운드 일시중단 체크는 약 30초마다 실행 → 정밀 제어용 아님.
30 미만 / 30 배수 아닌 값은 의도대로 동작 안 할 수 있음.
🎯 캐시 함정: AUTO_SUSPEND 되면 → 웨어하우스 캐시 사라짐 → 재개 시 캐시 다시 채워야 함(콜드 스타트).
리포팅/분석용은 자주 멈추지 않게 주의.
[사이즈] XS=1, S=2, M=4, L=8, XL=16 ... (2배씩, 6XL=512)
[빌링] 최소 60초 → 이후 초당 과금
[UP/OUT] UP=성능/느린쿼리, OUT=동시성(Enterprise)
[모드] MIN=MAX→Maximized, MIN<MAX→Auto-scale
[정책] STANDARD=즉시(성능,기본) / ECONOMY=6분(비용)
※ 정책은 Auto-scale에서만 적용
[멀티빌링] MAX 크레딧 = 사이즈크레딧 × MAX클러스터수
[기본값] 동시성=8, 큐타임아웃=0, 실행타임아웃=172800(2일)
AUTO_SUSPEND=600(10분), AUTO_RESUME=TRUE
기본사이즈=XSMALL, 기본정책=STANDARD