PDI - 超出GC开销限额

时间:2018-06-05 06:53:07

标签: kettle pentaho-data-integration pdi

所以,我对PDI和转换流程有一些疑问。 基于我的trans流量我得到错误GC Overhead Limit Exceeded并且我已经搜索了解决方案,比如增加spoon.bat -Xms -Xmx2g的内存但它不起作用。所以我认为替代解决方案,我认为也许我应该改变流程(Sorte Merge使用了大量内存和导致该错误)。 或者,如果你们有我的问题的另一个解决方案,我真的需要它。

贝娄是我的流动图片。 谢谢#SorryForMyGrammar

My Transformation Flow

2 个答案:

答案 0 :(得分:0)

您确定要合并,而不是Dummy或Append流来追加行吗?

合并行实际上会执行连接。如果你有很多点击来自一个流的键与另一个流的键匹配(或者更糟糕的是,如果你没有键,这导致交叉连接),你将在基数方面创造一个噩梦。

更糟糕的是,当有来自过滤器行的数据流的输入行时,合并连接将无法完成,从而在内存中保留了大量数据集。

如果合并实际上是你需要的,你应该仔细分析结果集的基数,但也要在Merge连接之前添加两个Sort行步骤,它必须通过连接键对每个流进行排序,并且还具有解耦的好处数据流流,允许合并连接一次运行整个流,而不会在转换中造成潜在的死锁。

答案 1 :(得分:0)

您可以通过在公式步骤中包含该逻辑来跳过整个拆分和合并操作。

使用 IF(条件; A; B),其中condition是您在过滤器行步骤中定义的测试,A和B是各个公式步骤中的现有计算。这样每行都可以得到正确的计算,并且流永远不需要加入。