出力設定のマッピング

Talend Open Studio for Data Integration ユーザーガイド

EnrichVersion
5.6
EnrichProdName
Talend Open Studio for Data Integration
task
ジョブデザインと開発
EnrichPlatform
Talend Studio

デザインワークスペースで、tMapコンポーネントから出力コンポーネントへの[Row] (行)接続を作成すると、[Map Editor] (マップエディター)に出力スキーマテーブルが追加されます。

出力エリアのツールバーのプラス記号を使って、[Map Editor] (マップエディター)に出力スキーマを追加することもできます。

また、出力テーブル間にも結合を作成できます。テーブルを結合すると、いくつかのフローを別々に処理して、1つの出力に統合することができます。出力結合テーブル機能の詳細は、『Talend Open Studioコンポーネント Reference Guide』を参照してください。

注記

結合テーブルにより、ソーステーブルのスキーマが取得されます。

出力スキーマを追加するか、出力テーブル間の結合を作成するために[+]ボタンをクリックすると、ダイアログボックスが開きます。2つのオプションがあります。

選択内容 目的

新規出力

独立したテーブルを追加します。

結合テーブルの作成

出力テーブル間に結合を作成します。その目的で、ドロップダウンリストから結合を作成するテーブルを選択します。[Named] (名前)フィールドに、作成するテーブルの名前を入力します。

[Input] (入力)エリアとは異なり、結合タイプの出力には依存関係がないため、出力スキーマテーブルの順序にはあまり意味がありません。

一度すべての接続、出力スキーマテーブルの作成が完了すると、ドラッグアンドドロップで出力データを選択、整理することができます。

[Input] (入力)エリアから1つ以上のエントリを出力テーブルに直接ドロップできます。

CtrlまたはShiftを押したまま、エントリをクリックて複数選択します。

または、[Var]エリアから式をドラッグアンドドロップし、出力スキーマに適切なデータを入力して再利用できます。

[Schema Editor] (スキーマエディター)の入力カラムを変更した場合、関係するすべての入力/変数/出力のテーブルエントリに変更を伝播させるかどうか決定を求めるダイアログが表示されることに注意してください。

アクション

結果

既存の式上にドラッグアンドドロップ

選択した式と既存の式を連結します。

挿入行にドラッグアンドドロップ

テーブルの先頭または最後、あるいは既存の2行の間に1つ以上の新規エントリを挿入します。

Ctrlキーを押しながらドラッグアンドドロップ

強調表示した式を選択した式に置き換えます。

Shiftキーを押しながらドラッグアンドドロップ

選択したフィールドを強調表示したすべての式に追加します。必要に応じて新規行を挿入します。

CtrlキーとShiftキーを押しながらドラッグアンドドロップ

強調表示したすべての式を選択したフィールドで置き換えます。必要に応じて新規行を挿入します。

フィルターとリジェクトを追加して、出力をカスタマイズできます。

複雑な式の作成

複雑な式を作成する場合、または出力フローに詳細な変更を加える場合、[Expression Builder] (式ビルダー)インターフェイスを使うと作業が便利です。

入力テーブルまたは出力テーブルの[Expressionr] (式)フィールドをクリックして、[...]ボタンを表示します。次に[...]ボタンをクリックして、[Expression Builder] (式ビルダー)を開きます。

[Expression Builder] (式ビルダー)に関する詳細は、[Expression Builder] (式ビルダー)を使用したコードの作成方法を参照してください。

Filters (フィルター)

フィルターを使って入力フィールドを選択し、選択したフィールドのみ各種出力に送信できます。

テーブルの上部の[+]ボタンをクリックして、フィルター行を追加します。

Java演算子および関数を使って、フィルターステートメントを自由に入力できます。

[Input] (入力)エリアまたは[Var]エリアから式を適切な出力テーブルのフィルター行エントリにドロップします。

オレンジ色のリンクが1本作成されます。必要なJava演算子を追加してフィルター式を確定します。

異なる行に各種フィルターを作成できます。AND演算子はすべての定義フィルターを論理的に結合します。

出力リジェクト

リジェクトオプションは、出力テーブルの性質を定義します。

このオプションでは標準出力テーブルで定義される1つ以上のフィルター条件を満たさないデータが収集されます。標準出力テーブルはすべて、非リジェクトテーブルとなることに注意してください。

このように他の出力テーブルからリジェクトされたデータを1つ以上の専用テーブルに収集することにより、エラーまたは予想外のデータを探すことができます。

リジェクトでは原則として、すべての非リジェクトテーブルフィルターを連結し、1つのELSEステートメントとして定義します。

