规则引擎在数据分析中的作用

简介:

前言:规则引擎通过将业务规则和开发者的技术决策分离实现了动态管理和修改业务规则而又不影响软件系统的需求。以下通过实例对基于SQL 查询、自定义规则等一系列场景来说明规则引擎在数据分析中的应用。

在现代的企业级项目开发中商业决策逻辑或业务规则往往是硬编码嵌入在系统各处代码中的。但是外部市场业务规则是随时可能发生变化的这样开发人员必须时刻准备修改、更新系统,降低了效率。在这种背景下规则引擎应运而生,它通过将业务规则和开发者的技术决策分离实现了动态管理和修改业务规则而又不影响软件系统的需求。规则引擎具有广泛的应用领域同样也适用于数据分析和清洗。

 

假设我们有以下所示的一个表结构:

字段名

字段类型

说明

Name

Varchar50

姓名

Sex

Int

性别(1:男,0:女)

Department

Varchar50

部门

Salary

Int

工资

 

我们可能需要判断工资(Salary)字段不超过5000,按照此规则对该表中的数据进行清洗分析。

 

在数据分析中数据通常存储在如上所示的数据库表中,并且数据量也是比较大的。不可能一次性地导入到内存中供规则引擎使用。因此我们将通过规则引擎来分批读取并导入数据到内存中。

 

通过规则引擎进行数据分析将遵从以下所示的结构步骤:

1:需分析的数据

2:数据读取

3:将数据写入内存

4:规则库

5:规则引擎

6:分析结果

工作原理:

首先从需要分析的数据库中按照批次读取数据,然后将读取的数据放入内存中,再按照规则对内存中的数据进行过滤分析,当内存中的数据分析完成后,清空内存中的数据,再读取下一批数据进来进行新一轮的分析,知道所有的数据处理完毕为止。

 

规则库

用于判断工资的业务内容我们用旗正规则引擎提供的自然语言来进行表示,从而构成规则库,如下图所示:

fded9d90291559a22134b9e56c139c5fedd49e38

上面的例子中,我们主要做的工作就是不停的判断人员的工资情况,大于5000就发出警告信息,并把该条数据提取出来,存放其他指定的地方。

 

下面我们再用一个实际的例子来做一个规则引擎的示例,说明如何用旗正规则引擎来表示数据分析中的业务规则

在车管所电子档案系统中存在如下所示的数据表:PF_Table,用于记录档案图片的基本信息,我们对该表进行数据分析,忽略数据的完整性和有效性,我们只看有多少数据违反了以下说明的业务规则

 

fNo(指标)

paNo(页号)

Path(存放路径)

caNo(文件)

baNo(业务)

0217233

1

\2008032403\0217233\1.jpg

406101

2008032403

0217233

2

\2008032403\0217233\2.jpg

406102

2008032403

0217233

3

\2008032403\0217233\3.jpg

406105

2008032403

0217233

4

\2008032403\0217233\4.jpg

406108

2008032401

 

业务规则

1path由三部分组成:业务类型,指标档案,页号。

业务类型:必须与baNo一致

指标档案:必须与fNo一致

页号:必须与paNo一致

我们可以把旗正规则引擎对数据的分析简单概括为3个步骤

1:规则引擎从数据库中读取数据,并将读取的数据加载到内存中

2:取出内存中的数据进行分析,校验,处理

3:返回结果数据,将脏数据存储到指定的地方或者输出其他的文件和信息

 

第一步:取出数据

这个过程主要是通过规则引擎从数据库中读取数据,并把数据存放到内存中,旗正规则引擎规则引擎提供一个独特的功能,就是允许规则引擎直接访问数据库,而不需要其他任何外部程序代码来协助。过程和传统的编码方式一样,编写SQL查询语句,然后执行查询,将结果存入内存。

对一个数据库进行分析的过程中,数据量肯定是巨大的,所以在编写SQL语句读取数据这个环节,我们要做一个说明:它可能需要DBA或者是专业的数据库操作人员来完成,这个和规则引擎没有关系,规则引擎只负责执行查询,以及后续动作。

在这里我仅用一个简单的查询语句来说明旗正规则引擎提供的这个功能:

select top(10) * fromPF_Table

这表示我只读取PF_Table数据表的前10条数据来进行处理

c8bf7bb5cef1147777372807691795d01086894c

 

通过规则引擎对象库中添加test.dbs数据库连接对象,然后通过该连接就可以直接访问数据库,编写查询,插入,删除,更新等语句

SQL语句编写完成后,我们就可以在规则中执行该语句

33966f961b047f4c98edee5db185143833f5fe88

 

在规则包中添加一条规则,然后将复制的执行SQL的方法粘贴到规则的那么

c8bf7bb5cef1147777372807691795d01086894c

 

这样,当规则运行的时候就会执行该查询,同时会把查询得到的数据放入到内存中,在这里我们定义了内存表这个规则对象,可以直观的看到内存中的数据

第二步:数据分析处理

数据加载到内存中以后,我们需要取出来用配置好的规则来进行分析过滤

因为path3部分组成,每个部分都有对应的规则,所以我们先把这3部分按照特定的字符来分开,然后看第一部分是否与业务类型一致,第二部分是否与指标档案,第三部分的数字是否与页号一致,如果任何一个不一致,那么该条数据是错误的数据

d621d6da71f9a88f8aaa0142402b7c7526bd6384

 

