CREATE APPLICATION PACKAGE¶
Native Apps Frameworkを使用して、アプリケーションのデータコンテンツとアプリケーションロジックを含む新しいアプリケーションパッケージを作成します。アプリケーションパッケージとは、以下のような追加の機能を指定するデータベースのことです。
アプリケーションのバージョン。
アプリケーションで利用可能なデータコンテンツ。
構文¶
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 } ]
必須パラメーター¶
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;
+-----------------------------------------------------------------------+
| status |
|-----------------------------------------------------------------------|
| Application Package 'hello_snowflake_package' created successfully. |
+-----------------------------------------------------------------------+