Skip to main content

ValidateRecord

描述:

根据给定的模板验证传入数据流的记录。符合模板的所有记录都被路由到“有效”连线,而不符合模板的记录被路由到“无效”连线。因此,如果某些记录根据模板有效,而其他记录无效,则可以将单个传入的数据流拆分为两个单独的数据流。路由到“无效”连线的任何数据流都将发出一个路由来源事件,其中填充了Details字段,以解释记录无效的原因。此外,为了进一步解释记录无效的原因,可以为“org.apache.nifi.processors.standard.ValidateRecord”记录器启用调试级日志记录。

标签:

record, schema, validate, 记录, 模板, 验证

参数:

如下列表中,必填参数则标识为加粗. 其他未加粗参数,则表示为可选参数。表中同时提到参数默认值设置, 并且 参数还支持 表达式语言.

名字默认值允许值列表描述
记录读取服务控制器服务API:
RecordReaderFactory
实现:
ParquetReader
GrokReader
SyslogReader
Syslog5424Reader
CSVReader
AvroReader
JsonPathReader
JsonTreeReader
ScriptedReader
XMLReader
指定用于读取传入数据的控制器服务。
记录输出服务控制器服务API:
RecordSetWriterFactory
实现:
CSVRecordSetWriter
FreeFormTextRecordSetWriter
AvroRecordSetWriter
JsonRecordSetWriter
XMLRecordSetWriter
ParquetRecordSetWriter
ScriptedRecordSetWriter
指定用于写出记录的控制器服务。
无效记录的记录编写器控制器服务API:
RecordSetWriterFactory
实现:
CSVRecordSetWriter
FreeFormTextRecordSetWriter
AvroRecordSetWriter
JsonRecordSetWriter
XMLRecordSetWriter
ParquetRecordSetWriter
ScriptedRecordSetWriter
如果指定,此控制器服务将用于写出任何无效的记录。如果未指定,将使用“记录读取器”属性指定的编写器。例如,当配置的记录编写器无法写入不符合其架构的数据(如Avro的情况)时,或者希望在将有效记录转换为其他格式的同时保留原始格式的无效记录时,这是很有用的。
模式访问策略使用“读”模板
- 使用“读”模板要验证数据的模板是通过轮询配置的记录读取器的模板来确定的。
- 使用模板名称属性验证数据所依据的模板是通过查看“模板名称”属性并在配置的模板注册表中查找模板来确定的。
- 使用模板文本属性验证数据所依据的模板是通过查看“模板文本”属性并将该模板解析为Avro模式来确定的。
定义如何获取应用于验证记录的模板。
模板注册表控制器服务API:
SchemaRegistry
实现:
AvroSchemaRegistry
ConfluentSchemaRegistry
HortonworksSchemaRegistry
指定要用于模板注册表的控制器服务。只有当模板访问策略设置为“使用‘模板名称’属性”时,才生效的。
模板名称${schema.name}指定要在模板注册表属性中查找的模板的名称。

支持表达式语言 (支持流属性和变量)
模板文本${avro.schema}Avro格式模板的文本

支持表达式语言 (支持流属性和变量)
允许额外字段允许
- 允许
- 不允许
如果传入数据具有模板中不存在的字段,则此属性将确定记录是否有效。如果为true,则记录仍然有效。如果为false,则由于额外的字段,该记录将无效。
严格类型检查
- 是
- 否
如果传入数据具有字段类型不正确的记录,则此属性确定是否处理该记录。如果为true,则该记录仍将被视为无效。如果为false,则该记录将被认为是有效的,并且该字段将被强制为正确的类型(如果可能,则根据 '记录编写器' 支持的类型强制)。

连线:

名字描述
valid根据模板有效的记录将被路由到此连线
invalid根据模板无效的记录将被路由到此连线
failure如果由于任何原因无法读取、验证或写入记录,则原始流文件将被路由到此连线

读取属性:

未提供。

写入属性:

名字描述
mime.type将mime.type属性设置为记录编写器指定的MIME类型
record.count流文件的路由记录的次数

状态管理:

该组件不保存状态。

限制:

该组件没有限制

输入流要求:

组件必须提供输入流。

系统资源考量:

未提供。