CREATE APPLICATION

使用应用程序包或列表创建新的应用程序对象。提供商使用此命令在发布 Snowflake Native App 之前测试应用程序包。

此命令运行时,会运行应用程序包的 安装脚本

另请参阅:

ALTER APPLICATIONDESCRIBE APPLICATIONDROP APPLICATIONSHOW APPLICATIONS

语法

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 } ]
Copy

必填参数

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 安装时可能会使用此子句。

访问控制要求

用于执行此 SQL 命令的 角色 必须至少具有以下 权限

权限

对象

备注

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;
Copy
+---------------------------------------------------------+
| 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';
Copy
+---------------------------------------------------------+
| status                                                  |
|---------------------------------------------------------|
| Application 'hello_snowflake_app' created successfully. |
+---------------------------------------------------------+
语言: 中文