字段映射器处理器可用于将一个 GeoEvent 方案中的数据转换(或映射)到另一个 GeoEvent 方案或 GeoEvent 定义。每个 GeoEvent 均具有关联的 GeoEvent 定义,该定义可标识属性字段和数据类型。如果处理 GeoEvent(例如为 GeoEvent 添加新字段),则 GeoEvent 定义将发生更改。
若要配置字段映射器处理器,则请选择一个源 GeoEvent 定义和目标 GeoEvent 定义。目标 GeoEvent 定义中的字段显示在右侧,可通过所选源 GeoEvent 定义中的下拉列表选择适当的映射字段。显示每个字段的数据类型以帮助识别适合每个字段的映射。
在一个处理阶段中适合 GeoEvent 的 GeoEvent 定义可能与已发布要素服务的方案不一致。GeoEvent 将需要由字段映射器处理器进行处理,以在 GeoEvent 服务能够更新要素服务中的要素前转换所有 GeoEvent 方案,使其与目标要素的方案相匹配。
例如,许多实时数据流(尤其是提供通用 JSON 的数据流)经常提供的数据结构包含带有子字段的组或者带有多个值的列表。此类数据结构与数据结构是平面的要素服务方案不一致,需要离散数据类型 (日期、串、整型等)。字段映射器处理器的首要目的是将层级结构展平并使这些结构与要素服务方案一致。
字段映射器处理器的一些其他常见用途包括:
- 由于指定一个目标 GeoEvent 定义会确立从字段映射器处理器发出的 GeoEvent 方案,因此处理器可以有效减少从输入传输到输出的属性字段数。只需创建包含所需字段的 GeoEvent 定义,然后使用字段映射器处理器减少 GeoEvent 服务接收的 GeoEvent 并使其与所需输出方案一致。
- 执行某些基础的数据转换。例如,可将包含整型数据的 GeoEvent 字段转换为较长的数据值或者双精度表示的数据值。可以转换数值以创建字符串表示的数据。如果字段映射器处理器无法完成数据类型转换,则映射字段中将写入空值。
注:
如要在已发布的要素服务中更新要素,并且不想修改现有要素的一个或多个字段,那么在字段映射器处理器中不映射这些字段,将导致在更新要素时写入空值。先使用字段缩减器处理器移除未映射字段,然后再向负责要素服务更新的输出连接器发送 GeoEvent。