[Talend]tSetEnvを利用してシステムプロパティを設定する

はじめに

こんにちは。DI部の大高です。

今回はTalendのコンポーネント「tSetEnv」によるシステムプロパティの設定を紹介したいと思います。

前提条件

Talendのバージョンは「Talend Open Studio for Big Data」の「Version 7.1.1」で検証しています。

tSetEnvについて

「tSetEnv」を利用するとシステムプロパティの設定をすることができます。

「tSetEnv」コンポーネントのTalend Helpページはこちらです。

tSetEnv

では、具体的に以下で解説していきます。

ジョブの説明

まずは最初の「tJava」で現在のシステムプロパティを標準出力に表示し、存在しないことを確認します。そして、「tSetEnv」でシステムプロパティを設定した上で、改めて「tJava」でシステムプロパティを標準出力に表示し、設定されたことを確認します。

「tJava」コンポーネントの設定

「tJava」コンポーネントでは、システムプロパティ「"WATCH_NAME"」を以下のコードで標準出力に表示しています。今回配置した2つの「tJava」はどちらも以下と同じコードです。

String watchName = System.getProperty("WATCH_NAME");
System.out.println("WATCH_NAME: " + watchName);

「tSetEnv」コンポーネントの設定

「tSetEnv」コンポーネントで、ジョブ内で設定したいシステムプロパティを設定していきます。なお、コンポーネントの名前から環境変数を設定できそうな名前ですが設定できるのは環境変数ではないことに注意してください。(System.getenv("XXX")では取得できません)

設定項目としてはプロパティの「名前」と、その「値」、および、「追加」するか・しないかの設定です。「追加」を有効にすると、既存のプロパティに「;」(セミコロン)区切りで値が追加されます。

今回は「WATCH_NAME」プロパティを新規に作成すると同時に、追加を行いました。

実行結果

設定は以上です。実際にこのジョブを実行すると以下のように出力されます。

[statistics] connecting to socket on port 3969
[statistics] connected
WATCH_NAME: null
WATCH_NAME: ZI-O_Ride_Watch;Build_Ride_Watch
[statistics] disconnected

設定通り、最初は存在しなかったシステムプロパティが新規に作成され、かつ、値が追加されています!

まとめ

以上、「tSetEnv」コンポーネントの紹介でした。

「tSetEnv」コンポーネントではジョブ内でシステムプロパティを動的に設定したい際に活用できるコンポーネントだと思います。

それでは。