Event data in GeoEvent Server has an associated schema that identifies the attribute fields and data types (date, string, integer, and so forth) for the event's data. This schema is referred to as a GeoEvent Definition. To view GeoEvent Definitions, click Site > GeoEvent > GeoEvent Definitions in ArcGIS GeoEvent Manager.
Introduction to GeoEvent Definitions
A GeoEvent Definition consistent with the data in an event stream must exist for an input connector to construct a GeoEvent from the events coming in. Similarly, a GeoEvent Definition consistent with the schema of a designated output must exist for an output connector to construct a GeoEvent and send the event data.
GeoEvent Definitions can be created and edited by users. Some input connectors can create event definitions based on data they discover in the events received. Administrators import event definitions to support operations such as updating published feature services. This means the list of known GeoEvent Definitions frequently changes.
Nota:
Two GeoEvent Definitions, incident and TrackGap, are installed with GeoEvent Server. These GeoEvent Definitions can only be viewed or copied, they cannot be deleted or edited; the Incident Detector Processor and Track Gap Detector Processor use these GeoEvent Definitions.
The Introduction to GeoEvent Server tutorial contains exercises illustrating how to create a GeoEvent Definition, how an input connector builds a GeoEvent Definition from data it receives, and how to import a GeoEvent Definition from a published feature service. Access the tutorial from GeoEvent Server tutorials.
GeoEvent Definition field data types
Each field contained in a GeoEvent Definition has an associated field data type. This field data type is used when input connectors construct a GeoEvent from streaming event data or when GeoEvents are deconstructed prior to sending a GeoEvent through an output connector.
The available field data types are as follows:
- Boolean
- Date
- Double
- Float
- Geometry
- Group*
- Integer
- Long
- Short
- String
* For details on the group data type, see Field groups below.
Field cardinality
Some event-based data streams define schemas in which a single field has multiple entries, like an array. These fields are represented in GeoEvent Definitions as fields with a cardinality greater than one. Field cardinality is an advanced feature meant to support data streams in which this condition is found.
Administrators can configure a GeoEvent Definition's cardinality in GeoEvent Manager by changing the cardinality of a field from One to Many.
Field groups
Some data feeds define schemas in which a single field is not a discrete data type (for example, date, string, and integer) but is instead a group containing multiple types of data values. These fields are represented in GeoEvent Definitions as Groups. The discrete data types of each field within a group will be found indented beneath the field group's name.
Support for field groups is another advanced feature meant to support data feeds in which this condition is found. A group field data type can contain nested groups, enabling complex structures to be created.
Configure a GeoEvent Definition's field to be a group field in GeoEvent Manager by changing the type of field to Group.
Nota:
Not all output connectors support event data whose fields contain multi-cardinal or group structures. For example, when using either the Add a Feature Output Connector or the Update a Feature Output Connector, you must use a Field Mapper Processor to flatten an event's data structure to match the schema expected by a feature service's layer. Another example is when using the Send Features to a Stream Service Output Connector, the event's data structure should be flattened so feature pop-ups generated from a stream layer display simple text values rather than hierarchical JSON.
Field name restrictions
The attribute field names in a GeoEvent Definition cannot contain any of the following characters: $ . [ ] ? * < > ! = { } % ( ). Field names, although not restricted, should also not use metacharacters typically recognized as arithmetic or logical operators such as plus (+), minus (-), multiply (*), divide (/), logical AND (&&), or logical OR (||), as well as spaces.
As a best practice, remove any characters which are not alphanumeric or an underscore from your field names. For more information, see Field naming guidelines and the Esri Technical Support Article What characters should not be used in ArcGIS for field names and table names.
If certain, but not recommended, metacharacters have to be used in a GeoEvent Definition's attribute field name, you should use a Field Mapper Processor to remap an event record's schema as early as possible in your event processing workflow to address the field naming restrictions. For an example, see the illustration in Field name delimitation.