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