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)} |