以下のようなジョブがあります。 tmysqlinput_1には、tmysqloutputに更新または挿入する必要がある行があります。 tmysqlinput_2は、tmysqloutputと同じテーブルです。 tmysqlinput_1とtmysqlinput_2はtmapの内部結合を介して結合します。しかし、私が知っているtmysqinput_1にいくつかのテスト行を入れて、更新ブランチにつながり、ジョブを実行すると、エラーが発生するスレッド "Thread-0"の例外java.lang.OutOfMemoryError:GCオーバーヘッドの上限を超えましたメモリ不足エラー - Talend挿入/更新ジョブ
なぜこれが挿入のために起こるのではなく、更新のために起こっているのか分かりますか?
おかげ Rathi
を設定TMAPで一時DIRECTRYパスを与えないことができます私はこれを試してみましたが、それでも同じエラーに –
を取得しています私は同じシナリオを試してみました、私が今信じているのは、ソーステーブルと宛先テーブルに参加し、ターゲットテーブルを更新/挿入する必要はありません。これは、宛先テーブルとの内部結合であるため、宛先に存在するキーだけを照合していることを意味します。だからあなたは、ソーステーブルをメインフローとして、宛先テーブルとの結合なしに置くことができ、出力コンポーネントでは挿入/更新オプションを選択するだけです。 – PreetyK
あなたが提案したこの方法は私の最初のデザインでした。それは非常に遅かったので、私は他の解決策を見つけるためにベンチャーアウトしなければなりませんでした。 –