我正在尝试设计一个ETL结构,我坚持下面的步骤。
正如您所看到的,我有3个步骤,每个步骤都保持上一步的 FK 值。例如, TABLE3 有一个 FK约束的列,它在 TABLE2 和 TABLE2 <中显示 PK 值/ strong>与 TABLE1 具有相同的关系。
问题是,当我开始这项工作时,所有这3个步骤同时运行,并且由于TABLE2尝试在TABLE1创建完成之前设置FK,因此会出现关于FK约束的错误。
我不确定这是否是创建ETL过程的最佳做法,但是有没有办法以指定的顺序运行这3个步骤?
答案 0 :(得分:2)
并行插入/更新同一个数据库,恐怕会给你一个错误(就像你做的那样)。请尝试将这些转换分成多个ktr文件。我想你不会再遇到同样的问题了。希望它有所帮助:)
答案 1 :(得分:1)
我的解决方案;
在Flow步骤下的Design面板中有一个名为&#34的有用工具;阻止此步骤直到步骤完成&#34;它可以帮助您观察所需的步骤,并启动被阻止的步骤,这样您就不会遇到FK和其他依赖关系。这是实现;
答案 2 :(得分:1)
最好的方法是设置一个JOB,它按特定的顺序调用3个转换。
作业条目按顺序运行,而转换步骤始终并行运行。如果您在事件B之前甚至需要A,那么他们应该在工作中按顺序排列。