APACHE NIFI学习之—UpdateAttribute
UpdateAttribute
描述:
通过设置属性表达式来更新属性,也可以基于属性正则匹配来删除属性
标签:
attributes, modification, update, delete, Attribute Expression Language, state, 属性, 修改, 更新, 删除, 表达式
参数:
如下列表中,必填参数则标识为加粗. 其他未加粗参数,则表示为可选参数。表中同时提到参数默认值设置, 并且 参数还支持 表达式语言.
| 名字 | 默认值 | 允许值列表 | 描述 |
|---|---|---|---|
| 删除属性正则 | 将删除与正则匹配相匹配的数据流上的属性, Existing attributes that match will be deleted regardless of whether they are updated by this processor. 支持表达式语言 (支持流属性和变量) | ||
| 存储状态 | 不存储 | 不存储仅本地存储 | 是否需要存储状态,选择“无状态”将提供以无状态方式单纯的更新流文件属性。选择有状态将不仅在数据流上存储属性,还存储组件状态。 可查看组件'高级设置'的'状态用法'章节获取更多信息 |
| 状态变量初始化值 | 用于设置变量状态的初始值。 当状态中没有一个变量的值时,该值仅被用在@OnScheduled方法中。如果是有状态的,则该参数是必须的,但也可以设置为空 |
动态参数:
| 名字 | 值 | 描述 |
|---|---|---|
| A FlowFile attribute to update | The value to set it to | 更新或设置一个数据流属性,该参数可通过动态参数的键值来设置,且与属性对应。 支持表达式语言 (支持流属性和变量) |
连线:
| 名字 | 描述 |
|---|---|
| success | 所有成功的数据流将输出到此连线 |
读取属性:
未提供。
写入属性:
| 名字 | 描述 |
|---|---|
| See additional details | 组件可以添加或删除0到多个属性描述,参见附加详细信息 |
状态管理:
| 范围 | 描述 |
|---|---|
| LOCAL | 提供选项来存储数据流的属性值,也引用有状态变量 |
限制:
该组件没有限制
输入流要求:
组件必须提供输入流。
系统资源考量:
未提供。
* 遇到的问题
问题1:如何在Nifi中将属性设置为空字符串
解决方法:${literal("")}
试试
attribute_name
${literal("")}
问题2:增加一个属性
id2 233
输出结果:

问题3:条件判断
高级用法,添加规则条件,符合条件时update指定的属性值
-
点击ADVANCED
-
添加一个rule,如果id的值等于11,就修改id的值为22
-
结果输出:
问题4:将属性提取到内容
需要增加ReplaceText组件
${dict.51字段}


问题5:删除某一些的属性
(orderParties|containerList|goods)
UpdateAttribute(清除body以外属性)
(body.+)

