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

如何在NiFi中实现动态属性命名?及Jolt Spec实现方式

动态设置属性名称的实现方案

需求可行性

你的需求完全可以实现,但UpdateAttribute处理器不支持用表达式语言(EL)动态定义属性名称,它会将${property1}直接当作字面量属性名处理,这就是你遇到问题的原因。

用Jolt实现的步骤

可以通过JoltTransformJSON处理器结合Shift类型的Jolt Spec来实现动态属性名的生成,具体如下:

  1. 准备输入结构
    先将需要用到的现有属性(比如property1)和要设置的属性值映射为JSON结构,比如通过AttributesToJSON处理器生成如下格式的JSON:

    {
      "property1": "property2",
      "targetValue": "要给新属性设置的值"
    }
    
  2. 编写Jolt Shift Spec
    使用Shift操作实现动态键名的映射,Spec示例:

    [
      {
        "operation": "shift",
        "spec": {
          "targetValue": "@(1,property1)"
        }
      }
    ]
    

    规则说明:@(1,property1)表示向上遍历1级JSON结构,取property1的值作为新的键名,同时将targetValue字段的值赋值给这个动态生成的键。

  3. 提取为NiFi属性
    经过Jolt转换后,FlowFile内容会变成{"property2": "要给新属性设置的值"},再通过EvaluateJsonPath处理器,配置对应路径将该值提取为NiFi的属性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 04:33:10