【发布时间】:2021-01-05 04:34:36
【问题描述】:
抱歉,描述太长了...但是我们开始...
我们有一个事实表,其中包含一些属性,您可能已将这些属性放入更“经典”数据仓库的维度中。 我希望该表中有数十亿行。
我们希望通过一些不会经常更改但仍会不时更改的清理/分组来丰富这些属性。
我们正在考虑将这个初始事实表保留为我们从不更新或删除的“主”表,并为其创建一个“扩展事实”表副本,我们只需在其中添加新的派生属性。
生成这些扩展属性值的过程需要映射到某个查找表的堡垒,我们从中得到每一行的几种可能性,然后选择最佳的一种(每个初始行一个)。 这可能是处理器密集型的。
问题(终于!):
想象一下我的查找表被修改了,我想重新评估我的初始事实表的一个子集的扩展属性。
我最终会在目标扩展事实表中修改几百万行。
实现此更新的最佳方式是什么? (更新几十亿行表中的几百万行)
-
我应该写一个带连接的 UPDATE 语句吗?
-
删除这百万行并插入新行会更好吗?
-
任何其他方式,例如创建一个仅包含适当 INSERT 的新扩展事实表?
谢谢
埃里克
PS:我来自 SQL Server 背景,DELETE 可能很慢
PPS:我仍然喜欢 SQL Server! :-)
【问题讨论】:
-
Eric,如果您能确定表的键合并将比删除/插入十亿行更好,前提是您的表集群良好。
-
我们对 Snowflake 来说“相对”是新手,到目前为止,我们还没有使用 Clustering,因为 Snowflake 应该开箱即用地做得很好......它说!看来我们应该多研究一下这方面
标签: snowflake-cloud-data-platform