“轮询外部网站以查找 JSON”输入连接器可用于从外部网站检索和改编格式为通用 JSON 的事件数据记录。 有关说明 ArcGIS GeoEvent Server 期望如何设置典型的通用 JSON 数据记录格式的示例,请参阅 Esri Community 博客 JSON 数据结构 - 使用层次结构和多基数关系。
当多个事件数据记录一批返回时,应按数组形式对其进行组织,如下图所示。 通用 JSON 入站适配器会将数组中的每个对象作为单独的事件记录进行处理。
用法说明
- 使用此输入连接器在 web 服务器或 web 服务中查询格式为通用 JSON 的数据,并对其进行改编以创建可供处理的事件数据记录。
- 此输入连接器将通用 JSON 入站适配器与 HTTP 入站传输进行配对。
- 适配器将对通用 JSON(而不是要素 JSON 或 GeoJSON)进行解释。
- 通用 JSON 记录无需包含表示几何的数据。
- 以 JSON 数组形式组织的典型事件数据如上图所示。
- 适配器将对组织在一个数组中的单个 JSON 记录和 JSON 记录进行处理。
- HTTP 方法指定用于在 web 服务中查询数据的 HTTP 请求的类型。 默认使用 HTTP/GET 请求。
- 适配器支持根据 X、Y 和 Z 属性值构造点几何的功能。
- 可以使用参数属性指定查询参数,以帮助指定感兴趣的数据。
- 将查询参数指定为 HTTP/GET 请求的一部分,从而通过缩小返回的项目数来提高性能。
- 任何指定查询参数的名称和值取决于外部 web 服务支持的请求。
- 此输入连接器假设外部 web 服务器或 web 服务将接受 HTTP/GET 请求而无需身份验证。 对于需要身份验证的外部网站,请考虑创建自定义输入连接器,该连接器需要将通用 JSON 入站适配器与支持基本、证书或 OAuth 身份验证的 HTTP 入站传输进行配对。
- 仅接收新数据属性用于请求仅返回先前未发现的或新更新的数据的源。 此功能取决于正确将“最后修改时间”合并到其对 HTTP 请求的响应的标头中的数据源。 如果响应标头未指示最后更新内容的日期/时间,GeoEvent Server 将假设响应中的数据表示新数据或最近更新的数据。 您可以在 RFC 7232 HTTP 规范中查看有关响应标头中“最后修改时间”使用的详细信息。
- 此输入连接器包括学习模式,当您需要允许输入连接器修改其构造的 GeoEvent 定义时,该模式可能非常有用。 此属性的目的是暂时接受所接收的事件数据将具有变量方案或数据结构。 输入连接器将使用所接收数据记录的样本来了解有关变量数据结构的详细信息,并将先前未发现的新属性字段追加到现有 GeoEvent 定义中。
允许动态更改 GeoEvent 定义会对 GeoEvent 服务中的实时分析设计产生负面影响。 作为最佳实践,建议您如果您的入站事件数据中存在方案差异,则尽可能缩短使用学习模式的时间段,以生成支持入站数据所有预期变体的 GeoEvent 定义。 然后,可以关闭学习模式并自动生成针对生产部署复制和定制的 GeoEvent 定义。
参数
参数 | 描述 |
---|---|
名称 | 用于在 GeoEvent Manager 中引用的输入连接器的描述性名称。 |
默认空间参考 | 当从坐标不是假定的 WGS84 地理坐标系的纬度和经度值的属性字段值构造几何时使用的空间参考的熟知 ID (WKID),或接收的不包含空间参考的几何字符串。 还可以指定熟知文本 (WKT) 值或包含 WKID 或 WKT 的属性字段的名称。 |
URL | 将数据托管为 JSON 的外部网站的基本 URL。 GeoEvent Server 将向该 URL 发出轮询请求以检索 JSON 数据。 |
创建 GeoEvent 定义 | 指定是否应将新的或现有的 GeoEvent 定义用于入站事件数据。 GeoEvent Server 需要 GeoEvent 定义,以了解入站事件数据属性字段和数据类型。
|
GeoEvent 定义名称(新) (条件分析) | 分配给新 GeoEvent 定义的名称。 如果已存在具有指定名称的 GeoEvent 定义,则会使用现有的 GeoEvent 定义。 收到的第一个数据记录将用于确定后续数据记录的预期方案,将根据第一个数据记录的方案创建新的 GeoEvent 定义。 此参数在创建 GeoEvent 定义设置为是时显示,设置为否时隐藏。 |
GeoEvent 定义名称(现有) (条件分析) | 在调整接收数据以创建事件数据以供 GeoEvent 服务处理时使用的现有 GeoEvent 定义的名称。 此参数在创建 GeoEvent 定义设置为否时显示,设置为是时隐藏。 |
HTTP 方法 | 轮询提供数据源的外部服务器时要使用的 HTTP 请求方法 GeoEvent Server。 默认使用 HTTP/GET 请求。
从技术角度讲,在查询外部 web 服务器或 web 服务中的数据时,轮询输入应始终使用 HTTP/GET 请求。 更改此属性来指定 POST 或 PUT 将显示与此输入连接器无关的其他属性 |
提交自 提交正文 提交正文 MIME 类型 提交参数 (条件分析) | 默认情况下,HTTP 方法设置为 GET 时,这些属性是隐藏的。 有关详细信息,请参阅下文的限制部分。 |
默认空间参考 | 当从坐标不是假定的 WGS84 地理坐标系的纬度和经度值的属性字段值构造几何时使用的空间参考的熟知 ID (WKID),或接收的不包含空间参考的几何字符串。 还可以指定熟知文本 (WKT) 值或包含 WKID 或 WKT 的属性字段的名称。 |
仅接收新数据 | 指定适配器是否在数据源响应的标头中查找最近修改值,并尝试使用此值来避免处理已接收且未更新的数据。 此参数的名称可能具有误导性。 传输将始终接收数据源在其对连接器查询的响应中包含的任何数据。 但是,指定仅接收新数据时,传输将缓存其上次请求的日期/时间,并且仅在来自数据源的响应包含的最近修改值大于传输的缓存值时才会将收到的数据转发到适配器。 指定最近修改值为可选功能。 实际上,没有多少数据源在其响应中包含该值。 此参数的默认值为是,但是如果未找到最近修改值,则此参数基本上被忽略,因为确定响应中的数据是新的还是更新的日期/时间不可用。
有关在响应标头中使用最近修改的详细信息,请参阅 RFC 7232 HTTP 规范。 |
可接受的 MIME 类型(服务器模式) | 指定输入连接器将接受的 MIME 类型。 使用逗号来分隔值,例如:text/plain,application/xml,text/xml。 MIME 类型通常由类型/子类型结构组成,并在服务器要指定它将从客户端接受的数据的 Internet 媒体类型时使用。 默认值是 application/json,这是在客户端和服务器之间交换 JSON 时的官方 MIME 类型。 有关官方 MIME 类型的详细信息,请参阅互联网地址编码分配机构 (IANA)。 有关 ArcGIS Server 未使用的 MIME 类型的详细信息,请参阅 ArcGIS Server 未使用的 MIME 类型。 |
频率(以秒为单位) | 轮询外部 Web 服务器或 Web 服务以获取数据的间隔(以秒为单位)。 默认为 10 秒(每 10 秒进行一次轮询请求)。 |
头文件参数名称: 值列表 | 轮询外部 Web 服务器或 Web 服务时要包含在请求的 HTTP 标头中的参数。 应使用名称:以逗号分隔的值对(包括冒号)指定标头参数。 |
从字段构建几何 | 指定输入连接器是否应使用作为属性接收的坐标值构造点几何。 默认为否。
|
X 几何字段 (条件分析) | 入站事件数据中的属性字段包含点位置的 X 坐标部分(例如水平或经度)。 此参数在从字段构建几何设置为是时显示,设置为否时隐藏。 |
Y 几何字段 (条件分析) | 入站事件数据中的属性字段包含点位置的 Y 坐标部分(例如垂直或纬度)。 此参数在从字段构建几何设置为是时显示,设置为否时隐藏。 |
Z 几何字段 (条件分析) | 入站事件数据中的属性字段包含点位置的 Z 坐标部分(例如深度或高度)。 如果留空,则将省略 Z 值,并将构建 2D 点几何。 此参数在从字段构建几何设置为是时显示,设置为否时隐藏。 |
JSON 对象名称 | JSON 元素的名称,可用作接收的 JSON 数据中子结构的根结点。 当 JSON 对象名称用于按名称指定 JSON 元素时,适配器将搜索对象名称与指定元素名称匹配的子结构。 仅考虑所识别的子结构内的数据。 如果保留为空(默认值),则最上面的 JSON 对象将用作整个 JSON 结构的根。 |
参数 | 指定一个或多个要追加到基本 URL 的查询参数。 查询参数特定于每个 Web 服务,不受所有服务支持。 支持时,查询参数有助于指定特别感兴趣的数据。 此参数没有默认值。 查询参数通常包含在 URL 参数中。 |
使用 URL 代理 | 指定 GeoEvent Server 是否在发出 HTTP 请求时使用 URL 代理。 默认为否。
|
URL 代理 (条件分析) | 发出 HTTP 请求时使用的 URL 代理。 此参数没有默认值。 此参数在使用 URL 代理设置为是时显示,设置为否时隐藏。 |
预期日期格式 | 该模式用于匹配日期/时间值的预期字符串表示形式,并将它们转换为 Java 日期值。 模式的格式遵循 Java SimpleDateFormat 类约定。 此参数没有默认值。 而 GeoEvent Server 更偏好以 ISO 8601 标准表示的日期/时间值,通常被识别为日期值的日期/时间值的多个字符串表示可以转换为 Java 日期值,且无需指定预期日期格式模式。 其中包括:
如果收到的日期/时间值使用上述五种之一以外的约定表示,则必须指定一个预期日期格式以便 GeoEvent Server 了解如何调整日期/时间值。 |
可接受的 MIME 类型(客户端模式) (条件分析) | 指定此连接器在接收其对数据源的查询的响应时将接受的 MIME 类型。 外部 Web 服务的响应指定发送到 GeoEvent Server 的任何数据的实际 MIME 类型。 此连接器解析以下 MIME 类型,这些类型是此参数的默认值: text/json,application/json 有关官方 MIME 类型的详细信息,请参阅互联网地址编码分配机构 (IANA)。 有关 ArcGIS Server 未使用的 MIME 类型的详细信息,请参阅 ArcGIS Server 未使用的 MIME 类型。 此参数在 HTTP 方法设置为 Get 时显示,设置为 Post 或 Put 时隐藏。 |
HTTP 超时(秒) | 指定输入连接器等待来自其查询的外部 Web 服务的响应的最长时间(以秒为单位)。 该值必须是介于 1 和 2147483 之间的整数。 默认值为 30 秒(如果没有收到响应,HTTP 请求将在 30 秒后超时)。 |
学习模式 | 指定学习模式为活动还是禁用状态。 学习模式设置为是时,入站适配器会将新字段追加到其已创建和正在维护的 GeoEvent 定义中。
当您需要允许输入连接器修改它构建的 GeoEvent 定义时,学习模式会很有用。 此参数的目的是暂时接受所接收的事件数据将具有变量方案或数据结构。 输入连接器将使用所接收数据记录的样本来了解有关变量数据结构的详细信息,并将先前未发现的新属性字段追加到现有 GeoEvent 定义中。 |
局限性
从技术角度讲,轮询输入应始终使用 HTTP/GET 请求,该请求不包含内容正文,并且任何参数都应该是用于指定感兴趣数据的查询参数。 以下参数仅适用于将数据发送到外部 Web 服务器或 Web 服务的输出连接器。 将 HTTP 方法参数设置为默认值 HTTP/GET,以下参数将保持隐藏状态。
参数 | 描述 |
---|---|
提交自 (条件分析) | 指定此连接器是使用 HTTP/POST 还是 HTTP/PUT 请求。
此参数在 HTTP 方法设置为 Post 或 Put 时显示,设置为 Get 时隐藏。 |
提交正文 (条件分析) | 指定要包含在 HTTP/POST 或 HTTP/PUT 请求的内容正文中的数据。 此参数在提交自设置为内容正文时显示,设置为参数时隐藏。 |
提交正文 MIME 类型 (条件分析) | 指定 HTTP 请求的内容正文中包含的 MIME 数据类型。 MIME 类型通常由类型/子类型结构组成,用于指定 HTTP 客户端/服务器使用和接受的 Internet 媒体类型。 此参数没有默认值。 此参数在提交自设置为内容正文时显示,设置为参数时隐藏。 |
提交参数 (条件分析) | 指定要包含在 HTTP 请求中的参数。 应使用名称:以逗号分隔的值对(包括冒号)指定参数。 此参数没有默认值。 此参数在提交自设置为参数时显示,设置为内容正文时隐藏。 |