12.3. 转换器处理器

转换器处理器 (PutGeoMesaConvertToGeoFile )接受以下配置参数以指定输入源:

属性

描述

SftName

要使用的类路径上的SFT的名称。此属性重写SftSpec。

SftSpec

SFT规范字符串。如果两者都设置,则由SftName重写。

FeatureNameOverride

在从SftName或SftSpec接收时覆盖功能类型名称。

ConverterName

要使用的类路径上的转换器的名称。此属性重写ConverterSpec。

ConverterSpec

转换器规范字符串。如果同时设置了这两个值,则由ConverterName重写。

ConverterErrorMode

覆盖转换器错误模式 (skip-bad-recordsraise-errors )

ConverterMetricReporters

覆盖转换器指标报告器(见下文)

ConvertFlowFileAttributes

向转换器框架公开按名称引用的流文件属性

ExtraClasspaths

要添加到类路径的其他资源,例如转换器和SFT定义

此外, PutGeoMesa 处理器接受其他配置:

属性

描述

InitializeSchemas

在处理器启动时初始化基础数据存储区中的架构。模式应以标准Java属性格式定义,以类型名称为键,以要素类型规范或查找为值

12.3.1. 定义简单要素类型和转换器

GeoMesa NiFi处理器打包了一组预定义的SimpleFeatureType模式定义和GeoMesa转换器定义,用于流行的数据源,如Twitter、GDELT和OpenStreetMaps。

提供的源代码的完整列表可在 预打包的转换器定义

对于自定义数据源,有两种提供自定义SFT和转换器的方法:

12.3.1.1. 在类路径上提供SimpleFeatureTypes和转换器

要将配置捆绑到JAR文件中,只需将您的配置放在一个名为 reference.conf 然后把它放在 at the root level JAR文件的名称:

$ jar cvf data-formats.jar reference.conf

您可以验证您的JAR是否构建正确:

$ jar tvf data-formats.jar
     0 Mon Mar 20 18:18:36 EDT 2017 META-INF/
    69 Mon Mar 20 18:18:36 EDT 2017 META-INF/MANIFEST.MF
 28473 Mon Mar 20 14:49:54 EDT 2017 reference.conf

使用 ExtraClasspaths 属性将处理器指向JAR文件。该属性接受逗号分隔的资源列表。设置完成后, SftName 和/或 ConverterName 属性将使用您的转换器的名称进行更新。您需要关闭配置面板并重新打开它,才能更新属性。

12.3.1.2. 通过UI定义SimpleFeatureTypes和转换器

您也可以通过NiFi用户界面在处理器配置中直接提供SimpleFeatureTypes和Converter。只需将您的TypeSafe配置粘贴到 SftSpecConverterSpec 属性字段。

12.3.1.3. 通过流文件属性定义SimpleFeatureTypes和转换器

您还可以使用流文件属性覆盖处理器配置字段。以下属性可用:

  • geomesa.sft.name corresponds to the Processor configuration FeatureNameOverride

  • geomesa.sft.spec corresponds to the Processor configuration SftSpec

  • geomesa.converter corresponds to the Processor configuration ConverterSpec

警告

应谨慎使用通过流文件属性进行的配置,因为任何错误的配置都可能成倍增加。例如,设置 geomesa.sft.name 设置为非递归值可能最终会为每个流文件创建一个新的架构,从而可能会因为创建太多的表而导致数据库崩溃。

12.3.2. 正在初始化架构

这个 InitializeSchemas 配置可用于在处理器启动时在基础数据存储中创建架构,而不必等待数据流经处理器。方案被定义为标准的Java属性文件,其中配置的每一行都应包含要素类型的名称作为键,类型的定义作为值,对应于 FeatureNameOverrideSftName / SftSpec (见上文)。例如::

gdelt=gdelt2
example-csv=example-csv
test=name:String,dtg:Date,*geom:Point:srid=436

12.3.3. 转换器指标

GeoMesa支持发布关于摄取转换过程的指标。看见 量度GeoMesa指标 了解更多细节。GeoMesa NiFi转换器处理器允许直接在NiFi中使用 ConverterMetricReporters 属性,而不是在转换器定义中。该属性需要定义记者或记者列表的TypeSafe配置块,例如:

{
  type     = "slf4j"
  units    = "milliseconds"
  interval = "60 seconds"
  logger   = "org.locationtech.geomesa.metrics"
  level    = "debug"
}