相关文章
|
人工智能 自然语言处理 搜索推荐
大模型应用产品「归一妙计」亮相,AI Agent落地广告投放场景
在通用L0级语言模型基础之上,结合领域知识训练出适配各应用场景的专属模型,将成为企业经营的“智慧大脑”。 在广告投放这一企业核心的营销场景中,「营销领域大模型」已成为引领行业变革的关键力量,它将重塑数字营销的内容生产方式、投放工作流、消费模式等等,进一步推动营销生态的发展和进化,让广告主的营销内容更丰富、投放更高效、转化更直观。 近期,归一智能正式发布了AI Agent应用产品「归一妙计」,这是一款基于「利欧归一」营销领域大模型,训练出的适配各媒体平台投放工作流的SEMGPT专属模型,能够为企业提供更加智能、精准和高效的AI广告投手服务。
1264 0
大模型应用产品「归一妙计」亮相,AI Agent落地广告投放场景
|
算法 Java JavaScript
规则引擎
我是阿里巴巴做规则引擎相关工作多年的java工程师一枚,本职工作就是通过规则引擎、规则管理平台等技术输出,来应对阿里巴巴复杂多变的上层规则相关业务的支持。限于技术保密、安全等因素,本文只讲一些个人对“规则引擎”的看法,欢迎大家一起探讨。
26757 1
|
NoSQL MongoDB 数据库
【MongoDB 专栏】MongoDB 的并发控制与锁机制
【5月更文挑战第11天】MongoDB的并发控制和锁机制保证数据一致性和性能。全局锁用于特殊情况如数据库初始化,限制并发性能;文档级锁提供更高的并发性,针对单个文档锁定。乐观并发控制利用版本号检查减少锁竞争。在分布式环境下,需协调多节点锁,优化包括合理设计数据模型、调整锁配置和利用分布式事务。未来,MongoDB将持续改进这些机制以应对复杂需求。了解并发控制原理对于数据库开发者至关重要。
627 2
【MongoDB 专栏】MongoDB 的并发控制与锁机制
|
人工智能 Cloud Native 调度
阿里云容器服务在AI智算场景的创新与实践
2024年云栖大会,我们总结过往支持AI智算基础底座的实践经验、发现与思考,给出《容器服务在AI智算场景的创新与实践》的演讲。不仅希望将所做所想与客户和社区分享,也期待引出更多云原生AI领域的交流和共建。
|
Java API
QLExpress功能清单
QLExpress从一开始就是从复杂的阿里电商业务系统出发,并且不断完善的脚本语言解析引擎框架,在不追求java语法的完整性的前提下(比如异常处理,foreach循环,lambda表达式,这些都是groovy是强项),定制了很多普遍存在的业务需求解决方案(比如变量解析,spring打通,函数封装,操作符定制,宏替换),同时在高性能、高并发、线程安全等方面也下足了功夫,久经考验。
21797 1
|
SQL 监控 大数据
通过Google Dataflow,我们能够构建一个高效、可扩展且易于维护的实时数据处理系统
【9月更文挑战第7天】随着大数据时代的到来,企业对高效数据处理的需求日益增加,特别是在实时分析和事件驱动应用中。Google Dataflow作为Google Cloud Platform的一项服务,凭借其灵活、可扩展的特点,成为实时大数据处理的首选。本文将介绍Dataflow的基本概念、优势,并通过一个电商日志分析的实际案例和示例代码,展示如何构建高效的数据处理管道。Dataflow不仅支持自动扩展和高可用性,还提供了多种编程语言支持和与GCP其他服务的紧密集成,简化了整个数据处理流程。通过Dataflow,企业可以快速响应业务需求,优化用户体验。
410 3
|
SQL 监控 大数据
"解锁实时大数据处理新境界:Google Dataflow——构建高效、可扩展的实时数据管道实践"
【8月更文挑战第10天】随着大数据时代的发展,企业急需高效处理数据以实现即时响应。Google Dataflow作为Google Cloud Platform的强大服务,提供了一个完全托管的流处理与批处理方案。它采用Apache Beam编程模型,支持自动扩展、高可用性,并能与GCP服务无缝集成。例如,电商平台可通过Dataflow实时分析用户行为日志:首先利用Pub/Sub收集数据;接着构建管道处理并分析这些日志;最后将结果输出至BigQuery。Dataflow因此成为构建实时数据处理系统的理想选择,助力企业快速响应业务需求。
667 6
|
机器学习/深度学习 存储 人工智能
构建基于AI的智能客服系统的技术探索
【6月更文挑战第6天】本文探讨了构建基于AI的智能客服系统,强调其在快速、准确、个性化响应客户方面的重要性。系统关键技术包括自然语言处理(NLP)、知识库管理、自主学习和更新以及多渠道支持。NLP使用深度学习模型理解用户输入,知识库存储解决方案,自主学习通过反馈和新数据优化性能。智能客服系统能提供高效、准确、个性化的服务,并具有良好的可扩展性,未来将在更多领域发挥作用。
|
监控 安全 算法
悬垂引用与临时对象在C++中的深入探讨: 风险、原因与预防策略
悬垂引用与临时对象在C++中的深入探讨: 风险、原因与预防策略
420 3
|
机器学习/深度学习 算法 数据可视化
Python 机器学习算法交易实用指南(三)(2)
Python 机器学习算法交易实用指南(三)
206 0