將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...