您的位置:

阿里规则引擎qlexpress

一、简介

阿里规则引擎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:CreditScore<60&&WithdrawAmount>5000,
	//处理方式
    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:CreditScore<60&&WithdrawAmount>5000,
	//处理方式
    action:ManualReview,
    //规则状态
    status:RuleStatus
}