CREATE SERVICE

현재 스키마에 새로운 Snowpark Container Services 서비스 를 만듭니다. 해당 이름의 서비스가 이미 존재하는 경우 DROP SERVICE 명령을 사용하여 이전에 생성된 서비스를 삭제합니다.

서비스 인스턴스를 두 개 이상 실행할 수 있습니다. 각 서비스 인스턴스는 서비스 사양 파일에 정의된 대로 컴퓨팅 풀의 노드에서 함께 실행되는 컨테이너의 모음입니다. 서비스의 여러 인스턴스를 실행하는 경우 로드 밸런서는 수신 트래픽을 관리합니다.

참고 항목:

ALTER SERVICE , DESCRIBE SERVICE, DROP SERVICE , SHOW SERVICES

구문

CREATE SERVICE [ IF NOT EXISTS ] <name>
  IN COMPUTE POOL <compute_pool_name>
  {
    FROM @<stage>
    SPECIFICATION_FILE = '<yaml_file_stage_path>'
    |
    FROM SPECIFICATION <specification_text>
  }
  [ EXTERNAL_ACCESS_INTEGRATIONS = ( <EAI_name> [ , ... ] ) ]
  [ AUTO_RESUME = { TRUE | FALSE } ]
  [ MIN_INSTANCES = <num> ]
  [ MAX_INSTANCES = <num> ]
  [ QUERY_WAREHOUSE = <warehouse_name> ]
  [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
  [ COMMENT = '{string_literal}']
Copy

필수 매개 변수

name

서비스의 식별자(즉, 이름)를 지정하는 문자열로, 서비스가 생성되는 스키마에 대해 고유해야 합니다.

특수 문자에 대해 따옴표가 있는 이름이나 대/소문자를 구분하는 이름은 지원되지 않습니다. 서비스를 생성하는 데이터베이스 및 스키마 이름에도 동일한 제약 조건이 적용됩니다. 즉, 서비스를 생성할 때 따옴표가 없는 데이터베이스 및 스키마 이름이 유효합니다.

IN COMPUTE POOL compute_pool_name

서비스를 실행할 계정의 컴퓨팅 풀 이름을 지정합니다.

FROM stage

사양 파일이 저장되는 Snowflake 내부 스테이지(예: @tutorial_stage)를 지정합니다.

SPECIFICATION_FILE = 'yaml_file_stage_path'

스테이지의 서비스 사양 파일 경로(예: 'some-dir/echo_spec.yaml')를 지정합니다.

FROM SPECIFICATION specification_text

서비스 사양 을 지정합니다. 달러 기호 쌍 ($$)을 사용하여 사양 문자열의 시작과 끝을 구분할 수 있습니다.

선택적 매개 변수

EXTERNAL_ACCESS_INTEGRATIONS = ( EAI_name [ , ... ] )

서비스가 외부 사이트에 액세스할 수 있도록 하는 외부 액세스 통합 의 이름을 지정합니다. 이 목록의 이름은 대/소문자를 구분합니다. 기본적으로 애플리케이션 컨테이너에는 인터넷에 액세스할 권한이 없습니다. 서비스가 외부 사이트에 액세스하도록 허용하려면 External Access Integration(EAI)을 만들고 해당 통합을 사용하도록 서비스를 구성하십시오. 자세한 내용은 네트워크 송신 섹션을 참조하십시오.

AUTO_RESUME = { TRUE | FALSE }

서비스 함수 또는 수신이 호출될 때 서비스를 자동으로 재개할지 여부를 지정합니다.

  • AUTO_RESUME이 FALSE인 경우 서비스를 명시적으로 재개해야 합니다(ALTER SERVICE … RESUME 사용).

  • AUTO_RESUME이 TRUE인 경우 Snowflake는 서비스 함수가 호출되거나 요청이 수신될 때 일시 중단된 서비스를 재개합니다.

MIN_INSTANCES = num

실행할 서비스 인스턴스의 최소 개수를 지정합니다.

기본값: 1.

MAX_INSTANCES = num

실행할 서비스 인스턴스의 최대 개수를 지정합니다.

QUERY_WAREHOUSE = warehouse_name

서비스 컨테이너가 Snowflake에 연결하여 쿼리를 실행하지만 사용할 웨어하우스를 명시적으로 지정하지 않은 경우 사용할 웨어하우스입니다.

기본값: 없음.

TAG ( tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ] )

태그 이름과 태그 문자열 값을 지정합니다.

태그 값은 항상 문자열이며, 태그 값의 최대 문자 수는 256자입니다.

문에서 태그를 지정하는 방법에 대한 자세한 내용은 오브젝트 및 열에 대한 태그 할당량 섹션을 참조하십시오.

COMMENT = 'string_literal'

서비스에 대한 설명을 지정합니다.

기본값: 값 없음

액세스 제어 요구 사항

이 SQL 명령을 실행하는 데 사용되는 역할 에는 최소한 다음 권한 이 있어야 합니다.

권한

오브젝트

참고

CREATE SERVICE

스키마

USAGE

컴퓨팅 풀

READ

스테이지

사양이 저장되는 스테이지입니다.

READ

이미지 리포지토리

사양에서 참조하는 이미지 리포지토리입니다.

BIND SERVICE ENDPOINT

계정

공용 엔드포인트가 있는 서비스를 생성하려면 역할에 이 권한이 있어야 합니다. 이를 통해 공용 엔드포인트를 통한 서비스 액세스를 허용합니다. 서비스 소유자 역할이 이 권한을 잃으면 공용 엔드포인트에 액세스할 수 없습니다.

스키마의 모든 오브젝트에 대해 작업하려면 상위 데이터베이스 및 스키마에 대한 USAGE 권한도 필요합니다.

지정된 권한 세트로 사용자 지정 역할을 만드는 방법에 대한 지침은 사용자 지정 역할 만들기 섹션을 참조하십시오.

보안 오브젝트 에 대해 SQL 작업을 수행하기 위한 역할과 권한 부여에 대한 일반적인 정보는 액세스 제어의 개요 섹션을 참조하십시오.

사용법 노트

  • 메타데이터 관련:

    주의

    고객은 Snowflake 서비스를 사용할 때 개인 데이터(사용자 오브젝트 제외), 민감한 데이터, 수출 통제 대상 데이터 또는 기타 규제 데이터가 메타데이터로 입력되지 않도록 해야 합니다. 자세한 내용은 Snowflake의 메타데이터 필드 섹션을 참조하십시오.

두 개의 서비스 인스턴스가 실행되는 서비스를 만듭니다.

CREATE SERVICE echo_service
  IN COMPUTE POOL tutorial_compute_pool
  FROM @tutorial_stage
  SPECIFICATION_FILE='echo_spec.yaml'
  MIN_INSTANCES=2
  MAX_INSTANCES=2
Copy