该处理器使用属性表达式语言,根据流文件的属性去计算然后进行路由。
#
属性配置
在下面的列表中,必需属性的名称以粗体显示。任何其他属性(不是粗体)都被认为是可选的,并且指出属性默认值(如果有默认值),以及属性是否支持表达式语言。
属性名称
|
默认值
|
可选值
|
描述
|
Routing Strategy
|
Route to Property name
|
▪ Route to Property name
▪Route to 'matched' if all match
▪Route to 'matched' if any matches
|
指定如何确定在计算表达式语言时使用哪个关系
|
#
动态属性
该处理器允许用户指定属性的名称和值。
属性名称
|
属性值
|
描述
|
用户自由定义的属性名称
(Relationship Name)
|
用户自由定义的属性值
(Attribute Expression Language)
|
将其属性与动态属性值中指定的属性表达式语言相匹配的流文件路由到动态属性键中指定的关系.
支持表达式语言:true
|
#
连接关系
名称
|
描述
|
unmatched
|
不匹配任何用户定义表达式的流文件将被路由到这里
|
#
自定义连接关系
可以根据用户配置处理器的方式创建动态连接关系。
Name
|
Description
|
动态属性的属性名
|
匹配动态属性的属性表达式语言的流文件
|
#
读取属性
没有指定。
#
写属性
Name
|
Description
|
RouteOnAttribute.Route
|
流文件路由到的关系
|
#
状态管理
此组件不存储状态。
此组件不受限制。
#
输入要求
此组件需要传入关系。
#
系统资源方面的考虑
没有指定。
#
应用场景
该处理器往往用于判断逻辑。
#
示例说明
1:判断属性中多个值是否为空,不同判断结果执行不同逻辑
自定义paramError属性,
${lastest.pkName:isEmpty():or(${lastest.pkValue:isEmpty()}):or(${lastest.tsValue:isEmpty()}):or(${lastest.tsName:isEmpty()})}
//意思是四个流文件属性如果有一个为空,则返回true
输入流属性如下,要求非空的属性中有空值:
结果如下:路由到paramError关系
#公众号
关注公众号 得到第一手文章/文档更新推送。
描述: 该处理器使用属性表达式语言,根据流文件的属性去计算然后进行路由。属性配置: 在下面的列表中,必需属性的名称以粗体显示。任何其他属性(不是粗体)都被认为是可选的,并且指出属性默认值(如果有默认值),以及属性是否支持表达式语言。 属性名称 默认值 可选值 描述 Routing...
ExecuteScript : 执行脚本处理器, 支持: clojure, ecmascript, groovy, lua, python, ruby
QueryDatabaseTable : 数据库查询处理器, 支持: mysql
ConvertAvroToJSON : avro 数据格式转换为 json
SplitJson : 将JSON文件拆分为多个单独的FlowFiles, 用于由JsonPath表达式指定的数组元素。
EvaluateJsonPath : 根据FlowFile的内容评估一
每个 FlowFile 都拥有多个属性, 这些属性将在 FlowFile 的声明周期中发生变化。FlowFile 的概念非常强大, 并提供三个主要优点:
首先, 它允许用户在流中做出路由决策, 以便满足某些条件的 FlowFiles 可以与其他 FlowFiles 进行不同的处理。这可以由RouteOnAttribute和其他类似的处理器完成。
其次, 利用属性配置处理器: 处理器的配置依赖于数据本身。例如, PutFile 能够使用 Attributes 来知道每个 FlowFi
该处理器使用正则表达式去匹配流文件的内容,并将流文件路由到正则表达式所匹配的relation。在用户自定义的属性上添加正则表达式,其中属性的名称是关系的名称,值是一个正则表达式,用于匹配流文件内容。用户定义的属性支持属性表达式语言,但是表达式计算的结果被解释为文字值,而不是正则表达式。
属性配置:
在下面的列表中,必需属性的名称以粗体显示。任何其他属性(不是粗...
Apache NiFi是基于流程编程概念的数据流系统。它支持强大且可扩展的数据路由,转换和系统中介逻辑的有向图。NiFi具有基于Web的用户界面,用于设计,控制,反馈和监控数据流。它在服务质量的几个方面具有高度可配置性,例如容错与保证交付,低延迟与高吞吐量以及基于优先级的排队。NiFi为所有接收,分叉,加入克隆,修改,发送和最终在达到其配置的最终状态时丢弃的数据提供细粒度数据来源。
有关...
1.1NIFI是什么|Whatis
Apache NIFI
NIFI的设计目标,是让各系统之间自动进行数据流交换。企业通常有多个系统,有的系统生产数据,有的系统消费数据。dataflow。
dataflow涉及到的主要问题:
系统失效:网络失效,硬盘失效,软件崩溃,操作人员犯错。
数据过多来不及处理:
数据边界问题:数据太大,太小,
NiFi是一款功能强大的开源的ESB软件,适合多个系统间的数据流转以及大数据的处理。这里记录下RouteOnAttribute(路由属性)的使用方法。
首先,拖拽一个Processor组件,选择RouteOnAttribute。如图1所示:
右键选中Configure选项进行配置,如图2所示:
重点是属性的配置,如图3所示:
其中,Propo
NiFi文档分析
您可以访问有关处理器,控制器服务和报告任务的版本的信息。当您在具有运行不同版本组件的多个NiFi实例的集群环境中工作或者已升级到较新版本的处理器时,此功能尤其有用。“添加处理器”,“添加控制器服务”和“添加报告任务”对话框包括一个标识组件版本的列,以及组件的名称,创建组件的组织或组以及包含该组件的NAR包。
画布上显示的每个组件也包含此信息。
排序和过滤组件
添加组件时...
Apache NiFi 是一个易于使用、功能强大而且可靠的数据拉取、数据处理和分发系统,用于自动化管理系统间的数据流。
它支持高度可配置的指示图的数据路由、转换和系统中介逻辑,支持从多种数据源动态拉取数据。
NiFi原来是NSA(National Security Agency [美国国家安全局])的一个项目,目前已经代码开源,是Apache基金会的顶级项目之一
NiFi基于Web方式工作,后台在服务器上进行调度。
用户可以为数据处理定义为一个流程,然后进行处理,后台具有数据处理引擎、
上篇文章理清楚了NIFI WAL机制实现的大致流程,但是想一想的话,还只是实现了在操作数据之前先写日志,但是每次每次修改都写日志,都得持久化到文件中,那效率这块儿是如何保证的呢?
带着这个疑问,继续跟着上篇文章暂时搁置的 update 方法来一探究竟。
进入到 SequentialAccessWriteAheadLog 成员变量 journal
在checkpoint的时候,会对它进行更新,同时把 streamPool 也传了进去。
接着看update方法,实现选择 LengthDelimit.
etl工具nifi使用系列(一):nifi介绍及基本概念
etl工具nifi使用系列(二):简单数据处理processor的使用
etl工具nifi使用系列(三):关于nifi Expression Language 表达式
etl工具nifi使用系列(四):打印日志调试
etl工具nifi使用系列(五):与外部交互(HDFS、mysql、kafka)
etl工具nifi使用系列
A.可视化的UI界面,各个模块组件之间高度可配置,且每个流程都有监控,可以通过界面直观的看到各个数据处理模块之间的数据流转情况,分析出程序性能瓶颈。
B.数据流可以在UI界面自由拖拽和拓展,各模块之间相互独立,互不影响。
C.可以在处理耗时的地方创建多个处理模块并行执行,提升处理速度。类似于代码中加入了多线程,但相对于修改代码,界面配置操作十分简单。
D.修改方便,...
fg19941101:
Apache NIFI FlattenJson
m0_53932011:
带你体验Apache NIFI新建数据同步流程(NIFI入门)
soscn1:
了解Apache NiFi最大线程池和处理器并发任务设置
酷酷的诚(公众号:Panda诚):
了解Apache NiFi最大线程池和处理器并发任务设置
lb13140510565: