基于内存计算技术的电信行业数据仓库系统构建探讨
2012-03-31奚晓音何忠江
奚晓音,何忠江,王 丹
(中国电信股份有限公司上海研究院 上海200122)
1 电信运营商数据仓库系统建设现状
在全业务运营的时代,伴随着各类业务系统建设、运行,随之而来的是海量的业务数据。如何在浩淼如烟的数据中,探寻对企业发展具有战略价值的信息,挖掘数据之间所蕴含的联系,充分发挥数据在企业日常管理过程中的效益,是摆在每一个企业管理人员面前的无法回避的问题。在电信运营商中体现得尤为明显的是每天都会产生大量的数据,而随着电信运营商间的竞争加剧,对数据应用分析及挖掘的需求也越来越急迫。通过数据仓库系统的建设,实现了对数据的抽取、转换、清理、存储,通过数据仓库系统实现了对数据的挖掘、分析和展现,使企业所拥有数据的价值得到了充分的展现。
然而,随着数据仓库系统的持续使用,业务分析模型越来越复杂,模型所包含的数据量也在呈几何倍数增长,导致通过数据仓库系统实现数据的挖掘、分析和应用的效率越来越低,以某电信运营商为例,一张资产分析报表的运行时间长达数小时,已大大超出了终端用户对报表运行时间的容忍度。而且,数据从业务系统加载到数据仓库的时间也越来越长,晚间预留的数据加载时间也在不停地增加,数据加载出错的概率也在不断地攀升,导致最终用户看到报表的时间越来越晚,无法实现原定的隔天看数的目标。但是,市场竞争的加剧又促使用户需要在最短的时间内看到报表数据或分析结果,有时甚至要求实时地对数据进行分析,以便更好地使企业参与市场竞争。由此,数据应用需求的发展趋势与数据仓库的技术现状之间产生了不可调和的矛盾,急需新技术的引入,来促使数据仓库系统的改进和发展,更好地为企业的数据应用服务。
2 内存计算技术概述
传统数据库把所有数据都放在硬盘上进行管理,需要通过频繁地访问硬盘来进行数据的读写操作,由于读写操作既受到读写机械运行速度的制约,又受到系统调用时间的影响,当数据量很大并且操作频繁时,传统数据库的运行效率会受到很大的影响。于是,人们把目光转向了内存,希望通过内存计算技术,实现对数据库数据的快速、高效访问,提高数据库的运行效率。
内存数据库从根本上抛弃了传统数据库的管理方式,设计了新的体系架构,并在数据缓存、快速算法、并行操作方面也进行了相应的改进,从而使数据处理速度一般比传统数据库要快10倍以上,理想情况甚至可以达到1 000倍。基于内存数据库的内存计算技术有以下技术特点。
(1)查询处理过程
指针在内存数据库中能被广泛使用。应用进程可以通过指针,也可以通过位置独立的数据库偏移量访问数据,无需像传统数据库那样与缓冲区管理器交互。另外,由于指针长度固定,因此变长字段问题可以很好解决。其次,若一个大的数据对象在数据库中多次出现,则内存中只需存储一次,其他地方使用指针来引用,可以有效地减少系统开销。
(2)并发控制
并发控制的开销对事务处理性能的影响很大,在数据库常驻内存后,同样一个事务的执行时间比传统数据库要短得多,这意味着基于锁的并发控制系统中,事务持有锁的时间很短,对锁的竞争就比传统数据库要小,传统数据库中应用的细粒度锁的优点对改善性能的意义已不大,因此粗粒度锁更适用于内存数据库。采用粗粒度锁后,事务由于加锁解锁而被挂起次数的减少,往往意味着CPU cache刷新次数的减少,因此性能的提高非常明显。
(3)恢复机制
由于内存数据通常是易失的,操作系统崩溃或进程故障对内存数据库数据的影响比传统数据库要大。为保证系统可靠性,内存数据库写日志和备份数据到磁盘是不可缺少的。在内存数据库中,只有在事务提交写日志、执行检查以及系统故障恢复时才需要访问磁盘。因此,重新设计内存数据库的事务提交策略和检查方式,对改善系统性能至关重要。
(4)数据存储模式
传统数据库是基于行存储的,而在内存数据库中,数据更适合以列的形式存储,而且有利于数据的压缩。
3 内存计算技术的应用分析
3.1 业务需求分析
正如前文所述,当前电信企业的数据仓库系统建设正处于一个矛盾时期,即由日益增加的数据分析量导致数据处理、分析效率的降低与日益急迫的对数据分析结果的需求之间的矛盾,这个矛盾不解决,将直接影响电信企业数据仓库的应用价值。以某电信运营商为例,在企业战略转型时期,企业对数据分析应用的需求呈现以下几个特点。
(1)跨专业领域的综合数据分析需求增多
数据仓库系统在建设初期,是按专业领域分块建设。即在统一的数据仓库平台之上,按专业条块建设各自的数据仓库,并在此基础之上进行相关的数据统计、分析和挖掘。由此,造成整个数据仓库体系建设分割,缺乏整体性的建模,无法形成数据的有效复用,数据重复加载情况比较严重,各业务分析模型之间不能很好地进行数据及业务融合,无法快速、准确地进行跨专业领域的综合数据分析。并且,各专业领域数据仓库之间的数据关联性也较差,跨域的数据分析更是难以开展。造成业务系统中空有大量数据,却无法及时对企业的经营管理决策过程提供有效的数据支撑。在应用内存计算技术之后,随着传统数据仓库性能瓶颈的消失,数据模型可以建得更复杂,跨专业领域之间的数据综合分析应用的实现也会变得更快速,更易实现。
(2)数据分析应用的时效性在提高
在数据仓库系统建设之初,企业对于数据仓库中数据的分析应用多以月度为单位,其时效性要求不是很高,并且数据量也不多,传统的数据库技术足以应付。然而,因企业战略转型的需求,加之市场竞争的日趋激烈,企业对于数据分析结果的时效性要求越来越高,从传统的每月看数发展到目前的实时看数。传统的数据库技术无法满足企业管理层实时看数的业务需求,目前只能做到隔天看数,不能完全支撑企业的管理决策需求。采用内存计算技术后,数据仓库可实现实时的数据加载和处理,数据分析应用的时效性得以大幅度的提高。
(3)海量数据的分析需求不断出现
传统数据仓库虽然可以实现海量数据的存储,并在此基础之上进行数据的分析和统计。但受限于硬盘的读写性能,海量数据的读写操作往往会消耗大量的时间,降低最终用户的系统使用感知度。而且,海量的数据需要大量的硬盘进行存储,从而加大了硬件的投资费用。当采用内存计算技术后,受列式存储所带来的数据大压缩率,可以在同等大小的内存中存放远多于硬盘的数据,以较小的投资规模实现海量数据的存储。并且,对于内存中数据的读取不受机械因素的制约,理论读写速度远快于硬盘,可以大大提高海量数据的读写效率,使数据仓库能满足电信企业日益增长的数据量的需求。
(4)基于非结构化数据的分析需求日益增多
受传统数据库数据存储结构的制约,以前数据仓库系统对于非结构化数据的支持不到位,很多基于非结构化数据的分析无法正常开展。受益于内存计算技术所带来的全新的数据存储结构,对于非结构化数据的分析将得到有效地提升。以前企业在传统数据仓库系统中无法实现的基于非结构化数据的分析需求,在内存计算时代将会得到较大的改观。今后,在数据分析领域,结构化数据与非结构化数据的综合分析应用将更有效地揭示数据之间的内存关联,更好地为企业的分析需求所服务。
(5)对数据分析的快速响应要求越来越高
如今,随着工作节奏的加快,对于数据分析查询出结果的时间要求也越来越短。一张报表,以前在10 min内出结果是可以接受的,而现在就变得不可接受。要加快数据分析的响应速度,传统的数据仓库在面对日益增长的数据量时,是心有余而力不足。而采用内存计算技术后,这一时间消耗将被大大地缩短,一张包含数亿条记录的查询在几秒钟之内就能得到结果,而在传统数据仓库结构中是无法想象的,因为之前往往需要几个小时甚至十几个小时才能出结果,这将大大提高企业员工的工作效率,从根本上改变数据分析人员的工作方式,使员工能更专注于分析数据之间的联系,而不用在意其计算效率。
如上所述,内存计算技术能够满足在企业战略转型时期企业对数据分析应用的需求。
3.2 构建步骤
内存计算技术作为大型数据仓库系统发展的技术趋势之一,使电信企业数据仓库系统建设经历着从传统数据仓库到基于内存计算技术构建数据仓库系统的转变过程。在此转变过程中,应从数据及业务整合、系统构建及应用开放几个步骤进行。
(1)数据及业务整合
任何一个数据仓库系统的构建都离不开数据及业务的整合,良好的数据质量及清晰的分析业务需求是数据仓库建设成功的必备条件。在内存计算技术引入后,传统模式下的分专业的数据仓库系统建设模式应得到改变,构建适合企业全面管理的完整的数据仓库及数据分析系统,将现在分散建设的各专业领域数据仓库整合成一个完整的数据仓库,以充分实现数据的综合分析应用,提升数据的使用价值。
(2)系统构建
在系统构建阶段,应注重与原有系统之间的技术及业务的继承性,尽可能选择市面上成熟的整体解决方案。
(3)应用开发
新的数据仓库系统构建应具有一定的开放性,能实现传统数据数据库不能实现的业务功能,重视数据仓库系统与周边数据分析系统及业务系统之间的联系性,把数据仓库打造成一个数据应用的发起者,而不仅是一个数据存储者。
4 难点和风险
在数据仓库系统建设过程中应用内存计算技术,能有效提高数据仓库的运行效率,加快数据分析过程的进行,更有力地支撑企业对于数据分析结果的应用,让企业能更加适应快速变化的市场,为企业的经营决策提供数据依据,但是内存计算技术的应用也存在一些难点和风险。
(1)产品的选择问题
目前,市面上有多个内存数据库的产品,并且SAP、Oracle等厂商也提出了基于内存计算技术的数据仓库/数据分析整体解决方案。但内存计算技术及相关产品还没有统一的标准,相关的开放协议也不完备,并且电信运营商多已建设了比较完整的数据仓库及数据分析体系,若产品选择不当会造成与现有已建成的数据仓库系统的不兼容,从而带来严重的投资风险。
(2)可靠性问题
由于内存数据库所有数据都存放在内存中,服务器宕机所造成的影响远超过传统数据库。因此,系统的整体可靠性显得尤为重要。
(3)技术融合的复杂性
内存计算、移动计算及云计算是今后数据分析领域的发展趋势。如何将3种不同的技术进行有效的整合,互相推动,促进数据分析领域的发展,是一个复杂的问题。
5 结束语
基于传统数据库技术的数据仓库及数据分析平台,在大数据量的业务应用场景下,系统运行效率低下,系统稳定性较低,不能很好地满足最终用户的业务需求,用户感知度较低。而内存计算技术的出现,可有效地缓解日益急迫的数据分析应用需求与日益延长的数据加载及处理周期之间的矛盾,提升数据仓库系统及数据分析平台的应用价值。
内存计算技术为电信运营商数据仓库及数据分析体系的完善和发展提供了强有力的技术支撑,促进了电信运营商各专业领域的数据综合统计、分析、挖掘工作的开展,为电信运营商所拥有的海量业务数据的深化使用和价值提升提供了技术保障,也为整个电信行业数据仓库及数据分析平台的构建提供了一种可行的技术途径。
1 张翔.内存数据库—支撑电信系统发展的利器.http://net.it168.com/ex/2007-03-21/200703211003529.shtml,2007
2 杨武军,张继荣,屈军锁.内存数据库技术综述.西安邮电学院学报,2005,3(10)