我有一张可能有数十亿条记录的表。要求是将表中一组记录的某些字段设置为以前的值,直到该值更改,然后用新值替换以前的值。
考虑以下作为从原始来源检索的记录的示例:
EventSeqNo EventDesc DescId Desc2Id Desc3Id Desc4Id Desc5Id
1 EventOne 1 102 1 1 1
2 EventTwo 2862 1 1 1 131
3 EventThree 1 1 1 1 1
6 关闭 1 102 1 102 1
1 EventOne 1 105 1 1 1
2 EventTwo 2873 1 1 1 131
3 EventThree 1 101 106 1 1
6 Close 1 1 1 102 1
插入决赛桌后所需的输出为:
EventSeqNo EventDesc DescId Desc2Id Desc3Id Desc4Id Desc5Id
1 EventOne 1 102 1 1 1
2 EventTwo 2862 102 1 1 131
3 EventThree 2862 102 1 1 131
6 Close 2862 102 1 102 131
1 EventOne 1 105 1 1 1
2 EventTwo 2873 105 1 1 131
3 EventThree 2873 101 106 1 131
6 关闭 2873 101 106 102 131
如您所见,每个字段都应获取前一个字段记录的值,除非它的值为 1。此外,重复此规则的记录范围被分组,范围从 1 到 6 作为事件值。
是否有一个 SSIS 组件可以在初始记录插入期间以最小的复杂性优雅地完成此任务,而不是在填充后对表执行复杂的 SQL 更新?
有人建议我缓存转换任务可能是解决方案,但在阅读了如何实现它之后,它似乎不是解决问题的合适解决方案。
如果没有任何 SSIS 包任务可以作为解决方案,还有哪些其他可能的替代方案?我愿意接受任何合理的建议。
谢谢