レコードフィルターコンポーネントを定義する - 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

手順

  1. tFilterColumnsコンポーネントの次に、別のaddComponent {} 関数とそのサブ関数のsetComponentDefinition {}を入力して、tFilterRowコンポーネントを追加します。
    // filter records - accept men between 10 and 80 whose names are shorter than 9 characters
    addComponent {
    	setComponentDefinition {
    		TYPE: "tFilterRow",
    		NAME: "tFilterRow_1",
    		POSITION: 640, 224
    	}
    }
  2. setComponentDefinition {}関数の次に、setSettings {}関数を入力してフィルター条件を定義し、コンポーネントのラベルを設定します。
    	setSettings {
    		LOGICAL_OP : "&&",
    		CONDITIONS {
    			INPUT_COLUMN : "name",
    			FUNCTION : "$source == null? false : $source.length() $operator $target",
    			OPERATOR : "<",
    			RVALUE : "9",
    			INPUT_COLUMN : "gender",
    			FUNCTION : "",
    			OPERATOR : "==",
    			RVALUE : "\"M\"",
    			INPUT_COLUMN : "age",
    			FUNCTION : "",
    			OPERATOR : ">",
    			RVALUE : "10",
    			INPUT_COLUMN : "age",
    			FUNCTION : "",
    			OPERATOR : "<",
    			RVALUE : "80"
    		},
    		LABEL : "filter_records"
    	}
    警告:

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

  3. setSettings {}関数の次に、以下のスクリプトコードを入力して、出力フローのスキーマを定義します。

    この例では、tFilterRowコンポーネントは2つの出力フローで構成されています。1つは承認済みのレコードを含み、直前のコンポーネントtFilterColumnsで定義されているスキーマ構造と同じスキーマ構造になります。もう一つの出力フローはリジェクトされたレコードを含み、ここにはerrorMessageのカラムも含まれます。errorMessageカラムはリジェクトフローでは必須で、固定プロパティを含みます。このカラムを定義しない場合でも、Studioはジョブの生成時に自動的にこのカラムを追加します。

    	// define the schema for the accepted records
    	addSchema {
    		NAME: "ACCEPT",
    		CONNECTOR: "FILTER"
    		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"
    		}
    	}
    	
    	// define the schema for the rejected records
    	addSchema {
    		NAME: "REJECT",
    		CONNECTOR: "REJECT"
    		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
    		}
    	}