12.2. 处理机¶
GeoMesa NiFi提供多个处理器:
处理机 |
描述 |
---|---|
|
使用GeoMesa转换器将数据提取到GeoMesa数据存储中 |
|
使用NiFi记录API将数据摄取到GeoMesa数据存储中 |
|
将GeoAvro文件摄取到GeoMesa数据存储 |
|
使用NiFi记录API更新GeoMesa数据存储中的现有记录 |
|
阅读GeoMesa Kafka消息并将其作为NiFi记录输出 |
|
使用GeoMesa转换器以各种启用几何的格式创建文件 |
每个处理器(除 ConvertToGeoFile
)需要配置一个 DataStoreService
,它将连接到GeoMesa后端数据源(例如,HBase或Kafka)。看见 数据存储服务 对于可用的服务。
12.2.1. 记录、转换器和AVRO¶
GeoMesa提供了三种不同的摄取处理器。它们都写入相同的数据存储,但将输入数据转换为GeoTool的方式有所不同 SimpleFeatures
(这是摄取所必需的)。
这个 PutGeoMesa
处理器使用 GeoMesa转换器 要定义的框架 SimpleFeatureTypes
以及从输入文件到 SimpleFeatures
。转换器可以在GeoMesa命令行工具和其他非NiFi项目中重复使用。看见 转换器处理器 了解更多细节。
这个 PutGeoMesaRecord
处理器使用NiFi记录API来定义使用NiFi的输入模式 RecordReader
。穿过 RecordReaders
, SimpleFeatureTypes
可以在集中式架构注册表中进行管理。同样,在将记录传递到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. 常见配置¶
所有类型的输入处理器都有一些用于控制数据存储写入的通用配置参数:
属性 |
描述 |
---|---|
|
用于管理正在使用的GeoMesa数据存储的控制器服务 |
|
使用附加编写器(用于新功能)或修改编写器(以更新现有功能) |
|
使用修改编写器时,用于唯一标识要素的属性。如果未指定,将使用要素ID |
|
控制如何处理数据存储中配置的模式和现有模式(如果有)之间的差异。
|
|
启用流文件之间的要素编写器缓存,这在流文件具有少量记录时非常有用(见下文) |
|
如果启用了缓存,要素编写器刷新到数据存储的频率 |
12.2.2.1. 要素编写器缓存¶
功能编写器缓存可用于提高处理许多小流量文件的吞吐量。不是为每个流文件创建新的特征编写器,而是缓存编写器并在操作之间重复使用。如果写入器在配置的超时时间内处于空闲状态,则它将被刷新到数据存储并关闭。
请注意,如果启用要素编写器缓存,则处理的要素可能不会立即显示在数据存储中。此外,如果NiFi意外关闭,任何已处理但未刷新的功能都可能丢失。要确保正确刷新数据,请在关闭NiFi之前停止处理器。
或者,NiFi的内置 MergeContent
处理器可用于批量处理小文件。