“订阅 Kafka 主题以获取 JSON”输入连接器可用于从 Kafka 主题检索和改编通用 JSON 形式的事件数据记录。 有关 Apache Kafka 入门知识的详细信息,请参阅 Apache Kafka 简介。
用法说明
使用“订阅 Kafka 主题以获取 JSON”输入连接器时,应记住以下事项:
- 使用此输入连接器可以使用 Kafka 主题中的 JSON 数据。 此输入连接器是 Kafka 的用户。
- 此输入连接器将通用 JSON 入站适配器与 Kafka 入站传输配对。
- 适配器将对通用 JSON(而不是要素 JSON 或 GeoJSON)进行解释。
- 通用 JSON 记录无需包含表示几何的数据。
- 适配器将对组织在一个数组中的单个 JSON 记录和 JSON 记录进行处理。
- 适配器支持根据 x、y 和 z 属性值构造点几何的功能。
- 此输入连接器包括学习模式参数,您可以使用此参数允许输入连接器修改其构造的 GeoEvent 定义。 此参数的目的是暂时接受所接收的事件数据将具有变量方案或数据结构。 输入连接器将使用所接收数据记录的样本来了解有关变量数据结构的详细信息,并将先前未发现的新属性字段追加到现有 GeoEvent 定义中。
- 允许动态更改 GeoEvent 定义会对 GeoEvent 服务中的实时分析设计产生负面影响。 最佳做法是,如果入站事件数据中预期存在方案差异,建议您在尽可能短的时间内使用学习模式,以生成支持入站数据所有预期变体的 GeoEvent 定义。 然后,可以关闭学习模式,自动生成的 GeoEvent 定义将进行复制和定制以用于生产部署。
- Kafka 入站传输支持 TLS 1.2 和 SASL 安全协议,其使用 Kafka 集群或 broker 进行身份验证。
参数
以下是“订阅 Kafka 主题以获取 JSON”输入连接器的参数:
参数 | 描述 |
---|---|
名称 | 用于在 GeoEvent Manager 中引用的输入连接器的描述性名称。 |
使用自定义 Kafka 属性覆盖 | 指定是否覆盖默认 GeoEvent Server Kafka 客户端属性。 默认为否。
|
Kafka Bootstrap Servers (条件分析) | 用于建立与 Kafka 集群初始连接的 hostname:port 对列表。 Hostname:port 对必须使用逗号分隔,例如broker0.example.com:9092,broker1.example.com:9092,broker2.example.com:9092。 此参数将在使用自定义 Kafka 属性覆盖设置为否时显示。 |
主题名称 | Kafka 主题的名称或 Kafka 主题列表,用于使用感兴趣的数据。 多个主题必须使用分号分隔。
注:在 ArcGIS GeoEvent Server 10.8 及更高版本中可以指定多个 Kafka 主题。 |
用户数量 | 指定每个用户群组的用户数量。 默认用户数量为 1。 注:用户数量受 Kafka 主题的分区数量限制。 有关用户实例的详细信息,请参阅 Apache Kafka 简介。 |
用户群组 ID (条件分析) | 可选字符串,用于唯一标识一组用户的用户群组。 此参数也称为用户群组名称。 如果未指定用户组 ID,GeoEvent Server 会分配一个名为 geoevent-consumer 的静态用户组 ID。 此静态用户组 ID 将在所有未指定用户组 ID 的 Kafka 连接器实例之间共享。 强烈建议您指定自定义用户群组 ID。 有关用户群组的详细信息,请参阅 Apache Kafka 简介。 此参数将在使用自定义 Kafka 属性覆盖设置为否时显示。 |
Kafka 属性文件的已注册文件夹 (条件分析) | 使用 GeoEvent Server 注册的文件夹,其中包含 Kafka .properties 文件。 当使用自定义 Kafka 属性覆盖设置为是时,Kafka .properties 文件将定义自定义 Kafka 属性。 确保使用 GeoEvent Server 注册的文件夹为 Kafka .properties 文件所在位置的完整路径。 此参数将在使用自定义 Kafka 属性覆盖设置为是时显示。 |
Kafka 属性文件名称 (条件分析) | Kafka .properties 文件的名称,该文件包含用于客户端配置的自定义 Kafka 属性。 指定的文件名称不应包含 .properties 扩展名。
此参数将在使用自定义 Kafka 属性覆盖设置为是时显示。 |
从头开始 | 指定是从主题的开始偏移还是从用户的上次偏移开始使用记录。 默认为是。
注:有关偏移的详细信息,请参阅 Apache Kafka 配置。 |
JSON 对象名称 | JSON 元素的名称,可用作接收的 JSON 数据中子结构的根结点。 当 JSON 对象名称用于按名称指定 JSON 元素时,适配器将搜索对象名称与指定元素名称匹配的子结构。 仅考虑所识别的子结构内的数据。 如果保留为空(默认值),则最上面的 JSON 对象将用作整个 JSON 结构的根。 |
创建 GeoEvent 定义 | 指定是否应将新的或现有的 GeoEvent 定义用于入站事件数据。 GeoEvent Server 需要 GeoEvent 定义,以了解入站事件数据属性字段和数据类型。
|
GeoEvent 定义名称(新) (条件分析) | 分配给新 GeoEvent 定义的名称。 如果已存在具有指定名称的 GeoEvent 定义,则会使用现有的 GeoEvent 定义。 收到的第一个数据记录将用于确定后续数据记录的预期方案,将根据第一个数据记录的方案创建新的 GeoEvent 定义。 此参数在创建 GeoEvent 定义设置为是时显示,设置为否时隐藏。 |
GeoEvent 定义名称(现有) (条件分析) | 在调整接收数据以创建事件数据以供 GeoEvent 服务处理时使用的现有 GeoEvent 定义的名称。 此参数在创建 GeoEvent 定义设置为否时显示,设置为是时隐藏。 |
从字段构建几何 | 指定输入连接器是否应使用作为属性接收的坐标值构造点几何。 默认为否。
|
X 几何字段 (条件分析) | 入站事件数据中包含点位置 x 坐标部分(例如水平或经度)的属性字段。 此参数在从字段构建几何设置为是时显示,设置为否时隐藏。 |
Y 几何字段 (条件分析) | 入站事件数据中包含点位置 y 坐标部分(例如垂直或纬度)的属性字段。 此参数在从字段构建几何设置为是时显示,设置为否时隐藏。 |
Z 几何字段 (条件分析) | 入站事件数据中包含点位置 z 坐标部分(例如深度或高度)的字段的名称。 如果留空,则将省略 z 值,并将构建 2D 点几何。 此参数在从字段构建几何设置为是时显示,设置为否时隐藏。 |
学习模式 | 指定学习模式为活动还是禁用状态。 学习模式设置为是时,入站适配器会将新字段追加到其已创建和正在维护的 GeoEvent 定义中。
当您需要允许输入连接器修改它构建的 GeoEvent 定义时,学习模式会很有用。 此参数的目的是暂时接受所接收的事件数据将具有变量方案或数据结构。 输入连接器将使用所接收数据记录的样本来了解有关变量数据结构的详细信息,并将先前未发现的新属性字段追加到现有 GeoEvent 定义中。 允许在运行中更改 GeoEvent 定义会对 GeoEvent 服务中的实时分析设计产生负面影响。 如果入站事件数据中预期存在方案差异,建议您在尽可能短的时间内使用学习模式,以生成支持入站数据所有预期变体的 GeoEvent 定义。 然后,可以关闭学习模式并为生产部署复制和定制自动生成的 GeoEvent 定义。 |
默认空间参考 | 当从坐标不是假定的 WGS84 地理坐标系的纬度和经度值的属性字段值构造几何时使用的空间参考的熟知 ID (WKID),或接收的不包含空间参考的几何字符串。 还可以指定熟知文本 (WKT) 值或包含 WKID 或 WKT 的属性字段的名称。 |
预期日期格式 | 该模式用于匹配日期/时间值的预期字符串表示形式,并将它们转换为 Java 日期值。 模式的格式遵循 Java SimpleDateFormat 类约定。 而 GeoEvent Server 更偏好以 ISO 8601 标准表示的日期/时间值,通常被识别为日期值的日期/时间值的多个字符串表示可以转换为 Java 日期值,且无需指定预期日期格式模式。 其中包括:
如果收到的日期/时间值使用并非上述五种之一的约定表示,则必须指定一个预期日期格式模式以便 GeoEvent Server 了解如何调整日期/时间值。 |
作为 GeoJSON | 指定是否将传入的几何解析为 GeoJSON 几何对象而不是要素 JSON。 默认情况下假设当一个几何作为字符串接收时,该值将是要素 JSON,正如几何对象中所述。
|
需要身份验证 | 指示连接到 Kafka 集群(或 Kafka broker)是否需要身份验证。 默认为否。
|
身份验证方式 (条件分析) | 指定用于保护 Kafka 集群的安全协议。 可用安全协议包括 TLS 1.2 和 SASL。
注:在使用 Kerberos 时,请确保运行 ArcGIS GeoEvent Server 的操作系统用户帐户具有 Kerberos 设置和配置中密钥表文件的读取权限。 此参数在需要身份验证设置为是时显示。 |
凭据文件的已注册文件夹 (条件分析) | 使用 GeoEvent Server 注册的文件夹中包含 Kafka 集群的 PKI 文件(x509 证书)。 确保使用 GeoEvent Server 注册的文件夹为 Kafka 集群证书所在位置的完整路径。 此参数在需要身份验证设置为是时显示。 此参数仅适用于 TLS 1.2。 |
凭据配置文件 (条件分析) | Kafka 集群 PKI 文件的名称(x509 证书)。 必须以 PKCS#12 格式存储此证书及其关联私钥,表示为具有 .p12 或 .pfx 扩展名的文件。 请输入文件名和扩展名。
注:此参数仅支持证书文件名称和扩展名。 证书的相对路径不应在此参数中指定。 使用凭据文件的已注册文件夹参数注册证书文件的完整路径。 此参数在需要身份验证设置为是时显示。 此参数仅适用于 TLS 1.2。 |
Keystore 密码 (条件分析) | Kafka 集群 PKI 文件的密码(x509 证书)。 也称为证书的私钥。 此参数在需要身份验证设置为是时显示。 此参数仅适用于 TLS 1.2。 |
SASL 身份验证类型 (条件分析) | 指定 Kafka 集群支持的 SASL 身份验证机制类型。 可用 SASL 身份验证类型包括 SASL GSSAPI (Kerberos) 和 SASL PLAIN。
此参数在需要身份验证设置为是时显示。 此参数仅适用于 SASL。 |
Kerberos 主体 (条件分析) | 特定用户的 kerberos 主体,例如 GeoEventKafkaClient1@example.com。 此参数在需要身份验证设置为是时显示。 此参数仅适用于 SASL/GSSAPI (Kerberos)。 |
使用密钥表 (条件分析) | 指示是否在 Kerberos 设置中使用密钥表。 默认为是。
此参数在需要身份验证设置为是时显示。 此参数仅适用于 SASL/GSSAPI (Kerberos)。 |
存储密钥 (条件分析) | 指示是否在 Kerberos 设置中存储密钥。 默认为是。
此参数在需要身份验证设置为是时显示。 此参数仅适用于 SASL/GSSAPI (Kerberos)。 |
用户名 (条件分析) | 指定用于使用 Kafka 集群进行身份验证的用户名。 也称为与某些云提供商的连接字符串。 有关正确的语法,请参阅所选云提供商的文档。 此参数在需要身份验证设置为是时显示。 此参数仅适用于 SASL/PLAIN。 |
密码 (条件分析) | 指定用于使用 Kafka 集群进行身份验证的密码。 有关正确的语法,请参阅所选云提供商的文档。 此参数在需要身份验证设置为是时显示。 此参数仅适用于 SASL/PLAIN。 |
注意事项和限制
使用“订阅 Kafka 主题以获取 JSON”输入连接器时,需要牢记几点注意事项:
- 对用户的管理和优化不足会导致“订阅 Kafka 主题以获取 JSON”输入连接器的某些实例无法检索数据。 用户组中的用户数量受到 Kafka 主题分区数量的限制。 如果用户组中的用户数量超过 Kafka 主题的可用分区数量,则超出的用户将无法使用数据。 为避免发生上述情况,需考虑对用户数量进行优化,使其最好与 Kafka 主题的分区数量保持一致,或者为每个连接器实施不同的用户组。 有关用户和用户组的详细信息,请参阅 Kafka 文档。
- “订阅 Kafka 主题以获取 JSON”输入连接器是 Kafka 的客户端用户。 此输入连接器适用的注意事项与 Kafka 的任何其他客户端用户的注意事项相同。 例如,如果此输入连接器未从 Kafka 主题接收数据,但是 Kafka 的独立客户端用户从中接收数据,则需考虑拥有两个客户端用户所涉及的因素。 这包括但不限于配置的用户组 ID、主题上可用的分区数量以及现有用户的数量。 或者,如果输入连接器快速连续地停止或启动,请从用户角度考虑对 Kafka 产生的影响。 重新平衡 Kafka 主题的分区可能会使输入连接器无法立即作为同一用户组下的用户重新加入。