【发布时间】: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