実際のファイル行に従って、talend studio でジョブの実行を分割する方法を探しています。「DEBUG」で始まるファイル行を 1 つのジョブ ブランチで処理し、別の行を別のジョブ ブランチで処理したいと考えています。それは可能ですか?
4 に答える
これを行うには、tMap コンポーネントを使用します。あなたの仕事はこのようになります
t*Input--row-->tMap--out1--->tFileOutput*
--out2--->tFileOutput*
tMap コンポーネントでは、左側に入力、右側に出力があります。出力テーブルで [式フィルターを有効にする] を選択し、テキスト ボックスを使用してフィルターを定義します。そのフィルターに一致する行のみがその接続から出力されます。必要な数の出力テーブルとフィルターを使用できます。
tMap の使用はクールですが、出力ストリームの数が定義および固定されていない場合、tMap は適切な選択ではありません。
この場合、反復リンクまたは tjavaflex を使用すると、次のことができます。
この種のタスクを解決する方法を説明する「各レコードのキーに関してファイルを多くのファイルに分割する方法」に関するこのチュートリアルをご覧ください。実際にはフランス語でのみ利用可能です。このチュートリアルでは、このタスクを達成するための 3 つの異なるテクニックを示します。
最後に、tExctractRegeFields コンポーネントを使用しました。これは、一致する行に対して単純に定義された正規表現です。最も重要な (そして以前は知りませんでした) ことは、コンポーネントをさまざまな種類の接続で接続できることです。Row > Reject
質問に記載されているように、ジョブの新しいブランチに選択した使用済みコンポーネントを右クリックしました。
と を使用してそれを行うことができtfileoutputdelimited
ますtfileinputdelimited
。詳細設定には 1 つのオプションがtfileoutputdelimited
あり、複数のファイルにファイルを分割するオプションをチェックします。