CREATE APPLICATION¶
애플리케이션 패키지 또는 목록을 사용하여 새 애플리케이션 오브젝트를 만듭니다. 이 명령은 공급자가 Snowflake Native App 을 게시하기 전에 애플리케이션 패키지를 테스트하는 데 사용됩니다.
이 명령이 실행되면 애플리케이션 패키지의 설정 스크립트 가 실행됩니다.
구문¶
CREATE APPLICATION <name> FROM APPLICATION PACKAGE <package_name>
[ COMMENT = '<string_literal>' ]
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , ... ] ) ]
CREATE APPLICATION <name> FROM APPLICATION PACKAGE <package_name>
USING <path_to_version_directory>
[ DEBUG_MODE = { TRUE | FALSE } ]
[ COMMENT = '<string_literal>' ]
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [, ...] ) ]
CREATE APPLICATION <name> FROM APPLICATION PACKAGE <package_name>
USING VERSION <version_identifier> [ PATCH <patch_num> ]
[ DEBUG_MODE = { TRUE | FALSE } ]
[ COMMENT = '<string_literal>' ]
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , ... ] ) ]
CREATE APPLICATION <name> FROM LISTING <listing_name>
[ COMMENT = '<string_literal>' ]
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , ... ] ) ]
[ BACKGROUND_INSTALL = { TRUE | FALSE } ]
필수 매개 변수¶
name
애플리케이션의 식별자를 지정합니다. 계정에 고유한 식별자여야 합니다.
또한, 식별자는 알파벳 문자로 시작해야 하며 전체 식별자 문자열을 큰따옴표(예:
"My object"
)로 묶지 않는 한 공백이나 특수 문자를 포함할 수 없습니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.자세한 내용은 식별자 요구 사항 섹션을 참조하십시오.
FROM APPLICATION PACKAGE package_name
애플리케이션을 만드는 데 사용되는 애플리케이션 패키지의 이름을 지정합니다. 이 절을 사용하여 스테이지 또는 버전/패치를 지정하지 않고 애플리케이션 패키지에서 애플리케이션을 생성하려면 애플리케이션 패키지에 기본 릴리스 지시문이 정의되어 있어야 합니다.
이 절은 애플리케이션 패키지와 동일한 계정에서 애플리케이션을 만드는 데만 사용할 수 있습니다. 이 절은 개발 모드에서 애플리케이션을 만드는 데 사용할 수 없습니다.
FROM LISTING listing_name
애플리케이션을 만드는 데 사용되는 애플리케이션 패키지를 포함한 목록의 이름을 지정합니다.
USING path_to_version_directory
애플리케이션의 애플리케이션 파일이 포함된 스테이지의 경로를 지정합니다.
USING version [ PATCH patch_num ]
애플리케이션을 만드는 데 사용되는 애플리케이션 패키지에 정의된 버전을 지정하며 선택적으로 패치도 지정합니다.
선택적 매개 변수¶
COMMENT = 'string_literal'
애플리케이션에 대한 설명을 지정합니다.
기본값: 값 없음
DEBUG_MODE = { TRUE | FALSE }
생성되는 애플리케이션 오브젝트의 디버그 모드 를 활성화하거나 비활성화합니다. 디버그 모드를 사용하면 공급자가 애플리케이션 오브젝트의 내용을 볼 수 있습니다.
TRUE
를 설정하면 설치된 애플리케이션의 디버그 모드가 활성화됩니다.FAlSE
를 설정하면 설치된 애플리케이션의 디버그 모드가 비활성화됩니다.
참고
애플리케이션이 다음 요구 사항을 충족하는 경우
DEBUG_MODE
만 설정할 수 있습니다.애플리케이션은 애플리케이션 패키지와 동일한 계정에 있습니다.
애플리케이션이 특정 버전 또는 명명된 스테이지의 파일에서 생성되고 있습니다.
TAG ( tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ] )
태그 이름과 태그 문자열 값을 지정합니다.
태그 값은 항상 문자열이며, 태그 값의 최대 문자 수는 256자입니다.
문에서 태그를 지정하는 방법에 대한 자세한 내용은 오브젝트 및 열에 대한 태그 할당량 섹션을 참조하십시오.
BACKGROUND_INSTALL = { TRUE | FALSE }
백그라운드의 목록에서 애플리케이션 오브젝트를 만듭니다. 이 절을 지정하면 명령이 즉시 프롬프트를 표시하고 설치 프로세스는 백그라운드에서 계속됩니다. 해당 설치 상태를 모니터링하려면 DESCRIBE APPLICATION 명령을 사용하십시오.
참고
이 절을 사용하면 명령이 실패하더라도 애플리케이션 오브젝트가 생성됩니다. 이 상황에서는 CREATE APPLICATION 명령을 다시 실행하기 전에 DROP APPLICATION 명령을 사용하여 오브젝트를 삭제하십시오.
이 절은 주로 Snowsight 에서 백그라운드에 Snowflake Native App 을 설치하는 데 사용됩니다. 컨슈머는 백그라운드 설치를 통해 설치 중에 Snowsight 의 목록에서 벗어날 수 있습니다. 공급자는 목록을 게시하기 전에 목록에서 Snowflake Native App 설치를 테스트할 때 이 절을 사용할 수 있습니다.
액세스 제어 요구 사항¶
이 SQL 명령을 실행하는 데 사용되는 역할 에는 최소한 다음 권한 이 있어야 합니다.
권한 |
오브젝트 |
참고 |
---|---|---|
CREATE APPLICATION |
계정 |
|
DEVELOP |
애플리케이션 패키지 |
|
INSTALL |
애플리케이션 패키지 |
|
IMPORT SHARE CREATE APPLICATION |
계정 |
애플리케이션 패키지가 포함된 계정과는 다른 계정에서 애플리케이션 오브젝트를 생성하려면 이러한 권한이 필요합니다. |
사용법 노트¶
애플리케이션 패키지에서 직접 애플리케이션을 만들려면 애플리케이션 패키지에서 기본 릴리스 지시문을 지정해야 합니다.
애플리케이션 오브젝트는 다음과 같은 점에서 데이터베이스와 다릅니다.
애플리케이션은 일시적이지 않을 수 있습니다.
애플리케이션에 대한 OWNERSHIP 권한이 있는 역할:
데이터베이스를 삭제하거나 COMMENT 속성뿐 아니라 애플리케이션에 특정한 모든 속성도 수정할 수 있습니다.
애플리케이션 역할에 부여된 권한을 통하는 경우를 제외하면 애플리케이션의 내용을 보거나 수정할 수 없습니다. 또한 이 역할은 스키마 또는 데이터베이스 역할과 같은 데이터베이스 수준 오브젝트를 만들 수 없습니다.
메타데이터 관련:
주의
고객은 Snowflake 서비스를 사용할 때 개인 데이터(사용자 오브젝트 제외), 민감한 데이터, 수출 통제 대상 데이터 또는 기타 규제 데이터가 메타데이터로 입력되지 않도록 해야 합니다. 자세한 내용은 Snowflake의 메타데이터 필드 섹션을 참조하십시오.
CREATE OR REPLACE <오브젝트> 문은 원자성입니다. 즉, 오브젝트가 바뀔 때 단일 트랜잭션으로 이전 오브젝트가 삭제되고 새 오브젝트가 생성됩니다.
예¶
CREATE APPLICATION hello_snowflake_app
FROM APPLICATION PACKAGE hello_snowflake_package
USING VERSION v1;
+---------------------------------------------------------+
| status |
|---------------------------------------------------------|
| Application 'hello_snowflake_app' created successfully. |
+---------------------------------------------------------+
CREATE APPLICATION hello_snowflake_app
FROM APPLICATION PACKAGE hello_snowflake_package
USING '@hello_snowflake_code.core.hello_snowflake_stage';
+---------------------------------------------------------+
| status |
|---------------------------------------------------------|
| Application 'hello_snowflake_app' created successfully. |
+---------------------------------------------------------+