Talendプロパティについて

 


🧠 Talendの「Built-In」と「Repository」ってなに?

Talendでは、コンポーネントの設定情報(たとえば、ファイルの場所・区切り文字・スキーマなど)をどこに保存するかを 2通りの方法 から選べます:


🔹 ① Built-In(ビルトイン)とは?

🔸 そのジョブ(Job)だけに設定を持たせる方法

  • 設定は その1つのジョブ内だけで使われる

  • 他のジョブでは使えない。

  • 使い捨てや一時的な設定に向いている。

  • 個別に編集しやすいが、他のジョブには影響しない。

✅ 例:

  • 今回の処理だけ5件だけ読み込みたい!

  • テスト用にちょっとだけファイルを読んでみたい!


🔹 ② Repository(リポジトリ)とは?

🔸 Talendの「Repository(リポジトリ)」に登録した設定を使う方法

  • 一度設定しておけば、複数のジョブで共有して使える

  • 修正があった場合は、使っているジョブすべてに影響を与えられる。

  • 大規模開発や複数人チーム作業で便利。

✅ 例:

  • 複数ジョブで同じCSVファイルを使っている。

  • データベース接続など、共通の情報を複数ジョブで使いたい。


🧪 実際の使い分け例

🔧 1. RepositoryでCSVを読み込む設定を作成

  • 「File Delimited」→「Create File Delimited」

  • address7.csv を選択

  • 「1行目をカラム名として使う」にチェック

  • スキーマ(列の情報)を設定(長さや型など)

🔁 それをドラッグ&ドロップでジョブに追加すると
自動的に「tFileInputDelimited(CSV読み込み)」が生成されて、
そのプロパティは Repositoryから参照されるようになる。


🔧 2. Built-Inに切り替えてカスタム設定

例:このジョブだけ5行だけ読みたいとき

  • コンポーネントの「Limit(最大読み込み行数)」の欄をクリック

  • 「Built-Inに切り替え」を選択

  • 値に 5 を設定

📌 これで、このジョブだけで5行読み込む設定になる
(他のジョブやリポジトリには影響しない)


✏️ もし「リポジトリの設定も変えたい」と思ったら?

  • リポジトリに登録されている「address」の設定を編集

  • たとえば、常に10行だけ読み込みたいように設定を更新

  • Talendが「この設定を使ってるジョブがあります、更新しますか?」と聞いてくる

  • 全ジョブに反映される(便利だけど注意も必要)


📌 まとめ:いつどっちを使う?

シチュエーションおすすめの設定理由
一時的な変更をしたい✅ Built-In他に影響しない
テスト用にちょっとだけ動かしたい✅ Built-In気軽に編集できる
複数のジョブで使いたい✅ Repository一元管理できて効率的
チームで開発している✅ Repository誰でも同じ設定を使える



🎓 補足:よくある疑問

Q:途中でBuilt-InからRepositoryに戻せる?
A:はい。コンポーネントの設定から「Repositoryに戻す」ことも可能です。

Q:Repositoryを使うメリットは?
A:保守性アップ。共通設定を一括で変更できるため、大規模開発で特に威力を発揮します。 



🧠 Talendの「スキーマ(Schema)」とは?

🔹 一言で言うと?

「スキーマ」とは、データの列(カラム)の名前・型・順序などを定義した設計図のようなものです。

たとえば、CSVファイルやDBのテーブルを扱う時に、
「名前(文字列)」「年齢(整数)」…といった情報が必要ですよね?
これがスキーマです。


🎬 今回のジョブの例で解説

使用しているコンポーネント:

  • tRowGenerator:サンプルデータを自動生成する

  • tLogRow:そのデータを画面に表示する

💡 実行してみると…

  • tRowGenerator がランダムなデータを生成

  • tLogRow がそれを「表形式(テーブルモード)」で表示

  • 表の一番上に「カラム名」が表示されている → これがスキーマ


📌 スキーマってなにが含まれる?

  • カラム名(例:firstName, age など)

  • データ型(文字列、整数、日付など)

  • 長さ(たとえば文字列の最大文字数)

  • 順序(何番目のカラムか)


❓ 全てのコンポーネントにスキーマがあるの?

いいえ!

🔸 スキーマが「ある」例:

  • tRowGenerator

  • tFileInputDelimited(CSV読み込み)

  • tFixedFlowInput

  • tLogRow(出力用)

