CREATE APPLICATION PACKAGE

Native Apps Framework를 사용하여 애플리케이션의 데이터 콘텐츠 및 애플리케이션 논리를 포함하는 새 애플리케이션 패키지를 만듭니다. 애플리케이션 패키지는 다음을 지정하는 기능이 추가된 데이터베이스입니다.

  • 애플리케이션의 버전.

  • 애플리케이션에서 사용할 수 있는 데이터 콘텐츠.

참고 항목:

ALTER APPLICATION PACKAGE, DROP APPLICATION PACKAGE, SHOW APPLICATION PACKAGES

구문

CREATE APPLICATION PACKAGE [ IF NOT EXISTS ] <name>
  [ DATA_RETENTION_TIME_IN_DAYS = <integer> ]
  [ MAX_DATA_EXTENSION_TIME_IN_DAYS = <integer> ]
  [ DEFAULT_DDL_COLLATION = '<collation_specification>' ]
  [ COMMENT = '<string_literal>' ]
  [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , ... ] ) ]
  [ DISTRIBUTION = { INTERNAL | EXTERNAL } ]
Copy

필수 매개 변수

name

애플리케이션 패키지의 식별자를 지정하며, 계정에 고유한 식별자여야 합니다.

또한, 식별자는 알파벳 문자로 시작해야 하며 전체 식별자 문자열을 큰따옴표(예: "My object")로 묶지 않는 한 공백이나 특수 문자를 포함할 수 없습니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.

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

선택적 매개 변수

DATA_RETENTION_TIME_IN_DAYS = integer

애플리케이션 패키지에서 Time Travel 작업(CLONE 및 UNDROP)을 수행할 수 있는 일수뿐 아니라, 데이터베이스에서 생성된 모든 스키마의 기본 Time Travel 보존 시간도 지정합니다.

자세한 내용은 Time Travel 이해 및 사용하기 섹션을 참조하십시오.

이 오브젝트 수준 매개 변수에 대한 자세한 설명과 아울러 오브젝트 매개 변수에 대한 자세한 내용은 매개 변수 를 참조하십시오.

값:

  • Standard Edition: 0 또는 1

  • Enterprise Edition:

    • 영구 데이터베이스의 경우 0 ~ 90

기본값:

  • Standard Edition: 1

  • Enterprise Edition 또는 그 이상: 1 (계정 수준에서 다른 기본값이 지정되지 않은 경우)

참고

0 의 값은 데이터베이스의 Time Travel을 비활성화합니다.

MAX_DATA_EXTENSION_TIME_IN_DAYS = integer

Snowflake가 테이블의 스트림이 부실해지는 것을 방지하기 위해 애플리케이션 패키지에 있는 테이블의 데이터 보존 기간을 연장할 수 있는 최대 일수를 지정하는 오브젝트 매개 변수입니다.

이 매개 변수에 대한 자세한 설명은 MAX_DATA_EXTENSION_TIME_IN_DAYS 섹션을 참조하십시오.

DEFAULT_DDL_COLLATION = 'collation_specification'

애플리케이션 패키지에 추가된 모든 스키마와 테이블에 대한 기본 데이터 정렬 사양 을 지정합니다. 스키마 및 개별 테이블 수준에서 기본값을 재정의할 수 있습니다.

이 매개 변수에 대한 자세한 내용은 DEFAULT_DDL_COLLATION 을 참조하십시오.

COMMENT = 'string_literal'

애플리케이션 패키지에 대한 설명을 지정합니다.

기본값: 값 없음

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

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

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

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

DISTRIBUTION = { INTERNAL | EXTERNAL }

컨슈머가 외부 조직의 애플리케이션 패키지를 기반으로 애플리케이션을 만들 수 있는지 여부를 지정합니다.

  • INTERNAL 은 애플리케이션 패키지가 생성된 동일한 조직 내에서 컨슈머가 애플리케이션을 만들 수 있음을 지정합니다.

  • EXTERNAL 은 컨슈머가 다른 조직에서 애플리케이션을 만들 수 있음을 지정합니다.

    참고

    DISTRIBUTION 매개 변수를 EXTERNAL 로 설정하면 애플리케이션 패키지에 정의된 각 활성 버전 및 패치에 대해 자동화된 보안 검토가 트리거됩니다.

    자동화된 보안 검토가 APPROVED 상태가 될 때까지 다음 제한 사항이 적용됩니다.

    • 버전 또는 패치에 대한 릴리스 지시문을 설정할 수 없습니다.

    • 애플리케이션 패키지 목록을 게시할 수 없습니다.

액세스 제어 요구 사항

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

권한

오브젝트

참고

CREATE APPLICATION PACKAGE

계정

기본적으로 ACCOUNTADMIN 역할만 이 권한을 가집니다. 필요에 따라 다른 역할에 권한을 부여할 수 있습니다.

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

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

사용법 노트

  • 애플리케이션 패키지를 만들려면 호출자가 계정에 대해 CREATE APPLICATION PACKAGE 권한이 있어야 합니다.

  • 애플리케이션 패키지에 상주할 수 있는 오브젝트의 유형이나 그러한 오브젝트를 소유할 수 있는 역할(데이터베이스 또는 계정 수준)에 대한 제한은 없습니다.

  • 메타데이터 관련:

    주의

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

  • CREATE OR REPLACE <오브젝트> 문은 원자성입니다. 즉, 오브젝트가 바뀔 때 단일 트랜잭션으로 이전 오브젝트가 삭제되고 새 오브젝트가 생성됩니다.

CREATE APPLICATION PACKAGE hello_snowflake_package;
Copy
+-----------------------------------------------------------------------+
| status                                                                |
|-----------------------------------------------------------------------|
| Application Package 'hello_snowflake_package' created successfully.   |
+-----------------------------------------------------------------------+