tSetGlobalVarを利用してジョブ内で値を持ち回す
はじめに
こんにちは。DI部の大高です。
今回はTalendのコンポーネント「tSetGlobalVar」を紹介したいと思います。
前提条件
Talendのバージョンは「Talend Open Studio for Big Data」の「Version 7.0.1」で検証しています。
tSetGlobalVarについて
「tSetGlobalVar」を利用してジョブの中で値を一度設定すると、ジョブ内の別のコンポーネントの中で設定した値を取り出すことができます。
「tSetGlobalVar」コンポーネントのTalend Helpページはこちらです。
では、具体的に以下で解説していきます。
ジョブの説明
「tSetGlobalVar」で値を格納し、「tJava」で格納した値を取り出して標準出力に表示します。
今回はサンプルなのでこのようなジョブですが、実際の利用シーンではtMapの内部など他のコンポーネント内部で格納した値を利用することが多いと思います。
「tSetGlobalVar」コンポーネントの設定
「tSetGlobalVar」コンポーネントでは、利用したい値とそのキー値を設定します。
ここでは、「Name」に文字列、「Level」に整数、「DetailLevel」に少数を設定しました。
「tJava」コンポーネントの設定
「tJava」コンポーネントでは、「tSetGlobalVar」で設定した値を取得して標準出力に表示しています。設定した値は以下のようにして取得します。
globalMap.get([キー])
そのまま取得すると「Object」型で返ってくるので、それぞれ以下のように設定した値のデータ型にキャストする必要があります。
// GlobalMapから値を取得 String name = (String)globalMap.get("Name"); int level = (int)globalMap.get("Level"); double detailLevel = (double)globalMap.get("DetailLevel");
実行結果
設定は以上です。実際にこのジョブを実行すると以下のように出力されます。
[statistics] connecting to socket on port 3730 [statistics] connected Name: Banjou Level: 3 DetailLevel: 3.4 [statistics] disconnected
「tSetGlobalVar」で設定した値がちゃんと取得されていますね。なお、取得時にキー名を間違えるとnullが返ってくるので注意して下さい。
まとめ
以上、「tSetGlobalVar」コンポーネントの紹介でした。
それでは。