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 命令。
备注
使用此子句时,即使命令失败,也会创建应用程序对象。在这种情况下,请使用 DROP APPLICATION 命令删除此对象,然后再次运行 CREATE APPLICATION 命令。
此子句主要由 Snowsight 在后台安装 Snowflake Native App 时使用。后台安装允许使用者在安装过程中离开 Snowsight 中的列表。列表发布之前,提供商在测试 Snowflake Native App 安装时可能会使用此子句。
访问控制要求¶
权限 |
对象 |
备注 |
---|---|---|
CREATE APPLICATION |
账户 |
|
DEVELOP |
应用程序包 |
|
INSTALL |
应用程序包 |
|
IMPORT SHARE CREATE APPLICATION |
账户 |
在与包含应用程序包的账户不同的账户中创建应用程序对象时,需要这些权限。 |
使用说明¶
要从应用程序包直接创建应用程序,必须在应用程序包中指定默认发布指令。
应用程序对象在以下方面与数据库不同:
应用程序不能是瞬态的。
具有应用程序的 OWNERSHIP 权限的角色:
可以删除数据库或修改 COMMENT 属性以及特定于应用程序的任何属性。
除非通过授予应用程序角色的权限,否则无法查看或修改应用程序的内容。此外,此角色无法创建数据库级对象,例如架构或数据库角色。
关于元数据:
注意
客户应确保在使用 Snowflake 服务时,不会将个人数据(用户对象除外)、敏感数据、出口管制数据或其他受监管数据作为元数据输入。有关更多信息,请参阅 Snowflake 中的元数据字段。
CREATE OR REPLACE <object> 语句是原子的。也就是说,当对象被替换时,旧对象将被删除,新对象将在单个事务中创建。
示例¶
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. |
+---------------------------------------------------------+