手动重聚类 – 已弃用

如果您的账户仍然可以使用手动重聚类,您可以使用 ALTER TABLE 命令与 RECLUSTER 子句,随时手动对聚类表进行重聚类。

本主题中的部分:

什么是手动重聚类?

RECLUSTER 子句指示 Snowflake 立即对指定表执行重聚类。与自动聚类不同,该 DML 操作需要账户中有一个虚拟仓库,并且在操作的持续时间内 锁定 表。

此外,对未启用自动聚类的聚类表执行一段时间的重要/持续 DML 活动之后,可能需要在该表上多次执行手动重聚类才能获得所需的结果。

出于这些原因以及其他好处,我们建议使用 自动聚类,而不是手动重聚类。

小技巧

作为一般经验法则和最佳实践,我们建议在对聚类表执行重要 DML 后手动重聚类。您可以使用表的 聚类信息,衡量表聚类是否因 DML 而降级。

手动重聚类的性能影响

Snowflake 在手动重聚类期间执行的分组/排序可能会影响用于执行重聚类的虚拟仓库的性能。

由于这种影响,如果您选择执行手动重聚类,我们建议使用单独的专用仓库,并确保仓库有足够的规模。

从手动重聚类切换到自动聚类

如果手动重聚类在账户中仍然可用,则账户可能 启用 自动聚类

您可以请求为您的账户启用自动聚类;但是,它只会影响从该功能启用 之后 定义的聚类表。

对于在启用该功能之前定义的聚类表,您必须为每个表显式“恢复”自动聚类。您可以使用 SQL 确定给定表是否启用了自动聚类。

有关更多详细信息,请参阅:

手动重聚类表

结合使用 ALTER TABLERECLUSTER 子句,手动对群集密钥已定义的表进行重聚类。您可以使用 WHERE 子句指定在表中重聚类数据的条件或范围。

例如:

  • 要重聚类表 t1,请执行以下操作:

    ALTER TABLE t1 RECLUSTER;
    
    Copy
  • 要对在 2016 年第一周插入表 t1 的数据进行重聚类,请执行以下操作:

    ALTER TABLE t2 RECLUSTER WHERE CREATE_DATE BETWEEN ('2016-01-01') AND ('2016-01-07');
    
    Copy

这些示例使用当前仓库(用于会话)来重聚类表。分配给手动重聚类的资源量取决于仓库的规模。仓库越大,分配给重聚类命令的资源就越多,从而实现更有效的重聚类。

备注

手动重聚类只能在聚类表(即定义了群集密钥的表)上执行。

语言: 中文