私の要件はやや難解です。テキストファイル入力から複雑なXMLを生成する必要があります。私はそれを成功させましたが、それには'11 XML join 'が含まれています。そのため、データセットが大量である場合、コードのパフォーマンスは哀れです。PentahoケトルのXML Join Stepはパフォーマンスが非常に低い
パフォーマンスの良い複雑なXML生成をどのようにコードすることができますか?
いくつかの提案の後、私はすべての結合を削除し、ストリームルックアップ(ケトルサンプルで示されているように)と最終的な結合のための 'modified java script'を利用しました。
しかし、「最終参加ステップ」で失敗しています。以下は、失敗して「メモリ不足」を起こしている参加です。
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();
何か提案があります。 XMLを使用して
それがパフォーマンスに助けたとして、私はあなたの答えを受け入れました。 400K行を超えると失敗し、「メモリ不足」を起こします。あなたの提案に応じて、私が書いたスクリプトで質問を更新しました。パフォーマンスを向上させるために私がさらにできることは何ですか? –
ありがとうございますが、私はすでに8GBまで上げています。私はこれを行うための最適な方法を探したい。私は、スクリプトの代わりにデカルト結合を使用すると、動作しています。私はスクリプトを使いたいので困惑しています。 –
最終ステップをxmlオブジェクトを使用せずに文字列の連結として扱います。このshoulははるかに良いラムのパフォーマンスになります – jipipayo