親ジョブに値を渡すための子ジョブを作成する
子ジョブはテキストファイルからデータを読み取り、行の総数を入力して、その行を親ジョブに渡します。
in.txtという名前の入力ファイルは次のとおりです。
id;name
1;Shong
2;Elise
3;Sabrina
このジョブは、次のコンポーネントを使用します。
- tFileInputDelimitedコンポーネント: テキストファイルからデータを読み取ります。tLogRowコンポーネント: データをコンソールに出力します。
- tFixedFlowInputコンポーネント: tFileInputDelimitedコンポーネントによって読み取られた行の総数を取得します。tBufferOutputコンポーネント: 値をバッファリングします。
手順
- ジョブを作成し、childJobという名前を付けます。
- ワークスペースでtFileInputDelimitedコンポーネントとtLogRowコンポーネントを追加し、 接続を使ってそれらをリンクします。
- ワークスペースでtFixedFlowInputコンポーネントとtBufferOutputコンポーネントを追加し、 接続を使ってそれらをリンクします。
- 接続を使って、最初のサブジョブを2番目のサブジョブにリンクします。
- tFileInputDelimitedコンポーネントをクリックして[Basic settings] (基本設定)ビューを開き、[File name/Stream] (ファイル名/ストリーム)にin.txtファイルパスを、[Header] (ヘッダー)フィールドに1を入力します。
- [Edit schema] (スキーマを編集)の横にある[...]ボタンをクリックし、スキーマダイアログボックスを開き、整数型のidおよび文字列型のnameの2つのカラムを追加してスキーマを定義します。
- tFixedFlowInputコンポーネントをダブルクリックして、整数型のnb_lineという名前のカラムを作成します。
- [Mode] (モード)エリアで[Use Single Table] (単一テーブルの使用)を選択し、[Value] (値)セルに((Integer)globalMap.get("tFileInputDelimited_1_NB_LINE"))と入力します。