我如何填充我的Fact表?

时间:2015-10-19 13:06:39

标签: sql-server tsql ssis fact

我不是经验丰富的BI开发人员,所以我需要帮助填充我的事实表。首先,我使用适当的SSIS组件从我的生产数据库(我没有使用临时数据库或表)中填充了我的所有维度。

DimParent DimStudent DimManager DimFacilitator 使用自然键作为主键。其余维度使用代理键作为主要维度。使用自然键的原因是因为我在多个不同的模式(作为我不同的校园位置)的生产(OLTP)数据库具有相同的数据库模型。 DW Diagram

我的可测量数据仍在我的生产数据库中,我似乎无法弄清楚如何填充我的事实表。 Production OLTP

我在考虑使用带有连接的大型查询,但是对于我使用查询填充 DimAssessmentType 的方式可能会过于复杂:

select PK_Assessment, [Description] 
from Auckland_Park.Assessment 
union 
select 3, 'International'

1 个答案:

答案 0 :(得分:3)

不要不一致。一切都使用代理键。然后无论发生什么(即校园上线不遵守此规则),您都可以解释它。不一致只是为自己工作。现在做设计。在你掌握了三年的数据之后,重新加载维度和事实是一件很痛苦的工作。

反正。我填充事实的方式是:

  1. 将事实加载到临时表中。
  2. 登台表包含其他列,其中包含您的代理键
  3. 在登台表上运行更新语句,填写代理键
  4. 在您的事实中选择一个合适的窗口。删除并重新加载该窗口
  5. 听起来你可能想在SSIS中进行“内联查找”而不是找到SK的。这很好,但确实很难排除故障。此外,SSIS查找组件不能很好地扩展(即适用于少数行,并且对于许多行来说非常慢)。它也不能很好地完成SCD。

    你的陈述“我似乎无法弄明白......”非常模糊。按照上面的四个步骤告诉我哪一个你无法弄清楚。

    一个问题可能是您没有在昏暗中保留源系统密钥......因此您无法根据源系统密钥查找新的代理密钥。