広告 ETL

Talend Open Studio 8.0.1 ジョブのコンパイル時にJVMエラー

2022-07-04

ETLツールを調査中に『Talend(タレンド)』を触る機会があった。

ETLとは、データ分析等の目的でデータを抽出して加工し、ファイルやDBに出力することで扱いやすいようにするフローのことを意味する。
『Extract(抽出)』『Transform(加工)』『Load(書き出し)』の頭文字から成る。

無償で試用できる評価版をインストールして、実際に操作感を調べようとしたところ早速エラーで動かないという事態に。

すぐにエラーの原因が分からず、Javaのバージョンを変更してみたり、Talendを再インストールしたり。

さらには、社用のWindows、開発環境のLinux(ubuntu)、私用のMacOSで試したりと右往左往。

解決方法を見つけるのにかなり時間を要したため、本記事で事象と解決策について記載する。

事象

ジョブと呼ばれる処理を実行する際に、以下のようなジョブコンパイルエラーとなる。

org.talend.designer.runprocess.ProcessorException: ジョブコンパイルエラー 
少なくともジョブ"hello"にコンパイルエラーがあります。修正してもう一度エクスポートしてください。
エラー行: 6
詳細メッセージ: Syntax error on token "によって自動生成されました", @ expected
JVM互換性によるエラーです。StudioのJVMをご確認ください。

ログやエラーの内容を確認しても、原因の詳細がさっぱりわからない。

”JVM互換性によるエラー”と記載があるが、talendのバージョン8.0.1に対してJavaのバージョンは11で要件を満たしている。

$ java -version
java version "11.0.15.1" 2022-04-22 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.15.1+2-LTS-10)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.15.1+2-LTS-10, mixed mode)

いずれのジョブでも同様なエラーとなり、tMsgBoxを使用した"Hello, World!"を出力するだけのジョブでもエラーとなるのでジョブの定義が間違っているとは考えにくい。

解決策

Talend Open Studio for Data Integration 入門ガイドを改めて読んでいると、以下のような文言を発見。

Talend Open Studio 8.0日本語版の場合は、Talend Communityで「Talend Open Studio 8.0日本語版で発生するジョブ実行時エラーの解決方法」も併せてご参照ください。

https://help.talend.com/r/ja-JP/8.0/studio-getting-started-guide-open-studio-for-data-integration/introduction

リンクがないので、talend Community にて検索してみると同様な事例についての内容が記載されていた。

TOS8.0.1においてコメント行に不適切な改行が入りコンパイルエラー』より抜粋

【事象】
ジョブ作成時に実行しようとすると、​コンパイルエラーが発生。いずれのジョブにおいても発生。

【原因】
自動生成されたコードの最上部コメント欄​に不適切な改行が入り込み、コメントから外れてしまっている。

【暫定対処】
言語設定(ウィンドゥ>Preferences>Talend>国際化>ローカル言語)を「日本語」ではなく「English」へと変更する事により、改行が無くなりコンパイルエラーは発生しなくなる​​

https://community.talend.com/s/question/0D55b00006kSJNcCAO/tos801%E3%81%AB%E3%81%8A%E3%81%84%E3%81%A6%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88%E8%A1%8C%E3%81%AB%E4%B8%8D%E9%81%A9%E5%88%87%E3%81%AA%E6%94%B9%E8%A1%8C%E3%81%8C%E5%85%A5%E3%82%8A%E3%82%B3%E3%83%B3%E3%83%91%E3%82%A4%E3%83%AB%E3%82%A8%E3%83%A9%E3%83%BC?language=en_US

早速メニューの [ウィンドウ] から [Preferences] を選択して設定画面を表示する。

左の項目から [Talend] を開いて、[国際化] を選択する。

ローカル言語を [日本語] から [English] に変更して、[Apply and Close] を押下後、再起動をする。

再起動後、再度ジョブを作成して実行すると無事に処理が成功した。

まとめ

完全に見逃していたのが悪いが、2021年に出ているエラーをなぜ今になってもアップデートして改善されないのかが不思議である。

同じ境遇の人への参考になると幸いだ。

他にもツールプログラミングについての記事をまとめているので、合わせてご覧いただきたい。

最後まで目を通していただき、ありがとうございました。

-ETL
-, , ,