Simple Mapping(sub-transformation)
组件介绍
Simple Mapping(sub-transformation)组件在本文中简称为“简单映射(子转换)”组件。
“简单映射(子转换)”组件只接受一个输入步骤和一个输出步骤。因此,它的行为类似于读取和写入数据行的任何其他常规步骤。下边先介绍相关概念。
映射又称为子转换。子转换是非常好的特性,可以实现整个转换重用;所以如果你需要拷贝、粘贴一些相同的步骤到多个其他转换中,就可以考虑使用子转换,可以使你的ETL程序更简洁。
子转换通常从父转换中接收行输入数据,针对输入数据进行处理,再传回给父转换。所以子转换需要有一个输入步骤用于运行时连接到父转换的输出步骤。这些接口步骤中定义输入、输出行数据的字段结构。子转换为了实现重用性,所以当父转换调用子转换时,父转换的行字段被映射到子转换的字段作为输入;同样映射发生在处理完,返回给父转换。
映射转换是通过父转换中的“映射”步骤执行的,所以映射转换通常称为父转换的子转换。子转换必须包含输入和输出步骤:
- 映射输入规范:输入字段,由父转换输入给子转换。
- 映射输出规范:输出字段,由子转换处理完数据后返回给父转换。
下图说明映射以及父转换与子转换的逻辑关系:
- 输入:上一个步骤的字段
- 输出:经过子转换处理后的字段
- 参数:无
页面介绍
Simple Mapping(sub-transformation) 组件包含3个选项卡。
命名参数标签
Simple Mapping(sub-transformation) 组件的配置页面如下图所示:
参数选项
公共参数和命名参数说明如下表所示:
选项 | 说明 | 样例值 |
---|---|---|
步骤名称 | 指定画布上步骤的唯一名称。 | |
文件或目录 | 指定要执行的映射子转换。 | |
变量名 | 添加您要分配的字符串作为变量。 | |
字符串值 | 将要分配的值添加到此变量名称。可以在变量名称的字符串值中包含变量表达式。 | |
从父转换继承所有变量 | 选择该选项可以使在父转换中可用的所有变量在子转换中可用。如果未选中此选项,则仅将指定的那些变量/值向下传递到子转换。 |
输入标签
输入选项卡配置页面如下图所示:
字段表
输入选项卡主要包括如下字段:
列名 | 说明 | 样例值 |
---|---|---|
原字段名 | 上一步骤传入的字段名称 | |
要映射成的字段名 | 输入到子转换中的字段名称 | |
输出时字段名再重新映射回原来输入时的名字 | 选择此选项可在父转换输出时,将字段重命名为其原始字段名称。这将使您的子转换更加透明,可重用性更高。 |
输出标签
输出选项卡的配置页面如下图所示:
字段表
输出选项卡主要包括如下字段:
列名 | 说明 | 样例值 |
---|---|---|
子转换输出的字段名 | 指定子转换输出时的字段名称 | |
发送到目标步骤时的字段名 | 父转换接收到的字段名称 |
使用案例
本案例中使用 project.CSV 数据,数据结构如下表所示:
子转换:
首先要构建项目中需要重用的子转换,本案例中子转换实现输入字段的连接功能,工作流视图如下:
子转换中必须以 映射输入规范 作为第一个步骤,最后一个步骤必须为 映射输出规范 ,因为它们是父转换的连接环节。 1、将映射输入规范组件拖入画布,双击组件配置参数,如下图所示:
2、将Concat Fields组件拖入画布,分别配置基础标签页和字段标签页,如下图所示:
3、将 映射输出规范 组件拖入画布,设置步骤名称,如下图所示:
4、保存转换到资源库根目录,命名为“子转换.ktr”,下边父转换会调用本次构建的子转换。
父转换:
在父转换中调用上边构建的子转换,工作流流图如下所示:
1、将CSV文件输入组件拖入画布,双击组件进行配置,如下图所示:
2、将 Simple Mapping(sub-transformation) 拖入画布,分别配置输入标签页和输出标签页,如下图所示:
3、将 Excel输出 组件拖至画布,在字段标签页右键获取字段,如下图所示:
4、保存转换,点击 Excel输出 组件进行预览,本案例中利用子转换将csv文本中的字段用“-”连接,结果如下图所示: