帶有規則引擎的Apache NiFi

2021-08-28 03:16:14 字數 1686 閱讀 6934

將apachenifi和ruleengine結合起來很容易,也很有趣。您可以使用資料操作完成一些非常好的工作,我使用drools為此編寫了一些**。

這目前只適用於json流檔案。

(許可證:apache 2)

nifi-rule-engine-processor github

然後執行以下命令:

git clone

cd nifi-rule-engine-processor

mvn clean install package

cp nifi-ruleengien-processor-nar/target/nifi-ruleengien-processor-1.0.nar /path-to-nifi/lib/

重新啟動nifi。

例 建立乙個nifi流

getfile處理器

set屬性`源資料夾『:/some-project-path/in

ruleengineprocessor

設定屬性drl file path到/some-project-path/drl/business_object_json_test1.drl

putfile處理器

將財產「最大摺頁」設定為/some-project-path/out

image title

建立檔案和相關資料夾

image title

建立drl檔案/some-project-path/drl/business_object_json_test1.drl

package com.matrixbi.rules

import com.matrixbi.objects.businessobject

rule 「good morning」

when

b: businessobject()

eval( b.getasint(「time」) < 12 )

then

b.set(「greet」,」g00d morning 」 + b.get(「name」));

end

rule 「good afternoon」

when

b: businessobject()

eval(b.getasint(「time」) >=12 && b.getasint(「time」) < 16)

then

b.set(「greet」,」good afternoon 」 + b.get(「name」));

end

rule 「good night」

when

b: businessobject()

eval(b.getasint(「time」) >= 16)

then

b.set(「greet」,」good afternoon 」 + b.get(「name」));

end

建立乙個json測試檔案/some-project-path/in/business_object_json_test1.json

啟用所有並執行它。

結果 過了一會兒,你該看看business_object_json_test1.json在.。/some-project-path/out資料夾檔案。

image title

**image title結果

image title

mysql 規則引擎 為什麼使用規則引擎?

一天,朱斯參加了一場code review研討會。會上的一群人正在討論著如何對祖傳 進行變更,大家你一言,我一語,場面十分熱鬧!突然,只見人群中的乙個人滿面愁容,說道 昨天在專案中看到下面這樣一段 分支太多了!維護起來很煩啊!if day 周一 else if day 周二 else if day ...

規則引擎pyke

1.官網 2.安裝第三方包 pyenv global anaconda3 4.2.0 pip install htmltemplate 3.原始碼安裝pyke pyenv global anaconda3 4.2.0 cd pyke3 1.1.1 python setup.py build pyth...

規則引擎 easy rules

直接看官方的例子。經典的例子 大致的步驟 建立各種規則,即rule.可以通過 pojo 或 rulebuilder api 兩種方式建立。建立規則容器rules rules new rules 註冊建立的規則rules.add rule 建立流,即facts.流控制規則的引數輸入.facts fac...