Skip To Content

轮询 ArcGIS Server 以查找要素

“轮询 ArcGIS Server 以查找要素”输入连接器可用于轮询 ArcGIS EnterpriseArcGIS Online 地图或要素服务图层以查找要素记录,从而将其作为事件记录进行处理。

用法说明

使用“轮询 ArcGIS Server 以查找要素”输入连接器时,应记住以下事项:

  • 使用此输入连接器可从地图或要素服务图层检索要素。
  • 此输入连接器将要素 JSON 入站适配器与要素服务入站传输进行配对。 要素 JSON 入站适配器专用于解释要素 JSON。 有关详细信息,请参阅几何对象
  • 支持 ArcGIS EnterpriseArcGIS OnlineArcGIS Server(独立)地图和要素服务。
  • 要引用服务图层,可以使用浏览至图层选项,或使用服务图层 URL 选项指定 URL。 这两种方法都需要首先建立已注册数据存储连接。
  • 与所有输入连接器一样,需要 GeoEvent 定义。 GeoEvent 定义用于识别正在接收的事件记录的方案。 有关详细信息,请参阅 GeoEvent 定义
  • 未包含在 GeoEvent 定义中的事件属性字段的数据值将被忽略。
  • 此输入连接器会按照指定间隔定期轮询指定的地图或要素图层。 与任何 Web 服务器或 Web 服务一样,不建议使用过短的轮询间隔,例如每秒。
  • 简单的 WHERE 子句用于识别随每次地图或要素服务轮询返回的要素记录集。 系统默认包括轮询的要素记录集中的所有记录,例如,WHERE 1=1。 可以修改默认的 WHERE 子句以包括特定的属性值和逻辑条件。
  • 此输入连接器支持使用指定几何和空间关系(例如,面相交)的空间过滤器。
  • 此输入连接器支持从被轮询的地图或要素图层中选择性地删除轮询记录。
  • 此输入连接器支持一个独特的功能,获取增量更新,即使用 ObjectID时间戳值来轮询新添加或更新的要素记录。
  • 可从四个选项中进行选择来配置增量轮询。 您可以选择使用要素记录对象标识符、自上次收到上下文中的时间戳、上次查询到现在间隔上下文中的时间戳或者与系统当前日期和时间重叠的时间戳。
  • 有关轮询增量更新的详细信息,请参阅 Esri 社区中的以下资源:

参数

以下是“轮询 ArcGIS Server 以查找要素”输入连接器的参数:

参数描述

名称

用于在 GeoEvent Manager 中引用的输入连接器的描述性名称。

已注册服务器连接

ArcGIS GeoEvent Server 注册为数据存储的 ArcGIS ServerArcGIS EnterpriseArcGIS Online 连接。 已注册的服务器连接会缓存有关地图/要素服务、其图层和图层属性的信息。

参考图层类型

定义参考图层的选项。

  • 浏览到图层 - 通过浏览已注册数据存储的文件夹来引用服务图层。
  • 服务图层 URL - 通过指定共享服务图层的 URL 来引用服务图层。

文件夹

(条件分析)

ArcGIS Server 服务文件夹、ArcGIS Enterprise 门户或 ArcGIS Online 内容项目文件夹。

此参数在参考图层类型参数设置为浏览至图层时显示,设置为服务图层 URL 时隐藏。

服务名称

(条件分析)

要轮询要素记录的地图/要素服务的名称。

此参数在参考图层类型参数设置为浏览至图层时显示,设置为服务图层 URL 时隐藏。

图层

(条件分析)

地图/要素服务要素图层,可通过其访问要素记录。

此参数在参考图层类型参数设置为浏览至图层时显示,设置为服务图层 URL 时隐藏。

服务图层 URL

(条件分析)

服务图层的 URL。

注:
通过 URL 引用服务图层时,必须建立数据存储连接。 服务图层必须是可公开访问的,或者与其凭据建立数据存储连接的用户共享。

此参数在参考图层类型参数设置为服务图层 URL 时显示,设置为浏览至图层时隐藏。

创建 GeoEvent 定义

指定是否应将新的或现有的 GeoEvent 定义用于入站事件数据。 GeoEvent Server 需要 GeoEvent 定义,以了解入站事件数据属性字段和数据类型。

  • - 将根据收到的第一个事件记录的模式创建新的 GeoEvent 定义。
  • - 不会创建新的 GeoEvent 定义。 选择与入站事件数据的方案匹配的现有 GeoEvent 定义。

GeoEvent 定义名称(新)

(条件分析)

分配给新 GeoEvent 定义的名称。 如果已存在具有指定名称的 GeoEvent 定义,则会使用现有的 GeoEvent 定义。 收到的第一个数据记录将用于确定后续数据记录的预期方案,将根据第一个数据记录的方案创建新的 GeoEvent 定义。

此参数在创建 GeoEvent 定义设置为时显示,设置为时隐藏。

GeoEvent 定义名称(现有)

(条件分析)

在调整接收数据以创建事件数据以供 GeoEvent 服务处理时使用的现有 GeoEvent 定义的名称。

此参数在创建 GeoEvent 定义设置为时显示,设置为时隐藏。

刷新间隔

将轮询地图/要素服务要素图层以查找要素记录的时间段(以秒为单位)。 默认为 10(每 10 秒发送一个轮询请求)。

获取增量更新

指定是否仅使用缓存的 ObjectID时间戳值请求新要素记录或更新的要素记录。 默认为

  • - GeoEvent Server 将使用缓存的 ObjectID时间戳来轮询增量更新。
  • - GeoEvent Server 不会在其要素记录轮询中合并缓存的 ObjectID时间戳

