ALTER SERVICE

Snowpark Container Services 서비스 구성을 수정하고 서비스 코드를 업그레이드하며 서비스를 일시 중단하거나 재개할 수 있습니다. 다음을 할 수 있습니다.

  • 실행 중인 서비스에 수정 사항을 적용합니다. 예를 들어 서비스를 일시 중단하거나 재개하고 실행 중인 서비스 인스턴스 수를 업데이트합니다.

  • 서비스가 다시 시작된 후에만 적용되는 수정 사항을 적용합니다. 예를 들어 쿼리에 대한 기본 웨어하우스를 지정합니다.

  • Snowflake가 서비스를 종료하도록 수정 사항을 적용하고 새 코드를 사용하여 다시 시작합니다. 예를 들어 업데이트된 서비스 코드를 배포할 수도 있습니다.

  • 지정된 볼륨에 대한 초기 콘텐츠로 제공된 스냅샷을 사용하여 지정된 서비스 인스턴스를 다시 시작합니다. ALTER SERVICE를 실행하기 전에 서비스를 중단해야 합니다.

참고 항목:

CREATE SERVICE , DESCRIBE SERVICE, DROP SERVICE , SHOW SERVICES

구문

ALTER SERVICE [ IF EXISTS ] <name> { SUSPEND | RESUME }

ALTER SERVICE [ IF EXISTS ] <name>
  {
     fromSpecification
     | fromSpecificationTemplate
  }

ALTER SERVICE [IF EXISTS] <service_name> RESTORE VOLUME <volume_name>
                                                 INSTANCES <comma_separated_instance_ids>
                                                 FROM SNAPSHOT <snapshot_name>

ALTER SERVICE [ IF EXISTS ] <name> SET [ MIN_INSTANCES = <num> ]
                                       [ MAX_INSTANCES = <num> ]
                                       [ MIN_READY_INSTANCES = <num> ]
                                       [ QUERY_WAREHOUSE = <warehouse_name> ]
                                       [ AUTO_RESUME = { TRUE | FALSE } ]
                                       [ EXTERNAL_ACCESS_INTEGRATIONS = ( <EAI_name> [ , ... ] ) ]
                                       [ COMMENT = '<string_literal>' ]



ALTER SERVICE [ IF EXISTS ] <name> UNSET { MIN_INSTANCES                |
                                           MAX_INSTANCES                |
                                           MIN_READY_INSTANCES          |
                                           QUERY_WAREHOUSE              |
                                           AUTO_RESUME                  |
                                           EXTERNAL_ACCESS_INTEGRATIONS |
                                           COMMENT
                                         }
                                         [ , ... ]

ALTER SERVICE [ IF EXISTS ] <name> SET [ TAG <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' ... ]]
Copy

여기서

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>
  }
Copy
fromSpecificationTemplate ::=
  {
    FROM SPECIFICATION_TEMPLATE_FILE = '<yaml_file_path>' -- for native app service.
    | FROM @<stage> SPECIFICATION_TEMPLATE_FILE = '<yaml_file_path>' -- for non-native app service.
    | FROM SPECIFICATION_TEMPLATE <specification_text>
  }
  USING ( <key> => <value> [ , <key> => <value> [ , ... ] ]  )
Copy

매개 변수

name

변경할 서비스의 식별자를 지정합니다.

식별자에 공백이나 특수 문자가 포함된 경우 전체 문자열을 큰따옴표로 묶어야 합니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.

자세한 내용은 식별자 요구 사항 섹션을 참조하십시오.

{ SUSPEND | RESUME }

서비스를 일시 중단할지, 재개할지 지정합니다.

서비스를 일시 중단하면 Snowflake가 컨테이너를 종료하고 삭제합니다. 나중에 일시 중단된 서비스를 재개하면 Snowflake가 컨테이너를 다시 생성합니다. 즉, Snowflake는 리포지토리에서 이미지를 가져와 컨테이너를 시작합니다. Snowflake는 동일한 이미지 버전을 배포하며, 이는 서비스 업데이트 작업이 아닙니다.

서비스 함수를 사용하거나 공용 엔드포인트(수신)를 호출하여 일시 중단된 서비스를 호출하면 Snowflake가 자동으로 서비스를 재개합니다.

FROM ...

서비스에 대한 사양 또는 템플릿 사양을 식별합니다.

서비스 사양 사용

인라인이나 별도의 파일 에 사양을 정의할 수 있습니다.

SPECIFICATION_FILE = 'yaml_file_path' 또는 . @stage SPECIFICATION_FILE = 'yaml_file_path' 또는 . SPECIFICATION specification_text

서비스 사양을 포함하는 파일이나 서비스 사양을 인라인으로 지정합니다. 서비스 사양이 파일에 있는 경우 SPECIFICATION_FILE을 사용하십시오. Snowflake Native App 에서 생성된 서비스의 경우 @stage 를 생략하고 앱 루트 디렉터리를 기준으로 상대 경로를 지정합니다. 다른 컨텍스트에서 생성된 서비스의 경우 Snowflake 내부 스테이지계 서비스 사양 파일 경로를 지정합니다.

서비스 사양 템플릿 사용

인라인이나 별도의 파일템플릿 사양 을 정의할 수 있습니다.

