MergeRecord
描述:
此组件将多个面向记录的数据流合并到一个数据流中,输出数据流将包含所有输入数据流的所有记录。 此组件的工作原理是创建“bins”,然后将FlowFiles添加到这些bins中,直到它们满了。 一旦bin已满,所有数据流将合并为一个数据流并输出到'merged'连线。 bin将包含许多'like FlowFiles'。 为了使两个FlowFiles被视为“like FlowFiles”,它们必须具有相同的Schema(由Record Reader标识),如果设置了<Correlation Attribute Name>
属性,则相同值视为“like FlowFiles”。 有关更多信息,请参阅组件使用
标签:
merge, record, content, correlation, stream, event, 合并, 记录
参数:
如下列表中,必填参数则标识为加粗. 其他未加粗参数,则表示为可选参数。表中同时提到参数默认值设置.
名字 | 默认值 | 允许值列表 | 描述 |
---|---|---|---|
读取服务 | 控制器服务API: RecordReaderFactory 实现: ParquetReader GrokReader SyslogReader Syslog5424Reader CSVReader AvroReader JsonPathReader JsonTreeReader ScriptedReader XMLReader | 指定用于读取传入数据的服务 | |
写入服务 | 控制器服务API: RecordSetWriterFactory 实现: CSVRecordSetWriter FreeFormTextRecordSetWriter AvroRecordSetWriter JsonRecordSetWriter XMLRecordSetWriter ParquetRecordSetWriter ScriptedRecordSetWriter | 指定用于写出记录的服务 | |
合并策略 | Bin-Packing算法 | - Bin-Packing算法 - Defragment算法 | 指定用于合并记录的算法。 “Defragment”算法将属性关联的片段组合回一个内聚的FlowFile。 'Bin-Packing Algorithm'生成由任意选择的FlowFiles填充的FlowFile |
关联属性名 | 如果指定,则只有两个数据流具有属性相同值时才会将它们合并在一起。 如果未指定,数据流将按从队列中提取的顺序进行合并。 | ||
属性策略 | 仅保留通用属性 | - 仅保留通用属性 - 保留所有属性 | 确定应将哪些数据流的属性添加到数据流中。 如果选择“保留所有属性”,则将保留任何数据流上的任何属性,除非其值与另一个数据流的值冲突。 如果选择“仅保留通用属性”,则仅保留包中具有相同值的所有数据流中存在的属性。 |
最小记录数 | 1 | 最小记录数 | |
最大记录数 | 1000 | 最大记录数。 如果不设置,则没有限制,这是一个“软限制”,如果数据流被合并,数据流中的记录将全部合并,这个限制可能会超过最后一个输入数据流的记录数。 | |
最小的记录大小 | 0 B | 记录的最小值 | |
最大的记录大小 | 记录的最大值。 如果未指定,则没有最大值。 这是一个“软限制”,如果数据流被合并,数据流中的记录将全部合并,这个限制可能会超过最后一个输入数据流的字节数。 | ||
记录最大生命周期 | 记录最大生命周期。 预期格式为<时间数> <时间单位>,其中<时间数>为正整数,时间单位为秒(s),分(m),小时(h)之一 | ||
记录的最大数量 | 10 | 指定任何时候可以在内存中保留的最大记录数。 此数字不应小于此处组件的最大并发线程数,否则将频繁为每个数据流创建输出。 |
连线:
名字 | 描述 |
---|---|
failure | 如果无法合并记录,那么用于创建记录的所有数据流都将输出到此连线 |
original | 用于创建记录的原始输入数据流 |
merged | 成功合并输入数据流后的输出连线 |
读取属性:
名字 | 描述 |
---|---|
fragment.identifier | 仅在<合并>属性设置为Defragment时适用。 具有此属性相同值的所有数据流将捆绑在一起。 |
fragment.count | 仅在<合并策略>属性设置为Defragment时适用。 此属性必须存在于所有数据流上,并且具有与fragment.identifier属性相同的值。 同一捆绑包中的所有数据流必须具有此属性的相同值。 此属性的值指示给定包中应该预期的数据流数。 |
写入属性:
名字 | 描述 |
---|---|
record.count | 合并的数据流将具有'record.count'属性,指示写入数据流的记录数。 |
mime.type | 写服务指定的MIME类型 |
merge.count | 合并到此记录中的数据流数 |
merge.bin.age | 合并和输出时记录的生命周期(以毫秒为单位)。 实际上,这是此记录中的任何数据流在输出之前在此处理器中等待的最长时间 |
merge.uuid | 合并数据流的UUID属性将被添加到原始数据流 |
<Attributes from Record Writer> | Any Attribute that the configured Record Writer returns will be added to the FlowFile. |
状态管理:
该组件不保存状态。
限制:
该组件没有限制
输入流要求:
组件必须提供输入流。
系统资源考量:
未提供。