CREATE APPLICATION¶
アプリケーションパッケージまたはリストを使用して、新しいアプリケーションオブジェクトを作成します。このコマンドは、プロバイダーが Snowflake Native App を公開する前にアプリケーションパッケージをテストするために使用します。
このコマンドを実行すると、アプリケーションパッケージの セットアップスクリプト が実行されます。
- こちらもご参照ください。
ALTER APPLICATION、 DESCRIBE APPLICATION、 DROP APPLICATION、 SHOW APPLICATIONS
構文¶
CREATE APPLICATION <name> FROM APPLICATION PACKAGE <package_name>
[ COMMENT = '<string_literal>' ]
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , ... ] ) ]
[ AUTHORIZE_TELEMETRY_EVENT_SHARING = { TRUE | FALSE } ]
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>' [, ...] ) ]
[ AUTHORIZE_TELEMETRY_EVENT_SHARING = { TRUE | FALSE } ]
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>' [ , ... ] ) ]
[ AUTHORIZE_TELEMETRY_EVENT_SHARING = { TRUE | FALSE } ]
CREATE APPLICATION <name> FROM LISTING <listing_name>
[ COMMENT = '<string_literal>' ]
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , ... ] ) ]
[ BACKGROUND_INSTALL = { TRUE | FALSE } ]
[ AUTHORIZE_TELEMETRY_EVENT_SHARING = { 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 コマンドを使用してオブジェクトを削除します。
この句は主に、バックグラウンドで Snowflake Native App をインストールするために Snowsight によって使用されます。バックグラウンドインストールでは、コンシューマーはインストール中に Snowsight にあるリストから移動することができます。プロバイダーは、リストを公開する前にリスティングから Snowflake Native App のインストールをテストする場合にこの句を使用する可能性があります。
AUTHORIZE_TELEMETRY_EVENT_SHARING = { TRUE | FALSE }
アプリで ログとイベント共有 を有効にします。
アクセス制御の要件¶
この操作の実行に使用される ロール には、少なくとも次の 権限 が必要です。
権限 |
オブジェクト |
メモ |
---|---|---|
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. |
+---------------------------------------------------------+