Snowflake 第 2 代标准仓库¶
第 2 代标准仓库 (Gen2) 是 Snowflake 中当前标准虚拟仓库的更新版本(“下一代”),专注于提高分析和数据工程工作负载的性能。Gen2 基于更快的基础硬件和智能软件优化而构建,例如对删除、更新和合并操作以及表扫描操作的增强。使用 Gen2,您可以期望大多数查询可以更快地完成,并且可以同时完成更多工作。确切的细节取决于您的配置和工作负载。进行测试以验证此功能在多大程度上优化了您的成本和/或性能。
您可以使用以下值之一,在标准仓库的 CREATE WAREHOUSE 或 ALTER WAREHOUSE 命令中指定 RESOURCE_CONSTRAINT 子句:
STANDARD_GEN_1 代表 Snowflake 原生、业界领先的标准虚拟仓库。
STANDARD_GEN_2 代表下一代 Snowflake 标准虚拟仓库。
备注
目前,STANDARD_GEN_1 和 STANDARD_GEN _2 值在 Snowsight 中不可用。您必须使用 SQL 命令来指定它们。
第 2 代标准仓库不适用于仓库规模 X5LARGE 和 X6LARGE。
此功能适用于标准仓库。它不适用于 Snowpark-Optimized Warehouses。
STANDARD_GEN_1 为标准仓库提供的内存容量与 MEMORY _1X 为 Snowpark-Optimized Warehouses 提供的内存容量相同。
标准仓库 RESOURCE_CONSTRAINT 的默认值¶
对于以下区域,任何与 2025 年 6 月 27 日之后创建的新组织关联的账户,其标准仓库将默认设置为 Gen2:
AWS US 西部(俄勒冈州)
AWS EU (法兰克福)
Azure 东部 US 2(弗吉尼亚)
Azure 欧洲西部(荷兰)
对于所有其他提供 Gen2 仓库的区域,2025 年 7 月 15 日之后创建的所有新组织,其标准仓库将默认设置为 Gen2。有关区域可用性的信息,请参阅 区域可用性。
对于上述因素不适用的任何区域或组织,如果您在创建标准仓库时未指定 RESOURCE_CONSTRAINT 子句,Snowflake 会创建 Gen1 标准仓库。
将仓库更改为第 2 代仓库或从第 2 代仓库中移出¶
You can alter a standard warehouse and specify a different RESOURCE_CONSTRAINT clause to change it from generation 1 to generation 2, or from generation 2 to generation 1. You can make that change whether the warehouse is running or suspended.
You can also switch between a Gen2 standard warehouse and a Snowpark-optimized warehouse by changing the value of the WAREHOUSE_TYPE and RESOURCE_CONSTRAINT clauses. You can make that change whether the warehouse is running or suspended.
备注
如果在不先暂停 Gen1 仓库的情况下将其转换为 Gen2,在 Gen1 上运行的现有查询将继续使用 Gen1 计算资源运行直至完成。同时,仓库在 Gen2 计算资源上运行任何新查询。在现有查询运行期间,您需要为这两组计算资源付费。在此期间,无论是否有任何查询使用 Gen2 计算资源,仓库都不会自动暂停。现有查询完成后,工作负载将完全转移到 Gen2 计算资源。因此,您可以通过在仓库运行时对其进行转换来尽可能提高可用性。或者,您可以通过在仓库暂停且不运行查询的情况下对其进行转换来降低成本。
同样的注意事项也适用于标准仓库和 Snowpark-Optimized Warehouses 之间的转换,或对 RESOURCE_CONSTRAINT 属性进行的任何其他更改。现有查询将在其开始时所在的仓库上完成,并使用该查询初始化时生效的 RESOURCE_CONSTRAINT,而新的查询将在新的仓库类型或您设置的新 RESOURCE_CONSTRAINT 上运行。
您可以在 SHOW WAREHOUSES 输出的 "resource_constraint"
列中查看标准仓库的设置。
此设置未反映在仓库的 INFORMATION_SCHEMA 视图中。
区域可用性¶
Gen2 标准仓库适用于 Amazon Web Services (AWS)、Microsoft Azure 和 Google Cloud Platform (GCP) 云服务提供商 (CSPs)。
Gen2 标准仓库在所有 CSP 区域 都可用,但有一些例外。目前,Gen2 标准仓库在这些 CSP 区域 不 可用:
AWS EU (苏黎世)
AWS 非洲(开普敦)
GCP 中东中部 2(达曼)
Azure 韩国中部(首尔)
Azure US 政府弗吉尼亚州 (FedRAMP High Plus)
Azure US 政府弗吉尼亚州
重要
如果您对仓库使用账户复制功能,并且创建了任何 Gen2 仓库,则任何次要区域也必须支持 Gen2 仓库。否则,故障转移后,Gen2 仓库可能无法在次要区域中恢复。确保测试任何 Gen2 仓库都可以在次要区域恢复。
根据 Gen2 标准仓库的可用性,Snowflake 标准仓库的默认值正在发生变更。目前,该 RESOURCE_CONSTRAINT 属性的默认值取决于您的组织和账户的 CSP 区域。有关更多信息,请参阅 标准仓库 RESOURCE_CONSTRAINT 的默认值。
Gen2 标准仓库的成本和计费¶
有关 Snowflake 虚拟仓库 credit 使用情况的一般信息,请参阅 虚拟仓库 Credit 使用量。
有关 Gen2 标准仓库 Credit 使用量的信息,请参阅 Snowflake 服务使用量表。
示例¶
以下示例显示了在创建新仓库或更改现有仓库时如何指定 Gen2 标准仓库。这些示例展示了相关变化,例如同时更改仓库规模、类型和内存容量。
以下示例创建了将所有其他属性保留为默认值的 Gen2 仓库。仓库类型为 STANDARD,规模为 XSMALL。第 1 代和第 2 代标准仓库的这些默认值相同。
CREATE OR REPLACE WAREHOUSE next_generation_default_size
RESOURCE_CONSTRAINT = STANDARD_GEN_2;
以下示例创建了规模为 SMALL 的 Gen2 标准仓库。
CREATE OR REPLACE WAREHOUSE next_generation_size_small
RESOURCE_CONSTRAINT = STANDARD_GEN_2
WAREHOUSE_SIZE = SMALL;
以下示例显示如何将第 1 代标准仓库转换为第 2 代标准仓库。在整个运营过程中,仓库规模保持不变,即为 XLARGE。
CREATE OR REPLACE WAREHOUSE old_to_new_xlarge
WAREHOUSE_SIZE = XLARGE;
ALTER WAREHOUSE old_to_new_xlarge
SET RESOURCE_CONSTRAINT = STANDARD_GEN_2;
以下示例说明如何将 Gen2 标准仓库转换为 Snowpark 优化型。Snowpark-Optimized Warehouses 目前不能作为 Gen2 仓库使用。因为该仓库的类型为 STANDARD 时,其规模为 XSMALL,所以我们指定 MEMORY_1X 的值为 RESOURCE_CONSTRAINT。该 RESOURCE_CONSTRAINT 产生的内存大小与 XSMALL 规模的 Snowpark-Optimized Warehouses 兼容。
CREATE OR REPLACE WAREHOUSE gen2_to_snowpark_optimized
RESOURCE_CONSTRAINT = STANDARD_GEN_2;
ALTER WAREHOUSE gen2_to_snowpark_optimized
SET WAREHOUSE_TYPE = 'SNOWPARK-OPTIMIZED' RESOURCE_CONSTRAINT = MEMORY_1X;
以下示例说明如何将 Snowpark-Optimized Warehouses 转换为标准的 Gen2 仓库。Snowpark-Optimized Warehouses 从规模 MEDIUM 和相对较大的内存容量(以 MEMORY_16X 的 RESOURCE_CONSTRAINT 值表示)开始。变更后,仓库类型为 STANDARD,规模仍然为 MEDIUM。但是,它的内存容量较低。这是因为 STANDARD_GEN_2 的 RESOURCE_CONSTRAINT 值与资源限制为 MEMORY_1X 的 Snowpark-Optimized Warehouses 具有相同的内存容量。
CREATE OR REPLACE WAREHOUSE snowpark_optimized_medium_to_gen2
WAREHOUSE_TYPE = 'SNOWPARK-OPTIMIZED'
WAREHOUSE_SIZE = MEDIUM
RESOURCE_CONSTRAINT = MEMORY_16X;
ALTER WAREHOUSE snowpark_optimized_medium_to_gen2
SET WAREHOUSE_TYPE = STANDARD RESOURCE_CONSTRAINT = STANDARD_GEN_2;