Pentaho Spoon 工具改造顺序

Posted

技术标签:

【中文标题】Pentaho Spoon 工具改造顺序【英文标题】:Pentaho Spoon Tool Transformation Order 【发布时间】:2014-11-18 13:26:02 【问题描述】:

我正在尝试设计一个 ETL 结构,但我陷入了以下步骤。

如您所见,我有 3 个步骤,每个步骤都包含上一步的 FK 值。例如 TABLE3 有一列包含 FK Constraints,它显示 TABLE2TABLE2PK 值/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 工具改造顺序的主要内容,如果未能解决你的问题,请参考以下文章

Excel导出工具包pentaho report

在 Kettle/Spoon/Pentaho 中循环

ETL工具kettle基本使用

如何在 Pentaho Spoon 中拆分列的值?

执行sql任务Pentaho Spoon 7中的常见问题

如何在 Pentaho Spoon UI 中输入多行值?