我有一个项目,每6个月检查一次到每3年检查一次,检查记分卡的结果记录在2型缓慢变化的维度表[tblInspections]
中,使用StartDate
和EndDate
来覆盖该记分卡有效的检查期间。检查表链接到[tbleestablments],其中包含关于其他固定维度的其他详细信息,如位置和业务类型。
所以目前,我们提供当前情况的汇总报告(where EndDate is null
)和任何一个机构的历史审计报告(EstablishmentID
)
我的下一个任务是提供更详细的记分卡结果趋势分析报告,我需要提供每个月最后一天情况的历史汇总结果。
我的问题是,尽管我确切地知道我想要什么,我现在不确定如何到达那里。
1)我是否从编写ETL过程开始,以基于所有历史结果构建一个多维数据集,计算出每个月末所有聚合的情况?
2)那么我是否能够在每个月末处理当前记录,有效地将新片添加到现有多维数据集的末端,而无需从头开始重新处理?(如果有,怎么做?)
3)有别的方法吗?通过从具有开始和结束日期的多个记录中选择正确的记录,在任何时间点确定历史状态时,Analysis Services是否有更好的方法自动处理scd ?
任何与此相关的教程建议和指针将不胜感激。
-
首先,如果您试图分析各机构(以及其他维度,如时间/日期)的检查结果,我认为您将需要构建一个新的定期(每月)快照事实表。然后可以构建ETL流程来填充这个新的事实表。最后,您可以将事实表建模为新的或现有多维数据集中的新度量组……一定要注意这个新度量组中度量的聚合属性。通常情况下,您不希望汇总定期快照度量(想想如果您在每个月底汇总您的银行账户余额并按年查看会发生什么)。
-
是的,您将在每个月底运行ETL,这将有更多的行到您的定期(每月)快照事实表中。然后你就可以处理立方体了,一切都准备好了。
-
Analysis Services处理SCD2维度相当好(假设您正在使用代理键…你是吗?)我认为您正在尝试建模的业务流程(检查)……是造成一些混乱的原因,因为它不再是维度在这个新的分析中,它已经成为一个事实(周期性快照事实)