gpt4 book ai didi

snowflake-cloud-data-platform - 删除在雪花分区中的工作原理

转载 作者:行者123 更新时间:2023-12-04 15:03:57 24 4
gpt4 key购买 nike

我有一个关于 delete 如何在 snowflake 中工作的问题。 .由于分区是不可变的,当我删除记录(从多个不可变对象(immutable对象))时它会创建新分区,我的问题是分配的剩余空白空间(16mb 压缩),它会保持原样还是整个微分区将再次重组(重新排列、碎片整理...)?

最佳答案

删除只是插入和更新的一个特例。最好将其视为变化。

Simon 和 hkandpal 提出了一些非常好的观点。关于一般生命周期。

作为小端 I 和 over stack overflow 用户已经测试过,对小表的许多小更改最终仍然只有一个分区。因此,正如西蒙提到的那样,似乎有某种形式可以附加/重写小分区。

但在大端,大的变化几乎没有免费的午餐。我们注意到,如果批量删除,输出需要更少的分区,这意味着如果你有 50 个分区,每个分区包含 5000 行,并且你删除每个奇数行,你最终会得到 25 个分区。所以写操作是将分区聚在一起。

但与此同时,如果您启用了自动集群,则删除/更新写入是无序的,因此在删除数据后我们有巨大的集群“重新正确”成本。因为查找要删除的行的过滤器会重新排序数据,这就是它的写入方式,然后自动聚类可以花费原始写入成本的 5 倍来重新排序数据。因此在某些情况下,使用 order by 子句执行 Create Table As Select 订单会更便宜,以“删除”100+ GB 表的 1/30 数据。

其他表明天下没有免费午餐的事实是自动集群也执行分区碎片整理任务,支持工程师过去曾提到过这可能是它自己的功能。并重新排序。我们有一些小表,我们每天重建以保持完美的顺序,因为它对我们有巨大的影响,依赖于自动集群,因为后者对大多数情况感到满意,但性能影响(它是一个处理信息的表加入几乎所有东西)在表上小而有序且可缓存对我们来说很有意义。

关于snowflake-cloud-data-platform - 删除在雪花分区中的工作原理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66494214/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com