You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Apache NiFi中按文件名前缀分组合并同组文件内容

Apache NiFi 同组文件合并最优实现方案

核心思路

提取文件名前两部分作为分组标识,将同组文件聚合后合并内容,最终输出合并后的文件。

组件流程配置

  • GetFile
    配置文件读取路径,设置文件过滤规则(如*.txt),确保只读取目标文件。

  • UpdateAttribute
    添加自定义属性group_key,使用NiFi表达式语言提取文件名前两部分:

    ${filename:getDelimitedField(1, '_')}_${filename:getDelimitedField(2, '_')}
    

    示例:对12_345_hdr1.txt,会生成12_345作为分组键。

  • MergeContent(核心组件)
    关键配置项:

    • Correlation Attribute Name:设置为group_key,确保同组文件被归为同一批次
    • Merge Strategy:选择Defragment,保证同组所有文件聚合完成后再合并
    • Merge Format:选择Concatenate,直接将后续文件内容追加到第一个文件末尾
    • Minimum Number of Entries:设为2(匹配示例中每组2个文件的场景);若组数不固定,可结合Maximum Bin Age(如10秒)触发合并,避免无限等待
    • Delimiter Strategy:按需选择,若需在文件内容间加分隔符选Text并设置分隔符(如换行),无需则选None
  • PutFile
    配置目标输出路径,设置合并后的文件名格式:

    ${group_key}_merged.txt
    

    示例:合并后的文件名为12_345_merged.txt、34_123_merged.txt

调试与优化

  • 可在UpdateAttribute后添加LogAttribute组件,查看group_key是否正确生成,便于调试分组逻辑
  • 若文件名格式有变动,需同步调整UpdateAttribute中的表达式,确保分组键准确

内容的提问来源于stack exchange,提问作者Amarnatha Reddy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 04:26:06