如何根据CDC捕获的更改找到“数据仓库”的哪些记录?

时间:2014-03-16 12:26:01

标签: ssis sql-server-2012 etl data-warehouse

我将SQL Server 2012用于OLTP数据库,并在SQL Server 2012中创建了一个数据仓库。

我在Facts内设计了DimensionsData Warehouse多个视图。

我的一些事实表是通过在我的视图中加入几个表来完成的。

我使用CDC(更改数据捕获)来发现任何OLTP更改,并将这些更改保存在Stage Database中,最后我必须根据以上保存的更改更新数据仓库

问题是如何根据CDC保存的更改来检测我的数据仓库中哪些记录需要更新?

更多说明:

我的SalesFactData WarehouseViewSelect Sum(T1.X), Sum(T2.Y), Sum(T3.Z), Sum(T4.W) From T1 Left join T2 On (....) Left join T3 On (....) Left join T4 On (....) Group By T1.X,T2.Y,T3.Z,T4.W

CDC Tables

此外,我还有4 Create Table T1Change() Create Table T2Change() Create Table T3Change() Create Table T4Change() 将OLTP更改保存为:

Data Warehouse

那么,如何根据这些变化找到{{1}}的哪些记录?

1 个答案:

答案 0 :(得分:5)

我现在从您的进一步评论中了解到,您的密钥是由更改的列组成的,并且您没有持久密钥。我不知道在这种情况下如何确定“变化”。

我会放弃整个CDC设计,每次都会截断并完全刷新目标表。