Snowflake cloud data platform 如何在雪花云数据库中建模和加载类型2维表

Snowflake cloud data platform 如何在雪花云数据库中建模和加载类型2维表,snowflake-cloud-data-platform,Snowflake Cloud Data Platform,想知道如何在雪花云数据库中创建和加载类型2(缓慢变化)维度表。在大多数情况下,此表的加载涉及每天最多1-50条记录的更新和插入。 如果我们遵循传统方法,那么雪花存储将在快照时间内显著增长,因为每一个小更改都会为每个负载创建一个单独的存储。在插入和更新时,雪花会创建新的微分区,但基于表的时间旅行设置,然后将删除过时的微分区。所以,我不会太担心它(空间也很便宜)。若您关心的是时间旅行或故障保护,那个么您可以使用临时表,而不是永久表。这些将不会产生故障安全成本 希望有帮助。否则,在如何处理类型2维

想知道如何在雪花云数据库中创建和加载类型2(缓慢变化)维度表。在大多数情况下,此表的加载涉及每天最多1-50条记录的更新和插入。
如果我们遵循传统方法,那么雪花存储将在快照时间内显著增长,因为每一个小更改都会为每个负载创建一个单独的存储。

在插入和更新时,雪花会创建新的微分区,但基于表的时间旅行设置,然后将删除过时的微分区。所以,我不会太担心它(空间也很便宜)。若您关心的是时间旅行或故障保护,那个么您可以使用临时表,而不是永久表。这些将不会产生故障安全成本


希望有帮助。否则,在如何处理类型2维度上没有任何区别。

在插入和更新时,Snowflake会创建新的微分区,但根据表的时间旅行设置,过时的微分区将被删除。所以,我不会太担心它(空间也很便宜)。若您关心的是时间旅行或故障保护,那个么您可以使用临时表,而不是永久表。这些将不会产生故障安全成本


希望有帮助。否则,在如何处理类型2维度上没有任何区别。

您可以使用
INSERT/UPDATE/DELETE/MERGE
语句将数据放入永久表中。此表将表示维度的“当前状态”。在此表上,您可以创建一个跟踪更改的
对象,然后设置一个存储过程来从流中收集数据,并将这些更改写入SCD2表。该过程可以由按计划运行的任务调用,也可以从成功更新“当前状态”表的另一个任务调用。最后,SCD2表可以是暂时的,以避免增加故障保护和时间旅行的成本(正如Mike在回答中提到的)

流量:
“当前状态”表中的数据-->任务运行过程从流中读取-->更新SCD2

文档:


存储很便宜,但注意成本是很好的。

您可以使用
INSERT/UPDATE/DELETE/MERGE
语句将数据放入一个永久表中。此表将表示维度的“当前状态”。在此表上,您可以创建一个跟踪更改的
对象,然后设置一个存储过程来从流中收集数据,并将这些更改写入SCD2表。该过程可以由按计划运行的任务调用,也可以从成功更新“当前状态”表的另一个任务调用。最后,SCD2表可以是暂时的,以避免增加故障保护和时间旅行的成本(正如Mike在回答中提到的)

流量:
“当前状态”表中的数据-->任务运行过程从流中读取-->更新SCD2

文档:

存储是便宜的,但注意成本是好的