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的情况)时,或者希望在将有效记录转换为其他格式的同时保留原始格式的无效记录时,这是很有用的。 | |
模式访问策略 | 使用“读”模板 | - 使用“读”模板 - 使用模板名称属性 - 使用模板文本属性 | 定义如何获取应用于验证记录的模板。 |
模板注册表 | 控制器服务API: SchemaRegistry 实现: AvroSchemaRegistry ConfluentSchemaRegistry HortonworksSchemaRegistry | 指定要用于模板注册表的控制器服务。只有当模板访问策略设置为“使用‘模板名称’属性”时,才生效的。 | |
模板名称 | ${schema.name} | 指定要在模板注册表属性中查找的模板的名称。 支持表达式语言 (支持流属性和变量) | |
模板文本 | ${avro.schema} | Avro格式模板的文本 支持表达式语言 (支持流属性和变量) | |
允许额外字段 | 允许 | - 允许 - 不允许 | 如果传入数据具有模板中不存在的字段,则此属性将确定记录是否有效。如果为true,则记录仍然有效。如果为false,则由于额外的字段,该记录将无效。 |
严格类型检查 | 是 | - 是 - 否 | 如果传入数据具有字段类型不正确的记录,则此属性确定是否处理该记录。如果为true,则该记录仍将被视为无效。如果为false,则该记录将被认为是有效的,并且该字段将被强制为正确的类型(如果可能,则根据 '记录编写器' 支持的类型强制)。 |
连线:
名字 | 描述 |
---|---|
valid | 根据模板有效的记录将被路由到此连线 |
invalid | 根据模板无效的记录将被路由到此连线 |
failure | 如果由于任何原因无法读取、验证或写入记录,则原始流文件将被路由到此连线 |
读取属性:
未提供。
写入属性:
名字 | 描述 |
---|---|
mime.type | 将mime.type属性设置为记录编写器指定的MIME类型 |
record.count | 流文件的路由记录的次数 |
状态管理:
该组件不保存状态。
限制:
该组件没有限制
输入流要求:
组件必须提供输入流。
系统资源考量:
未提供。