大大毛
的筆記
  DDM's Note
哪怕沒有辦法一定有說法,
就算沒有鴿子一定有烏鴉,
固執(zhí)無罪 夢想有價,
讓他們驚訝.
posts - 14, comments - 23, trackbacks - 0, articles - 58
::
首頁
:: ::
聯(lián)系
:: ::
管理
RouteOnAttribute的用法
Posted on 2019-04-11 16:55
大大毛
閱讀(1865)
評論(0)
編輯
收藏
所屬分類:
Nifi
RouteOnAttribute
這個組件的是用途是根據(jù)Attribute的值進(jìn)行Route分流,從輸入輸出的角度來看,它可以把一個Input分成多個Output出來,它的分支不同于程序中的Switch語法,而等效于多條的IF語句,也就是說若Output的條件全部都符合,它是可以把1個輸出Copy到多個輸出的,所以它也可以用于條件復(fù)制的應(yīng)用上。
關(guān)于資料落地的文章里我有提到過Route的使用范圍,它應(yīng)該用在能夠以Key做分支條件的場景,也就是說相同的Key一定會走固定的Output出來,這樣才不會出現(xiàn)資料亂序的狀況。下面有兩個示例,第一個是典型的分支用法,第二個比較有意思,它的作用相當(dāng)于Oracle中的Decode語法
示例1
使用Route做流程的分支,根據(jù)一個叫SO的欄位是否為空決定走不同的流程(左右的UpdateAttribute可以把它們想象成兩個完全不同的處理流程來看)
RouteOnAttribute
,
作用是根據(jù)Attribute的Bool值來決定是否進(jìn)入該分支
HasSO / NonSO
:這是我自行定義的兩個Route名稱 (不是屬性名稱),Value是一個表達(dá)式,若它的值=true,則Output會進(jìn)該Route
Nifi的表達(dá)式語法不怎么好寫,官方的文檔上有些東西并不支持 (不確定是不是Nifi版本緣故)。這里還是可以看得出來就只是判斷一個叫SO的Attribute的值是否為空 --- 還記得有些Processor里面還有叫"Null Value Representation"的屬性吧,若是那里配成"null"那這里也要與之匹配。
經(jīng)過該P(yáng)rocessor處理后,SO為空的會走右端邏輯,而不為空的則會走左段邏輯,同時它會加多一個叫"RouteOnAttribute.Route"的Attribute,內(nèi)容即為Route名稱
示例2:
根據(jù)多個欄位是否有值(不為空),讓它們能夠進(jìn)入不同的Route,后面再根據(jù)Route名稱去動態(tài)的取值,它的特點(diǎn)是Nifi流程并沒有出現(xiàn)分支(Connection上是勾了所有的Route),只是為不同的數(shù)據(jù)設(shè)上了一個變量名稱
RouteOnAttribute
,
借用
分支名稱在后面搞事,這里相當(dāng)于是給資料加上了一個變量名稱
MO / MODELFAMILY / UPN / USN
:這是定義的四個Route名稱,判斷條件都很簡單,就只是不為空
值得注意的是這4個條件并非是互斥條件,比如有一筆資料它的MO、USN都不為空,那么就會同時進(jìn)入兩個Route進(jìn)行輸出,所以
Output筆數(shù)會是2
下面這是進(jìn)入UPN這個Route后的資料上的Attribute: "RouteOnAttribute.Route"
UpdateAttribute
,
比較精彩的用法
mqttTopic
:這是定義的一個MQTT的Topic變量,它的內(nèi)容是可變動的,會根據(jù)Route的不同產(chǎn)生不同的結(jié)果
MO/MODELFAMILY/UPN/USN這4個條件有任一不為空,則會要求推送Topic: xxxx/【Type】/【Value】/yyyy
【Type】: 為"mo"、"modelfamily"、"upn"、"usn"這四個值之一
【Value】: 為MO/MODELFAMILY/UPN/USN這四個Attribute的取值 (即 ${MO} / ${MODELFAMILY} / ${UPN} / ${USN} 的值),這里使用了雙層
${${"RouteOnAttribute.Route"}}
的取值方法來實(shí)現(xiàn)動態(tài)的取用變量值
新用戶注冊
刷新評論列表
只有注冊用戶
登錄
后才能發(fā)表評論。
網(wǎng)站導(dǎo)航:
博客園
IT新聞
Chat2DB
C++博客
博問
管理
相關(guān)文章:
Nifi同步數(shù)據(jù)的幾種方法
RouteOnAttribute的用法
Kafka資料落地至MariaDB (帶Key的新增、修改和刪除)
Kafka資料落地至MariaDB (帶Key的新增、修改)
Oracle資料推送MQTT
Powered by:
BlogJava
Copyright © 大大毛
日歷
<
2025年7月
>
日
一
二
三
四
五
六
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
公告
果然是不能想得太好。
隨筆分類
(4)
VB培訓(xùn)(4)
文章分類
(59)
JAVA
(6)
Spring
(3)
Hibernate
Struts
(12)
NET
VB
(2)
ASP
(1)
ASP.NET
(6)
HTML
(3)
400
(2)
I4.0
Nifi
(5)
Angular
(1)
SQL
(15)
常用算法
(1)
其它
(2)
積分與排名
積分 - 60890
排名 - 864
最新評論
1.?re: 手工添加MyEclipse的XML文件模板[未登錄]
請問,eclipse下面有沒有呢?現(xiàn)在想要實(shí)現(xiàn)eclipse的xml的模板進(jìn)行配置修改,簡單說,就是把新建時候的名字作為其中的一個tag;找了很久沒有找到方法
--allen
2.?re: 第二章 Visual Basic 基礎(chǔ)語法
受益匪淺,多謝!
--yuleself
3.?re: 數(shù)字填空
評論內(nèi)容較長,點(diǎn)擊標(biāo)題查看
--去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去去
4.?re: Checkbox聯(lián)動演示
dcdc
--dcd
5.?re: 利用TN5250NF下載檔案的自動化處理
請教若密碼要動態(tài)生成,是否有辦法呢?
謝謝
--江佳桂
i am ddm
主站蜘蛛池模板:
日韩一级视频免费观看
|
国产大片免费天天看
|
香蕉97超级碰碰碰免费公
|
亚洲AV无码专区亚洲AV伊甸园
|
一区二区免费电影
|
亚洲熟伦熟女新五十路熟妇
|
边摸边脱吃奶边高潮视频免费
|
日韩精品视频免费观看
|
国产精品无码亚洲精品2021
|
亚洲精品视频免费看
|
91av视频免费在线观看
|
亚洲成a人片在线观看中文app
|
久久www免费人成看片
|
亚洲人精品亚洲人成在线
|
免费被黄网站在观看
|
亚洲色欲久久久久综合网
|
国产免费MV大全视频网站
|
蜜臀AV免费一区二区三区
|
亚洲资源在线视频
|
久久久久久99av无码免费网站
|
久久夜色精品国产噜噜噜亚洲AV
|
美女视频黄的免费视频网页
|
91精品国产亚洲爽啪在线影院
|
h在线观看视频免费网站
|
亚洲国产成人精品无码区花野真一
|
久久久久亚洲AV无码专区网站
|
中国一级特黄的片子免费
|
久久亚洲AV成人无码电影
|
日韩欧美一区二区三区免费观看
|
性色av极品无码专区亚洲
|
久久精品国产亚洲Aⅴ香蕉
|
日本高清免费观看
|
亚洲中文字幕无码av
|
国产av无码专区亚洲国产精品
|
未满十八18禁止免费无码网站
|
亚洲中文字幕无码中文
|
亚洲日韩在线中文字幕第一页
|
久久99国产乱子伦精品免费
|
亚洲av无码专区在线电影
|
国产亚洲精品资在线
|
亚洲视频在线免费播放
|