摘要:商务智能应用中对动态实时获取的数据进行分析越来越多,以达到快速做出响应和决策之目的。讨论了动态数据仓库数据实时加载和事件检测处理特点;提出了利用变化数据捕获技术构建动态数据仓库,实现商务智能系统的实时决策,并通过反向分发将决策信息推送到应用系统的框架模式;给出了基于动态数据仓库的数据闭环商务智能系统实例。
关键词:动态数据仓库;商务智能;变化数据捕获;挣值;工作分解结构
DOIDOI:10.11907/rjdk.151132
中图分类号:TP392
文献标识码:A 文章编号:16727800(2015)006014704
基金项目基金项目:
作者简介作者简介:李凌(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操作都将在其日志文件中有足够的信息去记录。通过对日志的读取和分析,就可以实现变化数据捕获。