【问题标题】:SSIS Population of Slowly Changing Dimension with outrigger带有支腿的渐变维度的 SSIS 种群
【发布时间】:2010-11-04 15:12:12
【问题描述】:

在处理数据仓库时,一个合适的类比是我们有医疗保健从业者。医疗保健从业者具有许多专业属性,并且在多个开放的团队和多个开放的临床领域工作。

例如,您可能有一名护士作为救济/承包商/银行工作人员在多个团队的儿童服务部门工作。或者,您可能有一位新近获得资格的全科医师,他正在某个特殊领域工作,等待获得该特殊领域顾问的资格。

所以我们有开放数量的工作领域和开放数量的团队,我们的维度中不能有团队 1、团队 2 等。其他属性也可能随着时间而改变,比如基地位置(他们工作的地方)、主要团队和他们工作的区域......

所以,跟随金布尔,我选择了支腿:

表 DimHealthProfessionals:

Key (primary key, identity)
Name
Main Team
Main Area of Work
Base Location
Other Attribute 1
Other Attribute 2
Start Date
End Date

Table OutriggerHealthProfessionalTeam:

HPKey (foreign key to DimHealthPRofessionals.Key)   
Team Name
Team Type
Other Team Attribute 1
Other Team Attribute 2

Table OutriggerHealthProfessionalAreaOfWork:

HPKey (as above)
Area of Work
Other AoW attribute 1

如果 HP 的任何属性发生变化,或者他们工作的团队或工作领域的组合发生变化,我们需要在 SCD 中创建一个新条目,它的外支架表来封装它。

我们正在 SSIS 中这样做。

源数据基本上是一个包含主要属性的 HP 表、一个工作区域表、一个团队表和一对映射表,用于将当前工作区域集映射到一个 HP。

我有三个数据源,一个是 HCP 信息,一个是所有 HCP 的工作领域,一个是团队成员。

问题是如何遍历所有三个数据集以确定 HP 是否更改了属性,如果他们更改了属性,我们如何适当地更新 DIM 和两个支腿。

谁能指出我的最佳做法?或者建议另一种对此维度进行建模的方法?

【问题讨论】:

    标签: sql sql-server sql-server-2008 ssis data-warehouse


    【解决方案1】:

    诚然,我可能不明白这里的一切,但在我看来,这个例子中的关系应该颠倒过来。将TeamKeyWorkAreaKey 放在dimHealthProfessionals 中——这应该可以简化事情。

    有了这个,您只需确保在dimHealthProfessionals 之前交付支腿。

    将支腿本身视为尺寸。您可能希望将 dimHealthProfessionals 视为类型 2 维度,以正确捕获历史记录。

    编辑

    考虑到团队对个人是多对多的,事实更合适。 仅当一个人一次只能属于一个团队时,维度表中的列才适用。与工作区相同。

    【讨论】:

      【解决方案2】:

      问题是如何遍历所有三个数据集以确定 HP 是否更改了属性,如果他们更改了属性,我们如何适当地更新 DIM 和两个支腿。

      谁能指出我的最佳做法?或者建议另一种对此维度进行建模的方法?

      我不确定我是否完全理解您的问题。如果您不确定更改检测,请使用包中的校验和。使用源中的数据建立一个临时表,然后通过计算两行的校验和并进行比较,将每一行与其对应的行(通过业务键连接)进行比较。如果它们不同,则数据已更改。

      如果您正在讨论历史维度层次结构中的级联更新(并且您可以在这种情况下将外支视为层次结构),那么如果您有历史记录,外键查找将自动查找 DimHealthProfessionals 中的较新条目(即有在 DimHealthProfessionals 中的 validFrom / validThrough 时间戳)。这些不同的外键会产生不同的校验和。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-09-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-28
        • 2020-07-21
        • 1970-01-01
        相关资源
        最近更新 更多