コンポーネントを設定する - 7.2

tMap

EnrichVersion
7.2
EnrichProdName
Talend Big Data
Talend Big Data Platform
Talend Data Fabric
Talend Data Integration
Talend Data Management Platform
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Open Studio for Big Data
Talend Open Studio for Data Integration
Talend Open Studio for ESB
Talend Real-Time Big Data Platform
EnrichPlatform
Talend Studio
task
ジョブデザインと開発 > サードパーティーシステム > 変換処理コンポーネント > 変換
データガバナンス > サードパーティーシステム > 変換処理コンポーネント > 変換
データクオリティとプレパレーション > サードパーティーシステム > 変換処理コンポーネント > 変換

手順

  1. tMapコンポーネントをダブルクリックして、グラフィカルマッピングエディターを開きます。
  2. [Output] (出力)テーブル(tMaptMySQLOutputにリンクした時に自動的に作成されたもの)が、ルックアップフロー(large_data_volume)とメインフロー(people_age)からの一致する行によって形成されます。
    出力に渡されるメインフロー行を選択し、それらをドラッグして出力テーブル(マッピングエディターの右側)に貼り付けます。
    この例では、メインフローからの選択に次のフィールドが含まれています: idfirst_namelast_Nameage
    ルックアップテーブルから、次のカラムが選択されています: city
    入力テーブル(peoplelarge_volume)から選択したカラムを出力テーブルにドロップします。
  3. 次に、メインフローとルックアップフロー間の結合を設定します。
    メインフローテーブル(上部)のageカラムを選択し、ルックアップフローテーブル(この例ではlarge_volume)のageカラムに向かってドラッグします。
    ルックアップテーブルのリンクされた式の横に鍵のアイコンが表示されます。これで結合が確立されました。
  4. [tMap settings] (tMap設定)ボタンをクリックし、[Lookup Model] (ルックアップモデル)に対応する[...]ボタンをクリックして、[Options] (オプション)ダイアログボックスから[Reload at each row] (行ごとにリロード)オプションを選択します。これは、処理中の各行にルックアップをリロードするためです。
  5. 同様に、ルックアップテーブルで[Match Model] (一致モデル)[All matches] (すべての一致)に設定します。これは、age一致のすべてのインスタンスを出力フローに収集するためです。
  6. 次に、ルックアップテーブルに、ageカラムに基づいてフィルタリングを実装します。[Reload at each row] (行ごとにリロード)オプションを選択すると、GlobalMapKeyフィールドが自動的に作成されます。実際、この式を使って参照データを動的にフィルタリングし、メインフローと結合する時に関連情報のみをロードできます。
    シナリオの冒頭で述べたように、メインフローデータには、40歳または60歳の人のみが含まれます。40や60とは異なる年齢を含むすべてのルックアップ行をロードする手間を省くために、メインフローの年齢をグローバル変数として使い、ルックアップフィルタリングにフィードするという方法があります。
  7. メインフローテーブルから、Ageカラムをルックアップテーブルの[Expr.] (式)フィールドにドロップします。
  8. 次に、[globalMap Key] (グローバルマップキー)フィールドに、式を使って変数名を入力します。この例では、"people.Age"となります。
    [OK]をクリックしてマッピング設定を保存し、デザインワークスペースに戻ります。
  9. ルックアップフローの動的フィルタリングの実装を完了するには、ここでデータベース入力のクエリーにWHERE句を追加する必要があります。
  10. [Query] (クエリー)フィールドの末尾に、Selectステートメントに続いて、次のWHERE句を入力します: WHERE AGE ='"+((Integer)globalMap.get("people.Age"))+"'"
  11. タイプが変数として使われるカラムに対応していることを確認してください。このユースケースでは、AgeInteger型です。そして、マップエディターの[globalMap key] (グローバルマップキー)フィールドで設定した方法で変数を使います。
  12. tMysqloutputコンポーネントをダブルクリックして、プロパティを定義します。
  13. [Use an existing connection] (既存の接続を使う)チェックボックスをオンにすると、作成済みのDB接続を利用できます。
    ターゲットテーブル名および関連するDBアクションを定義します。