ETL工具-nifi干货系列 第十一讲 处理器UpdateAttribute使用教程
1、在这里我们重温下nifi里面一个重要的概念FlowFile,如下图所示:

FlowFile:FlowFile代表NiFi中的单个数据。nifi数据流中流动的就是flowfile,每个nifi处理器处理的数据也是基于flowfile的。
FlowFile由两个组件组成:FlowFile属性(attribute)和FlowFile内容(content)。内容是FlowFile表示的数据。属性是提供有关数据的信息或上下文的特征,它们由键值对组成。所有FlowFiles都具有以下标准属性:
uuid:一个通用唯一标识符,用于区分FlowFile与系统中的其他FlowFiles。
filename:在将数据存储到磁盘或外部服务时可以使用的可读文件名
path:在将数据存储到磁盘或外部服务时可以使用的分层结构值,以便数据不存储在单个目录中
flowfile除了自身默认的标准属性外,用户还可以自定义属性,自定义属性的用途很多,如上节课讲的RouteOnAttribute就用到了自定义属性。
2、处理器UpdateAttribute,该处理器的作用根据名字就可以看出来,就是为了更新flowFile的属性存在的,如下图所示:
Delete Attributes Expression:正则匹配的属性将从 FlowFiles 文件中删除。属性无论是否由此处理器更新,匹配的现有属性都将被删除。
删除属性Value值用法如下(概括下来就是支持精确匹配和模糊匹配删除):
lastUser - 将删除名称为 "lastUser" 的属性。
user.* - 将删除以 "user" 开头的属性,例如 "username"、"userName"、"userID" 和 "users"。但不会删除 "User" 或 "localuser"。
(user.*|host.*|.*Date) - 将删除 "user"、"username"、"userName"、"hostInfo"、"hosts" 和 "updateDate",但不会删除 "User"、"HOST"、"update" 或 "updatedate"。
Store State:选择是否存储状态,有Do not store state和Store state locally两个选项。选择 “无状态” 将提供纯粹在无状态方式下更新流文件属性的默认功能。选择有状态的选项将不仅存储流文件上的属性,还会存储在处理器的状态中。(也就是说无状态仅仅基于当前flowfile进行计算,有状态是基于处理器和流经处理器的所有flowfile为基础进行计算,如计算flowfile的条数)
Stateful Variables Initial Value:如果使用状态来设置/引用变量,那么此值将用于设置有状态变量的初始值。仅在状态不包含变量值时,此值将在 @OnScheduled 方法中使用。如果以有状态方式运行,则需要此值,但如果需要,可以为空。
Cache Value Lookup Cache Size:指定应在缓存中存储多少个规范查找值。
3、示例:新增不存在属性,新增一个动态属性myNickName为king,如下图所示


查看数据溯源信息可知flowFile属性中多了一个myNickName属性,与此同时查看LogMessage处理器的溯源信息依然可以看到myNickName。
4、示例:新增存在属性,新增一个动态属性filename为${filename}.flowfile,如下图所示

点击运行,然后查看溯源信息,此时filename已经发生了变更,如下图所示:

5、示例:高级用法 存储状态,记录通过该处理器的数据流总和,如下图所示:

点击运行,然后查看溯源信息,此时myCount值已经进行统计,如下图所示:

6、高级用法,添加规则条件,符合条件时update指定的属性值,如下图所示:

添加一个rule,如果id的值等于1,就修改name的值为Java大金刚


