웨어하우스 개요

웨어하우스 개요

쿼리나 데이터 적재 같은 DML 작업을 실행할 준비가 되면, Snowflake는 그 연산을 수행할 컴퓨팅 리소스가 필요해요. 그 역할을 하는 단위가 바로 웨어하우스(Warehouse) 예요. 표준(Standard) 타입인지 Snowpark-optimized 타입인지로 나뉘기도 하지만, 실제로 어떤 크기로 만들지와 어떤 속성들을 켜 둘지를 정해서 웨어하우스의 활동을 통제할 수 있어요.

출처: Overview of warehouses - Snowflake Documentation

웨어하우스 크기

웨어하우스는 언제든지 시작·중지할 수 있고, 실행 중에도 크기를 바꿀 수 있어요. 크기(Size)는 웨어하우스의 클러스터 하나가 가질 수 있는 컴퓨팅 리소스의 양을 뜻해요. Snowflake가 지원하는 크기는 X-Small에서 시작해 6X-Large까지 있는데, 한 단계 커질수록 시간당 크레딧 사용량이 대략 두 배로 늘어나요.

웨어하우스 크기 크레딧 / 시간(Gen1) 크레딧 / 초(Gen1) 비고
X-Small 1 0.0003 Snowsight 및 CREATE WAREHOUSE로 만들 때의 기본 크기
Small 2 0.0006
Medium 4 0.0011
Large 8 0.0022
X-Large 16 0.0044 Snowsight로 만들 때의 기본 크기
2X-Large 32 0.0089
3X-Large 64 0.0178
4X-Large 128 0.0356
5X-Large 256 0.0711 AWS·Azure 일반 제공, US Gov 지역은 미리보기
6X-Large 512 0.1422 AWS·Azure 일반 제공, US Gov 지역은 미리보기

위 표의 숫자는 1세대(Gen1) 표준 웨어하우스를 기준으로 한 값이에요. 더 새로운 2세대 표준 웨어하우스에 대해선 Snowflake generation 2 standard warehouses를, 크레딧 사용량은 Snowflake Service Consumption Table을 참고하세요. 크기를 바꾸지 않고도 처리량을 늘리는 방법으로는 멀티클러스터 웨어하우스가 있어요.

크레딧과 과금에 미치는 영향

Snowflake는 초 단위 과금을 하되 웨어하우스가 시작될 때마다 최소 60초를 부과해요. 그래서 실제로 소비한 크레딧만 청구되지요. 예를 들어 X-Small이 10분 돌아가면 약 0.167 크레딧, X-Large가 같은 시간 돌면 약 2.667 크레딧이에요. 멀티클러스터라면 크기와 그 시간 동안 실행된 클러스터 수를 곱해 계산합니다(예: 3X-Large가 1시간 클러스터 1개, 다음 1시간 클러스터 2개로 돌면 64 + 128 = 192 크레딧). 멀티클러스터는 Enterprise Edition 기능이에요.

데이터 적재 성능과의 관계

웨어하우스를 크게 만든다고 적재 성능이 항상 좋아지지는 않아요. 적재 성능은 크기보다 한 번에 읽는 파일의 수와 각 파일의 크기에 더 크게 좌우됩니다. 수백~수천 개 파일을 동시에 벌크 적재하지 않는 한, Small·Medium·Large 정도면 충분한 경우가 많아요. 더 큰 웨어하우스는 크레딧만 더 먹고 성능 향상이 없을 수 있어요.

쿼리 처리와 동시성

쿼리가 몇 개나 동시에 처리되는지는 각 쿼리의 크기와 복잡도가 결정해요. 웨어하우스는 쿼리마다 필요한 컴퓨팅 리소스를 계산해 예약하고, 남은 리소스가 부족한 쿼리는 다른 쿼리가 끝나 리소스가 비기를 기다리며 대기열에 들어가요. 이때 다음 파라미터로 처리량을 제어할 수 있어요.

  • STATEMENT_QUEUED_TIMEOUT_IN_SECONDS
  • STATEMENT_TIMEOUT_IN_SECONDS

쿼리가 너무 많이 대기한다면 웨어하우스를 하나 더 만들거나, 자동 확장을 원한다면 멀티클러스터 웨어하우스를 쓰는 걸 권장해요.

세션에서의 웨어하우스 사용

세션이 시작될 때 기본적으로 연결된 웨어하우스는 없어요. 웨어하우스가 연결되기 전까지는 그 세션에서 쿼리를 보낼 수 없지요. 그래서 Snowflake는 사용자별·클라이언트 유틸리티별 기본 웨어하우스를 지정하는 방법을 제공해요.

  • 사용자 기본 웨어하우스: CREATE USER/ALTER USER나 웹 인터페이스로 지정하면 그 사용자가 시작하는 모든 세션에 적용돼요.
  • 클라이언트 기본 웨어하우스: Snowflake CLI·SnowSQL은 설정 파일과 명령줄 옵션으로, JDBC·ODBC·Python 커넥터 등은 연결 파라미터로 지정할 수 있어요.
  • 노트북 기본 웨어하우스: 계정마다 멀티클러스터 X-Small 웨어하우스인 SYSTEM$STREAMLIT_NOTEBOOK_WH가 자동으로 만들어져요(최대 클러스터 10개, 기본 타임아웃 60초). 노트북 워크로드 전용으로 쓰고, SQL 쿼리는 별도의 사용자 관리 웨어하우스로 돌리는 게 비용 관리에 좋아요.

기본 웨어하우스는 사용자 지정 → 클라이언트 설정 파일 → 명령줄·드라이버 파라미터 순으로 덮어써요. 세션 중에는 USE WAREHOUSE 명령으로 언제든 바꿀 수 있어요.

더 알아보기 (Learn more)