gpt4 book ai didi

sql - 带支腿的缓慢变化维度的 SSIS 总体

转载 作者:行者123 更新时间:2023-12-02 05:37:37 27 4
gpt4 key购买 nike

在数据仓库上工作,对这个问题的一个合适的类比是我们有医疗保健从业者。医疗保健从业者具有多种专业属性,并且在多个团队和多个临床领域工作。

例如,您可能有一名护士作为救援人员/承包商/银行工作人员在多个团队的 child 服务部门工作。或者,您可能有一位新获得资格的医生,从事普通医学工作,正在某个特殊领域工作,等待获得该特殊领域顾问的资格。

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

所以,继 Kimble 之后,我选择了支腿:

表 DimHealthProfessionals:

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

表 OutriggerHealthProfessionalTeam:

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

表 OutriggerHealthProfessionalAreaOfWork:

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

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

我们正在 SSIS 中执行此操作。

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

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

问题是如何运行所有三个数据集来确定 HP 是否更改了属性,以及如果它们更改了属性,我们如何适本地更新 DIM 和两个支腿。

有人能给我指出这方面的最佳实践吗?或者建议另一种对该维度建模的方法?

最佳答案

诚然,我可能无法理解这里的所有内容,但在我看来,这个例子中的关系应该颠倒过来。将 TeamKeyWorkAreaKey 放在 dimHealthProfessionals 中 - 这应该会简化事情。

完成此操作后,您只需确保在 dimHealthProfessionals 之前交付支腿即可。

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

编辑

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

enter image description here

关于sql - 带支腿的缓慢变化维度的 SSIS 总体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4098098/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com