NiFi是一个数据处理和分发系统,其中很重要的一部分是处理器(Processors)。一个处理器组合系统间的数据路由、转换或调解。处理器可以访问给定FlowFile的属性及其内容流。处理器可以在给定的工作单元中对零个或多个FlowFile进行操作,并提交该工作或回滚。

本文介绍NiFi处理器之一 :**RouteOnAttribute **。

使用Attribute Expression Language基于FlowFile的Attributes路由FlowFile。

换句话说就是,这个处理器根据设定的规则将数据分流。

这里只介绍我使用过的配置:

名称 默认值 允许值 描述 提示
Routing Strategy Route to Property name Route to Property name / Route to ‘matched’ if all match / Route to ‘matched’ if any matches 指定评估Expression Language时使用的关系 选项很好理解,看情况选择

动态属性允许用户指定属性名和属性值。

Name Value
名称 一个Attribute Expression

对于这个处理器,我目前只用过 Route to ‘matched’ if all match。

不过这个处理器的使用,关键是添加动态属性,更准确地说,是添加Expression。

接收天气数据的flowfile,经过上游处理处理后,具有属性:

名称 描述
cloud 云量
tmp 温度

目标:过滤出云量为0,温度大于2小于7的数据。

为了完成这个目标,Routing Strategy选择 Route to ‘matched’ if all match。

额外添加的属性如下:

Name Value
cloud_eq ${cloud:equals(0)}
tmp_gt ${tmp:gt(2)}
tmp_lt ${tmp:lt(7)}
然后我们再去创建一个表,这个时候要知道,因为我们现在binlog只有,insert的,实际上我们把insert,update,delete 现在都指向,Rout eO nAt tribute ,都路由到一个地方了,这里可以看到Sql语句,中就是带有,从EvaluateJsonPath处理器的属性中,获取到的数据,比如id,name,mobile,email,son_json等。去看看数据,可以看到时候,已经把json字符串中的,id,email database,mobile,name等都获取了。 JDK 1.8(使 NiFi 在Java 9/10/11上运行的正在进行的工作;请参阅 ) Apache Maven 3.1.1或更高版本 Git客户端(在构建过程中由“ bower”插件使用) 通读。 它将包括有关获取源代码本地副本的信息,提供有关问题跟踪的指针,并提供有关开发环境中常见问题的一些警告。 有关更全面的开发指南以及有关对项目做出贡献的 例如:PutFile能够使用At tribute s来知道每个FlowFiles的存储位置,而每个FlowFile的目录和文件名属性可能不同(结合表达式语言,比如每个流都有FileName属性,组件中就可以这样配置文件名:${filename},就可以获得当前FlowFile中filename的属性值)。通过添加自定义属性进行配置,属性名可用于分发路由,属性值可以用来控制分发的数据。属性的值也包含表达式语言( Nifi 有自己的表达式语言,可以系统的学习一下),这样就允许其他属性或添加属性。 NiFi 是一款功能强大的开源的ESB软件,适合多个系统间的数据流转以及 大数据 的处理。这里记录下Rout eO nAt tribute (路由属性)的使用方法。 首先,拖拽一个 Processor 组件,选择Rout eO nAt tribute 。如图1所示: 右键选中Configure选项进行配置,如图2所示: 重点是属性的配置,如图3所示: 其中,Propo 原文地址:http:// nifi .apache.org/docs.html 1.1介绍 ​ Apache NiFi 是基于流程编程概念的数据流系统。它支持强大的可扩展的且包含了数据路由,转换和系统中介逻辑的有向图。 NiFi 具有基于Web的用户界面,用于设计,控制,反馈和监控数据流。它在服务质量的几个方面具有高度可配置性,例如容错与保证交付,低延迟与高吞吐量以及基于优先级算法的排队。 NiFi 为所有received, forked, joined cl nifi 表达式概述:Apache NiFi 中的所有数据都由一个称为FlowFile的抽象表示。 FlowFile由两个主要部分组成:内容和属性。 FlowFile的内容部分代表要操作的数据。例如,如果使用GetFile处理器从本地文件系统中提取文件,则文件的内容将成为FlowFile的内容。FlowFile的属性部分表示关于数据本身或元数据的信息。属性是键值对类型的,表示关于数据的已知信息,以及适用 Apache NiFi 是基于流程编程概念的数据流系统。它支持强大且可扩展的数据路由,转换和系统中介逻辑的有向图。 NiFi 具有基于Web的用户界面,用于设计,控制,反馈和监控数据流。它在服务质量的几个方面具有高度可配置性,例如容错与保证交付,低延迟与高吞吐量以及基于优先级的排队。 NiFi 为所有接收,分叉,加入克隆,修改,发送和最终在达到其配置的最终状态时丢弃的数据提供细粒度数据来源。 有关... FlowFile的属性在整个数据流中非常重要,因为在对数据流进行处理时,经常会用到FlowFile的属性,这为数据流处理提供了很大的便利性。 (以下内容译自 NiFi 官方文档 working-with-at tribute s) 每个FlowFile被创建时,都会带有几个属性(At tribute s),这些属性将在FlowFile的生命周期内发生变化。FlowFile的概念非常强大,并提供三个主要优点。 https://blog.csdn.net/weixin_36048246/article/details/88895123 HandleHttpRequest、HandleHttpResponse 做 NIFI web服务 https://... NiFi 主要的功能是数据处理和数据分发,在 NiFi 中数据均抽象为FlowFile。FlowFile有两个部分组成:内容(Content)和属性(at tribute )。这里Content是实际上要处理和分发的数据,而FlowFile并不直接存储数据而是存储了一个指向实际存储地址的指针。属性(at tribute )是数据本身相关的元数据,描述信息等,形式是一组键值对。例如:“GetFile Processor ”从本地磁盘中读取文件,则文件内容将成为FlowFile的内容,则属性可能为文件名、文件目录、文件大