1

聚类雪花表的最佳方法是什么

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

谢谢拉吉布

4

3 回答 3

1

并非所有数据使用模式都适用,并且也适用于跨时间的通用模式,因为实施正在发展的集群(称为外部,但观察它随着时间的推移而变化)。

自动集群就像硬盘碎片管理一样。因为它们都是相同的想法,将类似的数据定位在附近,以提高读取性能。就像磁盘碎片整理一样,不同的使用负载/模式使得对集群/碎片整理的需求变得更加重要,并且一些用法与自动集群冲突。

例如,我们有一些尽可能紧密地循环写入的表,并且我们希望它以 90% 与插入顺序对齐的模式聚集。所以自动聚类对插入模式来说并不昂贵。但是每月一次我们从这些表中删除 GDPR/PII 原因,并在更新/删除后更改 1/3 的分区。因此,使用 ORDER 进行全表重写似乎是矫枉过正。但是由于插入率,自动集群(就目前而言)会持续数小时,并且成本是全表重写成本的 5 倍。

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

于 2020-04-23T01:45:14.337 回答
0

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

于 2020-04-23T01:18:42.110 回答
0

为了减少对答案的追逐。

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

  2. 您可以根据对表的 DML 操作速率选择重新聚类

  3. 鉴于您对特定列有额外的数据访问模式 - 您可以考虑向表中添加集群键 - 并让自动集群启动。

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

自动 - 集群将花费您的积分,但这将超过您将实现的性能。

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

希望这可以帮助!

于 2020-04-23T11:39:26.260 回答