tSetGlobalVarを利用してジョブ内で値を持ち回す

今回はTalendのコンポーネント「tSetGlobalVar」を紹介したいと思います。
2018.09.28

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

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

今回はTalendのコンポーネント「tSetGlobalVar」を紹介したいと思います。

前提条件

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

tSetGlobalVarについて

「tSetGlobalVar」を利用してジョブの中で値を一度設定すると、ジョブ内の別のコンポーネントの中で設定した値を取り出すことができます。

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

tSetGlobalVar

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

ジョブの説明

「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」コンポーネントの紹介でした。

それでは。