如何使用Informatica将多行以~结尾的文本合并为单行并输出到txt文件
Informatica合并多行带~后缀文本为单行的实现步骤
- 步骤1:配置源文件读取
源端选择Flat File类型,关联你的.txt输入文件,仅设置1个字符串类型的字段row_content,字段长度设置为大于单行最大内容长度即可,源文件行分隔符保持默认的换行符,无需修改。 - 步骤2:新增Expression转换做字符串累加
将源端的row_content接入Expression转换,在转换内创建2个端口:- 变量端口
v_merge_content,字符串类型,长度预留为大于整个文件的总字符数,表达式填写:v_merge_content || row_content - 输出端口
o_temp_merge,字符串类型,表达式填写:v_merge_content
- 变量端口
- 步骤3:新增Aggregator转换取全量合并结果
将Expression的输出接入Aggregator转换,无需设置分组键,直接创建输出端口o_final_content,表达式填写:MAX(o_temp_merge)。因为逐行累加的字符串长度逐行递增,最大值即为全量拼接后的完整内容。 - 步骤4:配置目标文件输出
目标端选择Flat File类型,仅设置1个和o_final_content长度一致的字符串字段,重点修改目标文件属性:将行分隔符设置为空,避免输出时自动追加换行符,最终输出的.txt文件即为合并后的单行内容。
补充优化建议:
如果业务中的输入文件体积过大,超过Informatica字符串端口的最大长度限制,可以先通过操作系统命令预处理合并,Linux环境下执行tr -d '\n' < 输入文件路径 > 输出文件路径即可直接得到合并结果,比全流程走Informatica性能更高。
内容的提问来源于stack exchange,提问作者Alex
相关产品推荐
相关产品推荐

