商业智能BI中主动实时决策的实现方法研究
引言
商业智能(BI)以数据仓库为基础,通过OLAP和数据挖掘技术帮助企业获取信息和知识,从而能针对市场变化做出快速、准确的决策。它可以看作是决策支持技术的一个新的发展方向。决策支持系统起源于信息管理系统,它的发展大致历经了决策支持系统、智能决策支持系统、新决策支持系统和综合决策支持系统等阶段11】。从技术角度看,BI实际是新决策支持系统在商业领域的应用,二者从组成和目标来看是一致的。它们增强了现代企业的竞争力,但在技术上也存在两个重点问题需要解决:
(一)实时性闯题:随着市场竞争的加剧,信息的实时性越来越重要。“实时企业”的呼声越来越高,人们希望没有延迟地获取信息,并据此做出决策。由于数据仓库具有集成性和面向主题等优点,BI领域中的决策支持更多的是基于数据仓库而不是数据库。但数据仓库中大多是历史数据,且数据抽取周期较长。基于传统的数据仓库很难进行实时性处理。
(二)主动性问题:传统的商业智能大都是被动决策。决策者提出问题或目标,然后由系统运用OLAP和数据挖掘工具,辅助决策者进行决策。激烈的市场竞争要求现代企业越来越多的采取主动决策一可以在客户不必发出指令的情况下为其提供感兴趣的决策信息,甚至在决策实时性要求很高情况下替代人工决策。
本文重点研究了BI中实时性和主动性问题的解决方案,并在此基础上提出了一种新型BI体系结构。
1商业智能中实时性决策的实现
要实现BI中的实时性决策支持,关键在于保障决策所依据的数据的实时性。解决的方案主要有三种:
(1)BI中的决策仍然基于数据仓库(Dw),只是实时性决策所需数据要直接从业务数据库读取,其它数据仍来自DW。即0LAP和数据挖掘有DW和业务数据库多个数据源,这种方法不需要对现有的体系进行较大改动,简单易行,是目前解决实时性的主要方法。缺点是容易出现数据不统一、不一致等问题,尤其具有多个外部异构数据源时。
(2)提高DW的实时性,建设实时数据仓库。实时决策所需的实时性数据所占比例一般较少,对于这部分数据我们可以动态的集成:至IJDW中,实现实时性更新。主要的更新策略有以下几种:
①以传统的ETL为基础,只是把周期尽量缩短。可以采用增量更新的办法,每次只更新上次更新后发生变化的数据。这种方法每次更新都要进行源数据库的全局扫描,时间和资源消耗很大。若周期过短会严重影响至UOLTP系统的性能和正常操作。
②采用所谓的Capture,Transform and Flow(c1日技术:监控数据源,当感兴趣的数据变化时立即把它导入DW中[2]。具体做法有(i)编写专门的线程,一旦监控到感兴趣的数据变化,就启动DW的更新操作。这种方法实时性较高,缺点是线程不停的查询源数据库要消耗大量系统资源,适用于要更新的数据量很少的情况。(ii)利用源数据库中的触发器来实现。数据发生变化时,建立在数据所在表上的触发器被激活,通过执行SOL语句或调用相应的存储过程,负责完成DW的更新。这种方法简单易行,但源数据库和数据仓库必须在同一物理的数据库系统中,而且大量触发器的存在消耗了系统资源,也带来更新的并发性和完整性问题。(iii)基于规则的事件触发。用户通过规则定义工具定义好一系列的事件和规则,分别存放在事件库和规则库中。可以将业务数据库的某些特定的数据变化定义为事件;动作就是一个可以执行的程序或操作序列,用于实现数据仓库的更新。可以利用原有的ETL工具来实现;规则可以采用主动规则,又称为ECA(Event?Condition?Action)规则,它由事件、条件和动作三部分组成。当定义的事件发生,如果条件得到满足,即执行定义的动作[3,4]。事件可以通过监控数据库事务日志来实现检测。现在的数据库系统都支持事务日志,日志文件中记录了数据库的每一个数据变化。当检测到事件发生,就在规则库中寻找与之匹配的规则,若有多条规则被触发时,可以按照某种冲突解决机制选取规则,并按照规则动作部分的定义进行数据更新。这种方法效率高,较好的解决了并发性和完整性问题。
③通过源数据库上的应用程序来实现数据仓库的实时更新。当业务事件完成后,应用程序将有关数据在写入业务数据库的同时,也把这些数据经过转换、集成载入DW。这种方法占用资源较少,实时性最高。但增加了应用程序的复杂性和编写难度。而且当具备多个外部异构数据源时,容易造成数据的不一致性和并发操作的问题。
(3)引入0DS技术。ODS(Operational Data Store)即操作犁数据存储,用于实现对业务数据库中的实时或准实时数据的暂时存储。0Ds的数据具有面向主题、集成的、可变的和实时或接近实时的4个基本特征[5]。ODS可以看作是介于DB和DW之间的一种数据存储技术。可以在常规的、静态的Dw和业务系统之间,建立一个实时的分区(ODS系统)。业务系统产生的数据首先通过某种实时更新策略进入ODS。ODS中只保留近期数据,超过期限的数据作为历史数据被ETL导入数据仓库。用户可以直接在ODS上进行即时的OLAP和实时性决策。
由于0DS中的数据也是面向主题和集成的,所以减轻了Dw导入数据的工作和数据的管理难度;即时OLAP和战术性决策建立在ODS上,减轻了Dw的负担,并且因为ODS数据量相对较少,查询和处理的效率高。
2商业智能中主动决策的实现
实现主动决策的关键是系统要有一种主动推理的机制,能够在特定条件下(如特定数据的变更、周期性系统中的时间到、系统指标达到一定的阂值等)被触发执行,从而主动为客户提供决策信息。实现主动决策的途径主要有三种:
(1)直接利用触发器完成。在感兴趣的数据所在的表上建立触发器,当数据变化时触发器通过执行SOL语句或调用存储过程实现OLAP和推理。由于SQL语言功能简单,只能实现一些较为简单的推理决策[6]。
(2)编写专门的线程,一旦它监控到感兴趣的事务或数据变化,就启动相关的分析、推理。Agent技术在这种方法中有很大优势,缺点是线程不停的查询要消耗大量系统资源。
(3)利用分析规则实现主动决策。分析规则发展自主动规则,它扩展了主动规则的结构,能够模拟分析人员进行数据多维分析和决策[3,7]。一个完整的分析规则由5个部分组成:事件、基本条件、分析图、基本维度和动作。事件有绝对事件(如某商品的价格变化)、周期性时间事件(如每个月底)和相对时间事件(如某商品调价后两星期)三类;动作部分直接执行一个事务,可以是直接执行0LTP操作,也可以向用户提供决策信息;基本维表示要对其实例进行分析比较的维(如商品是否降价的问题中,就应把商品维定义为基本维,因为将对指定的商品进行分析);分析图是多维分析的数据立方体集,它的分析结果足执行动作的依据;基本条件决定是否对数据立方体进行多维分析。分析规则的语法描述如下:
DEFINE Rule<rule name>[For Primary dimension】
On<Event> [if<primary_condition>】then 【evaluate<analysis_graph>】 execute<action>(Based on evaluate?result) 与主动规则相比,分析规则增加了一些成分,主要是分析图。增强了它的分析推理能力。分析规则中事件和动作是必不可少的。这时它就退化为主动规则。当某一事件发生并被检测到以后,与这一事件有关的分析规则被激活。若有多条规则同时被激活,则按照冲突解决方案从中选取规则来执行。执行时首先根据基本条件判断是否需要先对分析图中的数据立方体集进行分析。如需要则根据分析的结果执行动作;如不需要,直接执行动作。执行过程如下图: 图1基于分析规则的主动决策
基于分析规则的主动推理可以直接在Dw中利用一系列触发器和相关表来完成[3];也可以由某种面向对象的程序设计语言实现,充分利用其继承性、封装性和消息传递机制等特点。另一种较好的办法是由AI专用语言,如PROLOG实现。PROLOG有一套完善的推理机制和动态数据库来实现基于分析规则的推理及中间结果的存储;在此基础上还可以利用知识库和推理机扩展BI的决策能力。
3一种具备主动实时决策能力的BI体系结构
根据前两节的研究,我们提出一种具有主动实时决策能力的BI体系结构。这一系统主要由业务系统、常规DW、ODS、数据监控导入模块、分析规则模块、DM和OLAP工具集、人机交互界面和专家模块(可选)等几大部分组成。
图2一种新型Bl体系结构
数据监控导入模块负责把业务系统中产生的实时性要求高的数据同步的导入ODS中,这一过程可以采用CTF技术实现;业务系统业务数据源中其它数据仍然周期性的由ETL工具导入DW。
ODS中只保存当前和近期的数据,超过期限的数据作为历史数据定期导入DW。这一过程可以采用ETL进行增量更新;
DM和OLAP的数据源建立在DW和ODS上,用户可以根据自己的需要随时通过DM和OLAP获取信息和决策(被动性战略决策)。DM得到的知识还可以存储到知识库中,供推理使用。
分析规则模块由事件监视器、事件队列及管理器、分析规则存储、分析引擎等组成。0DS和Dw中有事件发生时,触发分析规则的执行,从而进行主动推理,产生决策信息。专家模块由知识库、知识库管理系统和推理机组成。是可选的,它的存在可以大大增强BI的决策能力。
这种BI体系结构是智能决策支持系统和新决策支持系统结合的产物,可以看作一种综合决策支持系统。ODS的引入减轻了DW实时性更新的负担,提高了查询分析效率。分析规则的触发可以进行主动决策:用户也可以通过DM和OLAP进行常规的被动决策。两者结合可以充分满足商业领域战术性和战略性决策的需要,形成一种实用性较高的BI系统。
4结束语
商业智能是当前一个较为热门的研究领域,它的实现涉及到数据仓库、OLAP、数据挖掘、决策支持等众多技术。本文主要研究了商业智能中主动实时决策的实现方法,对于新型商业智能体系结构中专家模块的具体实现以及它与DM&OLAP的协作方式还没有深入研究,这也是我们下一步的研究方向。 本文出自 51CTO.COM技术博客 |


gulibin
博客统计信息
热门文章
最新评论
友情链接