Pentaho Spoon 工具改造顺序
Posted
技术标签:
【中文标题】Pentaho Spoon 工具改造顺序【英文标题】:Pentaho Spoon Tool Transformation Order 【发布时间】:2014-11-18 13:26:02 【问题描述】:我正在尝试设计一个 ETL 结构,但我陷入了以下步骤。
如您所见,我有 3 个步骤,每个步骤都包含上一步的 FK 值。例如 TABLE3 有一列包含 FK Constraints,它显示 TABLE2 和 TABLE2PK 值/strong> 与 TABLE1 具有相同的关系。
问题是当我开始这项工作时,所有这 3 个步骤都同时运行,并且由于 TABLE2 试图在 TABLE1 创建完成之前设置 FK,因此出现关于 FK 约束的错误。
我不确定这是否是创建 ETL 流程的最佳实践,但有没有办法按指定顺序运行这 3 个步骤?
【问题讨论】:
【参考方案1】:并行插入/更新同一个数据库,恐怕会引发错误(就像你所做的那样)。请尝试将这些转换分成多个 ktr 文件。我想你不会再遇到同样的问题了。希望对你有帮助:)
【讨论】:
我在 Flow 步骤中使用了 Block step until steps finish 而不是多个 ktr 文件,它解决了我的问题。谢谢【参考方案2】:我的解决方案;
在“流程步骤”下的“设计”面板中,有一个名为“阻止此步骤直到步骤完成”的有用工具,它可以帮助您观察您想要的步骤,然后开始被阻止的步骤,这样您就不会遇到 FK 和其他依赖项.. 这是实现;
【讨论】:
【参考方案3】:最好的方法是设置一个JOB,它按照特定的顺序调用3个转换。
作业条目按顺序运行,而转换步骤始终并行运行。如果您甚至需要在事件 B 之前发生 A,则它们应该按该顺序放置在作业中。
【讨论】:
谢谢。但我认为一个转换文件就足以解决这个问题。在您的解决方案中,我将有很多 .ktr 文件。如果我有很多表格和它们之间的关系,这不是问题吗? @nsousa 您可以根据需要使用尽可能多的 kjb 和 ktr 文件来实现您想要实现的流程。试图限制转换文件的数量就像试图限制在 javascript 中定义的函数的数量。如果你需要它们,你就创建它们。以上是关于Pentaho Spoon 工具改造顺序的主要内容,如果未能解决你的问题,请参考以下文章