如何在NiFi的Jolt转换中按条件添加新键值对
Jolt转换实现
转换规则
- 数据含
Environment字段时,添加numid字段,值为"1" - 数据含
CostCenter字段时,添加numid字段,值为"2"
输入数据
[ { "Environment": "net", "BillingProfileId": 863, "ms-resource-usage": "azure-cloud-shell" }, { "CostCenter": "check", "BillingAccountName": "HCL Technologies Ltd.", "ServiceFamily": "Compute" } ]
期望输出
[ { "Environment": "net", "numid": "1", "BillingProfileId": 863, "ms-resource-usage": "azure-cloud-shell" }, { "CostCenter": "check", "numid" : "2", "BillingAccountName": "HCL Technologies Ltd.", "ServiceFamily": "Compute" } ]
实现的Jolt规范
[ { "operation": "shift", "spec": { "*": { // 保留所有原始字段 "@": "[&1]", // 匹配Environment字段时设置numid为1 "Environment": { "@(0)": "[&2].Environment", "#1": "[&2].numid" }, // 匹配CostCenter字段时设置numid为2 "CostCenter": { "@(0)": "[&2].CostCenter", "#2": "[&2].numid" } } } }, { "operation": "default", "spec": { "*": {} } } ]
规范说明
shift操作核心完成两项工作:保留所有原有字段,同时匹配Environment或CostCenter字段时,添加对应值的numid字段;default操作用于兼容其他未匹配规则的数据对象,确保其结构不受影响。
内容的提问来源于stack exchange,提问作者Sathish
相关产品推荐
相关产品推荐

