使用CDC表创建数据库状态

时间:2019-06-03 16:37:41

标签: sql-server-2008 relational-database cdc

我有一个复杂的数据模型,其中包含100多个表。我为所有表启用了CDC,并将该数据存储在对应的CDC表中。我需要一种通用机制,通过该机制,只要执行任意的SELECT查询,我就可以返回与过去某个时间点相对应的结果。

我没有找到任何有关此的在线食谱或博客。到目前为止,我已经设法实现了将普通的SELECT查询转换为可识别CDC的等效查询的重要性,考虑JOIN的基数并在选择重要的事务时有一些逻辑很重要。但是,以每个查询为基础手动编写等效查询似乎太复杂且容易出错。有没有可以做到这一点的工具?还是这是一个市场缺口?

1 个答案:

答案 0 :(得分:0)

通常,“更改数据捕获”将使您可以将原始数据库表上的更改复制到新的目标表上。

一种方法是,您可以使用LiveAudit或类似的审核功能来对该表上的更改进行完整的审核跟踪。 (将所有更改插入到“审核”表中以获取正在进行的历史记录)。您仍将需要进行一些复杂的查询,以根据所讨论的时间确定基于主键的行的最新版本。 (https://www.ibm.com/support/knowledgecenter/SSTRGZ_11.4.0/com.ibm.cdcdoc.mcadminguide.doc/concepts/mappingliveaudit.html)** IBM产品,不是MS SQL-CDC。

临时表可能是一种更好的方法,但是它在设计上有其自身的复杂性。

这两种方法都可能受您保留多少历史的限制。
https://docs.microsoft.com/en-us/azure/sql-database/sql-database-temporal-tables-retention-policy