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においてコメント行に不適切な改行が入りコンパイルエラー』より抜粋
【事象】
ジョブ作成時に実行しようとすると、コンパイルエラーが発生。いずれのジョブにおいても発生。【原因】
自動生成されたコードの最上部コメント欄に不適切な改行が入り込み、コメントから外れてしまっている。【暫定対処】
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」へと変更する事により、改行が無くなりコンパイルエラーは発生しなくなる
早速メニューの [ウィンドウ] から [Preferences] を選択して設定画面を表示する。
左の項目から [Talend] を開いて、[国際化] を選択する。
ローカル言語を [日本語] から [English] に変更して、[Apply and Close] を押下後、再起動をする。
再起動後、再度ジョブを作成して実行すると無事に処理が成功した。
まとめ
完全に見逃していたのが悪いが、2021年に出ているエラーをなぜ今になってもアップデートして改善されないのかが不思議である。
同じ境遇の人への参考になると幸いだ。
他にもツールやプログラミングについての記事をまとめているので、合わせてご覧いただきたい。
最後まで目を通していただき、ありがとうございました。