2017-03-22 6 views
1

Talendを使用してpostgresテーブル&からファイルに書き込まれたデータが読み込まれました。表のサイズは1.8GBで、1,050,000レコードで約125列です。TalendでのPostgresカーソルの計算

  1. -Xms256M -Xmx1024Mとして割り当てられたJVM。ジョブがメモリ不足のために失敗しました。 Postgresは、クエリが完了するまで結果セットを物理メモリに保持します。そのため、JVM全体が占領され、メモリ不足の問題が発生しました。私の理解が間違っていれば私を修正してください。

  2. 有効なカーソルオプションを使用して、値を100,000に、JVMを-Xms256M -Xmx1024Mに保ちました。 java.lang.OutOfMemoryErrorでジョブが失敗しました:Javaヒープスペース

ここでの概念はわかりません。ここで使用されるカーソルは、行のフェッチ・サイズを示します。私の場合、100,000が設定されました。したがって、100,000がフェッチされ、物理メモリに格納され、ファイルにプッシュされます。占有メモリが解放され、次のバッチがフェッチされます。私が間違っているなら、私を修正してください。

私の場合を考えてみると、1,050,000レコードで1.8GBを占めています。各レコードは1.8KBのサイズを占めます。 100,000 * 1.8 = 180,000KBしたがって、全体のサイズはわずか175MBです。 1GBのJVMでジョブが実行されないのはなぜですか?誰か助けてください、このプロセスはどのように機能しますか?

  1. talendのカーソルオプションを設定した後、一部のレコードが削除されました。その問題を追跡することはできません。
+0

あなたはあなたの仕事でどのコンポーネントを使用しているのか、そしてその仕事はどのようになっているのかを教えていただけますか?tpostgresinput - > tfiledelimitedoutputですか? – garpitmzn

+0

このリンクは過去にメモリの問題で私を助けてくれました。見て、それがあなたを助けるかどうかを見てください。 http://kindleconsulting.com/component/zoo/item/managing-jvm-heap-size-in-talend-open-studio.html –

+0

@garpitmzn:はい。これらの2つのコンポーネントだけを使用します。ありがとう – Raja

答えて

0

tPostgresInputコンポーネントで同じ問題が発生しました。 tPostgresConnectionコンポーネントのAuto Commit設定を無効にすると、問題が解決しました。

関連する問題