【发布时间】:2015-03-25 03:47:26
【问题描述】:
我已经详细阅读了几次设置CDC features in SQL Server 2012。然而,有一个非常令人困惑的图形
这似乎表明您的 CDC 数据可以存储在另一个数据库(数据仓库)中。然而,这不是我认为真正“存储”它的东西。
当您按照设置“data collection”单元的说明进行操作时,没有 ETL 功能。我对数据收集的理解是随着时间的推移监控您的数据库活动,而不是返回并查看对特定行集的更改。
所以我一定错过了一些基本的逻辑。是否有某种神奇的 CDC 功能可以批量插入或从 cdc 可更改表中移动数据(默认情况下仅保留 3 天),或者我是否需要为我为 CDC 设置的每个表编写自定义 SSIS/ETL 作业?我可以编写 SSIS 作业,但似乎这很可能不是正确的方法。如果有人能指出我处理在另一个数据库或实例上存储 cdc 数据的教程,我将不胜感激。我的搜索只是不断将我指向数据收集或 cdc,而这些都没有真正存储 100% 的更改历史记录。
感谢您的编辑请求。我在想这很混乱:
我的要求如下:
捕获一组特定表上的所有更改(CDC 来拯救它并且有效)
将更改数据存储在不同的关系数据库中 7 年。 IE。能够返回到特定记录并在任何时间段内对其进行的所有更改。 (这是让我对 MSDN 图形和明显解决方案感到困惑的部分)。
如果可能,数据 ETL 作业应实时完成(而不是分批或按计划)
【问题讨论】:
-
帮我理解一下,为什么不“存储”呢?另外,我不理解“我对数据收集的理解是为了随着时间的推移监控您的数据库活动,而不是返回并查看对特定行集的更改”。也许,通过清楚地说明您要完成的工作,您的问题会得到改善。 听起来您对需要将数据保留多长时间等有想法,因此请单击编辑按钮并帮助我们了解您的目标。
-
为清晰起见已编辑!谢谢blinkc。
-
我认为有 NET 和 ALL 等选项可用于检查您在特定记录上执行的操作,这些操作可以通过数字 0 到 5 进行区分......
标签: sql-server ssis etl cdc