geoIpEnrich 处理器 NiFi
geoIpEnrich Processor NiFi
我正在尝试将 geoEnrichIP 处理器用作 nifi 流程的一部分。我正在尝试按照文档 https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi/nifi-enrich-nar/1.6.0/org.apache.nifi.processors.GeoEnrichIP/ 进行操作,但不幸的是。
我正在尝试在 convertRecord 处理器的末尾附加 geoEnrichIP 处理器。
ConvertRecord(Json) ---> geoEnrichIP
在 geoEnrichIP 的配置中,我为 ip 地址字段添加了一个属性。该字段是 Enrich: host_address
但我的输出中没有任何内容。我认为我没有引用包含 IP 地址的字段 host_address
。
如何正确引用 host_address
的 IP 地址名称以丰富地理位置数据?
谢谢
对于GeoEnrichIP,您要丰富的字段必须是 FlowFile 的属性,而不是 FlowFile 内容的一部分(例如在记录中)。
IP Address Attribute
属性 必须包含属性的名称。
如果 IP 在 FlowFile 内容中,您需要提取 IP 并将值放入属性中。
有几种方法可以做到这一点,具体取决于您的用例 - 但还有一种替代方法。
- 如果每个FlowFile只包含一个SINGLE Record,那么你可以使用
EvaluateJsonPath
提取 IP 并创建属性。
- 如果每个 FlowFile 包含多个记录,具有完全随机的 IP 地址,您可以使用
SplitJson
创建唯一的 FlowFiles 然后 EvaluateJsonPath
(这通常是要避免的模式!)
- 如果每个 FlowFile 包含多个记录,但 IP 是一组较小的通用 IP 地址中的一个,那么您可以使用
PartitionRecord
将记录存储到具有通用 IP 属性的 FlowFiles 中。
但是,您可以使用LookupRecord with an IPLookupService,而不是使用GeoEnrichIP
。通过这种方式,您可以处理每个 FlowFile 的单个或多个记录,并且您不需要处理属性,而是依赖记录本身中的数据。这处理了上面列出的所有 3 种情况。
我写了一篇关于使用 LookupRecord 的 post here 如果您需要有关如何使用它的更多详细信息,它是用于丰富工作流程的非常强大的处理器。
我正在尝试将 geoEnrichIP 处理器用作 nifi 流程的一部分。我正在尝试按照文档 https://nifi.apache.org/docs/nifi-docs/components/org.apache.nifi/nifi-enrich-nar/1.6.0/org.apache.nifi.processors.GeoEnrichIP/ 进行操作,但不幸的是。
我正在尝试在 convertRecord 处理器的末尾附加 geoEnrichIP 处理器。
ConvertRecord(Json) ---> geoEnrichIP
在 geoEnrichIP 的配置中,我为 ip 地址字段添加了一个属性。该字段是 Enrich: host_address
但我的输出中没有任何内容。我认为我没有引用包含 IP 地址的字段 host_address
。
如何正确引用 host_address
的 IP 地址名称以丰富地理位置数据?
谢谢
对于GeoEnrichIP,您要丰富的字段必须是 FlowFile 的属性,而不是 FlowFile 内容的一部分(例如在记录中)。
IP Address Attribute
属性 必须包含属性的名称。
如果 IP 在 FlowFile 内容中,您需要提取 IP 并将值放入属性中。
有几种方法可以做到这一点,具体取决于您的用例 - 但还有一种替代方法。
- 如果每个FlowFile只包含一个SINGLE Record,那么你可以使用
EvaluateJsonPath
提取 IP 并创建属性。 - 如果每个 FlowFile 包含多个记录,具有完全随机的 IP 地址,您可以使用
SplitJson
创建唯一的 FlowFiles 然后EvaluateJsonPath
(这通常是要避免的模式!) - 如果每个 FlowFile 包含多个记录,但 IP 是一组较小的通用 IP 地址中的一个,那么您可以使用
PartitionRecord
将记录存储到具有通用 IP 属性的 FlowFiles 中。
但是,您可以使用LookupRecord with an IPLookupService,而不是使用GeoEnrichIP
。通过这种方式,您可以处理每个 FlowFile 的单个或多个记录,并且您不需要处理属性,而是依赖记录本身中的数据。这处理了上面列出的所有 3 种情况。
我写了一篇关于使用 LookupRecord 的 post here 如果您需要有关如何使用它的更多详细信息,它是用于丰富工作流程的非常强大的处理器。