摘要
事件连接器处理器可使用匹配键将两个事件记录中的数据与不同的 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 定义。