这不大专栏完结了,不知道写啥了,就在唠嗑群里问了问大家想看什么内容。这不是提起了这个规则引擎这个话题嘛,所以我来随便聊几句。
因为本人并没有规则引擎相关的实操经验(就是知道有这么个东西而已,没有真的用过),内容主要来自于网上看到的东西,准确性方面还是多方核对过可以保障的,实操相关的内容说不了一点。
首先来介绍规则引擎,这是一种用于管理和执行业务规则的软件工具,它允许用户通过预定义的规则来自动化决策过程。
一个合格的规则引擎,是可以支持规则的定义、管理和执行的,我们能够借助规则引擎根据输入数据和预设规则进行逻辑判断和决策。通常来说应用于风控、审批、自动化流程等领域,例如在金融风控中根据用户行为和信用评分进行风险评估等。
指标库则是一个用于存储和管理指标的系统,指标是用于评估和衡量特定对象或过程的量化工具。
指标库顾名思义,支持指标的创建、编辑、删除和查询,能够帮助用户定义和管理各种评估指标。主要用于数据分析、性能评估和业务监控,例如在项目管理中跟踪进度指标或在营销中评估活动效果。
因为两种方式各有优劣,实操的过程中,很有可能指标库和规则引擎是需要同时使用的。
如果业务需要复杂的逻辑判断和实时决策,例如风控、审批、自动化流程等,规则引擎是更好的选择;如果业务需要对数据进行量化分析和评估,例如性能监控、数据分析等,指标库是更好的选择。
用通俗的话来说,规则引擎适合实时决策,指标库适合数据分析。
对于数据分析师来说,我们接触得更多的是指标库而不是规则引擎。
接下来介绍一些工具和软件,首先是指标库相关的工具:
EQUINOX软件
这是针对电子图书馆服务开发的指标库软件。它允许管理者定义图书馆的使命、目标和指标,并将指标与之关联。指标集灵活,可自定义、修改或删除。数据可手动输入或从其他系统下载,支持与其他文档链接,可多层级定义指标,能图形化展示指标时间序列及阈值,用于辅助图书馆管理者进行决策支持。
OpenDigger
主要面向开源协作数字生态。它提供信息服务模块,包括可视化数据服务和数据开放接口。
用户可在CodePen环境中输入开源项目名称,一键生成对应指标或分析模型的可视化分析。数据开放接口支持多种参数配置和自定义聚合方式,还提供Node.js和Python的API及Jupyter Notebook实例,以及CLI工具,方便灵活的数据分析工作,同时会将活跃项目和开发者的历史指标数据按月生成并发布到云存储服务中。
Indicator Go
这是一个用Golang编写的模块,提供丰富的技术分析指标、策略和回测框架。它在v2版本中进行了重大改进,包括代码质量提升、测试性增强、数据处理优化、指标和策略可配置性提高以及对Golang泛型的支持,适用于进行技术分析和策略开发。
TA-Lib
主要用于金融市场的技术分析。它包含200多种指标,如ADX、MACD、RSI等,还支持烛台图模式识别。核心代码用C/C++编写,提供Python API,开源且稳定,可集成到其他应用程序中。
因为我并没有实操上手用过,大家需要自行判断一下是否符合自己的需求。
接下来是一些常用的规则引擎。
这些工具主要是java生态的,更加不熟悉了,也是仅供大家参考。
Drools
特点:
强大的开源规则引擎,基于 Rete 算法实现,支持复杂规则推理、决策表、规则流等。它提供了 Drools Workbench,这是一个图形化界面工具,方便用户管理和编辑规则。Drools 还支持与 Java 应用的无缝集成,通过 Kie API 进行调用。
适用场景:
适用于业务规则复杂、需要高性能处理的场景,如风险评估、信用评分等。
缺点:
学习曲线较陡,需要一定的技术背景来掌握其复杂的规则定义和管理方式。
Easy Rules
特点:
轻量级的 Java 规则引擎,基于简单的 POJO(Plain Old Java Object)和注解定义规则,易于学习和使用,适合中小型企业或项目。
适用场景:
适用于规则逻辑相对简单、对性能要求不极端的场景,可以快速集成到现有项目中。
缺点:
不适用于复杂规则场景,功能相对有限。
OpenL Tablets
特点:
基于决策表的规则引擎,允许用户使用 Excel 定义规则,直观且用户友好,便于与业务人员协作。
适用场景:
在金融、保险等需要频繁与业务人员沟通规则定义的行业中应用广泛。
缺点:
对于非表格形式的复杂规则定义支持不够灵活。