主要观点:近实时决策系统对现代商业应用至关重要,集成 Apache Spark(Streaming)和 Drools 可提供可扩展性和灵活性,以高效处理大规模基于规则的决策。通过贷款审批系统展示了它们的集成,包括架构、实现和优势。
关键信息:
- 问题陈述:使用 Spark 用户自定义函数(UDFs)应用众多规则会因大量 if-else 逻辑而变得复杂且难以维护。
- 解决方案:Drools 通过 DRL 文件或决策表提供解决方案,可在类路径中动态管理和应用规则。
- 用例:在从上游系统流式传输数据时,Drools 基于定义的规则进行简单决策。
- 实现概述:在 IntelliJ 中实现为独立程序,使用特定库版本。
- 系统架构概述:包括输入数据、Apache Spark 处理、Drools 引擎应用规则及输出结果等组件,展示了数据流程和工作流。
- 具体步骤:定义 ApplicantForLoan 模型、Drools 规则、配置 Drools 知识库、创建规则应用工具、实现 Spark 驱动程序,并展示了原始数据帧、批准和未批准申请人的结果。
- 应用领域:适用于金融、航空、医疗、能源和电信等多个领域,可用于 Spark Streaming 实时或近实时处理数据。
- 结论:演示了 Apache Spark 和 Drools 的集成可简化基于规则的决策,如基于信用评分的贷款审批,完整代码和设置可参考 GitHub 仓库。
重要细节: - Drools 6 支持在 kmodule.xml 文件中声明式配置知识库和会话,创建 KieBase 资源密集,推荐缓存 KieBase 及使用 KieContainer。
- 在 Spark 驱动程序中,通过广播规则、处理数据帧和应用规则,展示了批准和未批准申请人的结果。
- 输入数据为 18 条记录的模拟数据,实际应用中规则可存储在数据库中进行动态更新。
- GitHub 仓库已被归档在 Arctic Code Vault 中,供未来参考。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。