Talend Open Studio でコンテキストとは

Talend Open Studioコンテキストについてご説明します。 この記事は Talend Open Studio for Data Integration v5.4.2 をベースに記載しています。

Talend Open Studioでいうコンテキストとは、Javaでいうところのグローバル変数に当たります。コンテキストはリポジトリ側で管理する方法と、ジョブ単位で管理する方法に分けられます。これらの使い分けは、おおまかにご説明すると以下のような考え方になります。

リポジトリで管理するコンテキスト変数

  • Talend Open Studioのプロジェクト全体で共通のグローバル変数として扱うもの。例えば、
  • 共通の設定ファイルパスを格納する変数
  • 全ジョブから共通で参照すべき変数
  • 変数名を変更しなければならない場合、リポジトリ管理の為、全ジョブに自動的に変更を反映できる
  • 全ジョブから参照できてしまうため、安易に使用すると変数を上書きしてしまうなど誤使用(バグ)の原因になりやすい

ジョブ単位で管理するコンテキスト変数

  • ジョブ単体の範囲で使用する変数
  • 利用範囲がジョブごとになるので、誤って他のジョブから参照するような処理を作ってしまう心配がない
  • プロジェクト全体で使用するのに、わざわざジョブ単位で定義してしまうと管理が煩雑になる

コンテキストには初期値を定義することもできます。Javaの定数ではなく、あくまでも変数ですので、処理の中で値を上書きすることができます。コンテキストに値をセットするコンポーネントも用意されており(tContextLoad)、例えば、設定ファイル(propertiesファイル、CSVのようなファイル)からデータを読み込んで、コンテキストにまとめてセットする処理を初期化処理として、パラメータが無指定の場合はコンテキスト側に定義した初期値を利用する、なんてことも実現できます。


Sponsored Link

コンテキストは、Talend Open Studio が生成するソースコードの中にリテラル(ベタ書きした値)としては使われません。自動的にpropertiesファイルを生成してその中に保持します。コンテキストには Passwordタイプがあり、Talend Open Studioの画面上では **** とマスキングされますが、propertiesファイルに出力されると単純なプレーンテキスト(読める形)で出力されます。うっかり、大切なパスワードなどをコンテキスト変数の初期値として書き込んでしまうと、Talend Open Studio がソースコード生成した時にはそのパスワードまでpropertiesファイルに乗ってしまうことになるのでご注意を(意図してそうするのであれば問題無いと思いますが)。リポジトリ管理のコンテキスト変数名を変更した場合は、そのコンテキスト変数を使用する全ジョブが更新対象となり、再コンパイルが必要にもなる、というプログラム保守上の課題にもなるのでご注意下さい。


コンテキスト変数で使用できるデータ型

コンテキスト変数にもデータ型があります。設定ファイルの値をセットする文字列だけでなく、数値型はもちろんのこと、Javaのオブジェクトとして利用可能です。例えば、Javaの計算で発生する浮動小数点の誤差に関しても、BigDecimal で値を受け渡しすることで正確な計算や処理ができるようになります。したがって、RDBから読み込んだデータを文字列や数値として左から右に流すだけでなく、FileやDirectory、Object も利用できます。

  • boolean / Boolean
  • char / Character
  • Date
  • double / Double
  • float / Float
  • int / Integer
  • long / Long
  • short / Short
  • String
  • Object
  • BigDecimal
  • File
  • Directory
  • List Of Value
  • Password(設定画面では **** 表示、Javaコード内にもリテラル扱いされない)

コンテキストの管理体系について

コンテキストは幾つかの階層構造で管理されます。

  1. コンテキストグループ ・・・ ひとつ以上のコンテキストを持つ
  2. コンテキスト ・・・ ひとつ以上のコンテキスト変数を持つ
  3. 変数(ここではコンテキスト変数と呼んでいます) ・・・ ひとつの値をもつ

2つ目のコンテキストは、複数を定義しても持たせるコンテキスト変数は共通であり、どちらかと言えば、開発環境、本番環境でパラメータの初期値を使い分けたいときに、環境ごとにコンテキストを用意するようなイメージとなります。詳細はこちらでご紹介しています。
Talend Open Studio でコンテキストの作成

 


Sponsored Link

関連記事

Talend Open Studio でコンテキストをジョブに割り当てる

Talend Open Studioでコンテキスト変数をジョブに割り当てる方法をご説明します。別の記

記事を読む

Talend Open Studio でコンテキストの作成

Talend Open Studioでのコンテキストの作成方法をご説明します。 この記事は Tale

記事を読む

PAGE TOP ↑