[Reload at each row] (行ごとにリロード) - 7.1

Talend ESB Studioユーザーガイド

author
Talend Documentation Team
EnrichVersion
7.1
EnrichProdName
Talend ESB
task
ジョブデザインと開発
EnrichPlatform
Talend Studio

このタスクについて

[Reload at each row] (行ごとにリロード)オプションは、メインフローのレコードごとにルックアップフローの全レコードをロードする場合に使用します。

メインフローの行がルックアップフローよりもはるかに少なく(たとえば、比率が1000以上)、ルックアップ入力がデータベースコンポーネントである場合、このアプローチの利点は、ルックアップデータの量が時間の経過とともに増えるという問題への対処に役立つことにあります。データベースコンポーネント内のメインフローからのデータに対してクエリを実行し、メインフロー内の各レコードに該当するルックアップデータのみを選択することができるためです。たとえば以下の例では、MySQLデータベースからのルックアップデータを使用しています。

メインフロー、ルックアップフロー、および出力フローのスキーマは次のように表されます。

MySQLデータベースからメインフローの[id] (ID)カラムの値に一致するデータのみを選択できます。そのためには、次の手順に従います。

手順

  1. tSetGlobalVarをダブルクリックして、[Component] (コンポーネント)ビューを開きます。
  2. [+]ボタンをクリックして、1行追加し、[Key] (キー)をidに、[Value] (値)をrow1.idにします。
  3. tMysqlInputをダブルクリックして、[Component] (コンポーネント)ビューを開きます。
  4. [Query] (クエリ)フィールドに、メインフローの[id] (ID)カラムに一致するデータを選択するクエリを入力します。この例では、このクエリは次のようになります。 Select * from person where id="+(Integer)globalMap.get("id")

タスクの結果

この例で使用したコンポーネントの詳細は、関連ドキュメンテーションを参照して下さい。