7.12. 关于集合和非集合之间的映射
在数据 映射程序 源和目标 面板中 :
- 表示集合。如果集合包含一个原语类型,您可以直接从或映射到该集合。如果集合包含两个或多个不同类型的类型,数据映射器会显示集合的子字段,您可以映射到集合的字段或从集合的字段映射。
- 表示是一个复杂类型的可扩展容器。复杂的类型包含不同类型的多个字段。复杂类型中的一个字段可以是集合的类型,如数组。您无法映射复杂类型容器本身。您只能映射复杂类型中的字段。
要切换数据类型的显示,如 (COMPLEX)
, STRING
, INTEGER
,点
。
集合到非集合(多到一)映射
当您从 collection 字段映射到非集合字段时,数据映射器可以识别多对一的映射。默认行为是数据映射程序将 Concatenate 转换应用到源集合或源集合字段。默认分隔符是一个空格。例如,考虑这个源集合:
- 在第一个元素中,城市 字段中的值为 Boston。
- 在第二个元素中,ity 字段中的值 是 Paris。
- 在第三个元素中,city 字段的值为 。
在执行过程中,数据映射程序使用填充目标字段
塞尔兰西亚哥伦敦
您可以通过应用不同的转换来更改此默认行为。例如,若要仅从您选择的元素映射,请应用 Item At transformation to the source 并指定索引。要映射源集合中第一个元素中的值,请为索引指定 0。
如果源集合包含您没有映射的字段,这些字段仍可提供给流中的后续步骤。
非集合到集合(一对多)映射
当您从非集合 source 字段映射到目标集合或位于 collection 元素中的 target 字段时,数据映射器会识别一对多映射。默认行为是,数据映射程序通过将空格用作分隔符并将源值拆分为多个值来应用 Split 转换。在执行过程中,数据映射器会将每个分割值插入到目标集合中自己的元素中。例如,如果 source 字段被分成 4 个值,则目标集合有 4 个元素。
例如,考虑一个包含以下内容的非 集合
cities source 字段:
塞尔兰西亚哥伦敦
您可以将此 source 字段映射到目标集合或位于集合中的 target 字段。在执行期间,数据映射器会将 cities 字段的值 分成空格分隔符。结果是一个包含三个元素的集合。在第一个元素中,城市 字段的值是 Boston
。在第二个元素中,ity 字段的值 为 Paris
。在第三个元素中,qity 字段的值 为 。