The Field Mapper Processor can be used to translate (or map) data from one GeoEvent schema to another GeoEvent schema or GeoEvent Definition. Every GeoEvent has an associated GeoEvent Definition that identifies the attribute fields and data types. GeoEvent Definitions can change if they are processed such as when a GeoEvent is enriched with new fields.
To configure the Field Mapper Processor, select a source GeoEvent Definition and a target GeoEvent Definition. Fields from the target GeoEvent Definition appear to the right, with drop-down lists available from the selected source GeoEvent Definition, allowing you to select the appropriate field to map. The data type of each field is displayed to help identify the appropriate mappings for each field.
A GeoEvent Definition appropriate to GeoEvents at one stage of processing might not align with the schema of a published feature service. The GeoEvent will need to be processed by the Field Mapper Processor to translate each GeoEvent's schema to match the schema of the target features before a GeoEvent Service can update features in a feature service.
For example, many real-time data streams (especially those providing generic JSON) frequently provide data structures that include groups with subfields or lists with multiple values. Such data structures do not align with feature service schemas whose data structures are flat and expect discrete data types (date, string, integer, and so forth). The primary purpose of the Field Mapper Processor is to flatten hierarchical structures and align them with a feature service's schema.
Some other common uses for the Field Mapper Processor include:
- Since specifying a target GeoEvent Definition establishes the schema of the GeoEvents sent from the Field Mapper Processor, the processor can effectively be used to reduce the number of attribute fields routed from an input to an output. You just need to create a GeoEvent Definition with the desired fields and then use the Field Mapper Processor to reduce and align GeoEvents received by a GeoEvent Service with the desired output schema.
- Perform some basic data conversions. For example, when a GeoEvent field containing integer data can be converted to a long or double representation of the data value. Numeric values can be converted to create string representations of the data. If the Field Mapper Processor is unable to complete a data type conversion, a null value will be written to the mapped field.
If you are updating features in a published feature service and do not want one or more fields of existing features to be modified, leaving those fields unmapped in the Field Mapper Processor will result in null values being written as features are updated. Use the Field Reducer Processor to remove unmapped fields before sending the GeoEvents to an output connector, which is responsible for the feature service update.