自Beta版以来我已经有20年的历史了。NET从DTS开始拥有SSIS,还有几年认真的Datawarehouse exp。,维度,事实表等。我完成了type2缓慢变化的维度,实现了合并和原始SQL任务完成对现有行,新行和更改行的检查。
但是我不是BI开发人员,这不是我的强项。
我需要考虑每天向不断增长的表中导入数据的情况。标记行(我想用日期时间戳记退休)以表明新的负载不包含匹配的行,也许该行已经退休了?当然,常规的数据加载也会发生变化,新的插入内容也会发生更新等。显然,这似乎是第二种缓慢变化的维度。
基于这个有限的描述,这是一个正确的假设吗?
我正在寻找经过时间考验的行业标准,以解决这种情况。
没有数据仓库,也没有用于分析参考的“仪表盘”,该数据实际上将用于支持认真的查找并作为实际计费的参考。
我知道这听起来如何,但是企业只是在尝试获取可能获取的数据的情况下,尽力建立最准确的数据参考。
类型2缓慢变化的尺寸。奇怪的是,实际上没有维表只是每天的数据负载,这里根本没有分析!
我什么都没有了,我正在寻找实现可接受模式的指导。
通用伪代码:
行123 (我什至还没有PK)都出现在中,并且是唯一的,并且首先被加载到舞台表中,最后被加载到主表中< strong>正在加载“星期一”。
加载“星期二”行123 更改了地址,并说是颜色列。...确认两个表中都存在该行更新更改的字段标志/更新的日期字段指示它已经改变了。
加载“星期三”,并且源数据中没有第123行。退出第123行的退出日期(特殊DateTime列表示已退出,也许还有位标记表示已退出)< / p>
仅实施基本类型2?
答案 0 :(得分:0)
显然,分层的SQL MERGE结构提供了所需的条件:
匹配时 (SDC字段正在更改(不同)) 然后更新.....
未按目标匹配时 然后插入()
当未按源和Target.IsRowCurrent匹配时= 1 然后更新
这基本上只是Alex Whittles在Purplefrogsystems.com上的博客的摘要 这似乎是事实上的标准,尽管检查当前日期而不是“行当前标记”也很突出。
可以添加额外的精力来将所有更改推送到登台表,并将这些更改批量加载到所需的目标表中,如果您有大量数据并发现需要额外的精力,则用登台表替换上面的目标表。
但是,这比SSIS SCD逐行向导更快。
我不愿再提及Todd McDermid关于Kimball方法SCD组件的视频。我不喜欢将别人的预制组件投入SSIS,即使是来自杰出的Kimball小组也是如此。
我希望了解发生了什么,但是如果您关心视频系列,那么在展示add in组件之前,它会以两种手动样式进行介绍: https://www.youtube.com/channel/UCks8CDxSGRRh9IbtTc3ZRqw