在雪花中将表自动群集设置为打开不会将表群集

时间:2019-08-20 20:14:43

标签: snowflake-data-warehouse

大约2周后,我从手动集群转移到了自动集群。

我使用的步骤如下。

  1. 将该表的AUTO_CLUSTERING_ON更新为yes。
  2. 创建中间表并将记录插入表中。
  3. 然后通过聚类键从中间表中按顺序将其插入主表中。

然后我看到群集到处都是。 我曾经做过手动集群,并且看到集群运行良好。 但是在下一个插入到主表中。再次集群看起来有些麻烦。

请建议我是否有任何遗漏。

请注意:

中间表中加载的数据也是从其他表中插入的。而且该表永远不会聚集。我不确定这是否是问题。(我认为不应该这样)

2 个答案:

答案 0 :(得分:0)

您可能需要对Snowflake提出诉讼,以启用自动集群。不久前创建的帐户不会启用此功能。从documentation

  

如果您的帐户中仍然可以使用手动重新群集,则可能尚未为您的帐户启用“自动群集”。

     

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

     

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

另外,根据文档here,您应该尝试运行resume recluster命令,因为该表可能是在为您的帐户启用自动群集之前创建的:

alter table t1 resume recluster;

不要忘记,该表会根据Snowflake的判断自动进行重新整理。雪花可能根本不认为该表需要基于多种因素进行重新整理(我不知道:))

我认为向Snowflake提出诉讼可能会很快解决此问题,因此这可能是最佳途径。

答案 1 :(得分:0)

与该问题没有特别关系,但是我发现定期重建表将获得最佳的聚类结果,尤其是对于频繁变动的表。为此,您可以指定一个ORDER BY子句来模仿您的集群键。

CREATE OR REPLACE TABLE t1 COPY GRANTS AS
SELECT * FROM t1 ORDER BY a, b, c;