在ssis中映射代理键

时间:2014-04-23 06:04:37

标签: sql sql-server ssis data-warehouse

如何在ssis中映射代理键(是其他维度表的外键)。

我有Dim.Camp这样的表:

Dim.Camp(campkey int identity(1,1),Advkey int,campbk int,campname varchar(10))

Dim.Adv(Advkey int identity(1,1),Advbk int)

以上是我的维度表,

这些是我的临时表:

Camp(Advid int,campid int,campname varchar(10))

Adv(Advid int)

我使用我的临时表在Dim.camp中加载ssis循环任务:

然后我得到:

Dim.Camp(campkey int identity(1,1),Advkey int,campbk int,campname varchar(10)) populated accept

Advkey获取其列中的所有Null,因为登台表中没有相应的映射

有人可以告诉我,我做错了什么,......或者如何完成这项工作?

1 个答案:

答案 0 :(得分:0)

我想知道源系统或登台表中实体或表“Camp”和“Adv”之间的关系是什么。您始终需要业务键在维度表中执行查找,也就是说,您需要使用campbk查找Dim.Camp中的记录,并使用Advbk查找Dime.Camp维度中的记录

如果我理解正确,您应首先使用例如执行SQL任务或数据流任务中的合并命令从分段加载Dim.Adv。然后你可以从Stage加载Dim.Camp,如下所示:

来源查询:

select Advid as Advbk,campid campbk,campname from Staging.Camp

然后进行查找(查找表:Dim.Adv)并获取Dim.Advid,其中Dim.Adv.Advbk = Advbk

最后进行另一次查找(table:Dim.Camp),然后确定是否必须更新或插入记录。

如果您还有其他问题,请与我们联系。

亲切的问候,