【发布时间】:2020-10-20 08:32:39
【问题描述】:
我有一张经常更改的数据表。我不关心少于 30 天的数据的更改。无需跟踪这些版本。但是一旦数据大约 30 天前,我想跟踪它的变化。这可能使用单个时态表吗?或者我是否需要有一个包含所有内容的“实时”表和一个单独的“存档表”,我们将仅在 30 天前的数据中进行 ETL 并打开时间?
【问题讨论】:
标签: sql-server temporal-tables
我有一张经常更改的数据表。我不关心少于 30 天的数据的更改。无需跟踪这些版本。但是一旦数据大约 30 天前,我想跟踪它的变化。这可能使用单个时态表吗?或者我是否需要有一个包含所有内容的“实时”表和一个单独的“存档表”,我们将仅在 30 天前的数据中进行 ETL 并打开时间?
【问题讨论】:
标签: sql-server temporal-tables
或者我是否需要有一个包含所有内容的“实时”表? 一个单独的“存档表”,我们将在 30 天前进行 ETL 数据/日期时间并打开时间?
您必须使用这种方法,因为当您配置临时表时,您无法在某些日期属性上设置 30 天偏移量。
因此,正如您在最初的问题中指出的那样,合乎逻辑的解决方法是创建一个计划进程,将更改合并到启用了 TEMPORAL TABLE 功能的存档表中,因此它将保留更改历史记录。
【讨论】:
这可以使用单个时态表吗?或者我需要 有我的“实时”表,里面有所有东西,还有一个单独的 “存档表”,我们将仅在 30 天前的数据中进行 ETL 并转 时间上的那个?
创建系统版本的临时表时,它会自动创建一个以“_history”为后缀的历史表。虽然系统版本控制已打开,但无法从 _history 中删除。简单的答案是关闭版本控制,从 _history 表中删除行,然后重新打开系统版本控制。喜欢this。 SO 和其他网站上有很多文章和示例。
【讨论】: