我正在处理具有以下可能记录结构的 SSIS 中的平面文件:
ACTION_TYPE PERSON_ID TIME_STAMP
----------- --------- ---------------
1 / 2 (9 digits) (up to millis)
逻辑表明,在执行操作 2 之前,我必须为每个人执行操作 1。此外,“动作”可以不受任何限制地出现在文件中:1 和 2 的对,每个人只有 1 个,只有 2 个,等等。
现在,流程是:
__(1)___> PERFORM 1 ON PERSON (DB)
SOURCE --> SORT BY OPERATION --> CONDITIONAL-SPLIT --|
|__(2)___> PERFORM 2 ON PERSON (DB)
一切正常,直到我注意到从条件拆分出来的记录的顺序没有被保留 - 即,当同一个人的 1 和 2 的“双行”进入拆分时,它可能会一起执行,并行 - 导致我的数据库中出现竞争条件甚至违反约束(因为该表是建立在 1 总是在 2 之前执行的假设之上的)。
使用时间戳对数据进行排序非常有帮助,但是拆分会再次弄乱顺序,就像我在这里所做的排序一样。
任何想法如何“序列化”con-split的输出?如果以某种方式使用全顺序模式,我可以执行流程吗?
谢谢,哈雷尔