MergeContent 2025.5.31.15

捆绑包

org.apache.nifi | nifi-standard-nar

描述

根据用户定义的策略将一组 FlowFiles 合并在一起,并将它们打包成一个 FlowFile。建议将该处理器配置为仅接收单一传入连接,因为系统不会将来自不同连接的 FlowFiles 组合成 FlowFiles 组。该处理器会适时更新 mime.type 属性。NOTE:在配置调度策略时,NOT 为此处理器选择 Cron Driven。

标签

archive、concatenation、content、correlation、flowfile-stream、flowfile-stream-v3、merge、stream、tar、zip

输入要求

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。

另请参阅

语言: 中文