一、簡介
阿里規則引擎qlexpress是阿里巴巴集團出品的一款極其靈活的規則引擎,可在運行時解析規則,無需重啟服務,支持動態新增、修改、刪除規則,可以滿足各種場景下的業務規則需求。
Qlexpress採用DRule(自動化決策規則)和DTable(自動化決策表)兩種語言來編寫規則。DRule基於自然語言描述場景,規則本身具有很強的可讀性;DTable基於類似Excel表格的形式,可實現批量處理。
二、使用場景
阿里規則引擎qlexpress有很多使用場景,例如基於用戶行為進行推薦系統、基於數據特徵進行分類系統、基於事件的風控監測等。
三、DRule規則語言示例
/** * 滿100-50元優惠券 * Rule Name: FullReductionCoupon * 規則名稱:滿100-50元優惠券 * 規則描述:購買金額滿100元,可以獲得50元優惠券 */ priority:1 //規則優先級,可選項 //規則條件 condition: orderAmount >= 100 //規則結論 conclude: result = 50
上面示例中,condition表示規則條件,即當訂單金額達到100元時,就能夠觸發優惠券的發放;conclude表示規則結論,即滿足條件後的優惠券金額為50元。
四、DTable規則語言示例
//自動審核處理規則表 //當信用分小於60分、提現金額大於5000元時,進行人工審核處理 rule_table AutoWithdrawalCheckRule{ //規則id condition_code:RuleId, //規則名稱 condition_desc:RuleDesc, //優先級 priority:PriorityLevel, //規則適用地區 province:ProvinceCode, city:CityCode, district:DistrictCode, //規則條件 condition:CreditScore5000, //處理方式 action:ManualReview, //規則狀態 status:RuleStatus }
上面示例中,代表一個自動審核處理規則表,condition表示規則條件,即當信用分小於60分、提現金額大於5000元時,就需要進行人工審核處理;action表示處理方式,即需要進行人工審核。
五、規則引擎的實現
規則引擎的實現需要遵循以下步驟:
1、將規則表達為DRule或DTable語言。
2、將DRule或DTable語言編譯成規則表現。
3、將數據與規則運行時表現交互。
六、結語
阿里規則引擎qlexpress是一款功能豐富、使用靈活的規則引擎,可在多種業務場景下使用。DRule和DTable的規則語言編寫非常簡單,規則表達自然、易讀性高,非常適合業務人員、數據分析師使用。
完整代碼示例:
/** * 滿100-50元優惠券 * Rule Name: FullReductionCoupon * 規則名稱:滿100-50元優惠券 * 規則描述:購買金額滿100元,可以獲得50元優惠券 */ priority:1 //規則優先級,可選項 //規則條件 condition: orderAmount >= 100 //規則結論 conclude: result = 50
//自動審核處理規則表 //當信用分小於60分、提現金額大於5000元時,進行人工審核處理 rule_table AutoWithdrawalCheckRule{ //規則id condition_code:RuleId, //規則名稱 condition_desc:RuleDesc, //優先級 priority:PriorityLevel, //規則適用地區 province:ProvinceCode, city:CityCode, district:DistrictCode, //規則條件 condition:CreditScore5000, //處理方式 action:ManualReview, //規則狀態 status:RuleStatus }
原創文章,作者:AFAD,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/131109.html