MergeContent 2025.5.31.15¶
捆绑包¶
org.apache.nifi | nifi-standard-nar
描述¶
根据用户定义的策略将一组 FlowFiles 合并在一起,并将它们打包成一个 FlowFile。建议将该处理器配置为仅接收单一传入连接,因为系统不会将来自不同连接的 FlowFiles 组合成 FlowFiles 组。该处理器会适时更新 mime.type 属性。NOTE:在配置调度策略时,NOT 为此处理器选择 Cron Driven。
输入要求¶
REQUIRED
支持敏感的动态属性¶
false
属性¶
属性 |
描述 |
---|---|
属性策略 |
确定应将哪些 FlowFile 属性添加到捆绑包中。如果选择“Keep All Unique Attributes”,则捆绑的任何 FlowFile 上的所有属性都将保留,除非其值与其他 FlowFile 的值冲突。如果选择“Keep Only Common Attributes”,则只会保留捆绑包中所有 FlowFiles 上存在且值相同的属性。 |
数据箱终止检查 |
指定针对每个 FlowFile 进行评估的表达式语言表达式。如果表达式的结果为“true”,则无论数据箱是否已达到最小条目数或最小容量,FlowFile 对应的数据箱都将终止。请注意:如果触发数据箱终止的 FlowFile 本身超过最大箱容,则该文件将被单独存入独立箱中,且不会触发其他任何数据箱的终止操作。使用此属性时,建议在流的连接中使用优先级排序器,以确保按需要进行排序。 |
压缩级别 |
指定使用 Zip 合并格式时要使用的压缩级别;如果不使用 Zip 合并格式,则忽略此值 |
关联属性名称 |
如果指定该属性,则 like FlowFiles 将归入一个数据箱,其中“like FlowFiles”是指对该属性具有相同值的 FlowFiles。如果未指定该属性,则 FlowFiles 按从队列中提取的顺序进行捆绑。 |
分隔符策略 |
用于确定 Header、Footer 和 Demarcator 应指向包含相应内容的文件,还是直接将这些属性的值作为内容使用。 |
分隔符文件 |
指定要使用的分隔符的文件名或文本。如果未指定该属性,则不提供分隔符。 |
FlowFile 插入策略 |
如果给定的 FlowFile 根据 <Bin Termination Check> 属性终止数据箱,则指定 FlowFile 在数据箱中的位置。 |
页脚文件 |
指定要使用的页脚的文件名或文本。如果未指定该属性,则不提供页脚。 |
页眉文件 |
指定要使用的页眉的文件名或文本。如果未指定该属性,则不提供页眉。 |
保持路径 |
如果使用 Zip 或 Tar 合并格式,请指定 FlowFiles 路径是否应包含在其条目名称中。 |
数据箱使用年限上限 |
将触发数据箱完成的最大数据箱使用年限。预期格式为 <duration> <time unit>,其中 <duration> 为正整数,并且时间单位为秒、分钟、小时 |
组大小上限 |
捆绑包的容量上限。如果未指定,则没有上限。 |
条目数上限 |
捆绑包中包含的文件数上限 |
数据箱数上限 |
指定一次可在内存中保存的数据箱数量上限 |
合并格式 |
确定用于合并内容的格式。 |
合并策略 |
指定用于合并内容的算法。“碎片整理”算法会将通过属性关联的多个片段重新合并为一个完整的 FlowFile 文件。“装箱算法”会生成一个由随机选取的 FlowFiles 填充的新 FlowFile。 |
组大小下限 |
捆绑包的容量下限。 |
条目数下限 |
捆绑包中包含的文件数下限 |
Tar 修改时间 |
如果使用 Tar 合并格式,则指定 Tar 条目是否应通过表达式(如 ${file.lastModifiedTime})或静态值来存储修改的时间戳,且两者都必须符合 ISO8601 格式“yyyy-MM-dd'T'HH:mm:ssZ”。 |
mergecontent-metadata-strategy |
对于输入格式支持元数据(例如 Avro)的 FlowFiles,此属性决定应将哪些元数据添加到捆绑包中。如果选择“Use First Metadata”,则将使用第一个捆绑的 FlowFile 的元数据键/值。如果选择“Keep Only Common Metadata”,则只会保留捆绑包中所有 FlowFiles 上存在且具有相同值的元数据。如果选择“Ignore Metadata”,则不会将任何元数据传输到传出捆绑的 FlowFile。如果选择“Do Not Merge Uncommon Metadata”,则不会合并元数据值与第一个捆绑 FlowFile 的元数据不匹配的任何 FlowFile。 |
关系¶
名称 |
描述 |
---|---|
failure |
如果无法创建捆绑包,则用于创建捆绑包的所有 FlowFiles 都将转移到“failure” |
merged |
包含合并内容的 FlowFile |
original |
用来创建捆绑包的 FlowFiles |
写入属性¶
名称 |
描述 |
---|---|
filename |
当合并多个文件时,文件名来自 segment.original.filename 属性。如果源 FlowFiles 中不存在该属性,则将文件名设置为与系统时间相匹配的纳秒数。随后,可为文件名添加扩展名:如果合并格式为 TAR,则文件名将追加 .tar;如果合并格式为 ZIP,则文件名将追加 .zip;如果合并格式为 FlowFileStream,则文件名将追加 .pkg |
merge.count |
合并到此捆绑包的 FlowFiles 数量 |
merge.bin.age |
数据箱在被合并输出时的存在时长,以毫秒为单位。实际上,这是该捆绑包中所有 FlowFile 在该处理器中等待输出的最长时间 |
merge.uuid |
合并后的 FlowFile UUID 将添加到原始 FlowFile 属性中。 |
merge.reason |
该处理器允许为合并 FlowFiles 配置多个阈值。此属性表示哪些阈值导致 FlowFiles 被合并。有关每个可能值及其含义的解释,请参阅处理器的用法/文档,并参阅“其他详细信息”页面。 |
用例¶
合并文本内容的 FlowFiles,以生成数量更少、容量更大的 FlowFiles。 |
合并二进制内容的 FlowFiles,以生成数量更少、容量更大的 FlowFiles。 |
重组被 SplitText、UnpackContext 或 SplitRecord 等处理器拆分为多个小 FlowFiles 的原始 FlowFile。 |