[Talend]tFileInputPropertiesを利用して設定値を読み込む
はじめに
こんにちは。DI部の大高です。
今回はTalendのコンポーネント「tFileInputProperties」を紹介したいと思います。
前提条件
Talendのバージョンは「Talend Open Studio for Big Data」の「Version 7.0.1」で検証しています。
tFileInputPropertiesについて
「tFileInputProperties」を利用すると「=」で区切られた「キー」と「値」をもつテキストファイルを読み込むことができます。
「tFileInputProperties」コンポーネントのTalend Helpページはこちらです。
では、具体的に以下で解説していきます。
ジョブの説明
「tFileInputProperties」で設定ファイルを読み込み、内容を「tJava」で標準出力に表示します。
サブジョブを2つ作成しており、「tFileInputProperties」の「フォーマット」が上から順に「properties」、「ini」に設定してあります。
読み込みファイル
今回のサンプルファイルとして、以下のファイルを読み込みます。
input.properties
propertiesフォーマットのファイルです。一行にキーと値が記述されており、エンコードは「UTF-8」としています。
location=touto
input.ini
iniフォーマットのファイルです。セクションを「default」と「section」の2つ用意しており、それぞれのセクションでキーと値を記述しています。こちらもエンコードは「UTF-8」としています。
[default] location=seito [section] location=hokuto
「tFileInputProperties」コンポーネントの設定
「tFileInputProperties」コンポーネントでフォーマット毎にコンポーネント設定をしていきます。
propertiesフォーマット
コンポーネント設定は以下の通りで、フォーマットを「.properties」に設定し、「ファイル名」に読み込みファイルパスを指定するのみです。
スキーマは自動で「key」と「value」をもつスキーマとなり、それぞれString型の255文字と定義されています。
また「詳細設定」で「エンコーディング」を「UTF-8」に指定しています。
iniフォーマット
コンポーネント設定は以下の通りとしました。
propertiesフォーマットの際と同様に、フォーマットを「.ini」に設定して、「ファイル名」に読み込みファイルパスを指定します。
また、「.ini」フォーマット用の設定として「取得モード」があります。今回は「セクション毎に取得」としていますが、この場合には追加で「セクション名」の指定が必要となります。
例えば、以下のファイルにおいて「セクション名」を「default」とすると「location=seito」が対象に、「section」とすると「location=hokuto」が対象となります。
[default] location=seito [section] location=hokuto
また、他の取得モードとして「すべて取得」、「セクションを取得」があります。
「すべて取得」にした場合には、スキーマ定義に「section」が追加されて以下のようになり、セクション名も含めてすべての設定が読み込まれます。
また、「セクションを取得」とした場合には、スキーマ定義が「section」のみとなり、セクション名だけが読み込まれます。
「tLogRow」コンポーネントの設定
「tLogRow」コンポーネントは、デフォルトのまま特になにも設定しなかったので、ここでは説明を省略します。
実行結果
設定は以上です。実際にこのジョブを実行すると以下のように出力されます。
[statistics] connecting to socket on port 3544 [statistics] connected location|touto location|hokuto [statistics] disconnected
それぞれの設定ファイルのキーと値が読み込まれました!
まとめ
以上、「tFileInputProperties」コンポーネントの紹介でした。
「tFileInputProperties」の利用ケースとしては「実行時に設定をファイルから読み込みたい」という場合に「tContextLoad」コンポーネントと組合せて利用するケースがあるかと思います。
それでは。