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

Ard*_*oli 3 ssis etl data-warehouse sql-server-2012

SQL Server 2012用于OLTP数据库并在中创建了一个数据仓库SQL Server 2012.

我设计FactsDimensions内部Data Warehouse有几个视图.

我的一些Fact表是通过在我的视图中加入几个表来完成的.

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

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

有关更多说明:

我有SalesFactData Warehouse有一个View像这样的

Select 
 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
Run Code Online (Sandbox Code Playgroud)

另外我有4个CDC Tables保存OLTP更改为:

Create Table T1Change()

Create Table T2Change()

Create Table T3Change()

Create Table T4Change()
Run Code Online (Sandbox Code Playgroud)

那么,如何Data Warehouse根据这些变化找到哪些记录必须更新?

Mik*_*ney 5

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

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

  • 我认为你的意思是数据仓库?最好的来源IMO是Kimball集团 - 优秀的书籍,培训,文章和论坛.http://www.kimballgroup.com (2认同)