CREATE WAREHOUSE

在系统中创建新的 虚拟仓库

初始创建虚拟仓库可能需要一些时间来配置计算资源,除非仓库在创建之初处于 SUSPENDED 状态。

另请参阅:

ALTER WAREHOUSEDESCRIBE WAREHOUSEDROP WAREHOUSESHOW WAREHOUSES

语法

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

其中:

objectProperties ::=
  WAREHOUSE_TYPE = { STANDARD | 'SNOWPARK-OPTIMIZED' }
  WAREHOUSE_SIZE = { XSMALL | SMALL | MEDIUM | LARGE | XLARGE | XXLARGE | XXXLARGE | X4LARGE | X5LARGE | X6LARGE }
  MAX_CLUSTER_COUNT = <num>
  MIN_CLUSTER_COUNT = <num>
  SCALING_POLICY = { STANDARD | ECONOMY }
  AUTO_SUSPEND = { <num> | NULL }
  AUTO_RESUME = { TRUE | FALSE }
  INITIALLY_SUSPENDED = { TRUE | FALSE }
  RESOURCE_MONITOR = <monitor_name>
  COMMENT = '<string_literal>'
  ENABLE_QUERY_ACCELERATION = { TRUE | FALSE }
  QUERY_ACCELERATION_MAX_SCALE_FACTOR = <num>
Copy
objectParams ::=
  MAX_CONCURRENCY_LEVEL = <num>
  STATEMENT_QUEUED_TIMEOUT_IN_SECONDS = <num>
  STATEMENT_TIMEOUT_IN_SECONDS = <num>
Copy

必填参数

name

虚拟仓库的标识符;对于您的账户必须是唯一的。

此外,标识符必须以字母字符开头,且不能包含空格或特殊字符,除非整个标识符字符串放在双引号内(例如,"My object")。放在双引号内的标识符也区分大小写。

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

可选属性 (objectProperties)

WAREHOUSE_TYPE = { STANDARD | 'SNOWPARK-OPTIMIZED' }

指定仓库类型。

有效值:
  • STANDARD'STANDARD'

  • 'SNOWPARK-OPTIMIZED'

默认值:

STANDARD

备注

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

WAREHOUSE_SIZE = { XSMALL | SMALL | MEDIUM | LARGE | XLARGE | XXLARGE | XXXLARGE | X4LARGE | X5LARGE | X6LARGE }

指定虚拟仓库的大小。大小决定了仓库中每个集群的计算资源量,因此也决定了仓库运行时消耗的 Credit。

有效值:

支持 值

同义词

XSMALL

'X-SMALL'

SMALL

MEDIUM

LARGE

XLARGE

'X-LARGE'

XXLARGE

X2LARGE'2X-LARGE'

XXXLARGE

X3LARGE'3X-LARGE'

X4LARGE

'4X-LARGE'

X5LARGE

'5X-LARGE'

X6LARGE

'6X-LARGE'

默认值:

XSMALL

备注

  • XSMALL、SMALL、X5LARGE 和 X6LARGE 大小不支持 Snowpark-Optimized Warehouses。Snowpark-Optimized Warehouses 的默认大小为 MEDIUM。

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

MAX_CLUSTER_COUNT = num

指定多集群仓库的最大集群数。对于单集群仓库,此值始终为 1

有效值:

110

请注意,指定大于 1 的值,表示仓库是多集群仓库;但是,只有在 Snowflake Enterprise Edition (或更高)中设置更高值。

有关更多信息,请参阅 多集群仓库

默认值:

1 (单集群仓库)

小技巧

对于 Snowflake Enterprise Edition(或更高版本),我们建议始终将值设置为大于 1,以帮助维护多集群仓库的高可用性和最佳性能。这也有助于确保在集群发生故障时(虽然较为少见)保持连续性。

MIN_CLUSTER_COUNT = num

指定多集群仓库的最小集群数(仅适用于多集群仓库)。

有效值:

110

但请注意,MIN_CLUSTER_COUNT 必须等于或小于 MAX_CLUSTER_COUNT

  • 如果两个参数相等,则仓库以 最大化 模式运行。

  • 如果 MIN_CLUSTER_COUNT 小于 MAX_CLUSTER_COUNT,则仓库在 自动扩展 模式下运行。

有关更多信息,请参阅 多集群仓库

默认值:

1

SCALING_POLICY = { STANDARD | ECONOMY }

指定在自动扩展模式下运行的多集群仓库中自动启动和关闭集群的策略。

有效值:
  • STANDARD:通过启动集群来最大限度地减少排队。

  • ECONOMY:通过支持持续满载运行的集群来节省 Credit。

有关更详细的描述,请参阅 为多集群仓库设置扩展策略

默认值:

STANDARD

AUTO_SUSPEND = { num | NULL }

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

有效值:

0 或更大的任意整数,或者 NULL

  • 暂停仓库的后台进程大约每 30 秒运行一次,因此,此属性的设置不是为了启用对仓库暂停的精确控制。

  • 虽然允许设置小于 30 的值或不是 30 的倍数的值,但由于仓库暂停的轮询间隔为 30 秒,可能不会产生预期的行为。

  • 设置 0NULL 值表示仓库永不暂停。

默认值:

``600``(仓库处于不活动状态 10 分钟后自动暂停)

