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 ...
随机推荐
- 「开源人说」|AI普惠,阿里灵杰开源历程与思考
简介: 施兴 阿里巴巴资深技术专家 阿里巴巴开源项目EasyRec负责人 以下为开发者社区「开源人说」第四期--大数据&AI专场的主题分享,点击链接了解更多精彩详情 https://devel ...
- 国内唯一连续入选Gartner,Quick BI是如何做到的?
简介:阿里云Quick BI凭借灵活的公共云部署,私有化独立部署能力.无缝对接各类云上数据库和自建数据库.可视化搭建分析.高效数据处理能力与强大数据计算能力,使得在2022年持续入选Gartner ...
- 基于 Scheduled SQL 对 VPC FlowLog 实现细粒度时间窗口分析
简介: 针对VPC FlowLog的五元组和捕获窗口信息,在分析时使用不同时间窗口精度,可能得到不一样的流量特征,本文介绍一种方法将原始采集日志的时间窗口做拆分,之后重新聚合为新的日志做分析,达到更细 ...
- [FAQ] Goland 始终没有包代码的提示 ?
表现:import 引入的包始终是红色的,表示没有找到引入的包. 注意,在这里开启Go Modules: 然后在 Exteneral Libraries 里看到 Go Modules 即可. Refe ...
- 使用ssh连接远程仓库的方法(github)
使用ssh连接远程仓库的方法 但是当我登录虚拟机想提交csapp的代码时,我发现需要验证我的账号密码,感觉每次提交都要输入这个很麻烦.然后就在网上查询了下为何提交代码需要输入账号密码. 使用 HTTP ...
- WPF dotnet 6 开启 PM v2 的 DPI 感知 导致触摸线程访问 UI 属性抛异常
本文记录一个 WPF 在 dotnet 6 的一个已知问题,且此问题我已修复提交给官方仓库.这是一个只有在 dotnet 6 框架下,非 dotnet 5 也非 .NET Core 3.1 也非 .N ...
- Winform程序使用app.minifest清单禁止高DPI无法失效问题
问题:Winform程序使用app.minifest清单禁止高DPI无法失效问题 摘要:因为笔记本基本都会有DPI放大,所以目前程序需要嵌入清单,并将其高DPI支持给禁止掉. 环境搭建:Winform ...
- Python中强大的通用ORM框架:SQLAlchemy
Python中强大的通用ORM框架:SQLAlchemy https://zhuanlan.zhihu.com/p/444930067
- phpstudy8.1安装与配置
环境: window10 phpstudy8.1.1.3 Vmware安装centos7.6 使用场景 window10安装mysql和redis 在Vmware安装centos7.6 桥接模式上网 ...
- SpringBoot-EasyExcel导出数据(带图片)
前言 EasyExcel 是阿里巴巴开源的一个Java操作Excel的技术,和EasyPoi一样是封装Poi的工具类. 但是不同的地方在于,在EasyExcel中解决了Poi技术读取大批量数据耗费内存 ...