TalendでtMysql系コンポーネントを利用する際(一部は一般的)に
パフォーマンス向上の為に意識しておくべき設定をまとめておきます。
対象読者 or 前提条件 or 環境
- Talendユーザ
- Talend Open Source for Big Data 6.5.1
tMysqlConnection
「追加JDBCパラメータ」に、必要に応じてパラメータ設定を行います。
特に、何も考えずに大量データをSELECTすると、全てJVMに乗っかってしまってヒープ不足に陥るので
大量データをSELECTする場合は、以下のように適切なフェッチサイズを設定すると良いです。
&useCursorFetch=true&defaultFetchSize=10000
tMysqlOutput
挿入毎の行数
「詳細設定」の「挿入毎の行数」を少し大きめに設定します。
※ここは「基本設定」の「データ操作」が「挿入」になっていると表示されます。
デフォルトだと「100」と小さめの値になっているので、「10000」ぐらいにするとかなりパフォーマンスが向上します。
挿入または更新、更新または挿入
いわゆるUpsert処理になりますが、おすすめしません。
自分で実装することを考えると分かりますが、UpdateなのかInsertなのかを逐一チェックして処理するので
パフォーマンスがかなり悪いです。
事前に、Updateするレコード、Insertするレコードを振り分けて
tMysqlOutputでは「挿入」だけか「更新」だけにしたほうがパフォーマンスが良いです。