EXECUTE JOB SERVICE

참고

이 작업은 현재 Snowflake의 지원 정책 및 서비스 수준 계약 에 명시된 서비스 수준에 포함되지 않습니다.

Snowpark Container Services 서비스를 작업으로 실행합니다.

CREATE SERVICE 를 사용하여 만든 서비스는 오래 실행되므로 더 이상 필요하지 않은 경우 명시적으로 중지해야 합니다. 반면에, EXECUTE JOB SERVICE를 사용하여 만든 작업은 저장 프로시저와 마찬가지로 코드가 종료되면 종료되는 서비스입니다. 모든 컨테이너가 종료되면 작업이 완료됩니다.

작업은 동기식으로 실행되며, EXECUTE JOB SERVICE 명령은 모든 컨테이너가 종료된 후에 완료됩니다. 작업이 완료되면 Snowflake가 자동으로 필요한 정리 작업을 수행합니다. 하지만 이런 정리 작업은 즉시 수행되지 않습니다. Snowflake는 작업 실행 후 고객이 작업 서비스를 모니터링하고 디버그를 수행할 수 있도록 잠시 동안 작업을 보관합니다.

명령 매개 변수는 특정 순서로 지정해야 합니다. 자세한 내용은 사용법 노트 섹션을 참조하십시오.

참고 항목:

SYSTEM$GET_SERVICE_STATUS — 사용되지 않음 , SYSTEM$GET_SERVICE_LOGS

구문

EXECUTE JOB SERVICE
  IN COMPUTE POOL <compute_pool_name>
  {
     fromSpecification
     | fromSpecificationTemplate
  }
  NAME = [<db>.<schema>.]<name>
  [ QUERY_WAREHOUSE = <warehouse_name> ]
  [ COMMENT = '<string_literal>']
  [ EXTERNAL_ACCESS_INTEGRATIONS = ( <EAI_name> [ , ... ] ) ]
  [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
Copy

여기서

fromSpecification ::=
  {
    FROM @<stage> SPECIFICATION_FILE = '<yaml_file_stage_path>'
    | FROM SPECIFICATION <specification_text>
  }
Copy
fromSpecificationTemplate ::=
  {
    FROM @<stage> SPECIFICATION_TEMPLATE_FILE = '<yaml_file_stage_path>'
    | FROM SPECIFICATION_TEMPLATE <specification_text>
  }
  USING ( <key> => <value> [ , <key> => <value> [ , ... ] ]  )
Copy

필수 매개 변수

IN COMPUTE POOL compute_pool_name

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

FROM stage

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

SPECIFICATION_FILE = 'yaml_file_stage_path'

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

SPECIFICATION_TEMPLATE_FILE = 'yaml_file_stage_path'

스테이지의 서비스 사양 템플릿 파일 경로(예: 'some-dir/echo_template_spec.yaml')를 지정합니다. SPECIFICATION_TEMPLATE_FILE 이 지정된 경우 USING 매개 변수가 필수입니다.

FROM SPECIFICATION specification_text

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

FROM SPECIFICATION_TEMPLATE specification_text

서비스 사양 을 지정합니다. 달러 기호 쌍 ($$)을 사용하여 사양 문자열의 시작과 끝을 구분할 수 있습니다. SPECIFICATION_TEMPLATE 이 지정된 경우 USING 매개 변수가 필수입니다.

NAME = [db.schema.]name

작업처럼 실행되는 서비스의 이름(즉, 식별자)으로, 서비스가 만들어지는 스키마에 고유해야 합니다.

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

선택적 매개 변수

EXTERNAL_ACCESS_INTEGRATIONS = ( EAI_name [ , ... ] )

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

QUERY_WAREHOUSE = warehouse_name

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

기본값: 없음.

COMMENT = 'string_literal'

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

기본값: 값 없음

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

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

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

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

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

사양 템플릿 확장을 매개 변수화하기 위한 값을 제공할 수 있습니다.

USING 은 사양 템플릿(FROM SPECIFICATION_TEMPLATE_FILE 또는 FROM SPECIFICATION_TEMPLATE)을 사용할 때 필수입니다. 키-값 페어는 쉼표로 구분된 목록을 구성해야 합니다.

여기서

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

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

액세스 제어 요구 사항

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

권한

오브젝트

참고

CREATE SERVICE

스키마

USAGE

컴퓨팅 풀

READ

스테이지

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

READ

이미지 리포지토리

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

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

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

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

사용법 노트

  • EXECUTE JOB SERVICE를 호출할 때 매개 변수는 컴퓨팅 풀 지정, 기타 속성, 서비스 사양(스테이지에 사양 파일 이름 또는 인라인 사양 제공) 순으로 제공해야 합니다.

  • 메타데이터 관련:

    주의

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

Snowpark Container Services 작업 서비스를 실행합니다.

EXECUTE JOB SERVICE
  IN COMPUTE POOL tutorial_compute_pool
  NAME = tutorial_db.data_schema.example_job
  FROM @tutorial_stage
  SPECIFICATION_FILE='my_job_spec.yaml';
Copy