など、データを扱うコンポーネントはスキーマを持ちます。

🔸 スキーマが「ない」例:

  • tFileList:ファイルのリストを取得するだけ
    「変数」は使えるけど、スキーマ(カラム定義)はない


🛠 スキーマの編集・再利用方法

① スキーマを編集する

  • コンポーネントをダブルクリック → 「Edit schema(スキーマ編集)」を押す

  • ここでカラム名・型・長さなどを自由に編集


② スキーマをコピー&ペースト

  • 他のコンポーネントにスキーマを「コピーして再利用」することもできる

    • 例:tRowGeneratorのスキーマ → tFixedFlowInputにも使いたい
      → [Ctrl + A] → [Ctrl + C] → 別コンポーネントで[Ctrl + V]


③ スキーマをリポジトリに保存して共有

Talendでは「共通のスキーマ」をリポジトリに保存しておくことで、
複数のジョブやコンポーネントで再利用できます。

🔹 保存方法:

  1. 「Edit schema」画面で「Save as generic schema」をクリック

  2. 任意の名前をつけて保存(例:myGenericSchema

🔹 利用方法:

  • リポジトリの「Generic schemas」から、スキーマをドラッグ&ドロップするだけでOK

  • tRowGeneratortFixedFlowInput など、対応するコンポーネントにそのまま使える

✅ メリット:

  • スキーマを 一か所で管理できる

  • 修正も一括でできるので メンテナンスがラク



🎯 Talendでの「データ型の使い方」

🧑‍💻 使用するコンポーネント:

  • tRowGenerator: サンプルデータを生成

  • tLogRow: コンソールに出力

このジョブでは、3つの異なるデータ型カテゴリーを使います。

  1. 数値データ型

  2. アルファベットデータ型(文字列や日付など)

  3. XML型(ドキュメント型)


1️⃣ 数値データ型の使用

まずは、整数型(Integer)とBigDecimal型のデータを生成し、コンソールに出力します。

実施手順:

  • tRowGenerator コンポーネントで、整数型に「整数」を、BigDecimal型に「新しいBigDecimal」を指定してデータを生成

  • 出力された値を tLogRow で表示

このように、数値データ型の使い方を確認できます。数値型は他にも、浮動小数点型などもありますが、ここではこの2つを使っています。


2️⃣ アルファベットデータ型の使用

次に、文字列型(String)ブール型(Boolean)文字型(Character)、そして日付型(Date)のデータを扱います。

実施手順:

  • tRowGeneratorで、文字列型には普通の文字列(例:"John")、ブール型には真偽値(truefalse)、文字型には1文字(例:'A')を指定

  • 日付型には、new Date() を使い、現在の日付を生成

  • それぞれのデータ型をコンソールに出力

この例では、日付の表示形式は「年-月-日 時間:分:秒」で、ミリ秒まで含まれます。


3️⃣ XMLドキュメント型の使用

最後に、XMLデータ型(Document型)を使ってデータをXML形式で表示します。ここでは、tFixedFlowInputを使用して、固定データを作成し、それをXML形式に変換します。

実施手順:

  • tFixedFlowInputで、3つのカラム(id, name, date)を作成

    • id: 整数型

    • name: 文字列型

    • date: 日付型(例:2022-12-25

  • これを tWriteXMLFieldコンポーネントに渡し、XML形式に変換

  • XMLのルートタグをroot、サブタグをpersonと設定し、それぞれのカラム(id, name, date)をその中に配置

  • 最後に tLogRowでXML出力をコンソールに表示

出力例:

<root>
<person> <id>1</id> <name>John</name> <date>2022-12-25</date> </person> </root>

💡 まとめ:

  • 数値データ型Integer, BigDecimal)や文字列データ型String, Boolean, Character)を使用し、データの型に応じた処理を行います。

  • XMLデータ型(Document型)は、tWriteXMLFieldコンポーネントを使ってXML形式に変換して出力します。



🎯 Talendで使用される接続タイプ

Talendには2種類の接続タイプがあります:

  1. 行タイプ(Row Types)

  2. トリガータイプ(Trigger Types)

🟩 1. 行タイプ(Row Types)

