[Talend]tFileInputPropertiesを利用して設定値を読み込む

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

はじめに

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

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

前提条件

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

tFileInputPropertiesについて

「tFileInputProperties」を利用すると「=」で区切られた「キー」と「値」をもつテキストファイルを読み込むことができます。

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

tFileInputProperties

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

ジョブの説明

「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」コンポーネントと組合せて利用するケースがあるかと思います。

それでは。