`
NIIT_zhu
  • 浏览: 47773 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

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

阅读更多

 

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

 

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

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

 

 

字段名

字段类型

说明

Name

Varchar50

姓名

Sex

Int

性别(1:男,0:女)

Department

Varchar50

部门

Salary

Int

工资

 

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

 

 

 

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

 

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

 

   

 

    1:需分析的数据

 

    2:数据读取

 

    3:将数据写入内存

 

    4:规则库

 

    5:规则引擎

 

    6:分析结果

 

工作原理

 

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

 

 

 

规则库

 

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

 

 



 

 

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

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

在车管所电子档案系统中存在如下所示的数据表: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一致

 

 

 

 

 

 

 

我们可以把VisualRules对数据的分析简单概括为3个步骤

 

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

 

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

 

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

 

 

 

第一步:取出数据

 

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

 

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

 

在这里我仅用一个简单的查询语句来说明VisualRules提供的这个功能:

 

select top(10) * from PF_Table

 

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

 

 



 

 

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

 

 

 

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

 



 

 

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

 





 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

第二步:数据分析处理

 

 

 

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

 

 

 

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

 

 

 

从上面的规则配置来看,规则实际上是对业务知识的抽象其表示形式与具体数据库无关因此用户在数据质量分析过程中编写的规则能够在其他相似的业务环境下复用。假如以后需要对其他的表进行数据监控。这种情形下, 用户无需重新编写规则只需利用先前在数据分析中定义好的VisualRules规则

 

 

 

 

 

 

 

    最后, 我们可以看出基于VisualRules规则引擎的数据分析系统具有以下优点

 

 

 

 

 

 

 

1:规则可以从所有应用程序具体化到一个集中式的规则库。在这个规则库中, 可以使用专门的规则管理工具( TemaServer) 来管理这些规则

 

 

 

2规则本身是动态的, 允许在不重新构建系统组件的情况下在整个系统实现业务规则的变化

 

 

 

3VisualRules的扩展性允许用户自定义新的运算函数和清洗方法

 

 

 

4基于VisualRules规则的数据分析可以实现良好的交互性

 

 

 

5:以VisualRules表示的规则灵活的改变和很好的复用

 

 

 

 

 

 

  • 大小: 11.5 KB
  • 大小: 16.4 KB
  • 大小: 34.2 KB
  • 大小: 19.4 KB
  • 大小: 28.9 KB
分享到:
评论

相关推荐

    数据分析平台演进及数据分析方法应用(蚂蚁金服).pdf

    ② 数据科学引擎:数据科学引擎主要是做分析,做业务洞察这一类,今天的数据业务平台可能更多的就是依赖于数据科学引擎,后面会详细介绍; ③ 决策服务引擎:决策引擎比如说给大家举一个场景,芝麻分大家都知道,那...

    大数据时代下数据分析技术研究.pdf

    在对数据分析时, 要将没有用的信息删除,对有用的信息进行深层分析和处理, 并运用到实际生活和工作中,发挥数据的各种优势。 2.2 大数据的分析模式 根据数据的来源对其进行划分,可以将大数据分为以下几 种: 我国...

    数据分析与挖掘感悟.docx

    数据挖掘在未来的发展趋势上,在我看来,web网路中数据挖掘的应用,特别是在互联网上建立数据挖掘服务器,与数据库服务器配合,实现数据挖掘,从而建立强大的数据挖掘引擎与数据挖掘服务市场。融合各种异构数据的...

    大数据分析平台.docx

    大数据分析平台全文共4页,当前为第1页。大数据分析平台全文共4页,当前为第1页。一、数据分析平台层次解析 大数据分析平台全文共4页,当前为第1页。 大数据分析平台全文共4页,当前为第1页。 大数据分析处理架构图 ...

    基于BOSS直聘“数据分析师”职位信息的爬虫实现、数据分析、数据可视化及机器学习预测与结果分析。.zip

    爬虫(Web Crawler)是一种自动...爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。

    python爬虫 豆瓣电影Top250数据分析与可视化(应用Flask框架、Echarts、WordCloud等技术).zip

    爬虫(Web Crawler)是一种自动...爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。

    面向大数据的规则引擎驱动下信息分类方法.pdf

    面向大数据的规则引擎驱动下信息分类方法.pdf

    爬虫+数据分析实战项目.zip

    爬虫(Web Crawler)是一种自动...爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。

    recruit 招聘爬虫+数据分析.zip

    1.爬虫: 采用Scrapy 分布式爬虫...爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。

    Python 入门爬虫和数据分析实战.zip

    爬虫(Web Crawler)是一种自动...爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。

    爬虫+数据分析可视化.zip

    爬取的网站有:知乎,淘宝,新浪...爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。

    java爬虫与ES数据分析.zip

    如果您下载了本程序,但是该程序...爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。

    Python爬虫和Python数据分析小项目.zip

    爬虫(Web Crawler)是一种自动...爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。

    qq说说爬虫+简单的数据分析.zip

    爬虫(Web Crawler)是一种自动...爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。

    python-爬虫-web-数据分析.zip

    爬虫(Web Crawler)是一种自动...爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。

    我通过爬虫爬取了来自安居客二手房网站中上海二手房的数据,并通过机器学习方法进行数据分析.zip

    爬虫(Web Crawler)是一种自动...爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。

    Bilibili排行榜-爬虫和数据分析实战.zip

    爬虫(Web Crawler)是一种自动...爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。

    开发 bilibili 网站爬虫,大数据分析研究.zip

    爬虫(Web Crawler)是一种自动...爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。

    基于豆瓣影视数据(不完整)的影视大数据分析平台.zip

    爬虫(影视数据和用户数据),...爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。

    爬虫与ES数据分析的实现.zip

    如果您下载了本程序,但是该程序...爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。

Global site tag (gtag.js) - Google Analytics