使用JOLT转换动态拼接primary_keys对应字段值为字符串
JOLT动态拼接主键字段实现方案
完整JOLT转换规范
[ { "operation": "shift", "spec": { // 保留所有原始根字段 "*": "&", "primary_keys": { // 遍历primary_keys数组的每一项 "*": { // 以数组项的值为键,从根节点拉取对应字段值,存入临时数组 "@(2,&)": "pkValues[]" } } } }, { "operation": "modify-overwrite-beta", "spec": { // 用|拼接临时数组的值生成PK字段 "PK": "=join('|',@(1,pkValues))" } }, { "operation": "remove", "spec": { // 删除临时生成的中间数组 "pkValues": "" // 如果不需要保留原始primary_keys字段,可新增一行 "primary_keys": "" } } ]
功能说明
- 支持动态读取
primary_keys数组内的字段配置,无需硬编码主键字段名,适配不同FlowFile的差异化主键配置 - 自动保留所有原始字段,无需额外配置字段映射
- 自动处理不同类型的字段值(字符串、数字等),统一转为字符串后用
|拼接
转换效果验证
以你提供的输入JSON为例,执行上述规范后输出结果完全匹配预期:
{ "primary_keys": [ "ITEM", "LOC", "COMP_ID" ], "ITEM": "ID158", "LOC": 41, "COMP_ID": "BPF", "VALUE": 0.78, "PK": "ID158|41|BPF" }
内容的提问来源于stack exchange,提问作者dimtry128
相关产品推荐
相关产品推荐