ETL工具-nifi干货系列 第十一讲 处理器UpdateAttribute使用教程的更多相关文章
- 开源ETL工具kettle系列之常见问题
开源ETL工具kettle系列之常见问题 摘要:本文主要介绍使用kettle设计一些ETL任务时一些常见问题,这些问题大部分都不在官方FAQ上,你可以在kettle的论坛上找到一些问题的答案 1. J ...
- 数据仓库系列之ETL过程和ETL工具
上周因为在处理很多数据源集成的事情一直没有更新系列文章,在这周后开始规律更新.在维度建模中我们已经了解数据仓库中的维度建模方法以及基本要素,在这篇文章中我们将学习了解数据仓库的ETL过程以及实用的ET ...
- etl学习系列1——etl工具安装
ETL(Extract-Transform-Load的缩写,即数据抽取.转换.装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,所以了解并掌握一种etl工具的使用,必不可 ...
- go-zero微服务实战系列(十一、大结局)
本篇是整个系列的最后一篇了,本来打算在系列的最后一两篇写一下关于k8s部署相关的内容,在构思的过程中觉得自己对k8s知识的掌握还很不足,在自己没有理解掌握的前提下我觉得也很难写出自己满意的文章,大家看 ...
- ETL工具的功能和kettle如何来提供这些功能
不多说,直接上干货! 大家会有一个疑惑,本系列博客是Kettle,那怎么扯上ETL呢? Kettle是一款国外开源的ETL工具,纯java编写,可以在Window.Linux.Unix上运行. 说白了 ...
- 【圣诞特献】Web 前端开发精华文章推荐【系列二十一】
<Web 前端开发精华文章推荐>2013年第九期(总第二十一期)和大家见面了.梦想天空博客关注 前端开发 技术,分享各种增强网站用户体验的 jQuery 插件,展示前沿的 HTML5 和 ...
- 开源作业调度工具实现开源的Datax、Sqoop、Kettle等ETL工具的作业批量自动化调度
1.阿里开源软件:DataX DataX 是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL.Oracle等).HDFS.Hive.ODPS.HBase.FTP等各种异构数据源之间稳 ...
- UWP 手绘视频创作工具技术分享系列 - 全新的 UWP 来画视频
从2017年11月开始,我们开始规划和开发全新的来画Pro,在12月23日的短视频峰会上推出了预览版供参会者体验,得到了很高的评价和关注度.吸取反馈建议后,终于在2018年1月11日正式推出了全新版本 ...
- Maven 项目管理工具基础入门系列(二)
一.前言 在 Maven 项目管理工具基础知识系列(一) 这篇文章中,我们已经初步了解了 Maven,也知道了使用 Maven 作为项目管理工具的好处,特别是已经知道如何快速通过 Maven 构建 W ...
- JVM基础系列第15讲:JDK性能监控命令
查看虚拟机进程:jps 命令 jps 命令可以列出所有的 Java 进程.如果 jps 不加任何参数,可以列出 Java 程序的进程 ID 以及 Main 函数短名称,如下所示. $ jps 6540 ...
随机推荐
- Linux下的常见基本指令
pwd //显示当前用户所在的路径 ls //显示当前路径下的文件名或者目录名称 ls-l //显示当前路径下的文件或者目录的更详细的属性信息 cd 一个目录路径 //进入一个目录,进去后,可以用pw ...
- EventBridge 事件总线及 EDA 架构解析
简介:EventBridge 是事件驱动的具体落地产品,也是 EDA 的最佳实践方式. 作者:肯梦 作为 Gartner 定义的 10 大战略技术趋势之一,事件驱动架构(EDA)逐渐成为主流技术架构 ...
- 37 手游基于 Flink CDC + Hudi 湖仓一体方案实践
简介: 介绍了 37 手游为何选择 Flink 作为计算引擎,并如何基于 Flink CDC + Hudi 构建新的湖仓一体方案. 本文作者是 37 手游大数据开发徐润柏,介绍了 37 手游为何选择 ...
- [PHP] 小数转科学计数法, 小数保留 n 位
使用sprintf / printf 的 %e 或%E 格式说明符将其转换为科学计数法. 使用精度控制符指定保留多少位. 例如:sprintf('%.4e', 0.00000123); Link:ht ...
- 超好用的 Redis GUI 工具,你值得拥有
超好用的 Redis GUI 工具,你值得拥有 提供原生的性能,并且比使用 Electron 等 Web 技术开发的同等应用程序消耗的资源少得多. 下载地址:http://www.redisant.c ...
- OSI模型之网络层
一.简介 网络层是OSI参考模型中的第三层,同时也是TCP/IP模型的第二层.它介于传输层和数据链路层之间,主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务.网络层传输单位是数据 ...
- Unsortbin attack原理及分析
Unsortbin attack原理 ️条件:首先要实现Unsortbin attack前提是可以控制Unsortbin attack chunk的bk指针 ️目的:我们可以实现修改任意地址为一个比较 ...
- 【强化学习】Markov Decision processes【二】
目录 Markov Decision processes Markov Process Markov reward process Markov Decision processes 马尔可夫决策过程 ...
- LLaMA 3 源码解读-大语言模型5
本来不是很想写这一篇,因为网上的文章真的烂大街了,我写的真的很有可能没别人写得好.但是想了想,创建这个博客就是想通过对外输出知识的方式来提高自身水平,而不是说我每篇都能写得有多好多好然后吸引别人来看. ...
- vim简明文档
替换 替换当前行第一个 :s/vivian/sky/ 替换当前行第一个 vivian 为 sky 从当前行替换到最后一行 :%s/vivian/sky/g 替换所有行中 vivian 为 sky 查找 ...