欢迎来到天天文库
浏览记录
ID:50433549
大小:134.23 KB
页数:5页
时间:2020-03-09
《规则引擎在数据分析中的应用.docx》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、规则引擎在数据分析中的应用前言:规则引擎通过将业务规则和开发者的技术决策分离,实现了动态管理和修改业务规则而又不影响软件系统的需求。以下通过实例对基于SQL查询、自定义规则等一系列场景来说明规则引擎在数据分析中的应用。在现代的企业级项目开发中,商业决策逻辑或业务规则往往是硬编码嵌入在系统各处代码中的。但是外部市场业务规则是随时可能发生变化的,这样开发人员必须时刻准备修改、更新系统,降低了效率。在这种背景下,规则引擎应运而生,它通过将业务规则和开发者的技术决策分离,实现了动态管理和修改业务规则而又不影响软件系统的需求。规则引擎具有广泛的应用领域,同样也适用于数据分析和清洗。假设我们
2、有以下所示的一个表结构字段名字段类型说明NameVarchar(50)姓名SexInt性别(1:男,0:女)DepartmentVarchar(50)部门SalaryInt工资我们可能需要判断工资(Salary)字段不超过5000,按照此规则对该表中的数据进行清洗分析。在数据分析中,数据通常存储在如上所示的数据库表中,并且数据量也是比较大的。不可能一次性地导入到内存中供规则引擎使用。因此我们将通过规则引擎来分批读取并导入数据到内存中。通过规则引擎进行数据分析将遵从以下所示的结构步骤:1:需分析的数据2:数据读取3:将数据写入内存4:规则库5:规则引擎6:分析结果工作原理首先从需要
3、分析的数据库中按照批次读取数据,然后将读取的数据放入内存中,再按照规则对内存中的数据进行过滤分析,当内存中的数据分析完成后,清空内存中的数据,再读取下一批数据进来进行新一轮的分析,知道所有的数据处理完毕为止。规则库用于判断工资的业务内容我们用VisualRules提供的自然语言来进行表示,从而构成规则库,如下图所示:上面的例子中,我们主要做的工作就是不停的判断人员的工资情况,大于5000就发出警告信息,并把该条数据提取出来,存放其他指定的地方。下面我们再用一个实际的例子来做一个规则引擎的示例,说明如何用VisualRules来表示数据分析中的业务规则在车管所电子档案系统中存在如下
4、所示的数据表:PF_Table,用于记录档案图片的基本信息,我们对该表进行数据分析,忽略数据的完整性和有效性,我们只看有多少数据违反了以下说明的业务规则fNo(指标)paNo(页号)Path(存放路径)caNo(文件)baNo(业务)021723312008032403 2172331.jpg4061012008032403021723322008032403 2172332.jpg4061022008032403021723332008032403 2172333.jpg4061052008032403021723342008032403 2172334
5、.jpg4061082008032401业务规则1:path由三部分组成:业务类型,指标档案,页号。业务类型:必须与baNo一致指标档案:必须与fNo一致页号:必须与paNo一致我们可以把VisualRules对数据的分析简单概括为3个步骤1:规则引擎从数据库中读取数据,并将读取的数据加载到内存中2:取出内存中的数据进行分析,校验,处理3:返回结果数据,将脏数据存储到指定的地方或者输出其他的文件和信息第一步:取出数据这个过程主要是通过规则引擎从数据库中读取数据,并把数据存放到内存中,VisualRules规则引擎提供一个独特的功能,就是允许规则引擎直接访问数据库,而不需要其他任何
6、外部程序代码来协助。过程和传统的编码方式一样,编写SQL查询语句,然后执行查询,将结果存入内存。对一个数据库进行分析的过程中,数据量肯定是巨大的,所以在编写SQL语句读取数据这个环节,我们要做一个说明:它可能需要DBA或者是专业的数据库操作人员来完成,这个和规则引擎没有关系,规则引擎只负责执行查询,以及后续动作。在这里我仅用一个简单的查询语句来说明VisualRules提供的这个功能:selecttop(10)*fromPF_Table这表示我只读取PF_Table数据表的前10条数据来进行处理通过规则引擎对象库中添加test.dbs数据库连接对象,然后通过该连接就可以直接访问数
7、据库,编写查询,插入,删除,更新等语句在SQL语句编写完成后,我们就可以在规则中执行该语句在规则包中添加一条规则,然后将复制的执行SQL的方法粘贴到规则的那么中这样,当规则运行的时候就会执行该查询,同时会把查询得到的数据放入到内存中,在这里我们定义了内存表这个规则对象,可以直观的看到内存中的数据第二步:数据分析处理数据加载到内存中以后,我们需要取出来用配置好的规则来进行分析过滤因为path由3部分组成,每个部分都有对应的规则,所以我们先把这3部分按照特定的字符来分开,然后看第一部
此文档下载收益归作者所有