CREATE COMPUTE POOL
CREATE COMPUTE POOL
현재 계정에 새 컴퓨트 풀(compute pool)을 만드는 명령이에요.
출처: 문서
본문
Snowpark Container Services는 일부 예외를 제외하고 AWS, Microsoft Azure, Google Cloud Platform 상용 리전의 계정에서 사용할 수 있어요. 자세한 내용은 Available regions and considerations를 참고하세요.
관련 명령: ALTER COMPUTE POOL, DESCRIBE COMPUTE POOL, DROP COMPUTE POOL, SHOW COMPUTE POOLS, SHOW NODES IN COMPUTE POOL
구문 (Syntax)
CREATE COMPUTE POOL [ IF NOT EXISTS ] <name>
[ FOR APPLICATION <app-name> ]
MIN_NODES = <num>
MAX_NODES = <num>
INSTANCE_FAMILY = <instance_family_name>
[ AUTO_RESUME = { TRUE | FALSE } ]
[ INITIALLY_SUSPENDED = { TRUE | FALSE } ]
[ AUTO_SUSPEND_SECS = <num> ]
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
[ COMMENT = '<string_literal>' ]
[ PLACEMENT_GROUP = '<placement_group_name>' ]
[ BACKUP_INSTANCE_FAMILIES = ( '<instance_family_name>' [ , '<instance_family_name>' ... ] ) ]
필수 파라미터 (Required parameters)
*name*
컴퓨트 풀의 식별자(이름)를 지정하는 문자열이에요. 계정 내에서 고유해야 해요. 특수 문자나 대소문자 구분 이름을 위한 따옴표 이름은 지원되지 않아요.
MIN_NODES = *num*
컴퓨트 풀의 최소 노드 수를 지정해요. 이 값은 0보다 커야 해요. 자세한 내용은 Creating a compute pool을 참고하세요.
MAX_NODES = *num*
컴퓨트 풀의 최대 노드 수를 지정해요.
INSTANCE_FAMILY = *instance_family_name*
컴퓨트 풀의 노드에 프로비저닝할 머신 유형을 식별해요. 머신 유형은 컴퓨트 풀의 컴퓨트 리소스 양을 결정하며, 따라서 컴퓨트 풀이 실행되는 동안 소비되는 크레딧 수도 결정해요.
클라우드 제공자별로 정리된 사용 가능한 인스턴스 패밀리의 전체 목록은 Instance Families를 참고하세요. SHOW COMPUTE POOL INSTANCE FAMILIES를 사용해 현재 가용성과 사양을 프로그래매틱하게 가져올 수도 있어요.
선택 파라미터 (Optional parameters)
FOR APPLICATION *app_name*
Snowflake Native App 이름을 지정해요. 지정하면 컴퓨트 풀은 네이티브 앱만 사용할 수 있어요. SHOW COMPUTE POOLS 명령 출력은 is_exclusive와 application 열을 포함해 컴퓨트 풀이 앱 전용으로 만들어졌는지와 앱 이름을 나타내요.
AUTO_RESUME = { TRUE | FALSE }
서비스나 작업(job)이 제출될 때 컴퓨트 풀을 자동으로 다시 시작(resume)할지 여부를 지정해요.
-
AUTO_RESUME이 FALSE면 컴퓨트 풀에서 서비스나 작업을 시작하려면 먼저 (ALTER COMPUTE POOL RESUME을 사용해) 컴퓨트 풀을 명시적으로 다시 시작해야 해요.
-
AUTO_RESUME이 TRUE면 중단된 컴퓨트 풀에서 새 서비스를 시작하면 Snowflake가 컴퓨트 풀을 시작해요. 마찬가지로 서비스 함수를 호출하거나 인그레스에 접근하는 방식(Using a service)으로 서비스를 사용하면 Snowflake가 이전에 중단된 컴퓨트 풀을 시작하고 서비스를 다시 시작해요.
기본값: TRUE
INITIALLY_SUSPENDED = { TRUE | FALSE }
컴퓨트 풀을 처음에 중단된 상태로 만들지 여부를 지정해요. INITIALLY_SUSPENDED를 TRUE로 설정해 컴퓨트 풀을 만들면 Snowflake는 컴퓨트 풀 생성 시점에 요청된 노드를 프로비저닝하지 않아요. 중단된 컴퓨트 풀은 ALTER COMPUTE POOL … RESUME으로 시작할 수 있어요.
기본값: FALSE
AUTO_SUSPEND_SECS = *num*
비활성 상태 후 Snowflake가 컴퓨트 풀을 자동으로 중단할 때까지의 시간(초)이에요. 비활성 컴퓨트 풀이란 풀의 어떤 노드에서도 현재 활성 서비스나 작업이 없는 풀이에요. auto_suspend_secs가 0으로 설정되면 Snowflake는 컴퓨트 풀을 자동으로 중단하지 않아요.
기본값: 3600초
TAG tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ]
태그(tag) 이름과 태그 문자열 값을 지정해요.
태그 값은 항상 문자열이고 태그 값의 최대 문자 수는 256이에요.
문에서 태그를 지정하는 방법에 대한 정보는 Tag quotas를 참고하세요.
COMMENT = '*string_literal*'
컴퓨트 풀에 대한 주석을 지정해요.
기본값: 값 없음
PLACEMENT_GROUP = *placement_group_name*
컴퓨트 풀의 배치 그룹(placement group)을 식별해요. SHOW COMPUTE POOLS와 DESCRIBE COMPUTE POOL 명령을 사용해 컴퓨트 풀의 배치 그룹 할당을 확인하세요.
placement_group을 DISTRIBUTED로 설정할 수도 있어요. 이 경우 Snowflake는 사용 가능한 모든 배치 그룹에 컴퓨트 풀 노드를 분산시켜 여러 배치 그룹에 걸쳐 균등한 분포를 유지해 그룹이 더 내결함성 있도록 시도해요. 자세한 내용은 Compute pool placement를 참고하세요.
BACKUP_INSTANCE_FAMILIES = ( '*instance_family_name*' [ , ... ] )
용량 부족 오류(ICE)로 기본 INSTANCE_FAMILY를 프로비저닝할 수 없을 때 대체로 사용할 인스턴스 패밀리의 순서 있는 목록이에요. Snowflake는 항상 주 패밀리를 먼저 시도하고, 그 다음 지정한 순서대로 각 백업 패밀리를 시도해요.
목록은 최소 한 항목을 포함해야 하고, 주 INSTANCE_FAMILY나 중복을 포함하면 안 되며, 유효한 인스턴스 패밀리 식별자를 사용해야 해요.
Snowflake는 워크로드 호환성을 검증하지 않아요. 백업 패밀리를 지정하기 전에 다음을 확인하세요:
-
리소스: 주 패밀리보다 같거나 큰 노드당 vCPU, 메모리, 로컬 NVMe 스토리지.
-
가속기 클래스(GPU 풀 전용): 주 패밀리와 같은 유형. CPU 패밀리는 GPU 워크로드를 실행할 수 없고, GPU 백업은 같거나 더 나은 GPU 메모리와 세대를 가져야 해요.
-
하드웨어 기능: EFA나 배치 그룹 같은 서비스가 요구하는 네트워크와 배치 기능이 같아야 해요.
-
CPU 아키텍처: 주 패밀리와 같은 명령어 집합. x86_64 컨테이너 이미지는 ARM 노드에서 실행되지 않고 그 반대도 마찬가지예요.
-
서비스 밀도: 백업 패밀리는 서비스가 사용하도록 구성된
MAX_INSTANCES_PER_NODE를 지원해야 해요.
백업 패밀리를 고를 때 신뢰할 수 있는 출발점은 같은 패밀리 내에서 더 큰 크기를 사용하는 것이에요. 예를 들어 GEN_X64_G2_8은 GEN_X64_G2_4 주 패밀리의 좋은 백업인데, 같은 아키텍처·네트워크 기능·로컬 스토리지 비율을 공유하면서 더 많은 vCPU와 메모리 여유를 제공하기 때문이에요.
자세한 내용은 Backup instance types를 참고하세요.
기본값: 없음
접근 제어 요구사항 (Access control requirements)
이 작업을 실행하는 역할은 최소한 다음 권한을 가져야 해요:
| Privilege | Object | Notes |
|---|---|---|
| CREATE COMPUTE POOL | Account |
사용 참고사항 (Usage notes)
메타데이터에 관해: 고객은 Snowflake 서비스를 사용할 때 메타데이터로 개인 데이터(User 객체 외), 민감 데이터, 수출 통제 데이터 또는 기타 규제 데이터를 입력하지 않도록 해야 해요. 자세한 내용은 Metadata fields in Snowflake를 참고하세요.
예제 (Examples)
1-노드 컴퓨트 풀을 만드는 예제예요. 최소 필수 파라미터를 지정했어요:
CREATE COMPUTE POOL tutorial_compute_pool
MIN_NODES = 1
MAX_NODES = 1
INSTANCE_FAMILY = CPU_X64_XS;
선택 AUTO_RESUME 파라미터를 지정하는 명령이에요:
CREATE COMPUTE POOL tutorial_compute_pool
MIN_NODES = 1
MAX_NODES = 1
INSTANCE_FAMILY = CPU_X64_XS
AUTO_RESUME = FALSE;
백업 인스턴스 패밀리로 컴퓨트 풀을 만드는 명령이에요. GEN_X64_G2_4가 용량 제한이면 Snowflake가 자동으로 GEN_X64_G2_8, 그다음 GEN_X64_G2_16을 시도해요:
CREATE COMPUTE POOL my_compute_pool
MIN_NODES = 1
MAX_NODES = 10
INSTANCE_FAMILY = GEN_X64_G2_4
BACKUP_INSTANCE_FAMILIES = ('GEN_X64_G2_8', 'GEN_X64_G2_16');
더 알아보기 (Learn more)
ALTER COMPUTE POOL, DESCRIBE COMPUTE POOL, DROP COMPUTE POOL, SHOW COMPUTE POOLS, SHOW NODES IN COMPUTE POOL