出力テーブルを通常テーブルのELSE部分として定義するには、次のようにします。

  1. 出力テーブルの上部の[tMap settings] (tMap設定)ボタンをクリックして、テーブルプロパティを表示します。

  2. [Catch output reject] (出力リジェクトのキャッチ)に対応する[Value] (値)フィールドをクリックして表示される[...]ボタンをクリックし、[Options] (オプション)ダイアログボックスを表示します。

  3. [Options] (オプション)ダイアログボックスで、[true](真)をダブルクリックするか、選択してから[OK]をクリックして設定を確定し、ダイアログボックスを閉じます。

いくつかのリジェクトテーブルを定義し、複数の出力により改良を重ねることができます。各種リジェクト出力を区別するため、プラスの矢印ボタンをクリックしてフィルター行を追加します。

リジェクトテーブルを定義した場合、リジェクトテーブルの条件を考慮する前に、通常テーブルの検証プロセスが強制的に実行されます。

データは1つの出力に対して排他的に処理されるとは限らないことに注意してください。データが条件を満たして、対応する出力にルーティングされたとしても、他の条件により、他の出力にルーティングされることがあります。

ルックアップ内部結合リジェクト

内部結合は一種のルックアップ結合で、内部結合リジェクトテーブルは、特定タイプのリジェクト出力となります。これにより内部結合の確立失敗後、メイン行テーブルからリジェクトデータが収集されます。

出力フローをリジェクトされた内部結合データのコンテナとして定義するには、[Map Editor] (マップエディター)でジョブに接続する出力コンポーネントを新規作成します。さらに[Map Editor] (マップエディター)で、次のようにします。

  1. 出力テーブルの上部の[tMap settings] (tMap設定)ボタンをクリックして、テーブルプロパティを表示します。

  2. [Catch lookup inner join reject] (ルックアップ内部結合リジェクトのキャッチ)に対応する[Value] (値)フィールドをクリックして表示される[...]ボタンをクリックし、[Options] (オプション)ダイアログボックスを表示します。

  3. [Options] (オプション)ダイアログボックスで、[true](真)をダブルクリックするか、選択してから[OK]をクリックして設定を確定し、ダイアログボックスを閉じます。

出力エントリの削除

出力エントリを削除するには、[Schema Editor] (スキーマエディター)で選択したテーブルの赤いバツ印をクリックします。

エラー処理

[Die on error] (エラー強制終了)オプションによりエラー処理を回避します。そのため、このオプションではエラーが発生するとすぐにジョブの実行が停止されます。tMapコンポーネントでは、このオプションを提供して、誤りのあるデータの処理を防いでいます。[Die on error] (エラー強制終了)オプションはtMapではデフォルトでは有効になっています。

[Die on error] (エラー強制終了)オプションを無効にした場合、エラー発生行をスキップして、エラーが発生していない行の処理を完了する一方、エラー状態の行を取得して必要に応じて管理できます。

[Die on error] (エラー強制終了)オプションを無効にするには:

  1. デザインワークスペースでtMapコンポーネントをダブルクリックして[Map Editor] (マップエディター)を開きます。

  2. 入力エリアの上部にある[Property Settings] (プロパティ設定)ボタンをクリックして、[Property Settings] (プロパティ設定)ダイアログボックスを表示します。

  3. [Property Settings] (プロパティ設定)ダイアログボックスで、[Die on error] (エラー時強制終了)チェックボックスをオフにし、[OK]をクリックします。

[ErrorReject]という新しいテーブルが[Map Editor] (マップエディター)の出力エリアに表示されます。この出力テーブルは自動的に[errorMessage]および[errorStackTrace]という2つのカラムで構成され、メッセージを取得して、ジョブ実行中に発生したエラーのトレースをスタックします。エラーには解析不能日付、NULLポインターの例外、変換上の問題などが含まれます。

入力テーブルからエラーリジェクト出力テーブルにカラムをドラッグアンドドロップすることもできます。誤りのあるデータは対応するエラーメッセージとともに取得して、後で修正できます。

エラーリジェクトテーブルを設定したら、対応するフローを出力コンポーネントに送信できます。

デザインワークスペースでtMapコンポーネントを右クリックして、メニューから[Row] (行) > [ErrorReject]を選択し、対応する出力コンポーネント、ここではtLogRowをクリックします。

ジョブを実行する際、エラーは[ErrorReject]フローによって取得されます。

結果には、エラーメッセージとトレースのスタック、およびErrorRejectテーブルからドラッグアンドドロップされ、"|"のパイプで区切られたidおよびdateの2つのカラムが含まれています。