0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

TalendジョブのOutOfMemory

Posted at

#はじめに
Talendジョブを作成する際、コンポーネントの使い方によってOutOfMemryとなってしまう可能性があり、気を付ける必要があるコンポーネントについてまとめた記事です。

#Talendバージョン
TalendOpenStudio For DataIntergration v7.2

#OutOfMemoryを起こしやすい処理
###tMapのLookup処理
image.png
tMapのLookup側に設定したデータは、Main側の処理を開始する前にメモリ上に乗せてからMain側の処理を開始する。
そのため「-Xmx size」で指定したヒープサイズを超えるようなデータをLookup側に設定(複数のLookupを設定した場合はその合計)するとOutOfMemoryが発生する。
下記記事にあるように「store temp data」オプションを使うことでOutOfMemoryは回避できるが、メモリとディスク間での出し入れが発生しパフォーマンスが劣化すると考えらえる。
tMap利用におけるメモリ制限問題の解決
※DataStageのJoinステージのように事前にデータをソートし順次処理にすることで、メモリ上に溜め込まないような処理はできない模様。

###tSortRow
image.png
ソート処理を行うため結果的に全入力データをメモリ上にため込む形になり、ヒープ上限を超えるデータ量で処理した場合はOutOfMemoryが発生する。
「sort on disk」オプションを使うことでOutOfMemoryは回避できるが、やはりパフォーマンスが気になる。

###tAggregateRow
OutOfMemoryになる原理はtSortRowと同じ。
ただし、tAggregateRowには一時ディスクを使用するオプションがない。

#回避策
OutOfMemoryの回避策としては主に下記3つが考えられる。
・実行時に指定するヒープサイズの上限を上げる(メモリに余裕があるならこの選択肢が有力)
・一時ディスクを使用するオプションを使う(処理時間が余裕があるのであれば)
・上記のような処理はTalendジョブ外で実装する(PJルール等で1Tlanedジョブのメモリに上限がある場合は本選択肢が現実的か)

#終わりに
一応実機で確認はしていますが、記載内容の誤り等ありましたらコメントいただけますと幸いです。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?