首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何存储更改数据(CDC) SQL Server 2012

如何存储更改数据(CDC) SQL Server 2012
EN

Stack Overflow用户
提问于 2015-03-25 03:47:26
回答 1查看 683关注 0票数 1

我已经详细阅读了几遍,现在设置了SQL Server 2012中的CDC功能。然而,有一个非常令人困惑的图形

这似乎表明您的CDC数据可以存储在另一个数据库(数据仓库)中。然而,这并不是我认为真正“储存”的东西。

当您按照关于设置‘数据收集(https://technet.microsoft.com/en-us/library/cc645592(v=sql.110%29.aspx))单元的说明时,没有ETL功能。我对数据收集的理解是随着时间的推移监视数据库活动,而不是返回并检查对特定行集的更改。

所以我一定是漏掉了一些基本的逻辑。是否有某种神奇的CDC功能,可以批量插入或移动CDC可更改的数据(默认情况下只保留3天),还是需要为cdc设置的每个表编写自定义SSIS/ETL作业?我可以编写SSIS作业,但是这看起来很可能不是正确的方法。如果有人能告诉我如何在另一个数据库或实例上存储cdc数据的教程,我将不胜感激。我的搜索只是不断地指向数据收集或cdc,这两个都没有存储100%的更改历史记录。

谢谢您的编辑请求。我在想这让人困惑:

我的要求如下:

  1. 捕获一组特定表上的所有更改(CDC到救援和它工作)
  2. 将更改数据存储在不同的关系数据库中7年。即。能够返回到特定的记录,并在任何一段时间内对其进行所有更改。(这部分让我对MSDN图形和表面解决方案感到困惑)。
  3. 如有可能,应实时完成数据ETL工作(而不是批处理或按计划进行)
EN

回答 1

Stack Overflow用户

发布于 2015-03-25 12:45:19

作为一种技术,CDC主要用于帮助保持二级数据存储(例如数据仓库)的最新变化。话虽如此,没什么可说的,你不能做你想要做的事。本质上,您将在您感兴趣跟踪更改的表上定期设置CDC,并调用cdc.fn_cdc_get_all_changes...cdc.fn_cdc_get_net_changes... (无论哪种情况适合您的情况,尽管我根据您的描述猜测所有更改),以获得这些表的更改,此时您将将原始的cdc数据存储到指定用于保存它的另一个表中。

然而,请注意,保留要求是粗糙的。例如,不能只在保留期结束后删除记录,因为只要记录仍然处于活动状态,就需要一个完整的更改链返回到记录的原始插入。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29247080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档