MergeContent
将一组数据流根据用户定义的策略合并在一起,多用于合并JSON对象为JSON数组,对JSON对象格式不作严格要求
参数说明
合并策略
指定合并数据流内容的算法。
合并格式
指定将用于合并内容的格式。
属性策略
指定保留到新的数据流的属性。
最小条目数
指定需要合并的最小数据流数量,如设置为2,则需要数据流数量达到2才会进行合并;若达不到则组件会一直等待
最大条目数
指定需要合并的最大数据流数量,如设置为10,则需要数据流数量大于或等于10才会进行合并;若达不到则组件会一直等待,若大于10则将10条数据流合并为1个,10-到20的部分合并为下一个,以此类推
最小合并结果大小
指定合并后数据流最小大小
最大合并结果大小
指定合并后数据流的最大大小
分隔符策略
- 文件名:从指定文件中读取合并的页眉、页脚和分界符
- 文本:从组件属性配置中读取页眉、页脚和分界符
页眉
指定作为页眉的文本内容或者文件名,例如合并JSON对象为JSON数组时,页眉为" [ "。
页脚
指定作为页脚的文本内容或者文件名,例如合并JSON对象为JSON数组时,页脚为" ] "。
分界符
指定作为分界符的文本内容或者文件名,例如合并JSON对象为JSON数组时,分界符为","。
压缩级别
指定对合并后数据流的压缩级别,若不使用Zip格式合并数据流时,忽略此组件属性
保留路径
使用Zip格式合并时保存文件的路径
Tar修改时间
使用tar格式合并时,指定是否在包中包含时间
输出连线
- failure连线表示合并失败的数据流输出
- merged连线表示合并成功的数据流输出
- original连线表示合并成功后原始的数据流输出
示例
Generate配置
由GenerateFlowfile生成触发流程的流文件,该组件生成的流文件内容为空,然后通过两个ReplaceText组件来替换流文件内容,两个替换的流文件内容为如下JSON对象:
ReplaceText组件1的替换内容:
{
"sname":"jack",
"id":"00001",
"state":"NY"
ReplaceText组件2的替换内容:
{
"sname":"marry",
"id":"00002"
}
流程说明
在此流程中合并的两个JSON对象格式是不一样的,因为MergeContent不严格要求合并数据流的格式,为了凸显这一特性,特意设定为两个格式不一致的JSON对象
MergeContent设置
以合并JSON对象为例,设置了合并策略
为Bin-Packing,合并格式
为二进制连接,元数据策略
为不合并非常见的元数据,最小条目数和最大条目数
都为2,分隔符策略
为文本,页眉
为'[',页脚
为']',分界符
为',',其余属性保持默认配置。
结果
最后输出结果如下:
- merged连线输出结果
- original连线输出结果
流程模板
参见附件(请右键另存保存):模板文件