Delete Attributes Expression
(SP.*\.[0-9]+.*)
Delete Attributes Expression
bkCargo.*
它表示要删除以 "bkCargo." 开头的所有属性。这种方式允许您一次性删除多个属性,只要它们都以相同的前缀开始。
举个例子,假设您有属性 bkCargo.name、bkCargo.type、bkCargo.weight 等等,使用 bkCargo.* 表达式会删除所有以 "bkCargo." 开头的属性,将它们从数据中删除。
问题6:日期获取
-
获取前一天的数据
dict.startTime:${now():format("yyyy-MM-dd", "GMT"):toDate('yyyy-MM-dd'):addDays(0):format("yyyy-MM-dd", "GMT")}T00:00:00dict.endTime:${now():format("yyyy-MM-dd", "GMT"):toDate('yyyy-MM-dd'):addDays(0):format("yyyy-MM-dd", "GMT")}T23:59:59
-
获取前2个月至今的数据
dict.startTime:${now():format("yyyy-MM", "GMT+8"):toDate('yyyy-MM'):addMonths(-1):format("yyyy-MM", "GMT")}-01T00:00:00dict.endTime:${now():format("yyyy-MM-dd", "GMT+8")}T${now():format("HH:mm:ss", "GMT+8")}
-
updateAttribute组件获取当前时间
${now():format('yyyy-MM-dd HH:mm:ss')}
问题7:JsonPath表达式解读
dict.BLiStotalNoofPackages
${bkCargo:jsonPath('$[?(@.cargoFlag in ["M"])]'):jsonPath('$.noOfPackage')}
这段代码是使用 JSONPath 表达式来从 JSON 数据中提取信息的。JSONPath 是一种类似于 XPath 的查询语言,用于从 JSON 结构中选择和提取数据。让我一步步解释这段代码的含义:
-
${bkCargo:jsonPath('$[?(@.cargoFlag in ["M"])]')}: 这部分的含义是从一个名为bkCargo的 JSON 对象中,使用 JSONPath 查询,筛选出具有cargoFlag属性值为 "M" 的元素。换句话说,这部分代码会返回一个包含满足条件的货物的数组或集合。 -
:jsonPath('$.noOfPackage'): 这部分的含义是在上一步得到的满足条件的货物数组中,再次使用 JSONPath 查询,提取每个货物元素的noOfPackage属性值,即货物的包裹数量。
综合起来,整个代码的目的是从名为 bkCargo 的 JSON 数据中,选取具有 cargoFlag 属性值为 "M" 的货物,并且提取这些货物的包裹数量(noOfPackage 属性值)。最终,这段代码将会返回一个包含满足条件货物的包裹数量的数组或集合。
问题8:数据分流合并数据
8.1 初始化分段合并所需参数
infosp.count:
2
infosp.identifier:
${UUID()}
8.2 设置分段合并所需参数1
infosp.index:
1
8.2 设置分段合并所需参数2
infosp.index:
2
8.3 设置复原infosp分段参数
fragment.count:
${infosp.count}
fragment.identifier:
${infosp.identifier}
fragment.index:
${infosp.index}
问题9:多条件判断
dict.运输条款END2等于CY的时候等于Y
dict.运输条款END2等于CFS的时候等于S
dict.运输条款END2等于DOOR的时候等于D
${dict.运输条款END2:equals('CY'):ifElse('Y', ${dict.运输条款END2:equals('CFS'):ifElse('S', ${dict.运输条款END2:equals('DOOR'):ifElse('D', '')})})}
相关文章:
APACHE NIFI学习之—UpdateAttribute
UpdateAttribute 描述: 通过设置属性表达式来更新属性,也可以基于属性正则匹配来删除属性 标签: attributes, modification, update, delete, Attribute Expression Language, state, 属性, 修改, 更新, 删除, 表达式 参数: 如下列表中,必填参数则…...
BIT-7文件操作和程序环境(16000字详解)
一:文件 1.1 文件指针 每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息(如文件的名字,文件状态及文件当前的位置等)。这些信息是保存在一个结构体变量中的。该结构体类型是有系统声明…...
冥想第九百二十八天
1.今天周三,今天晚上日语课上了好久,天气也不好, 2.项目上全力以赴的一天。 3.感谢父母,感谢朋友感谢家人,感谢不断进步的自己。...
深入浅出,SpringBoot整合Quartz实现定时任务与Redis健康检测(一)
目录 前言 环境配置 Quartz 什么是Quartz? 应用场景 核心组件 Job JobDetail Trigger CronTrigger SimpleTrigger Scheduler 任务存储 RAM JDBC 导入依赖 定时任务 销量统计 Redis检测 使用 编辑 注意事项 前言 在悦享校园1.0中引入了Quart…...
Lucene-MergePolicy详解
简介 该文章基于业务需求背景,因场景需求进行参数调优,下文会尽可能针对段合并策略(SegmentMergePolicy)的全参数进行说明。 主要介绍TieredMergePolicy,它是Lucene4以后的默认段的合并策略,之前采用的合并…...
数据的加解密
文章目录 分类特点业务的使用补充 分类 对称加密算法非对称加密算法 特点 对称加密算法 : 加密效率高 !加密和解密都使用同一款密钥 但是有一个问题 : 密钥如何从服务端发给客户端? (假如你直接先将密钥发给对方,要是在过程中被黑客技术破解了,那后面的消息也就泄漏了) (后…...
【Spring】更简单的读取和存储对象
更简单的读取和存储对象 一. 存储 Bean 对象1. 前置工作:配置扫描路径2. 添加注解存储 Bean 对象Controller(控制器存储)Service(服务存储)Repository(仓库存储)Component(组件存储&…...
【LeetCode热题100】--108.将有序数组转换为二叉搜索树
108.将有序数组转换为二叉搜索树 给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。 高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。 二叉搜索树的中序遍历是升序…...
Redis学习笔记(下):持久化RDB、AOF+主从复制(薪火相传,反客为主,一主多从,哨兵模式)+Redis集群
十一、持久化RDB和AOF 持久化:将数据存入硬盘 11.1 RDB(Redis Database) RDB:在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里。 备份…...
【智能家居项目】裸机版本——设备子系统(LED Display 风扇)
🐱作者:一只大喵咪1201 🐱专栏:《智能家居项目》 🔥格言:你只管努力,剩下的交给时间! 输入子系统中目前仅实现了按键输入,剩下的网络输入和标准输入在以后会逐步实现&am…...
[Linux]记录plasma-wayland下无法找到HDMI接口显示器的问题解决方案
内核:Linux 6.5.5-arch1-1 Plasma 版本:5.27.8 窗口系统:Wayland 1 问题 在前些时候置入了一块显示器,接口较多,有 HDMI 接口,type-C 接口。在 X11 中可以找到外接显示器,但是卡顿明显…...
【计算机网络】高级IO之select
文章目录 1. 什么是IO?什么是高效 IO? 2. IO的五种模型五种IO模型的概念理解同步IO与异步IO整体理解 3. 阻塞IO4. 非阻塞IOsetnonblock函数为什么非阻塞IO会读取错误?对错误码的进一步判断检测数据没有就绪时,返回做一些其他事情完整代码myt…...
如何设计一个高效的应用缓冲区【一个动态扩容的buffer类】
文章目录 前言一、为什么需要设计应用层缓冲区必须要有 output buffer目的问题output buffer的解决方案: 必须要有 input buffer总结 二、设计要点三、buffer设计思路基础函数关于iovec与readv readfd如何实现动态扩容 问题 前言 在上一个博客,我们介绍…...
图像处理初学者导引---OpenCV 方法演示项目
OpenCV 方法演示项目 项目地址:https://github.com/WangQvQ/opencv-tutorial 项目简介 这个开源项目是一个用于演示 OpenCV 方法的工具,旨在帮助初学者快速理解和掌握 OpenCV 图像处理技术。通过这个项目,你可以轻松地对图像进行各种处理&a…...
管道-匿名管道
一、管道介绍 管道(Pipe)是一种在UNIX和类UNIX系统中用于进程间通信的机制。它允许一个进程的输出直接成为另一个进程的输入,从而实现数据的流动。管道是一种轻量级的通信方式,用于协调不同进程的工作。 1. 创建和使用管道&#…...
【JavaEE基础学习打卡08】JSP之初次认识say hello!
目录 前言一、JSP技术初识1.动态页面2.JSP是什么3.JSP特点有哪些 二、JSP运行环境配置1.JDK安装2.Tomcat安装 三、编写JSP1.我的第一个JSP2.JSP执行过程3.在IDEA中开发JSP 总结 前言 📜 本系列教程适用于JavaWeb初学者、爱好者,小白白。我们的天赋并不高…...
使用序列到序列深度学习方法自动睡眠阶段评分
深度学习方法,用于使用单通道脑电图进行自动睡眠阶段评分。 def build_firstPart_model(input_var,keep_prob_0.5):# List to store the output of each CNNsoutput_conns []######### CNNs with small filter size at the first layer ########## Convolutionnetw…...
【算法】排序——选择排序和交换排序(快速排序)
主页点击直达:个人主页 我的小仓库:代码仓库 C语言偷着笑:C语言专栏 数据结构挨打小记:初阶数据结构专栏 Linux被操作记:Linux专栏 LeetCode刷题掉发记:LeetCode刷题 算法头疼记:算法专栏…...
Docker 容器监控 - Weave Scope
Author:rab 目录 前言一、环境二、部署三、监控3.1 容器监控 - 单 Host3.2 容器监控 - 多 Host 总结 前言 Docker 容器的监控方式有很多,如 cAdvisor、Prometheus 等。今天我们来看看其另一种监控方式 —— Weave Scope,此监控方法似乎用的人…...
Spring Boot集成redis集群拓扑动态刷新
项目场景: Spring Boot集成Redis集群,使用lettuce连接Cluster集群实例。 问题描述 redis其中一个节点挂了之后,springboot集成redis集群配置信息没有及时刷新,出现读取操作报错。 java.lang.IllegalArgumentException: Connec…...
从漏极、栅极到源极开关:手把手教你选对单端电荷泵拓扑(基于噪声与速度权衡)
从漏极、栅极到源极开关:单端电荷泵拓扑的噪声与速度权衡实战指南 在锁相环(PLL)设计中,电荷泵的性能往往成为整个系统相位噪声和杂散特性的瓶颈。特别是当设计目标同时包含低带内相位噪声和高开关速度时,单端电荷泵的拓扑选择就变得尤为关键…...
基于springboot大学生兼职管理系统设计与开发(源码+精品论文+答辩PPT等资料)
博主介绍:CSDN毕设辅导第一人、靠谱第一人、全网粉丝50W,csdn特邀作者、博客专家、腾讯云社区合作讲师、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交…...
别急着跑流程!单细胞测序数据分析前,你的GEO数据真的‘干净’吗?
别急着跑流程!单细胞测序数据分析前,你的GEO数据真的‘干净’吗? 当你在GEO数据库中兴奋地找到那个包含1534个样本的单细胞数据集时,是否曾想过——这些看似完美的数据背后可能隐藏着致命的陷阱?许多生信分析者习惯性地…...
BiliRoamingX集成开发:Android 14兼容性优化与高级模块注入技术解析
BiliRoamingX集成开发:Android 14兼容性优化与高级模块注入技术解析 【免费下载链接】BiliRoamingX-integrations BiliRoamingX integrations powered by revanced. 项目地址: https://gitcode.com/gh_mirrors/bi/BiliRoamingX-integrations BiliRoamingX作为…...
Mi-Create终极指南:三步快速创建专属小米手表表盘
Mi-Create终极指南:三步快速创建专属小米手表表盘 【免费下载链接】Mi-Create Unofficial watchface creator for Xiaomi wearables ~2021 and above 项目地址: https://gitcode.com/gh_mirrors/mi/Mi-Create 想要为你的小米手表打造独一无二的个性化表盘吗&…...
[特殊字符] Meixiong Niannian画图引擎应用场景:独立音乐人专辑封面AI生成流程
Meixiong Niannian画图引擎应用场景:独立音乐人专辑封面AI生成流程 1. 项目简介 Meixiong Niannian画图引擎是一款专为个人GPU设计的轻量化文本生成图像系统,基于Z-Image-Turbo底座和meixiong Niannian Turbo LoRA技术构建。这个引擎针对通用画图场景进…...
告别Redis?在CentOS 7上快速体验国产TongRDS 2.2.x(附与SpringBoot整合对比)
国产内存数据库TongRDS技术评估与SpringBoot整合实战 在技术架构选型的关键时刻,国产基础软件的成熟度与性能表现成为越来越多企业关注的焦点。作为Redis的潜在替代方案,TongRDS凭借其纯Java架构和与Redis协议的高度兼容性,正在技术社区引发热…...
小白友好!FunASR语音识别镜像部署教程,开箱即用
小白友好!FunASR语音识别镜像部署教程,开箱即用 1. 快速了解FunASR语音识别 FunASR是由阿里云推出的开源语音识别工具包,它就像是一个能听懂人说话的智能助手。想象一下,你对着手机说话,它能立刻把你说的话变成文字—…...
Greasy Fork:用户脚本管理的一站式开源解决方案
Greasy Fork:用户脚本管理的一站式开源解决方案 【免费下载链接】greasyfork An online repository of user scripts. 项目地址: https://gitcode.com/gh_mirrors/gr/greasyfork 从脚本新手到社区贡献者的进阶指南 一、功能探索:解锁浏览器增强新…...
FireRedASR Pro模型架构浅析:从卷积神经网络到端到端设计
FireRedASR Pro模型架构浅析:从卷积神经网络到端到端设计 最近在语音识别圈子里,FireRedASR Pro这个名字被提到的次数越来越多了。不少朋友都在问,这个模型到底有什么特别之处,为什么大家都在讨论它。其实,它的核心魅…...
