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

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

如您所见,我有 3 个步骤,每个步骤都包含上一步的 FK 值。例如 TABLE3 有一列包含 FK Constraints,它显示 TABLE2TABLE2PK 值/strong> 与 TABLE1 具有相同的关系。

问题是当我开始这项工作时,所有这 3 个步骤都同时运行,并且由于 TABLE2 试图在 TABLE1 创建完成之前设置 FK,因此出现关于 FK 约束的错误。

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

【问题讨论】:

    标签: sql-server pentaho etl


    【解决方案1】:

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

    【讨论】:

    • 我在 Flow 步骤中使用了 Block step until steps finish 而不是多个 ktr 文件,它解决了我的问题。谢谢
    【解决方案2】:

    我的解决方案;

    在“流程步骤”下的“设计”面板中,有一个名为“阻止此步骤直到步骤完成”的有用工具,它可以帮助您观察您想要的步骤,然后开始被阻止的步骤,这样您就不会遇到 FK 和其他依赖项.. 这是实现;

    【讨论】:

      【解决方案3】:

      最好的方法是设置一个JOB,它按照特定的顺序调用3个转换。

      作业条目按顺序运行,而转换步骤始终并行运行。如果您甚至需要在事件 B 之前发生 A,则它们应该按该顺序放置在作业中。

      【讨论】:

      • 谢谢。但我认为一个转换文件就足以解决这个问题。在您的解决方案中,我将有很多 .ktr 文件。如果我有很多表格和它们之间的关系,这不是问题吗? @nsousa
      • 您可以根据需要使用尽可能多的 kjb 和 ktr 文件来实现您想要实现的流程。试图限制转换文件的数量就像试图限制在 javascript 中定义的函数的数量。如果你需要它们,你就创建它们。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多