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

処理コンポーネントの定義

以下の手順に従って、次の操作を行う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 "
    			}
    		}
    情報メモ警告:

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

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

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