CREATE INTERACTIVE WAREHOUSE

创建一个新的交互式 虚拟仓库,针对低延迟、高并发工作负载以及交互式表进行了优化。

交互式仓库旨在在使用交互式表时提供最佳查询性能。交互式表通过智能缓存和优化,为经常访问的数据提供快速查询响应。

另请参阅:

CREATE WAREHOUSE, ALTER WAREHOUSE, DESCRIBE WAREHOUSE, DROP WAREHOUSE, SHOW WAREHOUSES, CREATE INTERACTIVE TABLE

语法

CREATE [ OR REPLACE ] INTERACTIVE WAREHOUSE [ IF NOT EXISTS ] <name>
       [ TABLES ( <table_name> [ , <table_name> ... ] ) ]
       [ [ WITH ] objectProperties ]
       [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
       [ objectParams ]

其中:

objectProperties ::=
  WAREHOUSE_SIZE = { XSMALL | SMALL | MEDIUM | LARGE | XLARGE | XXLARGE | XXXLARGE | X4LARGE | X5LARGE | X6LARGE }
  MAX_CLUSTER_COUNT = <num>
  MIN_CLUSTER_COUNT = <num>
  AUTO_SUSPEND = { <num> | NULL }
  AUTO_RESUME = { TRUE | FALSE }
  INITIALLY_SUSPENDED = { TRUE | FALSE }
  RESOURCE_MONITOR = <monitor_name>
  COMMENT = '<string_literal>'
objectParams ::=
  MAX_CONCURRENCY_LEVEL = <num>
  STATEMENT_QUEUED_TIMEOUT_IN_SECONDS = <num>
  STATEMENT_TIMEOUT_IN_SECONDS = <num>

参数

name

指定交互式仓库的标识符。标识符在您的账户中必须唯一。

有关更多详细信息,请参阅 标识符要求。

TABLES ( ... )

(可选)指定以逗号分隔的交互式表名称列表,以立即与交互式仓库关联。使用此子句将在创建仓库时启动指定表的缓存预热过程。

table_name

指定要与仓库关联的交互式表标识符。可指定多个表名,用逗号分隔。

备注

  • 所有指定的表必须是使用 INTERACTIVE 关键字创建的交互式表。

  • 如果省略此子句,可以稍后使用 ALTER WAREHOUSE 配合 ADD TABLES 子句关联交互式表。

  • 缓存预热可能需要较长时间,具体取决于数据量大小。

WAREHOUSE_SIZE = string_constant

指定交互式仓库的规模。交互式仓库支持针对交互式工作负载优化的特定规模。

有效值:
  • XSMALL、'X-SMALL'

  • SMALL

  • MEDIUM

  • LARGE

  • XLARGE、'X-LARGE'

  • XXLARGE、X2LARGE、'2X-LARGE'

  • XXXLARGE、X3LARGE、'3X-LARGE'

默认值:

XSMALL

备注

  • 要使用包含连字符的值(例如 '2X-LARGE'),则必须将值放在单引号内,如下所示。

  • 选择符合工作负载需求的仓库规模。您可以调整 MIN_CLUSTER_COUNT 和 MAX_CLUSTER_COUNT 属性以优化并发性。

MAX_CLUSTER_COUNT = num

指定多群集交互式仓库的最大群集数。

有效值:

1 到 ``10``(取决于仓库大小)

默认值:

1 (单集群仓库)

MIN_CLUSTER_COUNT = num

为多群集交互式仓库指定最小群集数量。

有效值:

1 到 MAX_CLUSTER_COUNT 的值

默认值:

1

AUTO_SUSPEND = { num | NULL }

指定交互式仓库在处于不活动状态多少秒之后自动暂停。

交互式仓库的最小值为 86400``(24 小时)。如果指定的值小于 86400,Snowflake 将使用 86400。将值设置为 ``NULL 禁用自动暂停。

默认值:

``NULL``(自动暂停已禁用)

AUTO_RESUME = { TRUE | FALSE }

指定当向交互式仓库提交 SQL 语句时,是否自动恢复该仓库。

默认值:

FALSE

INITIALLY_SUSPENDED = { TRUE | FALSE }

指定是否以暂停状态创建交互式仓库。

默认值:

``TRUE``(交互式仓库创建已暂停)

RESOURCE_MONITOR = monitor_name

指定要分配给交互式仓库的资源监视器标识符,用于控制 Credit 的使用。

有效值:

任意现有资源监视器。

默认值:

无值(未分配资源监视器)

COMMENT = 'string_literal'

为交互式仓库指定备注。

TAG ( tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ] )