SPECIFICATION_TEMPLATE_FILE = 'yaml_file_path' 또는 . @stage SPECIFICATION_TEMPLATE_FILE = 'yaml_file_path' 또는 . SPECIFICATION_TEMPLATE specification_text

서비스 사양 템플릿을 포함하는 파일이나 서비스 사양 템플릿을 인라인으로 지정합니다. 서비스 사양 템플릿이 파일에 있는 경우 SPECIFICATION_TEMPLATE_FILE을 사용하십시오. Snowflake Native App 에서 생성된 서비스의 경우 @stage 를 생략하고 앱 루트 디렉터리를 기준으로 상대 경로를 지정합니다. 다른 컨텍스트에서 생성된 서비스의 경우 Snowflake 내부 스테이지계 서비스 사양 파일 경로를 지정합니다. 템플릿 사양을 사용할 경우 USING 매개 변수도 포함해야 합니다.

USING ( key => value [ , key => value [ , ... ] ]  )

템플릿 변수와 해당 변수의 값을 지정합니다.

  • key 은 템플릿 변수의 이름입니다. 템플릿 변수 이름은 선택적으로 큰따옴표(")로 묶을 수 있습니다.

  • value 는 템플릿의 변수에 할당할 값입니다. 문자열 값은 ' 또는 $$ 로 묶어야 합니다. 값은 영숫자이거나 유효한 JSON이어야 합니다.

각 키-값 페어 사이에 쉼표를 사용합니다.

RESTORE VOLUME volume_name INSTANCES comma_separated_instance_ids FROM SNAPSHOT snapshot_name

인스턴스 comma_separated_instance_ids 에 대한 기존 블록 저장소 볼륨 volume_name 의 스냅샷 snapshot_name 을 복원합니다.

스냅샷은 블록 저장소 볼륨에 대해서만 만들 수 있으며 로컬, 메모리 또는 스테이지 볼륨에 대해서는 만들 수 없습니다.

볼륨 이름은 대/소문자를 구분합니다. 따라서 서비스 사양에서 해당 이름과 일치하려면 항상 큰따옴표를 사용해야 합니다.

SET ...

서비스에 대해 하나 이상의 지정된 속성 또는 매개 변수를 설정합니다.

MIN_INSTANCES = num

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

MAX_INSTANCES = num

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

MIN_READY_INSTANCES = num

Snowflake가 서비스를 통해 요청을 처리할 준비가 되었다고 간주하기 위해 준비해야 하는 최소 서비스 인스턴스 수를 지정합니다. 자세한 내용은 CREATE SERVICE 의 MIN_READY_INSTANCES 매개 변수에 대한 설명을 참조하십시오.

참고

서비스에 대해 구성된 MIN_READY_INSTANCES를 찾기 위해 SHOW SERVICES 또는 DESCRIBE SERVICE 명령을 사용하려면 계정에서 2024_08 동작 변경 번들을 사용해야 합니다. 계정에서 이 번들을 활성화 하려면 다음 문을 실행합니다.

SELECT SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE('2024_08');
Copy
QUERY_WAREHOUSE = warehouse_name

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

AUTO_RESUME = { TRUE | FALSE }

서비스 함수가 호출되거나 요청이 수신될 때 서비스를 자동으로 재개할지 여부를 지정합니다.

EXTERNAL_ACCESS_INTEGRATIONS = ( EAI_name [ , ... ] )

서비스가 외부 사이트에 액세스할 수 있도록 하는 외부 액세스 통합 의 이름을 지정합니다. Snowflake는 기존의 모든 EAIs를 이 매개 변수에 지정된 EAIs로 대체합니다. 이 목록의 이름은 대/소문자를 구분합니다. 자세한 내용은 네트워크 송신 섹션을 참조하십시오. 이렇게 하면 실행 중인 모든 서비스 인스턴스에 허용되는 네트워크 액세스가 변경됩니다. 서비스를 명시적으로 중단하고 재개할 필요는 없습니다.

COMMENT = 'string_literal'

컴퓨팅 풀에 대한 설명을 지정합니다.

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

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

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

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

UNSET ...

서비스에 대해 설정 해제할 하나 이상의 속성 및/또는 매개 변수를 지정하여 기본값으로 재설정합니다(CREATE SERVICE 참조).

  • MIN_INSTANCES

  • MAX_INSTANCES

  • MIN_READY_INSTANCES

  • QUERY_WAREHOUSE

  • AUTO_RESUME

  • EXTERNAL_ACCESS_INTEGRATIONS

  • COMMENT

액세스 제어 요구 사항

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

권한

오브젝트

참고

OPERATE

서비스

USAGE

스냅샷

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

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

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

사용법 노트

  • 메타데이터 관련:

    주의

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

서비스를 일시 중단합니다.

ALTER SERVICE echo_service SUSPEND;
Copy

기존 서비스의 MIN_INSTANCES 및 MAX_INSTANCES 속성을 수정합니다.

ALTER SERVICE echo_service SET MIN_INSTANCES=3 MAX_INSTANCES=5;
Copy

example_service 서비스의 인스턴스 0 및 2와 연결된 기존 블록 볼륨에서 스냅샷을 복원합니다.

ALTER SERVICE example_service
  RESTORE VOLUME "myvolume"
  INSTANCES 0,2
  FROM SNAPSHOT my_snapshot;
Copy