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>' [ , ... ] ) ]
   [ 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 } ]
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 安装时可能会使用此子句。

AUTHORIZE_TELEMETRY_EVENT_SHARING = { TRUE | FALSE }

在应用程序中启用 日志记录和事件共享

访问控制要求

用于执行此操作的 角色 必须至少具有以下 权限

权限

对象

备注

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. |
+---------------------------------------------------------+
语言: 中文