CREATE SERVICE
CREATE SERVICE
CREATE SERVICE 명령은 현재 스키마에 새 Snowpark Container Services 서비스를 만드는 명령이에요.
출처: CREATE SERVICE
본문
현재 스키마에 새 Snowpark Container Services 서비스를 만드는 명령입니다. 같은 이름의 서비스가 이미 있으면 DROP SERVICE 명령으로 이전에 만든 서비스를 삭제해야 해요. 서비스 사양 파일에 정의된 대로, 서비스를 두 개 이상 인스턴스로 실행할 수 있어요. 각 서비스 인스턴스는 컴퓨트 풀의 노드에서 함께 실행되는 컨테이너 모음입니다. 서비스의 여러 인스턴스를 실행하면 로드 밸런서가 들어오는 트래픽을 관리해요. 명령 파라미터는 특정 순서로 지정해야 합니다. 자세한 내용은 Usage Notes를 참고하세요.
Feature — Generally Available — Snowpark Container Services는 일부 예외를 제외하고 AWS, Microsoft Azure, Google Cloud Platform 상용 리전의 계정에서 사용할 수 있어요.
관련 명령: ALTER SERVICE, DESCRIBE SERVICE, DROP SERVICE, SHOW SERVICES
Syntax
CREATE SERVICE [ IF NOT EXISTS ] <name>
IN COMPUTE POOL <compute_pool_name>
{
fromSpecification
| fromSpecificationTemplate
}
[ AUTO_SUSPEND_SECS = <num> ]
[ EXTERNAL_ACCESS_INTEGRATIONS = ( <EAI_name> [ , ... ] ) ]
[ AUTO_RESUME = { TRUE | FALSE } ]
[ MIN_INSTANCES = <num> ]
[ MIN_READY_INSTANCES = <num> ]
[ MAX_INSTANCES = <num> ]
[ LOG_LEVEL = '<log_level>' ]
[ QUERY_WAREHOUSE = <warehouse_name> ]
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
[ COMMENT = '{string_literal}']
Where:
fromSpecification ::=
{
FROM SPECIFICATION_FILE = '<yaml_file_path>' -- for native app service.
| FROM @<stage> SPECIFICATION_FILE = '<yaml_file_path>' -- for non-native app service.
| FROM SPECIFICATION <specification_text>
}
fromSpecificationTemplate ::=
{
FROM SPECIFICATION_TEMPLATE_FILE = '<yaml_file_stage_path>' -- for native app service.
| FROM @<stage> SPECIFICATION_TEMPLATE_FILE = '<yaml_file_stage_path>' -- for non-native app service.
| FROM SPECIFICATION_TEMPLATE <specification_text>
}
USING ( <key> => <value> [ , <key> => <value> [ , ... ] ] )
Required parameters (필수 파라미터)
name— 서비스의 식별자(이름)를 지정하는 문자열이에요. 서비스가 생성되는 스키마 내에서 고유해야 합니다. 특수 문자나 대소문자 구분 이름에 대한 따옴표 이름(quoted names)은 지원되지 않아요. 서비스를 만드는 데이터베이스와 스키마 이름에도 같은 제약이 적용됩니다.compute_pool_name— 서비스를 실행할 계정의 컴퓨트 풀 이름을 지정해요.- 서비스 사양(specification) 또는 템플릿 사양 — 서비스의 사양 또는 템플릿 사양을 식별해요. 서비스 사양 사용하기: 사양을 인라인으로 정의하거나 별도의 파일로 정의할 수 있어요. 사양이 파일에 있으면
SPECIFICATION_FILE을 사용하세요. Snowflake Native App에서 만든 서비스는@stage를 생략하고 앱 루트 디렉터리에 상대적인 경로를 지정합니다. 다른 컨텍스트에서 만든 서비스는 Snowflake 내부 스테이지와 서비스 사양 파일 경로를 지정해요. 서비스 사양 템플릿 사용하기: 템플릿 사양을 인라인으로 정의하거나 별도의 파일로 정의할 수 있어요. 템플릿이 파일에 있으면SPECIFICATION_TEMPLATE_FILE을 사용하세요. 템플릿 사양을 사용할 때는USING파라미터도 포함해야 해요. USING ( <key> => <value> ... )— 템플릿 변수와 그 값들을 지정해요. 각 키-값 쌍 사이에 쉼표를 사용합니다.
Optional parameters (선택 파라미터)
AUTO_SUSPEND_SECS = <num>— Snowflake가 서비스를 자동으로 일시 중지하기 전까지의 비활성(서비스가 유휴) 시간(초)을 지정해요. 비활성이란AUTO_SUSPEND_SECS로 지정된 시간 동안 쿼리(서비스 함수를 호출하는)가 실행되지 않음을 의미해요. 이 값을 300초 이상으로 구성해 자동 일시 중지를 활성화할 수 있습니다. 자세한 내용은 Suspending a service 문서를 참고하세요. 기본값: 0초 (Snowflake가 서비스를 자동으로 일시 중지하지 않음을 나타냄). Preview Feature — Open —AUTO_SUSPEND_SECS속성으로 Snowpark Container Services 서비스의 자동 일시 중지를 구성하는 것은 프리뷰 기능입니다.EXTERNAL_ACCESS_INTEGRATIONS = ( <EAI_name> [ , ... ] )— 서비스가 외부 사이트에 접근할 수 있게 하는 외부 접근 통합(external access integrations)의 이름을 지정해요. 이 목록의 이름은 대소문자를 구분합니다. 기본적으로 애플리케이션 컨테이너는 인터넷에 접근할 권한이 없어요. 서비스가 외부 사이트에 접근하도록 하려면 External Access Integration(EAI)을 만들고 서비스가 그 통합을 사용하도록 구성하세요. 자세한 내용은 Configure service egress 문서를 참고하세요.AUTO_RESUME = { TRUE | FALSE }— 사용자가 서비스에 의존하는 다음 작업 중 하나를 수행할 때 서비스를 자동으로 재개할지 지정해요.AUTO_RESUME이FALSE이면ALTER SERVICE … RESUME으로 명시적으로 재개해야 해요. 기본값: TRUEMIN_INSTANCES = <num>— 실행할 최소 서비스 인스턴스 수를 지정해요. 기본값: 1MIN_READY_INSTANCES = <num>— Snowflake가 서비스를 요청 처리 준비가 된 것으로 간주하는 데 필요한 최소 서비스 인스턴스 수를 나타내요.MIN_READY_INSTANCES는MIN_INSTANCES와 같거나 작아야 합니다. 자세한 내용은 Scaling services 문서를 참고하세요. 기본값:MIN_INSTANCES속성의 값MAX_INSTANCES = <num>— 실행할 최대 서비스 인스턴스 수를 지정해요. 기본값:MIN_INSTANCES속성의 값LOG_LEVEL = '<log_level>'— 활성 이벤트 테이블에서 수집·사용 가능하게 해야 하는 메시지의 심각도 수준을 지정해요. 지정된 수준(및 더 심각한 수준)의 메시지가 수집됩니다. 현재LOG_LEVEL은 플랫폼 이벤트에만 지원되며 컨테이너 로그에는 변경이 지원되지 않아요. 로그, 메트릭, 트레이싱 수준 설정에 대한 내용은 Setting levels for logging, metrics, and tracing 문서를 참고하세요.QUERY_WAREHOUSE = <warehouse_name>— 서비스 컨테이너가 Snowflake에 연결해 쿼리를 실행할 때 사용할 웨어하우스를 명시하지 않은 경우 사용할 웨어하우스예요. 이 파라미터는 Native Apps의 객체 참조도 지원합니다. 기본값: 없음TAG ( ... )— 태그 이름과 태그 문자열 값을 지정해요. 태그 값은 항상 문자열이며 최대 문자 수는 256이에요. 태그 지정 방법은 Tag quotas 문서를 참고하세요.COMMENT = '{string_literal}'— 서비스에 대한 주석을 지정해요. 기본값: 값 없음
Access control requirements (접근 제어 요구 사항)
이 작업을 실행하는 데 사용되는 역할은 최소한 다음 권한을 보유해야 해요.
스키마의 객체를 조작하려면 상위 데이터베이스에 대한 권한과 상위 스키마에 대한 권한이 각각 최소 하나씩 필요합니다. 지정된 권한 집합으로 사용자 정의 역할을 만드는 방법은 Creating custom roles 문서를, 보안 객체에 대한 SQL 작업의 역할·권한 부여에 대한 일반적인 정보는 Overview of Access Control 문서를 참고하세요.
Usage notes (사용 참고 사항)
컴퓨트 풀에서 서비스를 실행해요. 서비스 사양 파일은 YAML 형식이에요.
Examples (예제)
두 개의 서비스 인스턴스를 실행하는 서비스를 만들어 봅시다.
CREATE SERVICE echo_service
IN COMPUTE POOL tutorial_compute_pool
FROM @tutorial_stage
SPECIFICATION_FILE='echo_spec.yaml'
MIN_INSTANCES=2
MAX_INSTANCES=2