データのマッピング方法を設定する
手順
-
Carsとラベル付けされたtFileInputDelimitedコンポーネントをダブルクリックして、[Basic settings] (基本設定)ビューを表示します。
- [Property type] (プロパティタイプ)リストから[Repository] (リポジトリー)を選択し、[Repository Content] (リポジトリーのコンテンツ)ダイアログボックスからコンポーネントのスキーマ(このシナリオではcars)を選択します。残りのフィールドは自動的に入力されます。
-
Ownersとラベル付けされたコンポーネントをダブルクリックして、設定操作を繰り返します。適切なメタデータエントリー、このシナリオではownersを選択します。
情報メモ注:
このシナリオでは、入力スキーマは[Repository] (リポジトリー)ツリービューの[Metadata] (メタデータ)ノードに保管されて、簡単に取り出せます。リポジトリーでのメタデータ作成については、Talend Studioでメタデータを管理をご覧ください。
-
tMapコンポーネントをダブルクリックして、[Map Editor] (マップエディター)を開きます。
入力エリアには定義済みの入力テーブルが既に入力されており、上部のテーブルがメイン入力テーブルであり、それぞれの行接続ラベルがテーブルの上部のバーに表示されています。
- Cars_dataテーブルのID_OwnerカラムをOwners_data テーブルのID_Ownerカラムにドロップして、ID_Ownerカラムで2つのテーブルの間に結合を作成します。
-
[tMap settings] (tMap設定)ボタンをクリックし、[Join Model] (結合モデル)の[Value] (値)フィールドをクリックし、フィールドに表示される小さなボタンをクリックし、[Options] (オプション)ダイアログボックスから[Inner Join] (内部結合)を選択して、この結合を内部結合として定義します。
- Cars_dataテーブルのすべてのカラムをInsuredテーブルにドラッグします。
- Cars_dataテーブルのカラムID_Owner、Registration、ID_Reseller、およびOwners_dataテーブルのカラムNameを、Reject_NoInsurテーブルにドラッグします。
-
Cars_dataテーブルのすべてのカラムをReject_OwnerIDテーブルにドラッグします。
データマッピングの詳細は、データフローをマッピングをご覧ください。
-
Insuredテーブルの上部にあるプラスの矢印ボタンをクリックして、フィルター行を追加します。
Owners_dataテーブルのID_Insuranceカラムをフィルター条件エリアにドラッグし、「未定義ではない」という意味の数式を入力します: Owners_data.ID_Insurance != null.このフィルターを使うと、Insuredテーブルは保険IDを含むすべてのレコードを収集します。
-
Reject_NoInsurテーブルの上部にある[tMap settings] (tMap設定)ボタンをクリックし、[Catch output reject] (出力リジェクトをキャッチ)をtrueに設定し、テーブルを標準リジェクト出力フローとして定義して、保険IDを含まないレコードを収集します。
-
Reject_OwnerIDテーブルの上部にある[tMap settings] (tMap設定)ボタンをクリックし、[Catch lookup inner join reject] (ルックアップ内部結合リジェクトの収集)をtrueに設定します。これは、この出力テーブルが、存在しない、または一致しない所有者IDを持つCars_dataフロからーレコードを収集するようにするためです。
[OK]をクリックしてマッピングを確定し、[Map Editor] (マップエディター)を閉じます。
-
各出力コンポーネントを順番にダブルクリックして、プロパティを定義します。新しいファイルを作成する場合は、宛先の出力フォルダーを参照し、拡張子を含むファイル名を入力します。
[Include Header] (ヘッダーを含める)チェックボックスをオンにして、スキーマからのカラムラベルを出力ファイル内のヘッダー行として再利用します。