Apache Nifi 中的动态属性命名可以通过使用 EvaluateJsonPath、UpdateAttribute 和 ReplaceText 等处理器来实现。
假设从源头数据流中读取到 JSON 格式的数据,其中每个 JSON 对象的属性名称都不同,则可以使用 EvaluateJsonPath 处理器来动态提取属性名称,并将属性名称保存为流文件的属性。该处理器的表达式语言支持动态提取属性名称,例如 ${json:attribute('$.属性名称')}。
示例代码:
EvaluateJsonPath 配置: 属性名称:dynamic_property_name 表达式语言:${json:attribute('$.属性名称')}
UpdateAttribute 配置: 属性:${dynamic_property_name} 属性值:新的属性值
ReplaceText 配置: 搜索值:${dynamic_property_name} 替换为:新的属性值
这样,可以根据动态提取的属性名称来动态操作流文件的属性和内容,实现动态属性命名的功能。