用于标识增量更新的方法

(条件分析)

指定 GeoEvent Server 在轮询增量更新时如何识别新添加或最近更新的要素记录。 可用选项包括:

  • ObjectID - GeoEvent Server 将缓存从地图或要素服务轮询返回的要素记录集中最大对象标识符。 只有对象标识符大于上次轮询缓存值的要素才会包含在下一轮询中。
  • 自上次收到时间戳到最新要素时间戳 - GeoEvent Server 将构造具有下限和上限的时间查询。 下限将为上次执行查询的日期和时间。 上限将为当前日期和时间。 只有时间戳在时间查询范围内的要素记录才会包含在下一次轮询中。 要素记录时间戳获取自指定属性字段。
  • 上次查询时间到现在的时间戳间隔 - GeoEvent Server 将构造具有上限和下限的时间查询。 下限将为上次执行查询的日期和时间。 上限将为当前日期和时间。 只有时间戳在时间查询范围内的要素记录才会包含在下一次轮询中。 要素记录时间戳获取自指定属性字段。
  • 具有重叠的上次查询时间与当前时间的时间戳间隔 - GeoEvent Server 将构建下限等于执行上次查询前的指定秒数并且上限等于当前日期和时间的时间查询。 只有时间戳在时间查询范围内的要素记录才会包含在下一次轮询中。

此参数在获取增量更新设置为时显示,获取增量更新设置为时隐藏。

时间戳重叠持续时间(以秒为单位)

(条件分析)

要从所构造时间查询的下限中减去的秒数。 用于在查询上次查询时间与当前时间之间的值时人工扩展时间范围。

用于标识增量更新的方法设置为具有重叠的上次查询时间与当前时间的时间戳间隔时,将显示该参数。

用于标识增量更新的时间字段

(条件分析)

构造时间查询时要使用其值的属性字段。 同时用于确定要素记录的时间戳是否在所构造时间查询的上限和下限范围内。 只能选择数据类型为 Date 的属性。

用于识别增量更新的方法设置为除 ObjectID 之外的其他值时,将显示该参数。

查询定义

指定用于限制轮询地图/要素服务要素图层时返回的要素记录的逻辑表达式。 该表达式用作结构化查询语言 (SQL) WHERE 子句中的谓词。 示例包括以下内容:

  • 1=1 - 默认,用于构建子句 WHERE 1=1,以轮询所有可用的要素记录。
  • track_id LIKE '%AJP' - 匹配 TRACK_ID 字符串中任意位置的带有文本字符串 AJP 的要素记录。
  • reported_dt > timestamp '2019-04-05 22:30:00' - 匹配日期/时间属性值大于指定时间戳的要素记录。

使用几何过滤器

指定是否应将几何对象用作空间过滤器,以限制轮询地图/要素服务要素图层时返回的要素记录。 如果指定几何过滤器,则过滤器将与指定的查询定义组合,以进一步限制从要素图层查询返回的要素记录。 有关详细信息,请参阅几何对象

  • - 空间过滤器将用于查询要素图层中的要素。
  • - 空间过滤器不会用于查询要素图层中的要素。

过滤几何

(条件分析)

几何对象,使用要素 JSON 表示,用作空间过滤器。 有关正确的几何对象语法的详细信息,请参阅几何对象

此参数在使用几何过滤器设置为时显示。

几何类型

(条件分析)

指定几何过滤器的要素 JSON 描述的几何类型。 支持的几何类型包括包络、点、折线、面和多点。

此参数在使用几何过滤器设置为时显示。

空间参考

(条件分析)

指定几何过滤器的空间参考的熟知 ID (WKID)。

此参数在使用几何过滤器设置为时显示。

空间关系

(条件分析)

指定在评估从地图/要素服务要素图层轮询的要素记录时要使用的空间关系,以确定它们是否满足几何过滤器的条件。

此参数在使用几何过滤器设置为时显示。

删除轮询的要素

指定是否应从要素服务要素图层中删除要素服务返回的记录集中的要素记录。 默认为

注意事项和限制

如果您不想获取、调整和处理之前已处理的要素记录并且不想从数据源中删除之前处理的要素记录,仅用于轮询新添加或最近更新的要素记录的“在 ArcGIS Server 中轮询要素”输入可能很有用。 但是,当涉及到服务重启或服务器计算机重启时,轮询增量更新的功能不具有弹性。 这是因为此功能依靠最新对象标识符或日期与时间值的内存缓存对新的或更新后的记录执行连续轮询。 如果任一占位符值在系统重启后丢失,则输入连接器将轮询之前已处理的记录。 在某些情况下,这可能导致 GeoEvent 服务误报。

如果您的解决方案需要提高在系统重启时的弹性,请考虑实施最佳做法,即使用代表性字段值标记已处理的要素记录。 建议这样做,而不是使用轮询增量更新功能。 例如,请考虑将字段添加至名为 hasBeenProcessed 或具有类似名称的要素服务方案。 为新记录的要素服务指派默认值 0。 当输入连接器轮询记录时,将 0 覆盖为 1 以指示记录已处理。 要执行此操作,可使用 GeoEvent 服务中的字段计算器。 同时使用 hasBeenProcessed < 1 的查询定义 WHERE 子句配置您的输入连接器。 这确保 GeoEvent Server 将仅检索 hasBeenProcessed 为 0(即表示新记录)的新记录。 如果您发现您要重新处理要素记录,请确保要素编辑工作流返回从 1 重新变为 0 的 hasBeenProcessed 属性,以将记录包含在下一次轮询中。

有关轮询增量更新的详细信息,请参阅 Esri 社区中的以下资源: