12.2. 处理机

GeoMesa NiFi提供多个处理器:

处理机

描述

PutGeoMesa

使用GeoMesa转换器将数据提取到GeoMesa数据存储中

PutGeoMesaRecord

使用NiFi记录API将数据摄取到GeoMesa数据存储中

AvroToPutGeoMesa

将GeoAvro文件摄取到GeoMesa数据存储

UpdateGeoMesaRecord

使用NiFi记录API更新GeoMesa数据存储中的现有记录

GetGeoMesaKafkaRecord

阅读GeoMesa Kafka消息并将其作为NiFi记录输出

ConvertToGeoFile

使用GeoMesa转换器以各种启用几何的格式创建文件

每个处理器(除 ConvertToGeoFile )需要配置一个 DataStoreService ,它将连接到GeoMesa后端数据源(例如,HBase或Kafka)。看见 数据存储服务 对于可用的服务。

12.2.1. 记录、转换器和AVRO

GeoMesa提供了三种不同的摄取处理器。它们都写入相同的数据存储,但将输入数据转换为GeoTool的方式有所不同 SimpleFeatures (这是摄取所必需的)。

这个 PutGeoMesa 处理器使用 GeoMesa转换器 要定义的框架 SimpleFeatureTypes 以及从输入文件到 SimpleFeatures 。转换器可以在GeoMesa命令行工具和其他非NiFi项目中重复使用。看见 转换器处理器 了解更多细节。

这个 PutGeoMesaRecord 处理器使用NiFi记录API来定义使用NiFi的输入模式 RecordReader 。穿过 RecordReadersSimpleFeatureTypes 可以在集中式架构注册表中进行管理。同样,在将记录传递到GeoMesa处理器之前,可以使用标准的NiFi处理器来处理记录。标准NiFi API的使用大大减少了特定于GeoMesa的配置量。看见 唱片处理机 了解更多细节。

最后, AvroToPutGeoMesa 处理器将在没有任何配置的情况下摄取特定于GeoMesa的GeoAvro文件。GeoAvro是一个特殊的Avro文件,具有 SimpleFeatureType 包括元数据。可使用中的GeoMesa命令行工具导出来生成 avro 格式,则 ConvertToGeoFile 处理器, GeoAvroRecordSetWriterFactory 记录写入器工厂,或直接通过 org.locationtech.geomesa.features.avro.io.AvroDataFileWriter 。GeoAvro特别有用,因为它是自我描述的。看见 AVRO处理器 了解更多细节。

12.2.2. 常见配置

所有类型的输入处理器都有一些用于控制数据存储写入的通用配置参数:

属性

描述

DataStore Service

用于管理正在使用的GeoMesa数据存储的控制器服务

Write Mode

使用附加编写器(用于新功能)或修改编写器(以更新现有功能)

Identifying Attribute

使用修改编写器时,用于唯一标识要素的属性。如果未指定,将使用要素ID

Schema Compatibility

控制如何处理数据存储中配置的模式和现有模式(如果有)之间的差异。

  • Existing 将使用现有架构并删除配置的架构中的任何其他字段。

  • Update 将更新现有架构以匹配配置的架构。

  • Exact 要求配置的架构与现有架构匹配。

FeatureWriterCaching

启用流文件之间的要素编写器缓存,这在流文件具有少量记录时非常有用(见下文)

FeatureWriterCacheTimeout

如果启用了缓存,要素编写器刷新到数据存储的频率

12.2.2.1. 要素编写器缓存

功能编写器缓存可用于提高处理许多小流量文件的吞吐量。不是为每个流文件创建新的特征编写器,而是缓存编写器并在操作之间重复使用。如果写入器在配置的超时时间内处于空闲状态,则它将被刷新到数据存储并关闭。

请注意,如果启用要素编写器缓存,则处理的要素可能不会立即显示在数据存储中。此外,如果NiFi意外关闭,任何已处理但未刷新的功能都可能丢失。要确保正确刷新数据,请在关闭NiFi之前停止处理器。

或者,NiFi的内置 MergeContent 处理器可用于批量处理小文件。