行タイプの接続は、データの流れに関連した接続です。主に次の3つの種類があります:

  1. Main(メイン接続)

    • 最も一般的な接続タイプで、データの流れを定義します。

  2. Iterate(反復接続)

    • tFileList コンポーネントのように、繰り返し処理を行うために使用されます。

  3. Reject(拒否接続)

    • データがメイン接続に適合しなかった場合、拒否されるデータを送信します。

実施例:

  • tRowGenerator コンポーネントには、MainIterate の接続が設定できます。

  • tFileInputDelimited コンポーネントには、MainRejectIterate の3種類の接続があります。

Rejectは、データがスキーマに合わない場合に使用されます。スキーマに合わないデータをReject接続で送ることができます。

🟩 2. トリガータイプ(Trigger Types)

トリガータイプの接続は、特定の条件が満たされたときに他のアクションを実行するために使用されます。主に5種類のトリガーがあり、それぞれの特徴を理解することが重要です。

  1. On Subjob OK(サブジョブ成功時)

    • サブジョブが成功したときに実行されるトリガーです。

  2. On Subjob Error(サブジョブエラー時)

    • サブジョブがエラーを発生した場合に実行されるトリガーです。

  3. On Component OK(コンポーネント成功時)

    • コンポーネントが正常に動作した場合に実行されるトリガーです。

  4. On Component Error(コンポーネントエラー時)

    • コンポーネントでエラーが発生した場合に実行されるトリガーです。

  5. If(条件付きトリガー)

    • 特定の条件が満たされた場合に実行されるトリガーです。条件をユーザーが定義する必要があります。

実施例:

  • On Subjob OKOn Subjob Errorのトリガーを使用して、サブジョブの成功時とエラー時にメッセージボックスを表示できます。

  • On Component OKOn Component Errorのトリガーを使用して、特定のコンポーネントが成功または失敗した際に別のアクションを実行できます。

  • Ifトリガーを使用して、例えばデータが0行の場合にエラーメッセージを表示したり、3行以上の場合に別のメッセージを表示したりすることができます。


📝 まとめ

Talendの接続タイプには、行タイプ(Main、Iterate、Reject)トリガータイプ(On Subjob OK、On Subjob Error、On Component OK、On Component Error、If) があります。それぞれの接続タイプを使い分けることで、データフローやエラー処理、条件付きアクションなど、より柔軟で効率的なジョブの設計が可能になります。

  • 行タイプは、コンポーネント間でデータをどのように流すかを定義します。

  • トリガータイプは、特定の条件が満たされたときにアクションを実行するための接続です。

この理解を深めることで、より高度なデータ処理やエラーハンドリングができるようになります。



🎯 Talendでの「Control + Space」の活用法

Control + Space の魔法

Talendで「Control + Space」を使うと、さまざまなシチュエーションで便利です。キーボードで「Control」と「Space」を同時に押すと、選択肢や候補が表示されます。これにより、作業の効率が大幅に向上します。

実際の使用例

1. メッセージの連結(tMessageBox

例えば、Talendの「helloWorld」というジョブで、固定メッセージに他の値(例えばプロジェクト名)を連結したい場合、次のように操作します:

  • 文字列を連結するために「Control + Space」を押します。

  • 一覧が表示されるので、そこから「プロジェクト名」を選びます。

  • すると、プロジェクト名(例:talendBasics)がメッセージに追加されます。

実行すると、メッセージボックスに「talendBasics」が表示されます。

2. tJavaコンポーネントで変数を利用

次に、tJavaコンポーネントで、他のコンポーネント(例えば、tMessageBox)の変数を使用したい場合も「Control + Space」が便利です。

  • 例えば、tMessageBox コンポーネントから取得したい変数(例:エラーメッセージや結果)を使う場合。

  • Control + Space」を使って、tMessageBoxの変数を選択できます。選択肢には「エラーメッセージ」や「結果」などが表示されます。

  • 必要な変数を選択し、「return」を使うことで、fooという変数にその結果を代入できます。

このように、Control + Spaceを使うことで、必要な変数を簡単に呼び出して利用することができます。


まとめ

Control + Space」を使うと、Talendの作業が非常に効率よく進みます。これを活用することで、変数やプロパティを簡単に呼び出して使うことができ、作業がスムーズに進行します。

  • 連結処理変数の選択で「Control + Space」を使うと、候補がリストで表示され、簡単に選択できます。

  • これを覚えておくと、Talendでの作業がより快適になるでしょう。


前の記事:はじめてのTalendジョブ

次の記事:Talendファイル操作について