Snowflake

[Snowflake] Snowflake Multi-Cluster Warehouses란?

JustJunsu 2024. 10. 12. 14:36
728x90

Snowflake 멀티 클러스터 웨어하우스란?

멀티 클러스터 웨어하우스는 가상 웨어하우스에서 여러 클러스터를 추가하여 컴퓨팅 리소스를 확장하고 사용자 동시성 요구를 효율적으로 처리할 수 있도록 합니다. 단일 클러스터 웨어하우스와 동일한 속성을 가지면서도 클러스터를 추가로 할당하여 리소스를 동적으로 관리할 수 있습니다.

 

1. 멀티 클러스터 웨어하우스의 주요 기능

  1. 최대 클러스터 수 설정: 최대 10개까지 설정 가능.
  2. 자동 크기 조정: 클러스터 수를 동적으로 관리하여 워크로드에 따라 자동으로 클러스터를 시작/종료.
  3. 정적 제어 모드(최대): 고정된 클러스터 수를 설정해 리소스를 정적으로 관리.

2. 크기 조정 정책

멀티 클러스터 웨어하우스는 자동 크기 조정 모드에서 두 가지 크기 조정 정책을 제공합니다

  1. Standard(기본값): 쿼리의 대기 시간을 최소화하며, 추가 클러스터를 빠르게 시작합니다.
  2. Economy: 크레딧 절약을 우선시하며, 쿼리 처리 시간이 다소 길어질 수 있습니다.

3. 멀티 클러스터 크레딧 사용 예시

멀티 클러스터 웨어하우스의 크레딧 사용은 각 클러스터가 얼마나 오랫동안 실행되었는지에 따라 달라집니다. 아래는 몇 가지 예시입니다:

  • 최대 모드 (2시간): 3개의 클러스터가 모두 2시간 동안 실행될 경우 총 24크레딧이 사용됩니다.
  • 자동 크기 조정 모드 (2시간): 클러스터가 필요할 때만 추가로 실행되어 총 14크레딧이 사용됩니다.

4. 멀티 클러스터 웨어하우스의 장점

  • 자동 크기 조정: 동적으로 클러스터를 늘리고 줄이며, 리소스를 유연하게 관리 할 수 있습니다.
  • 비용 절감: 필요하지 않은 클러스터를 종료하여 크레딧을 절약할 수 있습니다.
  • 동시성 관리: 더 많은 사용자가 같은 웨어하우스를 이용할 수 있게 하여 사용자 동시성을 향상시킬 수 있습니다.

5. 멀티 클러스터 웨어하우스 설정 방법

  1. 웹 인터페이스: Warehouses 탭에서 Create 클릭 후, 최대/최소 클러스터 수 설정합니다.
  2. SQL 명령: CREATE WAREHOUSE 또는 ALTER WAREHOUSE 명령을 사용하여 설정 가능합니다.

6. 실습하기

USE ROLE SYSADMIN; #SYSADMIN 역할을 사용

CREATE OR REPLACE WAREHOUSE MULTI_CLUSTER_WAREHOUSE # 멀티 클러스터 웨어하우스 생성
WAREHOUSE_SIZE = 'SMALL' # WAREHOUSE_SIZE: 웨어하우스 크기(SMALL)
WAREHOUSE_TYPE = 'STANDARD' # WAREHOUSE_TYPE: 웨어하우스 유형(STANDARD)
AUTO_SUSPEND = 600 	# AUTO_SUSPEND: 600초 동안 비활성 시 자동 일시 중지
AUTO_RESUME = TRUE 	# AUTO_RESUME: 쿼리가 제출되면 자동 재개
MIN_CLUSTER_COUNT = 1 # MIN_CLUSTER_COUNT: 최소 클러스터 수 1
MAX_CLUSTER_COUNT = 5 # MAX_CLUSTER_COUNT: 최대 클러스터 수 5
SCALING_POLICY = 'STANDARD'; # SCALING_POLICY: 크기 조정 정책은 STANDARD

USE ROLE ACCOUNTADMIN; # ACCOUNTADMIN 역할로 전환

CREATE OR REPLACE USER USER1 # USER1 사용자 생성
password='password'	 # PASSWORD: 비밀번호 설정 ('password')
default_role = SYSADMIN # DEFAULT_ROLE: 기본 역할은 SYSADMIN
DEFAULT_WAREHOUSE=MULTI_CLUSTER_WAREHOUSE; # DEFAULT_WAREHOUSE: 기본 웨어하우스는 MULTI_CLUSTER_WAREHOUSE

GRANT ROLE SYSADMIN TO USER USER1; # USER1 사용자에게 SYSADMIN 역할 부여

CREATE OR REPLACE USER USER2 # USER1 사용자 생성과 동일
password='password' 
default_role = SYSADMIN 
DEFAULT_WAREHOUSE=MULTI_CLUSTER_WAREHOUSE;

GRANT ROLE SYSADMIN TO USER USER2;

DROP USER USER1; # USER1 사용자 삭제
DROP USER USER2; # USER2 사용자 삭제

DROP WAREHOUSE MULTI_CLUSTER_WAREHOUSE;	# MULTI_CLUSTER_WAREHOUSE 삭제

 

7. 결론

Snowflake의 멀티 클러스터 웨어하우스는 대규모 동시성을 지원하면서도 리소스를 효율적으로 관리할 수 있는 강력한 기능을 제공합니다. 자동 크기 조정 및 정적 모드를 통해 다양한 사용 사례에 적합한 설정이 가능하며, 비용 관리 또한 뛰어납니다.

 

Reference

https://www.udemy.com/course/ultimate-snowpro-core-certification-course-exam/?couponCode=UPGRADE02223

https://docs.snowflake.com/ko/user-guide/warehouses-multicluster

 

멀티 클러스터 웨어하우스 | Snowflake Documentation

다음의 4가지 예에서는 멀티 클러스터 웨어하우스의 크레딧 사용을 보여줍니다. 웨어하우스 크기에 따라 1시간당 청구되는 크레딧 수는 가상 웨어하우스 크레딧 사용 을 참조하십시오. 참고 단

docs.snowflake.com

 

728x90