我是ETL工具的初学者,我希望创建一个将用作历史表的维度表。
我需要一个代理键,但我不一定需要跟踪更改(缓慢变化的维度),因为我的数据源表已经设计为: MyTable的(ID,DIM,日期,结束日期)。
查询通常会检索500多行,但在构建执行后,我提供的表只有150行。 我只通过业务键(ID)获得一行,这是正常的......但是在这种情况下如何创建历史表?对不起,如果这是一个愚蠢的问题。
我正在使用: -Cognos数据管理器版本10.2.1 -Oracle版本12.1.0.2.0 提前感谢您的回复!
答案 0 :(得分:1)
这看起来像是Type 2 SCD。为了维护历史记录,当现有ID的新记录进入源系统时,ETL应该能够以当前日期-1结束当前记录的日期。因此,新记录将Start_date作为当前日期,将End_date作为未来日期(例如9999-12-31)。同样,当相同ID的另一条记录到来时,此记录将结束,并且将插入新记录。这样,您就可以保留所有记录的历史记录以及特定记录处于活动状态的历史记录。此外,您需要确保在特定日期没有两个相同ID的记录处于活动状态