処理コンポーネントの定義 - Cloud - 8.0

Talendジョブスクリプトリファレンスガイド

Version
Cloud
8.0
Language
日本語
Product
Talend Big Data
Talend Big Data Platform
Talend Cloud
Talend Data Fabric
Talend Data Integration
Talend Data Management Platform
Talend Data Services Platform
Talend ESB
Talend MDM Platform
Talend Real-Time Big Data Platform
Module
Talend CommandLine
Talend Studio
Content
ジョブデザインと開発 > ジョブデザイン
Last publication date
2024-02-22

以下の手順に従って、次の操作を行うtMapコンポーネントを定義します。

  • 入力と出力間のデータ型自動変換を行い、ジョブの実行時にコンパイルエラーが発生しないようにする

  • 各人物の名(ファーストネーム)と姓(ラストネーム)を組み合わせる

手順

  1. 次の関数とパラメーターを入力し、コンポーネントを追加します。
    addComponent {
    	setComponentDefinition {
    		TYPE: "tMap",
    		NAME: "tMap_1",
    		POSITION: 480, 256
    	}
    }
  2. setComponentDefinition {}関数の次にsetSettings {}関数を入力し、マッパー設定を定義します。

    この例では、idカラムとageカラムのデータ型は入力スキーマでは文字列型ですが、出力スキーマでは整数型になっています。コンポーネントのデータ型自動変換機能を有効にして、その他の設定はデフォルトのままにします。

    	setSettings {
    		ENABLE_AUTO_CONVERT_TYPE : "true"
    	}
  3. setSettings {}関数の次にaddSchema {}関数を入力し、次のコンポーネントが期待するデータ構造を定義します。

    この例では出力フローの名前がoutで、次の4つのカラムで構成されています。

    • id、整数型、2桁

    • full_name、文字列型

    • age、整数型、2桁

    • city、文字列型

    	addSchema {
    		NAME: "out",
    		CONNECTOR: "FLOW",
    		LABEL: "out"
    		addColumn {
    			NAME: "id",
    			TYPE: "id_Integer",
    			LENGTH: 2
    		}
    		addColumn {
    			NAME: "full_name",
    			TYPE: "id_String"
    		}
    		addColumn {
    			NAME: "age",
    			TYPE: "id_Integer",
    			LENGTH: 2
    		}
    		addColumn {
    			NAME: "city",
    			TYPE: "id_String"
    		}
    	}
  4. addSchema {}関数の次にaddMapperData {}関数を入力し、入力テーブル、出力テーブル、変数テーブル、結合、マッピングを含むマッピングデータを定義します。
  5. addMapperData {}関数にaddInputTable {}関数を入力して、メイン入力フローの入力テーブルを定義します。

    カラム定義は1番目のtFileInputDelimitedコンポーネントのカラム定義と同じであることが必要です。

    	addMapperData {
    		addInputTable {
    			NAME: "row1"
    			addColumn {
    				NAME: "id",
    				TYPE: "id_String"
    			}
    			addColumn {
    				NAME: "name",
    				TYPE: "id_String"
    			}
    			addColumn {
    				NAME: "age",
    				TYPE: "id_String"
    			}
    			addColumn {
    				NAME: "city",
    				TYPE: "id_String"
    			}
    		}
    	}
  6. addMapperData {}関数で別のaddInputTable {}関数を入力し、ルックアップフローの入力テーブルを定義します。

    カラム定義は2番目のtFileInputDelimitedコンポーネントのカラム定義と同じであることが必要です。

  7. idカラムの定義ではEXPRESSION: "row1.id"というパラメーターを入力し、idカラムで2つの入力テーブル間の結合を設定します。

    この例では、左外部結合を定義しています。内部結合を定義するには、ISINNERJOIN: trueパラメーターをaddInputTable {}関数に追加します。

    		addInputTable {
    			NAME: "row2"
    			addColumn {
    				NAME: "id",
    				TYPE: "id_String"
    				EXPRESSION: "row1.id"
    			}
    			addColumn {
    				NAME: "family",
    				TYPE: "id_String"
    			}
    		}
  8. addMapperData {}関数にaddOutputTable {}関数を入力し、この例では唯一である出力テーブルを定義します。

    カラム定義はスキーマ設定で定義されているものと同じであることが必要です。IDパラメーターは必須ですが、IDが必要なのは、出力テーブルがリポジトリースキーマを使用する場合のみです。

  9. 各出力カラムにEXPRESSIONパラメーターを追加することによって、入力カラムと出力カラムの間のマッピングを設定します。

    full_nameカラムはメイン入力フローのnameカラムとルックアップフローのfamilyカラムの組み合わせとなり、この間にスペースを1つ入力します。

    		addOutputTable {
    			ID: "",
    			NAME: "out"
    			addColumn {
    				NAME: "id",
    				TYPE: "id_Integer",
    				EXPRESSION: "row1.id"
    			}
    			addColumn {
    				NAME: "full_name",
    				TYPE: "id_String",
    				EXPRESSION: "row1.name  + \" \" + row2.family"
    			}
    			addColumn {
    				NAME: "age",
    				TYPE: "id_Integer",
    				EXPRESSION: "row1.age"
    			}
    			addColumn {
    				NAME: "city",
    				TYPE: "id_String",
    				EXPRESSION: "row1.city "
    			}
    		}
    警告:

    メタ文字を指定する場合、必ずバックスラッシュ(\)を使用してください。