2009-04-22 09:27:12 来源:万方数据
0 引 言
传统的数据仓库架构一般包括ETL、ODS、数据仓库、数据集市和BI工具。业务数据一般在每天深夜的批处理作业中从OLTP系统中抽取出来,存储到ODS中。数据在ODS中加工后,也是在夜间启用批处理将数据集中、分段传送给数据仓库,数据仓库把历史数据存储到数据集市的接口中,供相应的业务部门分析和处理。BI工具位于数据仓库或数据集市的顶端提供OLAP分析。
实时数据仓库提倡,当数据在OLTP系统内产生后直接进入数据仓库系统,而不必经过夜间的批处理过程,这使得数据仓库内的数据成为即时更新的数据。实时数据仓库包含两方面的含义:(1)实时的动作;(2)数据仓库。实时的动作是指当前正在进行的活动。这种活动可以是任何事情,例如某件商品的销售。一旦这种活动结束,数据仓库中就应该存在相关的数据。
目前国内外对数据仓库的研究和应用主要分为两大类。一类是基于ETL实时数据仓库,原则在于采用各种方法缩短ETL周期。这种方案并不能很好的解决实时数据仓库应该具备的无缝共享和交换数据的需要,只是准实时数据仓库实现的方法。另一类是采用EAI实现数据仓库的实时性。利用建立在面向服务架构体系上的企业应用集成将实时数据从数据源系统中抽取出来,拖曳到数据仓库中。
本文主要研究了基于(面向服务体系结构)SOA实时数据仓库体系架构、设计和实现方法,采用Web Services技术使得跨平台的、无缝共享的、实时的数据交换更容易实现。
1 基于SOA实时数据仓库的设计原则与系统架构
1.1 基于SOA实时数据仓库设计原则
以下是基于SOA实时数据仓库的一些核心设计原则。
1)系统建设可分阶段实施、可持续发展
数据仓库的建设是一个系统工程,其中涉及的数据源也可能分散在各个部门,在系统实施过程中会遇到各种包括非技术因素在内的问题。因此,数据仓库的设计必须“大处着眼、小处着手”,数据仓库的建模必须提供系统可以分阶段实施,并在应用层面保持系统可持续发展。为了获得经验和尽快成功,开始的时候只是把现有接口与SOAP及WSDL“捆”在一起,实现单向的点对点集成就行了,这些先期的Web服务应该模仿目前以数据为中心的API。在遗留系统上稳定运行的核心应用程序或定义清晰的已有贸易伙伴的应用程序是合适的集成对象。
2)以业务流程为牵引
在建立完备的SOA的每个阶段,都要采取“为业务服务”的观点。在确定数据类型或API之前,每个Web服务都要设计成与业务流程的输人和输出粗略对应的任务。SOAP接口及其WSDL描述符同样应该反映这种以流程为中心的方法,而不是很多编程工具自动生成的那些细节。同时数据仓库的建模应该根据业务的流程和数据源来决定。
3)以维护成本较高的应用为对象
在许多分散的功能中找出手工流程,如现场销售或客户支持。就面向服务设计方案中的战略投资而言,具有较高的集成和管理成本的应用程序是这一阶段合适的候选目标。应该以那些需要专门技能来管理和开发的、需要专用硬件或那些为了实现互操作性需要专门申请许可的附件和适配器的系统为目标。
4)确定核心服务平台
大多数公司都会从其已经在J2EE或Windows服务器上所做的工作开始。少数公司也可能选择不同的核心平台,例如,SAP正在缓慢地把Web服务标准集成到其业务API(BAPI)中去;一些严重依赖SAP软件的公司可能愿意把BAPI应用放入SOAP和WSDL中,并遵循SAP有关通用业务文档的定义。但无论选择什么作为其核心平台,都要确保厂商拥护独立标准并证实它能提供可靠的互操作性。
5)建立共享基础设施服务
由异构系统组成的SOA必须利用它自己的一组特殊服务来确保每件事都是可靠的、可管理的和安全的。Web服务管理产品通过提供版本控制、QoS等功能来满足这些需求,但是诸如认证等其它核心需求有可能需要与现有的身份管理系统等基础设施结合在一起来满足。
6)注重数据的完整性
对每一个数据仓库关心的数据源,数据仓库设计时都将从最明细的数据层次进行收集,即使将来的分析大部分都是基于汇总的数据,但数据仓库中最底层的数据模型将对应业务系统中最明细的部分。这样的设计,数据仓库的建模和数据采集对于业务系统来说是一步到位的,而这样设计出的分析模型是能够支持所有可能的业务分析的,不会因为数据仓库的设计而丢弃业务的细节,导致未来系统重建。
1.2 基于SOA实时数据仓库系统架构
一种基于SOA实时数据仓库的系统架构如图1所示。
图1 基于SOA实时数据仓库结构
1)数据源:包括需要集成的各个应用系统。
2)企业应用集成:此部分为系统的核心。企业应用集成包括集成服务器、事件服务器和消息服务器等。集成服务器连接其它几个服务器模块,共同对外提供一个统一的应用调用处理界面。事件服务器提供了定时器触发、事件探测与监听、事件的调度,主要起到在企业信息系统中定制自动的系统集成服务的作用,通过可视化的事件建模,可以定义一个应用集成的流程,从而实现系统的自动集成。消息服务器提供了基于JMS的消息服务。
3)数据仓库:包含实时数据分区和静态数据分区两部分。实时数据仓库采用表分离法,实时数据的查询和存储都是基于实时数据分区;静态数据或历史数据的查询基于静态数据分区实现。实时数据分区的数据建模与静态数据分区相应部分的建模完全相同,系统设置一个固定的时间,将实时数据分区的数据导入静态数据分区。
4)应用服务器:用于客户端以Web方式访问数据仓库。
5)客户端应用:包括对实时数据仓库的查询、实时数据监控、按需分析业务应用、报表和OLAP分析等。
6)XML/SOAP/WSDL/UDDI:Web Services建立在一系列与平台无关的协议之上,包括H1TP,XML,UDDI,WSDL,SOAP。这些协议在源数据库、EM中间件和数据仓库之间,是SOA技术实现方式。SOA要求动态的定位和调用服务,这可以通过UDDI,WSDL,SOAP实现。SOA要求服务接口契约的平台无关性,XML可以实现。私有UDDI注册中心包含了所有关于Web服务的描述文件,对这些服务的调用均要首先在注册中心搜索以决定调用的端口和方式。SOAP封装WSDL描述的服务,实现实时数据传输。
7)元数据、管理和安全模块:元数据规则库主要存放企业应用集成中所涉及的所有数据元模型。系统安全模块提供了系统安全保障。
免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。