如何在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,因为登台表中没有相应的映射
有人可以告诉我,我做错了什么,......或者如何完成这项工作?
答案 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),然后确定是否必须更新或插入记录。
如果您还有其他问题,请与我们联系。
亲切的问候,
保