Sql server Pentaho勺子工具转换顺序

Sql server Pentaho勺子工具转换顺序,sql-server,pentaho,etl,Sql Server,Pentaho,Etl,我正在尝试设计一个ETL结构,但在下面的步骤中遇到了问题 如您所见,我有3个步骤,每个步骤都包含上一步骤中的FK值。例如,TABLE3有一列带有FK约束,显示了TABLE2中的PK值,TABLE2与TABLE1具有相同的关系 问题是,当我启动此作业时,所有这3个步骤都同时运行,并且由于表2试图在表1创建完成之前设置FK,因此关于FK约束的错误正在发生 我不确定这是否是创建ETL流程的最佳实践,但是否有办法按指定顺序运行这3个步骤 并行插入/更新同一数据库,恐怕会给您带来错误(就像您所做的那样)

我正在尝试设计一个ETL结构,但在下面的步骤中遇到了问题

如您所见,我有3个步骤,每个步骤都包含上一步骤中的FK值。例如,TABLE3有一列带有FK约束,显示了TABLE2中的PK值,TABLE2TABLE1具有相同的关系

问题是,当我启动此作业时,所有这3个步骤都同时运行,并且由于表2试图在表1创建完成之前设置FK,因此关于FK约束的错误正在发生


我不确定这是否是创建ETL流程的最佳实践,但是否有办法按指定顺序运行这3个步骤

并行插入/更新同一数据库,恐怕会给您带来错误(就像您所做的那样)。请尝试将这些转换分离为多个ktr文件。我想你不会再面临同样的问题了。希望有帮助:)

我的解决方案

在“流程步骤”下的“设计”面板中,有一个名为“阻止此步骤直到步骤完成”的有用工具,可帮助您观察所需步骤,然后启动被阻止的步骤,这样您就不会遇到FK和其他依赖项的问题。。以下是实施情况


最好的方法是设置一个作业,该作业按特定顺序调用3个转换


作业条目按顺序运行,而转换步骤总是并行运行。如果您甚至需要在事件B之前执行A,则应将它们按顺序放入作业中。

我使用了流步骤中的块步骤直到步骤完成,而不是多个ktr文件,这解决了我的问题。谢谢你。但我认为一个转换文件就足以解决这个问题。在您的解决方案中,我将有很多.ktr文件。如果我有很多表和它们之间的关系,这不是一个问题吗@nsousaYou您可以根据需要使用尽可能多的kjb和ktr文件来实现您想要实现的过程。试图限制转换文件的数量就像试图限制javascript中定义的函数的数量一样。如果您需要它们,您可以创建它们。