tMapでの結合の構成

このチュートリアルでは、tMapコンポーネントで結合出力を構成する方法について説明します。

このチュートリアルでは、Talend Open Studio Data Integrationバージョン6を使用します。

1. 結合モデルを構成する

  1. jointMapジョブでtMapコンポーネントウィザードを開くには、tMap_1コンポーネントをダブルクリックします。

    注:tMap設定ボタンをクリックすると、入力/出力フローを構成するためのパラメーターのリストが表示されます。入力フローに使用可能な設定の1つでは、[Join Model]をデフォルトの[Left Outer Join]から[Inner Join]に変更できます。
  2. [Join Model]プロパティを変更するには、デフォルト設定の[Left Outer Join]をクリックして横に表示される[...]をクリックします。[Options]ウィンドウで、[Inner Join]をクリックしてから[OK]をクリックします。

    注:デフォルト設定を変更すると、tMap設定アイコンに赤丸と数字の1が表示されます。これは、デフォルトtMap設定のパラメーターを1つ変更したことを意味しています。
  3. tMapウィザードを閉じて、ジョブを実行します。

ジョブデザイナーでは、左の入力から合計1,682行のデータがtMapコンポーネントで処理されますが、出力ファイルに表示されるのは142行だけであることがわかります。これは、内部結合によって生成された一致が142行だけであり、その他の行が拒否されたためです。

その他の行が拒否されたことを確認するため、moviesComplete出力ファイルを表示します。ファイルでは、すべての映画に監督名が示されていることを確認できます。

2. tMapコンポーネントに新しい出力を作成して、内部結合による拒否のみを収集する

  1. tMap_1コンポーネントウィザードを開いて、joinRejectsという名前で2番目の出力コンポーネントを作成します。空の出力フローが作成されます。
  2. [movieID]、[title]、[releaseYear]、[url]、[directorID]の各フィールドを出力コンポーネントに追加するには、これら5つのフィールドをmoviesコンポーネントから選択して出力コンポーネントにドロップします。
  3. joinRejects出力ファイルで、tMap設定をクリックします。
  4. [Catch lookup inner join reject]プロパティを変更するには、デフォルト設定の[false]をクリックして横に表示される[...]をクリックします。[Options]ウィンドウで、[true]をクリックしてから[OK]をクリックします。

    注:[Catch lookup inner join reject]プロパティを[true]に変更することで、内部結合により拒否されたすべてのデータ行を新しい出力で取得できます。
  5. tFileOutputDelimitedコンポーネントをジョブデザイナーに追加して、tMap_1コンポーネントのjoinRejects出力をtFileOutputDelimited_2にリンクします。
  6. 出力コンポーネントを構成するには、コンポーネントの[Component]ビューで出力ファイルのパスと名前を指定します。また、出力ファイルにヘッダー行を含めて、ジョブを実行します。

ジョブデザイナーで、1682行の入力データのうち、142行がjoinedOutput出力に表示され、拒否された1540行がjoinRejects出力に収集されます。

また、joinRejects出力ファイルを表示すると、結合により拒否されたすべての映画を確認できます。これらは、directorIDがmoviesファイルに含まれない映画、およびdirectorIDがmoviesファイルに含まれますがdirectorsファイルには含まれない映画です。