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使用教程的更多相关文章

  1. 开源ETL工具kettle系列之常见问题

    开源ETL工具kettle系列之常见问题 摘要:本文主要介绍使用kettle设计一些ETL任务时一些常见问题,这些问题大部分都不在官方FAQ上,你可以在kettle的论坛上找到一些问题的答案 1. J ...

  2. 数据仓库系列之ETL过程和ETL工具

    上周因为在处理很多数据源集成的事情一直没有更新系列文章,在这周后开始规律更新.在维度建模中我们已经了解数据仓库中的维度建模方法以及基本要素,在这篇文章中我们将学习了解数据仓库的ETL过程以及实用的ET ...

  3. etl学习系列1——etl工具安装

    ETL(Extract-Transform-Load的缩写,即数据抽取.转换.装载的过程),对于企业或行业应用来说,我们经常会遇到各种数据的处理,转换,迁移,所以了解并掌握一种etl工具的使用,必不可 ...

  4. go-zero微服务实战系列(十一、大结局)

    本篇是整个系列的最后一篇了,本来打算在系列的最后一两篇写一下关于k8s部署相关的内容,在构思的过程中觉得自己对k8s知识的掌握还很不足,在自己没有理解掌握的前提下我觉得也很难写出自己满意的文章,大家看 ...

  5. ETL工具的功能和kettle如何来提供这些功能

    不多说,直接上干货! 大家会有一个疑惑,本系列博客是Kettle,那怎么扯上ETL呢? Kettle是一款国外开源的ETL工具,纯java编写,可以在Window.Linux.Unix上运行. 说白了 ...

  6. 【圣诞特献】Web 前端开发精华文章推荐【系列二十一】

    <Web 前端开发精华文章推荐>2013年第九期(总第二十一期)和大家见面了.梦想天空博客关注 前端开发 技术,分享各种增强网站用户体验的 jQuery 插件,展示前沿的 HTML5 和  ...

  7. 开源作业调度工具实现开源的Datax、Sqoop、Kettle等ETL工具的作业批量自动化调度

    1.阿里开源软件:DataX DataX 是一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL.Oracle等).HDFS.Hive.ODPS.HBase.FTP等各种异构数据源之间稳 ...

  8. UWP 手绘视频创作工具技术分享系列 - 全新的 UWP 来画视频

    从2017年11月开始,我们开始规划和开发全新的来画Pro,在12月23日的短视频峰会上推出了预览版供参会者体验,得到了很高的评价和关注度.吸取反馈建议后,终于在2018年1月11日正式推出了全新版本 ...

  9. Maven 项目管理工具基础入门系列(二)

    一.前言 在 Maven 项目管理工具基础知识系列(一) 这篇文章中,我们已经初步了解了 Maven,也知道了使用 Maven 作为项目管理工具的好处,特别是已经知道如何快速通过 Maven 构建 W ...

  10. JVM基础系列第15讲:JDK性能监控命令

    查看虚拟机进程:jps 命令 jps 命令可以列出所有的 Java 进程.如果 jps 不加任何参数,可以列出 Java 程序的进程 ID 以及 Main 函数短名称,如下所示. $ jps 6540 ...

随机推荐

  1. steam社区留言红小作文模板

    steam社区留言红小作文模板 Dear steam: Im a steam user which most play csgo.i saw i had be banned in steam comm ...

  2. 一道SQL面试题

    表结构如下 是一张递归格式的表 使用SQL转换成如下格式 SQL实现 使用SQL转换成上图的格式 SQL代码: WITH T_Recur AS ( SELECT Id,1 num, cast(name ...

  3. 力扣205(java)-同构字符串(简单)

    题目: 给定两个字符串 s 和 t ,判断它们是否是同构的. 如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的. 每个出现的字符都应当映射到另一个字符,同时不改变字符的顺序 ...

  4. SRE技术保障平台-盯屏中心TAC: 混合云一站式告警运维平台

    简介: SRE技术保障平台-盯屏中心TAC: 混合云一站式告警运维平台 1.目标定位 1.1背景 告警管控平台种类繁多 告警出现后未及时发现处理最终导致故障产生 专有云监控能力拉起依赖版本升级,操作复 ...

  5. 入选 SIGMOD2021 的时间序列多周期检测通用框架 RobustPeriod 如何支撑阿里业务场景?

    简介: 本文除了介绍RobustPeriod的核心技术亮点,还将重点解释如何将它构筑成服务来解决阿里云的业务痛点. 近日,由阿里云计算平台和阿里云达摩院合作的时序多周期检测相关论文RobustPeri ...

  6. Spring Cloud Gateway 突发高危漏洞,下一代云原生网关恰逢其时?

    ​简介:Log4j2 的漏洞刚告一段落,Spring 官方在 2022 年 3 月 1 日发布了 Spring Cloud Gateway 的两个 CVE 漏洞:分别为 CVE-2022-22946( ...

  7. 从no-code到low-code:企业级hpaPaaS的未来

    简介: 本文将简单谈一谈基于 no-code > low-code > pro-code 渐进式思路的研发体系. 引子 宜搭负责人骁勇给我举过一个例子,我们小时候逢年过节穿的衣服,都是去裁 ...

  8. 这样才是代码管理和 Commit 的正确姿势! | 研发效能提升36计

    ​简介:效能提升从小习惯开始,这样才是代码管理和 Commit 的正确姿势! ​ 专栏策划|雅纯 志愿编辑|张晟 软件交付是以代码为中心的交付过程,其中代码的作用有几点:第一,最终的制品要交付成什么样 ...

  9. dotnet 使用 NamedPipeClientStream 连接一个不存在管道服务名将不断空跑 CPU 资源

    本文记录一个开发和代码审查过程中,需要关注的细节.在 dotnet 里,在 .NET 6 和以下版本,包括 .NET Framework 版本,使用 NamedPipeClientStream 进行连 ...

  10. Golang 爬虫01

    目录 学习地址: 目录站: 爬虫概念: 工作流程: 百度贴吧爬虫实现: go实战代码 单进程 实现过程: 并发爬取 实现过程: 学习地址: https://www.bilibili.com/video ...