雪花-聚类

时间:2020-04-23 01:12:53

标签: snowflake-cloud-data-platform clustering-key

集群雪花表的最佳方法是什么

  1. 通过基于检索顺序以一定频率手动重新加载表来进行绝对聚类
  2. 创建群集密钥并打开自动重新创建群集,但将其大部分挂起,仅在特定间隔运行一次,方法可能是查看表的分区扫描列

谢谢 拉吉卜

3 个答案:

答案 0 :(得分:0)

您最好的方法是创建按群集键排序的初始表,然后打开自动群集...,然后让Snowflake从那里为您处理一切。

答案 1 :(得分:0)

在适用的所有数据使用模式中,并没有适用于所有时间的通用模式,因为集群正在实现的发展(称为外部,但要注意它随时间而变化)。

自动群集就像硬盘碎片管理一样。因为它们是相同的想法,所以要像放置数据一样靠近它们,以使读取性能更好。就像磁盘碎片整理一样,不同的使用负载/模式使对clstuering /碎片整理的需求更加重要,并且某些用法与自动群集冲突。

例如,我们有一些表被尽可能紧密地写成一个循环,我们希望它聚集在与插入顺序对齐90%的模式中。因此,自动聚类对于插入模式而言并不昂贵。但是我们每月一次从这些表中删除GDPR / PII的原因,并在更新/删除后更改分区的1/3。因此,在应用ORDER的情况下进行全表重写似乎太过分了。但是由于插入率的自动聚类(按今天的样子)会花费数小时,并且成本是进行全表重写的成本的5倍。

此外,我们还有其他表(包含地址信息),并且该表“很小”,因此对整个表进行了很多扫描,因此从自动群集的角度对其进行排序没有意义,但可以重新构建每天使用一个表,以使分区的大小尽可能小,因此全表扫描是最快的。.自动群集的一点也可以进行微分区优化,这很有用,但是我们不需要表有序,所以没有运行集群。

答案 2 :(得分:0)

减少追逐答案的机会。

  1. 使用排序的数据/时间字段加载表-可用于检索数据-业务日期而不是(ETL)插入日期/时间。从数据检索性能的角度来看,这对于大多数表来说应该足够好。

  2. 您可以选择根据表上DML操作的速率进行重新集群

  3. 鉴于您在特定列上还有其他数据访问模式-您可以考虑将聚类键添加到表中-并让自动聚类开始。

始终希望尽早识别访问模式。鉴于此,为了确保实现性能数据检索,自动聚类将重新排列数据。

自动-群集将消耗您的学分,但将超过您将获得的性能。

链接here将帮助您做出明智的决定。

希望这会有所帮助!