CREATE APPLICATION PACKAGE

创建新的应用程序包,其中包含 Snowflake Native App 的数据内容和应用程序逻辑。应用程序包包含有关应用程序的以下信息:

  • 应用程序的版本和补丁号。

  • 应用程序可用的数据内容。

  • 应用程序的安装脚本。

  • 应用程序的清单文件。

另请参阅:

ALTER APPLICATION PACKAGE、DROP APPLICATION PACKAGE、SHOW APPLICATION PACKAGES

语法

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 } ]
  [ LISTING_AUTO_REFRESH = { TRUE | FALSE } ]
  [ MULTIPLE_INSTANCES = TRUE ]
  [ ENABLE_RELEASE_CHANNELS = TRUE ]

必填参数

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。

有关在语句中指定标签的信息,请参阅 Tag quotas。

DISTRIBUTION = { INTERNAL | EXTERNAL }

指定提供商在使用应用程序包作为列表的数据产品时,可以创建的列表类型。

  • INTERNAL 指示提供商只能在创建应用程序包的同一组织之内创建专用列表。当 DISTRIBUTION 属性设置为 INTERNAL 时,不会执行自动安全扫描。

  • EXTERNAL 指示提供商可以在创建应用程序包的同一组织之外创建列表。

请参阅 运行自动安全扫描,了解有关设置 DISTRIBUTION 属性以及自动安全扫描的信息。

备注

如果将 DISTRIBUTION 参数设置为 EXTERNAL,则会触发针对应用程序包中定义的每个活跃版本和补丁的自动安全审查。

在自动安全审查的状态变为 APPROVED 之前,存在以下限制:

  • 不能为版本或补丁设置发布指令。

  • 不能发布应用程序包的列表。

LISTING_AUTO_REFRESH = TRUE | FALSE

When set to TRUE, initiates replication to all remote regions when there is a change to the release directive of the application package. When a release directive changes, the application package does not wait for the Cross-Cloud Auto-Fulfillment schedule.

MULTIPLE_INSTANCES = TRUE

允许使用者从应用程序包中安装一个应用程序的多个实例。无法为试用版或付费列表中所含的应用程序包设置此属性。

当允许多个实例时,使用者最多可以在其账户中安装一个应用程序的 10 个实例。

小心

After this property is set to TRUE, it cannot be set to FALSE or unset later.

ENABLE_RELEASE_CHANNELS = TRUE | FALSE

启动应用程序包的 发布通道。

小心

将此属性设置为 TRUE 之后,无法再将其设置为 FALSE 或取消设置。

访问控制要求

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

权限

对象

备注

CREATE APPLICATION PACKAGE

账户

只有 ACCOUNTADMIN 角色默认具有此权限。可以根据需要将此权限授予其他角色。

有关创建具有指定权限集的自定义角色的说明,请参阅 创建自定义角色。

有关对 安全对象 执行 SQL 操作的相应角色和权限授予的一般信息,请参阅 访问控制概述。

使用说明

  • 要创建应用程序包,调用方必须对账户具有 CREATE APPLICATION PACKAGE 权限。

  • 对于应用程序包中可包含的对象类型或可拥有这些对象的角色(数据库或账户级别),不存在任何限制。

  • 关于元数据:

    注意

    客户应确保在使用 Snowflake 服务时,不会将个人数据(用户对象除外)、敏感数据、出口管制数据或其他受监管数据作为元数据输入。有关更多信息,请参阅 Snowflake 中的元数据字段。

  • CREATE OR REPLACE <object> 语句是原子的。也就是说,当对象被替换时,旧对象将被删除,新对象将在单个事务中创建。

示例

CREATE APPLICATION PACKAGE hello_snowflake_package;
+-----------------------------------------------------------------------+
| status                                                                |
|-----------------------------------------------------------------------|
| Application Package 'hello_snowflake_package' created successfully.   |
+-----------------------------------------------------------------------+