事件连接器处理器可使用匹配键将两个事件记录中的数据与不同的 GeoEvent 定义进行组合。 该处理器会创建一个新 GeoEvent 定义,其中包含每个指定的 GeoEvent 定义的属性字段。 处理器接收到每个 GeoEvent 定义的事件记录后,会对每个事件记录中的最新数据进行复制,然后将合并后的事件作为新事件记录发出。
示例
以下是事件连接器处理器的用例:
用法说明
使用事件连接器处理器时,请记住以下事项:
- 要配置事件连接器处理器,请从每个方案中选择两个 GeoEvent 定义和一个字段,方案中的值将用于执行连接。 处理器接收到每个 GeoEvent 定义类型的事件记录后,将使用连接字段中的匹配属性值(或键)创建一个新事件记录。 新事件记录将共享连接中所使用的两个 GeoEvent 定义的组合方案。
- 在等待执行连接期间,处理器将使用内部缓存来保留事件记录。 处理器将针对每个 GeoEvent 定义类型缓存每个唯一属性值的一个事件记录。 当处理器接收到含先前发现的属性值的事件记录时,将清除较早的事件记录。 这样,在连接两个事件记录时,将仅使用最新接收到的给定属性值键的事件记录。
- 事件连接器处理器与字段丰富器(要素服务)处理器类似,缓存大小都可配置。 当接收的缓存事件记录数超过配置的缓存大小时,缓存中的较早记录将被清除以容纳新的事件记录。
- 处理器的缓存位于内存中。 如果对使用事件连接器处理器的 GeoEvent 服务执行更改或者重新启动 ArcGIS GeoEvent Server 服务,则将重新创建缓存。 在 GeoEvent Manager 中停止和启动 GeoEvent 服务不会重新创建缓存。
- 配置事件连接器处理器时,您必须指定在用于执行事件连接后应对每个 GeoEvent 定义中最新的缓存事件记录进行的操作。 默认情况下,缓存的事件记录在使用后将被清除,而处理器将等待接收用于后续连接的各个类型的新事件记录。 但是,您可以对处理器进行配置以在连接后保留其缓存的事件记录,并在接收任何 GeoEvent 定义类型的新事件记录时生成新的组合事件记录。
- 最佳的做法是在事件连接器处理器之后立即使用字段映射器处理器进行方案校正。 事件连接器处理器对输出 GeoEvent 定义的方案进行了一些必要的更改,其中包括:
- 现有字段名称前附加其源 GeoEvent 定义名称。 第一个 GeoEvent 定义 A 中名为 Altitude 的示例字段在输出 GeoEvent 定义中将重命名为 A_Altitude。 需要从用于连接的源 GeoEvent 定义中区分出可能重复的字段名称。
- 现有标签将从输出 GeoEvent 定义中移除。 保留标签(例如 GEOMETRY 和 TRACK_ID)不能应用于 GeoEvent 定义中的多个字段。
- 每个源 GeoEvent 定义中的所有字段均包含在输出 GeoEvent 定义中。
- 最佳做法是将缓存大小参数设置为相应值,该值应大于最大输入馈送量的唯一事件记录预期数量。 达到最大事件数后,事件连接器处理器将清除其缓存,因此如果将缓存大小设置得过低,则在成功连接前可能会清除记录。 另外,请勿将缓存大小设置得过高,因为事件记录存储在内存中,所以将该值设置得过高会影响性能。
参数
以下是事件连接器处理器的参数:
参数 | 描述 |
---|---|
名称 |
用于在 GeoEvent Manager 中引用的处理器的描述性名称。 |
处理器 |
指定所选的处理器。 |
第一个 GeoEvent 定义 | 第一个 GeoEvent 定义的名称。 第一个 GeoEvent 定义用于标识实时连接中第一组事件记录的方案。 与第一个 GeoEvent 定义相关联的事件记录将连接到与第二个 GeoEvent 定义相关联的事件记录。 |
第一个 GeoEvent 定义连接字段 | 第一个 GeoEvent 定义中的字段名称,其值将用作与第二个 GeoEvent 定义中的实时数据执行连接的键。 将使用第一个 GeoEvent 定义连接字段参数中的值来缓存单个事件记录,直到第二个 GeoEvent 定义连接字段参数的值中存在相应的匹配值为止。 在等待执行有效连接时,处理器将仅缓存每个键的最新事件记录。 要进行连接,第一个 GeoEvent 定义连接字段的名称不必与第二个 GeoEvent 定义连接字段相同。 仅当每个用作公用键的连接字段中的值必须相同,才能成功进行连接。 |
第二个 GeoEvent 定义 | 第二个 GeoEvent 定义的名称。 第二个 GeoEvent 定义用于标识实时连接中第二组事件记录的方案。 与第二个 GeoEvent 定义相关联的事件记录将连接到与第一个 GeoEvent 定义相关联的事件记录。 |
第二个 GeoEvent 定义连接字段 | 第二个 GeoEvent 定义中的字段名称,其值将用作与第一个 GeoEvent 定义中的实时数据执行连接的键。 将使用第二个 GeoEvent 定义参数中的值来缓存单个事件记录,直到第一个 GeoEvent 定义连接字段参数的值中存在相应的匹配值为止。 在等待执行有效连接时,事件连接器处理器将仅缓存每个键的最新事件记录。 要进行连接,第二个 GeoEvent 定义连接字段的名称不必与第一个 GeoEvent 定义连接字段相同。 仅当每个用作公用键的连接字段中的值必须相同,才能成功进行连接。 |
新建 GeoEvent 定义名称 | 分配给由处理器创建的新 GeoEvent 定义的名称。 新 GeoEvent 定义将组合第一个和第二个 GeoEvent 定义的方案。 注:虽然新 GeoEvent 定义保留现有字段顺序和数据类型,但字段名称已更改。 此外,每个源 GeoEvent 定义中的现有标签不会传递到新 GeoEvent 定义。 有关详细信息,请参阅以上用法说明。 |
缓存大小 | 指定要保留在缓存中的最大事件记录数。 缓存的最大事件记录数分别对应于每个 GeoEvent 定义。 例如,如果缓存大小参数设置为 2000,则缓存将存储与第一个 GeoEvent 定义对应的 2000 个事件记录以及与第二个 GeoEvent 定义对应的 2000 个事件记录。 可以使用第一个和第二个 GeoEvent 定义连接字段的值来缓存事件记录。 默认值为 1000。 注:超过缓存大小后,将清除缓存。 |
连接后清除 | 指定在成功连接后是否清除相应的事件记录。 默认为是。
将此参数设置为是或否可能会影响事件连接器处理器的核心行为。 设置为是时,处理器将仅连接共享匹配键值的最新事件记录。 设置为否时,处理器将采取完全不同的行为。 事件连接将使用最新的实时事件记录和较早的缓存事件记录的组合持续进行。 |
注意事项和限制
使用事件连接器处理器时,需要牢记几点注意事项:
- 无法对共享相同 GeoEvent 定义名称的事件记录进行连接。 处理器将使用第一个和第二个 GeoEvent 定义的名称为每组事件记录构造单独的缓存。 如果数据来自两个不同的源馈送,并且两者共享相同的方案和 GeoEvent 定义,则将事件记录传递到处理器之前,请考虑为其中一个源馈送创建具有不同名称的重复 GeoEvent 定义。
- 事件联接仅支持固定 GeoEvent 定义。 不支持托管的 GeoEvent 定义。