tMapコンポーネントによる2つのデータソースの結合

このチュートリアルでは、tMapコンポーネントを使用して2つのデータソースを簡単に結合する方法について説明します。

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

1. 新しいジョブを作成し、ソースコンポーネントを追加する

新しいジョブで、moviesメタデータファイルをtFileInputDelimitedコンポーネントとしてジョブに追加します。

moviesファイルの最後の列はdirectorIDです。このチュートリアルでは、この列を使用してmoviesファイルをdirectorsファイルのdirectorID列に結合する方法について説明します。

2. directors.txtという単純なファイルに基づいて新しいメタデータファイルを作成し、第2のソースとして追加する

  1. directorsという名前の新しい区切り記号付きメタデータファイルを作成します。
  2. サンプルファイルを指定するには、[File]フィールドの横の[Browse]をクリックし、ローカルディスクからtxt形式のファイルを選択し、[Open]をクリックします。
  3. このファイルの区切り記号はカンマです。区切り記号を変更するには、[Field Separator]ドロップダウンリストで[Comma]を選択します。
  4. ファイルの表示を更新して変更を反映するには、[Refresh Preview]をクリックします。
    注:このファイルには[directorID]および[directorName]という2つの列だけが含まれています。
  5. 列名をdirectorIDおよびdirectorNameに変更し、directorNameのフィールド長を40に変更します。新しいメタデータファイルdirectors 0.1がプロジェクトリポジトリの[Metadata]の下に表示されます。これで、moviesファイルの[directorID]列をdirectorsファイルの[directorID]列に結合できるようになりました。
  6. directorsメタデータファイルを第2の入力ソースとしてジョブに追加します。

3. tMapコンポーネントを追加・構成して、2つのソースコンポーネントを結合する

  1. tMapコンポーネントをジョブデザイナーに追加します。
  2. 2つのコンポーネントとtMapコンポーネントの間のデータフローを確立するには、最初にmoviestMap_1コンポーネントにリンクしてから、ディレクトリをtMap_1にリンクします。
  3. ソースコンポーネントとtMapコンポーネントの間のリンク名を変更するには、リンクをダブルクリックしてmoviesと入力します。同様に、もう1つのリンクの名前をdirectorsに変更します。
  4. tMapコンポーネントのウィザードを開くには、コンポーネントをダブルクリックします。
    ウィザードの左側のセクションでは、moviesとdirectorsの両方がtMapコンポーネントの入力として表示されています。
  5. 新しい出力データフローを作成するには、tMapウィザードの出力セクションで[+]ボタンをクリックし、新しい出力の名前をjoinedOutputと入力し、[OK]をクリックします。空の出力データフローが作成されます。
  6. [movieID]、[title]、[releaseYear]、[url]の各フィールドを出力データフローに追加するには、入力moviesから4つのフィールドを選択して、出力データフローにドロップします。同様に、[directorName]フィールドを入力directorsから出力データフローに追加します。
  7. 結合を構成するには、moviesテーブルの[directorID]列を選択して、directorsテーブルの[directorID]列にドラッグします。

4. 結果をファイルに保存する

  1. 出力先を指定するには、tFileOutputDelimitedコンポーネントをジョブデザイナーに追加し、tMapコンポーネントのjoinedOutput出力をリンクします。
  2. 出力コンポーネントを構成するには、コンポーネントの[Component]ビューで出力ファイルのパスと名前を指定します。また、出力ファイルにヘッダー行を含めます。
  3. ジョブを実行するには、[Run]ビューで[Run]をクリックします。
  4. moviesComplete.csvファイルをチェックするには、ファイルが作成されたフォルダーに移動してファイルを開きます。

:一部の映画では監督名が表示されません。これらの映画はdirectorIDを含みません。

ETLツールのデフォルトの動作は次のとおりです。

  • 入力として使用されるテーブルのすべての行が表示されます。
  • 結合条件が満たされない場合、対応する出力フィールドは空になります。これは「左外部結合」です。
    対照的に、tMapの結合を内部結合として構成できます。この場合は、結合条件が満たされた行のみが表示されます。