複数の出力コンポーネントを定義する - 7.0

データレコードをフィルター処理するジョブスクリプトを作成する

author
Talend Documentation Team
EnrichVersion
7.0
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 Real-Time Big Data Platform
task
ジョブデザインと開発 > サードパーティーシステム > カスタムコードコンポーネント > Javaカスタムコードコンポーネント
ジョブデザインと開発 > サードパーティーシステム > ファイルコンポーネント > 列区切り文字付き
ジョブデザインと開発 > サードパーティーシステム > プロセス制御コンポーネント
ジョブデザインと開発 > サードパーティーシステム > ロギングコンポーネント
ジョブデザインと開発 > サードパーティーシステム > 変換処理コンポーネント
データガバナンス > サードパーティーシステム > カスタムコードコンポーネント > Javaカスタムコードコンポーネント
データガバナンス > サードパーティーシステム > ファイルコンポーネント > 列区切り文字付き
データガバナンス > サードパーティーシステム > プロセス制御コンポーネント
データガバナンス > サードパーティーシステム > ロギングコンポーネント
データガバナンス > サードパーティーシステム > 変換処理コンポーネント
データクオリティとプレパレーション > サードパーティーシステム > カスタムコードコンポーネント > Javaカスタムコードコンポーネント
データクオリティとプレパレーション > サードパーティーシステム > ファイルコンポーネント > 列区切り文字付き
データクオリティとプレパレーション > サードパーティーシステム > プロセス制御コンポーネント
データクオリティとプレパレーション > サードパーティーシステム > ロギングコンポーネント
データクオリティとプレパレーション > サードパーティーシステム > 変換処理コンポーネント
EnrichPlatform
Talend CommandLine
Talend Studio

この例では、3つのtLogRowコンポーネントを使用して、未処理レコード、承認されたレコード、およびリジェクトされたレコードをそれぞれテーブル形式で表示し、tJavaコンポーネントを使用して要約情報を表示します。 これらのコンポーネントを定義するには、以下の手順に従います。

手順

  1. 次のスクリプトコードを入力して、最初のtLogRowコンポーネントを追加および定義します。

    このコンポーネントは、tReplicateコンポーネントと同じスキーマ構造を持つ必要があります。

    // print unprocessed records
    addComponent {
    	setComponentDefinition {
    		TYPE: "tLogRow",
    		NAME: "tLogRow_1",
    		POSITION: 512, 160
    	}
    	setSettings {
    		BASIC_MODE : "false",
    		TABLE_PRINT : "true",
    		VERTICAL : "false",
    		PRINT_UNIQUE : "true",
    		LABEL : "unprocessed_records"
    	}
    	addSchema {
    		NAME: "tLogRow_1",
    		CONNECTOR: "FLOW"
    		addColumn {
    			NAME: "name",
    			TYPE: "id_String"
    		}
    		addColumn {
    			NAME: "gender",
    			TYPE: "id_String"
    		}
    		addColumn {
    			NAME: "age",
    			TYPE: "id_Integer",
    			LENGTH: 2
    		}
    		addColumn {
    			NAME: "city",
    			TYPE: "id_String"
    		}
    		addColumn {
    			NAME: "marriageStatus",
    			TYPE: "id_String"
    		}
    	}
    }
  2. 次のスクリプトコードを入力して、2つ目のtLogRowコンポーネントを追加および定義します。

    このコンポーネントは、tFilterRowコンポーネントのACCEPTフローと同じスキーマ構造を持つ必要があります。

    // print accepted records
    addComponent {
    	setComponentDefinition {
    		TYPE: "tLogRow",
    		NAME: "tLogRow_2",
    		POSITION: 832, 224
    	}
    	setSettings {
    		BASIC_MODE : "false",
    		TABLE_PRINT : "true",
    		VERTICAL : "false",
    		PRINT_UNIQUE : "true",
    		LABEL : "accepted_records"
    	}
    	addSchema {
    		NAME: "tLogRow_2",
    		CONNECTOR: "FLOW"
    		addColumn {
    			NAME: "name",
    			TYPE: "id_String"
    		}
    		addColumn {
    			NAME: "gender",
    			TYPE: "id_String"
    		}
    		addColumn {
    			NAME: "age",
    			TYPE: "id_Integer",
    			LENGTH: 2
    		}
    		addColumn {
    			NAME: "city",
    			TYPE: "id_String"
    		}
    	}
    }
  3. 次のスクリプトコードを入力して、3つ目のtLogRowコンポーネントを追加および定義します。

    このコンポーネントは、tFilterRowコンポーネントのREJECTEDフローと同じスキーマ構造を持つ必要があります。

    // print rejected records
    addComponent {
    	setComponentDefinition {
    		TYPE: "tLogRow",
    		NAME: "tLogRow_3",
    		POSITION: 832, 288
    	}
    	setSettings {
    		BASIC_MODE : "false",
    		TABLE_PRINT : "true",
    		VERTICAL : "false",
    		PRINT_UNIQUE : "true",
    		LABEL : "rejected_records"
    	}
    	addSchema {
    		NAME: "tLogRow_3",
    		CONNECTOR: "FLOW"
    		addColumn {
    			NAME: "name",
    			TYPE: "id_String"
    		}
    		addColumn {
    			NAME: "gender",
    			TYPE: "id_String"
    		}
    		addColumn {
    			NAME: "age",
    			TYPE: "id_Integer",
    			LENGTH: 2
    		}
    		addColumn {
    			NAME: "city",
    			TYPE: "id_String"
    		}
    		addColumn {
    			NAME: "errorMessage",
    			TYPE: "id_String",
    			NULLABLE: true,
    			LENGTH: 255,
    			PRECISION: 0
    		}
    	}
    }
    警告:

    errorMessageカラムが必須です。REJECTED出力フローの固定プロパティを含みます。

  4. 次のスクリプトコードを入力して、tJavaコンポーネントを追加および定義します。

    このコンポーネントはtLogRowコンポーネントのグローバル変数を呼び出して、それぞれが処理した行数を表示します。 このコンポーネントに対してはスキーマカラムを定義する必要はありませんが、実行するJavaコードをsetSettings {}関数に指定する必要があります。

    // print summary
    addComponent {
    	setComponentDefinition {
    		TYPE: "tJava",
    		NAME: "tJava_1",
    		POSITION: 160, 416
    	}
    	setSettings {
    		CODE : "System.out.println(\"\\n\" +
    \"Total number of records    : \"+globalMap.get(\"tLogRow_1_NB_LINE\") + \"\\n\" +
    \"Number of records accepted : \"+globalMap.get(\"tLogRow_2_NB_LINE\") + \"\\n\" +
    \"Number of records rejected : \"+globalMap.get(\"tLogRow_3_NB_LINE\") + \"\\n\" + \"\\n\" );",
    		LABEL : "print_summary"
    	}
    	addSchema {
    		NAME: "tJava_1",
    		CONNECTOR: "FLOW"
    	}
    }
    警告:

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