指定 标签 名称和标签字符串值。

标签值始终为字符串,标签值的最大字符数为 256。

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

MAX_CONCURRENCY_LEVEL = num

指定交互式仓库群集执行 SQL 语句的并发级别。

STATEMENT_QUEUED_TIMEOUT_IN_SECONDS = num

指定 SQL 语句在被取消前可排队的时间(以秒为单位)。

STATEMENT_TIMEOUT_IN_SECONDS = num

指定运行中的 SQL 语句被取消前的时间(以秒为单位)。交互式仓库的最大超时时间为五秒。任何超过该都将被忽略。

访问控制要求

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

权限

对象

备注

CREATE WAREHOUSE

账户

创建任何仓库(包括交互式仓库)时所必需的。

USAGE

交互式表

如果在 TABLES 子句中指定了交互式表,则为必需。

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

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

使用说明

  • OR REPLACE 和 IF NOT EXISTS 子句互斥。它们不能同时用于同一条语句中。

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

  • 交互式仓库默认以 SUSPENDED 状态创建。使用 ALTER WAREHOUSE 和 RESUME 子句来启动仓库。

  • 指定 TABLES 子句后,会震碎所指定的交互式表立即开始缓存预热。此过程可能需要较长时间,具体取决于数据大小。

  • 交互式仓库只能查询交互式表。若要查询标准表,请使用 CREATE WAREHOUSE 创建的标准仓库。

  • 交互式仓库支持自动暂停和自动恢复。最小 AUTO_SUSPEND 值为 86400 秒(24 小时)。有关更多信息,请参阅 恢复和暂停交互式仓库。

  • 交互式仓库支持多群集配置,以处理高并发工作负载。

  • 如果在创建时未指定 TABLES 子句,可以稍后使用 ALTER WAREHOUSE 配合 ADD TABLES 子句将交互式表关联到仓库。

  • 关于元数据:

    注意

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

计费和定价

有关交互式仓库的计费和定价注意事项的信息,请参阅 成本和计费注意事项。

示例

创建与特定交互式表关联的交互式仓库:

CREATE OR REPLACE INTERACTIVE WAREHOUSE sales_interactive_wh
  TABLES (orders, customers, products)
  WAREHOUSE_SIZE = 'MEDIUM'
  COMMENT = 'Interactive warehouse for sales team analytics';

创建一个暂未关联表的交互式仓库(表可稍后添加):

CREATE INTERACTIVE WAREHOUSE analytics_interactive_wh
  WAREHOUSE_SIZE = 'LARGE'
  MAX_CLUSTER_COUNT = 3
  MIN_CLUSTER_COUNT = 3;

创建具有资源监视功能的交互式仓库:

CREATE INTERACTIVE WAREHOUSE dev_interactive_wh
  WAREHOUSE_SIZE = 'XSMALL'
  RESOURCE_MONITOR = dev_resource_monitor
  COMMENT = 'Development interactive warehouse';

恢复交互式仓库并关联交互式表:

-- Resume the warehouse
ALTER WAREHOUSE sales_interactive_wh RESUME;

-- Add additional tables if needed
ALTER WAREHOUSE sales_interactive_wh ADD TABLES (inventory);