メイン コンテンツをスキップする 補完的コンテンツへスキップ

フィルター、明示的な結合、リジェクトを使った詳細なマッピング

このシナリオでは、たとえば販売促進の目的で、2〜6人の子供(両端を含む)を持つBMW所有者を見つけることができるジョブを紹介します。

コンポーネントをリンク

Procedure

  1. [Palette] (パレット)からデザインワークスペースに、tFileInputDelimitedコンポーネントを3つ、tMapコンポーネントを1つ、tFileOutputDelimitedコンポーネントを2つ配置し、それぞれの機能を最もよく表すラベルを付けます。
  2. [Row] (行) > [Main] (メイン)接続を使って、入力コンポーネントをtMapに接続します。
    最初に接続するファイルにご注意ください。自動的に[Main] (メイン)フローとして設定され、他のすべての接続は[Lookup] (ルックアップ)フローになります。この例では、入力コンポーネントOwnersの接続は[Main] (メイン)フローです。
    コンポーネントの接続。

コンポーネントを設定

Procedure

  1. それぞれの[Basic settings] (基本設定)ビューで、各入力コンポーネントのプロパティを定義します。Ownersのプロパティを定義します。
    [Basic settings] (基本設定)ビュー。
  2. [Property type] (プロパティタイプ)リストから[Repository] (リポジトリー)を選択し、[Repository Content] (リポジトリーのコンテンツ)ダイアログボックスからコンポーネントのスキーマ(このシナリオではowners)を選択します。残りのフィールドは自動的に入力されます。
    情報メモNote:

    このシナリオでは、入力スキーマは[Repository] (リポジトリー)ツリービューの[Metadata] (メタデータ)ノードに保管されて、簡単に取り出せます。リポジトリーでのメタデータ作成については、Talend Studioでメタデータを管理をご覧ください。

    同様に、他の入力コンポーネント(CarsResellers)のプロパティを設定します 。これら2つの[Lookup] (ルックアップ)フローは、 [Map Editor] (マップエディター)の入力エリアにあるセカンダリー(ルックアップ)テーブルに入力されます。
  3. tMapコンポーネントをダブルクリックして [Map Editor] (マップエディター)を起動し、マッピングとフィルターを定義します。
    OwnersテーブルのID_OwnerカラムをCarsテーブルのID_Ownerカラムにドロップして、[Main] (メイン)フローのOwner[Lookup] (ルックアップ)フローのCarsの間に明示的な結合を設定するために使われます。
    明示的な結合がハッシュキーと共に表示されます。
    ID_Ownerカラム。
  4. Exprで。Makeカラムの[Key] (キー)フィールドにフィルタを入力します。このユースケースでは単に"BMW"と入力します。検索がこの特定の車名の所有者に絞り込まれているからです。
    Makeカラム。
  5. リセラー情報を取得するために、ID_Resellerカラムの2つのルックアップテーブルCarsResellersの間にカスケード結合を実装します。
  6. Null値をリジェクトして別のテーブルに入れ、標準出力から除外することが目的なので、tMap settingsボタンをクリックし、各[Lookup] (ルックアップ)テーブルで、[Join Model] (結合モデル)[Inner Join] (内部結合)に設定します。
    [Lookup] (ルックアップ)テーブル。
  7. tMap設定で、[Match Model] (一致モデル)[Unique match] (一意の一致) [First match] (最初の一致)[All matches] (すべて一致)に設定できます。このユースケースでは、[All matches] (すべて一致)オプションが選択されています。したがって、内部結合、明示的結合に一致する行、およびフィルターで複数の一致が見つかった場合、それらすべてが出力フローに(リジェクトまたは通常の出力で)追加されます。
    情報メモNote:

    [Unique match] (一意の一致)オプションは[Last match] (最後の一致)として機能します。[First match] (最初の一致)オプションと[All matches] (すべて一致) オプションは、名前のとおりに機能します。

  8. [Map Editor] (マップエディター)の出力エリアで[+]ボタンをクリックして、完全一致用とリジェクト用の2つのテーブルを追加します。
  9. Ownersテーブルのすべてのカラム(CarsテーブルのRegistrationMake、およびColorResellersテーブルのID_Reseller、およびName_Reseller)をメイン出力テーブルにドラッグします。
  10. Ownersテーブルのすべてのカラムをリジェクト出力テーブルにドラッグします。
  11. メイン出力テーブルの上部にある[Filter] (フィルター)ボタンをクリックして、[Filter] (フィルター)式エリアを表示します。
    フィルターステートメントを入力して、メイン出力フローに読み取られる行数を絞り込みます。このユースケースでは、ステートメントは次のようになります: Owners.Children_Nr >= 2 && Owners.Children_Nr <= 6
  12. リジェクト出力テーブルで、[tMap settings] (tMap設定)ボタンをクリックし、リジェクトタイプを設定するために使われます。
    2人未満または6人を超える子供がいるBMW車の所有者に関するデータを収集するには、[Catch output reject] (出力リジェクトをキャッチ)trueに設定します。
    [Catch lookup inner join reject] (ルックアップ内部結合リジェクトの収集)trueに設定して、他の車名の所有者およびリセラー情報が見つからない所有者に関するデータを収集します。
    [Rejects] (リジェクト)テーブル。
    [OK]をクリックしてマッピングを確定し、[Map Editor] (マップエディター)を閉じます。
    デザインワークスペースで、tMap を右クリックし、関連する出力コンポーネントへのそれぞれの出力リンクをプルします。
  13. それぞれの[Basic settings] (基本設定)ビューで出力コンポーネントのプロパティを定義します。
    このユースケースでは、出力ファイルのパスを指定し、[Include Header] (ヘッダーを含める)チェックボックスをオンにし、他のパラメーターはそのままにします。
    [Basic settings] (基本設定)ビュー。

ジョブを実行

Procedure

  1. Ctrl + Sを押してジョブを保存します。
  2. F6を押して実行します。
    メイン出力ファイルには、2〜6人の子供を持つBMW所有者に関する情報が含まれ、リジェクト出力ファイルには、残りの車の所有者に関する情報が含まれています。
    出力ファイルの作成。

このページは役に立ちましたか?

このページまたはコンテンツにタイポ、ステップの省略、技術的エラーなどの問題が見つかった場合はお知らせください。