重要

建议将 AUTO_SUSPEND 设置为 0NULL,除非查询工作负载需要持续运行的仓库。请注意,这可能会导致使用大量 Credit(并相应地产生高额的费用),尤其是对于较大的仓库。

AUTO_RESUME = { TRUE | FALSE }

指定在向仓库提交 SQL 语句(例如,查询)时,是否自动恢复仓库。

有效值:
  • TRUE:在提交新查询时,仓库将恢复。

  • FALSE:仅当使用 ALTER WAREHOUSE 或通过 Snowflake Web 界面显式恢复时,仓库才会恢复。

默认值:

TRUE (向仓库提交 SQL 语句时,仓库会自动恢复)

INITIALLY_SUSPENDED = { TRUE | FALSE }

指定仓库最初创建时是否处于“暂停”状态。

有效值:
  • TRUE:仓库已创建,但已暂停。

  • FALSE:仓库在创建完成后就开始运行。

默认值:

FALSE

RESOURCE_MONITOR = monitor_name

指定明确分配给仓库的资源监视器的名称。显式将资源监视器分配给仓库时,监视器将控制仓库(以及该监视器分配到的所有其他仓库)使用的每月 Credit。

有效值:

任何现有资源监视器。

有关更多详细信息,请参阅 使用资源监视器

默认值:

无值(未为仓库分配任何资源监视器)

小技巧

要查看所有资源监视器及其标识符,请使用 SHOW RESOURCE MONITORS 命令。

COMMENT = 'string_literal'

指定仓库的注释。

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

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

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

有关在语句中指定标签的信息,请参阅 对象和列的标签配额

查询加速属性

ENABLE_QUERY_ACCELERATION = { TRUE | FALSE }

指定是否为依赖此仓库获取计算资源的查询启用 Query Acceleration Service

有效值:
  • TRUE 启用查询加速

  • FALSE 禁用查询加速

默认值:

FALSE:查询加速已禁用

QUERY_ACCELERATION_MAX_SCALE_FACTOR = num

指定租用计算资源以加速查询的最大扩展系数。 扩展系数用作基于 仓库大小 的乘数。

将 QUERY_ACCELERATION_MAX_SCALE_FACTOR 设置为 0 可以消除限制,并允许查询根据需要租用尽可能多的资源来为查询提供服务。

无论 QUERY_ACCELERATION_MAX_SCALE_FACTOR 值如何,用于加速查询的可用计算资源量都受服务中可用的资源和其他并发请求的数量的约束。有关更多详细信息,请参阅 调整比例因子

有效值:

0100

默认值:

8

可选参数 (objectParams)

MAX_CONCURRENCY_LEVEL = num

对象参数,用于指定仓库集群执行的 SQL 语句(即查询和 DML)的并发级别。

有关此参数的详细说明,请参阅 MAX_CONCURRENCY_LEVEL

STATEMENT_QUEUED_TIMEOUT_IN_SECONDS = num

对象参数,该参数指定在系统取消 SQL 语句(查询、DDL、DML 等)之前,语句可在仓库中排队的时间量(以秒为单位)。

有关此参数的详细说明,请参阅 STATEMENT_QUEUED_TIMEOUT_IN_SECONDS

STATEMENT_TIMEOUT_IN_SECONDS = num

对象参数,指定系统在多久(以秒为单位)后取消运行中的 SQL 语句(查询、DDL、DML 等)。

有关此参数的详细说明,请参阅 STATEMENT_TIMEOUT_IN_SECONDS

访问控制要求

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

权限

对象

备注

CREATE WAREHOUSE

账户

Only the SYSADMIN role, or a higher role, has this privilege by default. The privilege can be granted to additional roles as needed.

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

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

使用说明

  • 创建虚拟仓库会自动将其设置为当前会话使用的仓库(相当于使用仓库的 USE WAREHOUSE 命令)。

    要更改当前会话使用的仓库,请在 CREATE WAREHOUSE 语句后执行显式 USE WAREHOUSE 语句。例如,创建仓库 my_wh,但继续使用当前仓库,而不是 my_wh,以此来执行其他语句:

    SET current_wh_name = (SELECT CURRENT_WAREHOUSE());
    
    CREATE OR REPLACE WAREHOUSE my_wh
      WAREHOUSE_SIZE = 'XSMALL';
    
    USE WAREHOUSE IDENTIFIER($current_wh_name);
    
    Copy
  • 关于元数据:

    注意

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

  • 使用 OR REPLACE 相当于对现有仓库执行 DROP WAREHOUSE,然后创建一个同名的新仓库。

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

    对删除的仓库运行的所有查询都将被中止。

  • 与标准仓库相比,Snowpark 优化型虚拟仓库的初始创建和恢复可能需要更长的时间。

  • Snowpark-Optimized Warehouses 不支持 XSMALLSMALLX5LARGEX6LARGE 仓库大小。

示例

创建一个 X 大仓库:

CREATE OR REPLACE WAREHOUSE my_wh WITH WAREHOUSE_SIZE='X-LARGE';
Copy

创建一个处于暂停状态的大仓库:

CREATE OR REPLACE WAREHOUSE my_wh WAREHOUSE_SIZE=LARGE INITIALLY_SUSPENDED=TRUE;
Copy
语言: 中文