推荐阅读:摘要:商务智能应用中对动态实时获取的数据进行分析越来越多,以达到快速做出响应和决策之目的。讨论了动态数据仓库数据实时加载和事件检测处理特点;提出了利用变化数据捕获技术构建动态数据仓库,实现商务智能系统的实时决策,并通过反向分发将决策信息推
摘要:商务智能应用中对动态实时获取的数据进行分析越来越多,以达到快速做出响应和决策之目的。讨论了动态数据仓库数据实时加载和事件检测处理特点;提出了利用变化数据捕获技术构建动态数据仓库,实现商务智能系统的实时决策,并通过反向分发将决策信息推送到应用系统的框架模式;给出了基于动态数据仓库的数据闭环商务智能系统实例。
关键词:动态数据仓库;商务智能;变化数据捕获;挣值;工作分解结构
中图分类号:TP392
基金项目基金项目:
作者简介作者简介:李凌(1976-),女,硕士,辽宁沈阳人,沈阳飞机设计研究所信息网络中心高级工程师,研究方向为数据库设计。
0 引言
利用商务智能系统进行企业决策性分析已经成为众多企业提高竞争力的重要方法之一。但随着信息量的快速增长和市场竞争的日趋激烈,传统意义上通过历史性数据分析来帮助企业进行决策支持已经无法满足用户需求,企业能否快速获取实时业务数据进行分析,并作出准确的反应决定了企业的存亡。由于企业各类信息获取平台的异构性,往往开发麻烦并且不好维护,同时这一过程需要频繁的手工处理[1]。
本文提出了利用变化数据捕获技术构建数据仓库,并通过反向分发将信息推送到需要的系统的思想,改变了数据从前台到后台的单向瀑布,是一个闭合的数据价值过程。前台作业变化之后,及时捕捉到这个变化,将它交给相关作业系统或商务智能平台进行分析,升华出一定知识和经验。但这个价值过程没有结束,这些提炼出的知识和经验的变化后续再次被抓取出来,重新作用于前台作业。
1 商务智能
商务智能是一套完整的解决方案,是提升决策能力的概念、工具、方法以及应用软件的一整套组合,从软件系统应用角度看是数据仓库、联机分析处理、数据挖掘等技术方法和工具在商业活动中的集中应用。其工作原理是从企业各类数据源收集数据,经过抽取(Extract)、转化(Transform)、加载(Load),送入数据仓库,使用数据查询分析工具、数据挖掘工具和联机分析处理工具对信息进行处理,并以定制的动态报表实时展示,从而将信息转变为辅助决策的知识,最终呈现给用户。商务智能软件的功能有:多维数据分析及展现、报表工具、趋势分析、可视化工具、数据挖掘等。
在满足商务智能各基本功能的前提下,企业对如何保证获取和分析数据的实时性更为关注。即:数据抽取、转换、加载、集成的实时性和分析,以对决策提供实时支持。
2 动态数据仓库
动态数据仓库是对传统数据仓库的延伸和扩展,通过动态数据加载,动态事件驱动和动态数据访问,对不同用户群体(管理层、分析师、业务员)进行分门别类的决策支持,将原来后台的商务智能推向前端,使实时商务智能[2]成为可能。
2.1 数据实时加载
数据仓库作为商务智能的重要依托,是对“海量数据”、“大数据”进行分析处理的核心物理架构。借助数据仓库技术,可以将来自于不同数据源平台(如CRM、SCM、ERP、OA以及企业外部的系统和零散数据)格式不一的数据处理成语义格式一致的多源数据进行存储。以往数据仓库很强调海量,但随着商业机会出现的周期越来越短,只有少数行业垄断企业凭借海量数据获得商业智能素材,对于大多数企业而言必须快速地掌握信息变化,即便是小量、甚至个别的信息也有商机可挖。由此可见,更快的动态数据日益成为今后的主流。相比传统数据仓库,动态数据仓库强调数据的及时性和同步,其实质是将数据仓库和一个运作数据存储结合起来,以便对数据同时更新,并从同一个中央仓库中获得时间敏感性数据和详细历史数据。
动态数据仓库关键是动态加载数据,也就是数据仓库的ETL过程。ETL是将业务系统的数据源按一定顺序进行采集,然后按照数据存储结构进行合理的转换,并将源数据中出现的二义性、重复、不完整、违反业务或逻辑规则等问题统一进行处理,最后按照数据仓库的结构进行数据加载,也就是常说得数据抽取、转化、装载。这一过程实现了多种类、多平台数据源的整合,解决数据在时间、不稳定性、依赖性等方面的差异,保证数据一致性,达到正确理解数据业务含义的目的,这也是ETL技术核心所在。数据的实时加载有多种方法,早期有短时间间隔内批量数据抽取盒利用EAI消息队列的数据传输,后有利用SOA框架和XML统一数据格式解决数据与数据源的实时同步问题[34]。
随着数据库技术的发展,变化数据捕获已成为帮助我们迈向数据仓库之父Inmon描述的DW2.0技术时代。变化数据的捕获、存储、抓取的内容不限于关系数据表、文件、消息队列等,SOA环境下的消息落地机制一样可以被集成[56]。在新的数据架构中,动态更新数据将成为驱动企业整个服务环境的触媒。
变化数据捕获的常用方法有:①基于快照差分的抓取方法[7]:先生成两个数据源快照,然后比较并计算出变更数据,这种方法对信息源依赖弱或没有依赖,但是抓取变更数据的效率低,延迟时间较长;②基于触发器的抓取方法:使用信息源数据库的触发器机制抓取变更数据[8],抓取的变更数据实时性较高,但对信息源数据库的事务处理影响较大;③基于事务日志的抓取方法:利用数据库日志机制,分析数据库的事务日志,计算出变更数据,抓取变更数据的效率相对较高,并且对信息源数据库的事务处理影响较小;④数据库管理系统提供的变化数据捕获方法[9]:现在主流的商业数据库厂商都推出了基于日志的数据抓取工具,Oracle、DB2、SQL Server均为比较成熟的关系型数据库系统,且具有完备的日志结构,在数据库的适当配置下,数据库中的Delete/Insert/Update操作都将在其日志文件中有足够的信息去记录。通过对日志的读取和分析,就可以实现变化数据捕获。 2.2 事件检测处理
动态数据仓库另一个特征是在事件发生时,主动进行检测,对其进行相应处理,并将结果自动反馈给用户或业务系统,使用户作出快速响应。事件可以是根据业务规则所定义的事件,也可以是基于时钟的事件[1011],一般包括同步事件处理和异步事件处理:①同步处理要按照各步骤之间的依赖关系顺序执行,即每一步动作都要等上一步动作执行完成后再进行;②异步处理中各个动作之间是松耦合的,每一步操作并不依赖上一步的动作是否完成。
3 基于动态数据仓库的商务智能系统设计
3.1 框架设计
商务智能系统从企业项目管理、资源规划、客户关系、供应链、OA等各系统中获得数据。通过智能分析工具挖掘企业现状,发现商机进行决策。
基于动态数据仓库的商务智能系统架构包括源数据、动态数据加载、数据仓库、应用层(OLAP、数据挖掘、报表工具等)以及用户层。源数据来自于企业现有的各异构数据库;动态数据加载则是通过变化数据捕获实现异构数据源数据的集成过程,完成数据抽取、清洗/转换、实时加载与索引等数据调和工作,目的是为运营分析与决策应用提供一个单一的、权威的数据仓库;顶端数据共享与分析展示包括应用层和用户层,应用层包含数据挖掘、智能分析、报表展示等一系列前端分析工具,用户层是对分析结果的多样化展示。
动态数据仓库根据数据获取、存储和数据分析分为两层:中央数据仓库层、数据分析层。
中央数据仓库作为数据模型的核心又包括周期数据、实时数据和汇总数据。周期数据以批量形式采用传统ETL进行加载,加载的数据包括一次性导入和定期更新的数据,一般为相对稳定、面向主题及细节的数据,经过数据的抽取、清洗/转换、加载与索引等工作后成为历史的、规范的数据;实时数据采用CDC技术从各数据源实时抓取,主要是敏感的、其变化对决策影响较大的数据。由于结构和表示的不同,要经过清理,然后加载到数据仓库中;汇总数据从周期数据和实时数据中按照业务需要进行多维建模,在数据分析前进行的数据汇总整理,以提高数据分析效率。
数据分析层为主题应用提供服务,满足特殊的商务需要,用于支持查询、分析、报表、数据挖掘等功能,同时也包括用于预警分析和风险分析的数据模型。
3.2 数据抓取
数据抓取过程按频率不同分为周期性和实时抓取两种。周期性抓取按天、周或月进行数据抽取。时间间隔越小,数据同步越接近实时,但利用成熟商用数据库提供的数据抓取方法基本可以实现实时数据同步。变化数据捕获原理是采用基于主动规则的事件触发机制,当检测到定义的事件发生时,按照定义好的规则执行相应的动作,进行数据更新。可以把业务数据库的某些特定数据变化定义为事件,事件可以通过监控数据库事务日志来实现检测。
变化数据捕获CDC为商务智能系统实时同步数据提供了新模式,解决了传统ETL难以处理的一些集成问题,实现持续集成,与触发器、快照查分等方法比较,基于日志的变化数据捕获方法具有对数据性能影响较低、获取数据延迟时间短、保证了事务特性等优点,可以广泛应用于动态数据仓库数据集成。
3.3 数据反向分发
动态数据仓库中各类变更数据可以反向抓取到其它应用系统。此时的变更数据可以包括业务系统的变更,也可以是商务智能平台执行的决策信息以及总结的经验知识。这是一个事件主动检测过程,使得在突发事件发生时,各应用系统相应时间和决策处理的起步时间相同,在为高层提供数据决策支持的同时,也满足了一线用户进行动态访问快速了解事件的需要,为商业决策和后续处理争取了宝贵时间。另一方面,通过商务智能平台形成的经验知识也可作用于前台系统。
4 应用实例
下面以企业项目管理系统、财务预算系统、报销系统、合同系统、采购系统说明基于变化数据捕获构建动态数据仓库,通过商务智能系统分析,反向限定企业各类业务,保证企业正常运转之过程。
挣值原理是指引入已完成工作的预算值即挣值(EV),用来对项目费用/进度进行综合评估,即在项目实施过程中任一时刻,已完工作的预算值与该时刻此项工作计划的预算值(PV)进行对比,以评估和预测其工作进度,并将已完成工作的预算值与工作实际消耗值(AV)作对比,以评估和预测其费用的执行效果,其中EV=PV×计划完成百分比。同时还可计算出CV(费用偏差)、SV(进度偏差)、CPI(费用绩效指数)、SPI(进度绩效指数)等值,进行企业运营情况评估[1314]。
通过上述分析,要计算挣值,需要有企业工作分解结构(WBS)、计划完成百分比、基于工作分解结构的预算、支出等信息。计划完成百分比通过计划预计工作量和实际工作量以及计划权重计算得来。
动态数据仓库的周期数据、实时数据主要包括项目工作分解结构表、工作量表、财务预算表、网报表、合同表、采购表。其中工作分解结构、网报、合同、采购数据需要实时更新,实时反映企业工作计划和各类支出信息,工作量数据每月定期更新,预算数据每年更新两次。根据上述基础数据形成汇总数据,包括计划预算值(PV)、工作实际消耗值(AV)、计划完成百分比等。
工作分解结构是反馈工作量、预算、各类支出费用的基础,工作分解结构通过数据抓取实时同步到数据仓库中,同时将其反向抓取到合同、采购和报销系统,用于将预算、支出费加载到各计划节点上,累计得到计划工作的预算值(PV)和实际消耗值(AV),存储到汇总表,明确各项工作任一时刻的财务收支情况。项目管理系统中每月工作量反馈完成后,根据预计工作量、实际工作量和计划权重计算完成百分比,最后计算挣值(EV)。这样在商务智能系统前台展板即可绘制出针对项目及各关键计划节点的PV曲线、AV曲线和EV曲线,进行挣值分析。此时一旦发现支出费用超标,则在BI系统中提出预警。据此修改数据仓库的预警系数,该预警系数通过数据抓取实时分发到合同、采购、网报系统,以有效控制企业资金流。 5 结语
动态数据抓取技术将实时业务数据集成至数据仓库,减少了人工操作,解决了企业异构平台构建数据仓库的问题,保证了数据的时效性,使得商务智能系统决策分析所依据的基础数据更为及时准确,消除了数据集成过程中延时所产生的数据分析不准确的情况。同时通过这种动态数据的主动检测和反向分发,实现决策数据和变更数据的反向流动,满足了一线和高层人员的需要,缩短了决策周期,大大提高了企业决策速度。
参考文献:
[2]B AZVINE,Z CUI,D D NAUCK,B MAJEEDRISE.Realtime business intelligence for the adaptive enterprise[C].The 8th IEEE International Conference on ECommerce Technology. San Francisco,CA,2006:2929.
[3]许力,马瑞新.基于SOA的实时ETL的研究与实现[J].计算机工程与科学,2007,29(8):115118.
[5]何盼.数据仓库中面向服务架构的近实时更新机制应用研究[D].重庆:重庆大学,2008.
[6]胡耀民,余明辉.商务智能系统模型的研究和应用[J].计算机与现代化,2010(3):5861.
[7]夏娟.基于快照差分的信息源更新检测方法的研究[D]. 广州:暨南大学,2006.