Pentaho Kettle中的XML Join步骤性能非常低

时间:2016-12-26 09:43:14

标签: xml pentaho kettle

我的要求有些棘手。需要从文本文件输入生成复杂的XML。我已经成功地做到了,但它涉及'11 XML连接'。因为当数据集的数量很大时,代码的性能是可悲的。

如何以良好的性能编写复杂的XML生成代码?

任何建议!!

经过一些建议后,我删除了所有连接并采用了流查找(如水壶样本中所示)和'修改过的java脚本'进行最终连接。

但它在“最后加入步骤”失败了。下面是它失败的联接并抛出“内存不足错误”

var request = new XML()

request = <newbiz xsi:schemaLocation="http://www.crsoftwareinc.com/xml/ns/titanium/common/v1_0 newbiz.xsd" xmlns="http://www.crsoftwareinc.com/xml/ns/titanium/common/v1_0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <newbiz-header>
        <total-consumers>1</total-consumers>
        <creditor-name>DefCrdtr</creditor-name>
        <total-principal>1</total-principal>
        <total-charge>1</total-charge>
        <total-interest>1</total-interest>
        <total-balance>1</total-balance>
    </newbiz-header>
    <consumers>{xmlConsumerNewFinal}</consumers>
</newbiz>

var xmlconsumers_final=request.toXMLString();

任何建议!!

1 个答案:

答案 0 :(得分:1)

是的,使用xml连接步骤其性能非常慢,我删除了所有这些步骤并替换为脚本步骤,是e4x ecmascript(包含在pentaho水壶中,是rhino javascript引擎,特别是设想使用xml)

例如,您可以使用var foo = new XML(); 不包括在其他js引擎中

使用这种技术构建xmls的一切都会更快更简单。 看看文档: http://wso2.com/project/mashup/0.2/docs/e4xquickstart.html