|
在当前的全业务运营环境下,电信运营商需要将各种数据进行整合和利用,中国移动凭借多年的积累,使自身对移动数据管理的技术走在业界前面。中国移动通信集团河北有限公司在其企业内最大的IT系统(BOSS系统)规划建设过程中进行了有益的尝试,采用了“海量数据分级管理”的方式,实现了在线数据的可靠高效存储与应用,使企业各种软硬件资源达到最佳匹配,从而提升企业海量数据的应用效力,并取得了初步成效。数据是业务运转的基础。不管
一个企业的数据量是多少,这些数据都是关乎着企业命脉的宝贵资产。在金融、电信行业,税务、工商等政府部门及大型企业中,随着业务不断发展,数据量的增长是十分惊人的,在庞大的数据量背后,企业CIO面临的数据维护问题主要涉及存储空间不足、存储维护成本高昂、庞大的数据处理对主机的压力、数据安全等这几个方面。
在这种数据量的增长之下,企业不得不购买更多磁盘、磁带等存储设备,而管理越来越复杂,主机的压力越来越高,机房的空间也变得越来越拥挤,冷却系统也开始有些不堪重负。这些都让一个问题更加激化,那就是数据量增长迅猛,企业存储成本也不断提高。众所周知,我国企业面临的一个共同的问题是:在IT方面的投入不是很多,数据量激增又进一步激化了这种矛盾。因此,在有限的投入之下,要想做到高效查询、灾难备份、数据保护、便捷管理等,可能早已让预算捉襟见肘。
随着企业对数据海量存储的需求以及为了解决数据维护过程中产生的各种问题,催生了企业运用新技术实现分级管理海量数据的想法与实践。像最近几年比较热门的基于甲骨文Oracle10g\11g的compress技术和内存数据库技术、IBM公司DB2的压缩技术、内存数据库技术及Ondemand产品、中电达通的DataMerger高效历史数据压缩管理产品系列等都获得了广泛的市场认同。这些技术有的可以提高数据的访问效率,有的可以用更低的成本和更有效的手段来帮助企业存
储及管理数据,有的可以让数据高效传输到异地备份,有的可以减少数据冗余以便节省出更多存储空间……。
海量数据分级管理”就是企业根据数据本身特性,采用恰当的数据存储技术,从而实现在线数据的可靠高效存储与应用,使企业各种软硬件资源达到最佳匹配,从而提升企业海量数据的应用效力。
基于上述理念,中国移动通信集团河北有限公司在对企业内最大的IT系统(BOSS系统)规划建设过程中进行了有益的尝试,并取得了初步成效。具体做法如下。
海量数据分解
中国移动通信集团河北有限公司主要经营移动电话通信(包括话音、数据、多媒体等)、IP电话及互联网接入服务等业务,2008年客户总数已达到4000万户。BOSS系统是该企业核心的业务支撑系统,系统中保存了企业所有的客户数据以及经营数据,目前系统存储设备容量已达450T。而如此庞大的数据量基本上都是以数据库的形态存在的,根据数据的使用特性我们把它划分为实时数据、动态数据和历史数据三种。
实时数据
实时、频繁变更的数据,响应速度影响系统可用性。例如用户的费用结余、本月累计的实时费用。这部分数据约占总数据量的5~10%。主要包括:用户基础信息资料;涉及客户计费、缴费有关的资料。数据特点是性能要求最高,数据量不大。
动态数据
实时变更,但变更不频繁的数据。例如用户资料、账户资料、利率参数等。这部分数据约占总数据量的30%。数据特点是对性能的要求中等,数据量中等。
历史数据
对历史事件的忠实记录,不允许删除、修改,或者变更的机会非常少,变更需要符合审计要求。主要包括:用户详单记录、结算记录、销户数据等。这部分数据约占总数据量的60~70%。数据特点是远期数据查询少,近期数据查询多,数据量大,占用系统资源多。为了控制系统建设成本,经常把远期数据离线备份(如图1所示)。
数据分级管理技术
通用数据库技术
数据库是存储在某种存储介质上的相关数据有组织的集合。在这个定义中特别要注意“相关”和“有组织”这些描述。就是说,数据库不是简单地将一些数据堆集在一起,而是把一些相互间有一定关系的数据,按一定的结构组织起来的数据集合。它经历了30多年的发展演变,被人们广泛认可和采用,因此,在这里就不对此技术进行详细介绍。
目前所有建立信息化系统的企业基本上全部都采用了数据库技术。我们这里把基于磁盘存储介质建立的数据库称为通用数据库。它具有使用广泛、管理方便等特点。是本文中提到的内存数据库技术和数据库压缩技术的基础。
目前,市场上具有代表性的通用数据库产品包括Oracle公司的Oracle、I B M公司的D B 2以及微软的S Q LServer等。
内存数据库技术
应用内存数据库,可以将同样数据库的部分内容存放于磁盘上,而另一部分存放于内存中。用户可以选择将数据存储在内存表中以提供即时的数据访问。若访问时间不紧急或数据存于内存中所占空间过大时,用户可将这些数据存入磁盘表中。比如,在手机用户开始拔打电话时,如果应用基于内存数据库技术的混合数据管理引擎,就可以通过内存表检索其服务选项并立即验证用户身份,而将通话清单和计费清单归档到磁盘表中,从而,达到了速度与资源使用的平衡。内存数据库的技术一个很重要的特点就是可以对内存中的数据实现全事务处理,这是仅仅把数据以数组等形式放在内存中完全不同的。并且,内存数据库是与应用无关的,显然这种体系结构具有其合理性。内存引擎实现查询与存档功能使用的是完全相同的数据库,同时内存表与磁盘表也使用的是完全相同的存取方法。存储的选择,对于应用开发者而言是完全透明的。对于内存数据库而言,实现了数据在内存中的管理,而不仅仅是作为数据库的缓存。不像其它将磁盘数据块缓存到主存中的数据库,内存数据库的内存引擎使用了为随机访问内存而特别设计的数据结构和算法,这种设计使其避免了因使用排序命令而经常破坏缓存数据库性能的问题。通过内存数据库,减少了磁盘I/O,能够达到以磁盘I/O为主的传统数据库无法与其相比拟的处理速度。
因此,内存数据库技术的应用,可以大大提高数据库的速度,这对于需要高速反应的数据库应用,如电信、金融等提供了有力支撑。目前市场具有代表性的厂家有or a c l e的Times Ten产品,ALTIBASE的内存数据库产品。
数据库压缩技术
信息技术的发展使得各领域的信息量都爆炸性地增长,高于1012字节的海量数据层出不穷。为了有效地管理海量数据,人们提出了压缩数据库技术。压缩数据库技术可以提高海量数据的存储效率,也是提高数据库性能的重要途径。目前,压缩数据库技术的研究主要包括适应于数据库随机存取特征的数据压缩方法、压缩数据上的操作算法、压缩数据库的查询优化技术等。
经过大量调查研究发现海量关系中常存在一些属性,关系在这些属性上的投影结果非常小。我们称这样的属性组为小值域属性组(smal lrangeattributes-combination,简称SRAC)。例如,在移动公司的数据库中,通话详单这个关系包含了约40多个属性,其中业务服务类型、业务服务号码、用户类型、费用类型、归属地区号、到访地区号等等10多个属性也构成一个SRAC。在大型商场的交易详单中,商品名称、生产厂家、零售价、销售员等属性也构成一个SRAC。事实上,海量关系常包含几十个甚至上百个属性,其中往往有多个属性的值域较小并导致小值域属性组的出现。
显然,SRAC的存在使得海量关系中产生大量数据冗余。若能将SRAC从海量关系中分离出来,并将原关系拆分成多个小关系,就可以消除由SRAC引起的数据冗余。同时,由于拆分后元组长度减小,每个物理存储块中可以容纳更多元组,则可以减小查询操作时的I/O次数,进而改善数据库的性能,如何消除由SRAC引起的数据冗余,是实现对海量关系压缩的关键。
目前市场上的数据库压缩产品虽然压缩机理不同,但大部分都是采用了通过消除SRAC来实现数据压缩的技术,在具体的应用中,数据的压缩都必须基于无损压缩算法。在具体的算法模型上,主要有统计概率模型和基于字典的模型。各个公司提供的压缩产品在实现的原理上都有部分区别,带来了结果的差异化,这里简单介绍几种比较典型的数据库压缩技术。
以ORACLE数据库为例:
Oracle数据库自带的Compres s实时压缩处理技术,可以理解为“数据块”级压缩技术,也就是说是针对block级别的数据压缩。它是在block中引入记号表(symbol表),block中的重复数据在symbol中用一个项(指针)表示,即块中相同的row只存储一条,从而节约了空间。Oracle提供的Compress组件,允许在所有类型的数据处理操作(包括常规的INSERT、UPDATE或 DELETE)中压缩结构化数据或关系数据,Compress是利用复杂的智能算法在写入操作期间进行压缩,因此会影响写入操作的性能。经过Compress组件压缩后,数据大小能够降低一半。
以IBM公司的OnDemand文件型数据压缩处理技术,数据在减少冗余处理后(由于资料所限,无法完全肯定是否只是通过消除SRAC来减少冗余,详细资料可以参考其官方介绍),归类存储在文件块中,数据的压缩比较高,通过与DB2的结合,将各个数据的存储分布等索引内容存储在DB2数据库中来实现数据的压缩和查询,实现历史数据的管理。由于数据压缩后,是以文件形式存在,借助DB2数据库的管理,能够使用自带的客户端提供的API进行查询统计操作,但不能兼容大多数的SQL语句,需要有针对性的进行查询统计操作,因此,该方法适用于那些只对特定查询功能有需求的数据压缩。
中电达通提供的DataMerger历史数据管理技术,由于使用消除SRAC技术来进行数据压缩(不同的压缩比是SRAC选择策略的不同),数据的压缩比相对较高,并且同时数据在进行压缩后仍存储在自带的关系数据库中,通过数据库的检索引擎来实现一些简单统计分析功能,并且提供了一些常用的统计分析函数,来满足日常操作过程中的统计和分析需求,并且全部
操作都基于SQL语句。因此,在历史数据的生命管理中,该方式可适用的范围远比其它两种方法更为广泛。

河北移动数据分级管理改造方案简介及实施效果分析
如图2所示,将用户资料基础信息等实时数据分别装入营业、账务、客服查询子系统的内存数据库中,将计费、结算、话单子系统的历史月详单等静态数据装入压缩数据库中,其它动态数据采用原有数据库存储方式不变。通过上述存储方式及系统应用的改变,系统存储结构得到了极大改善,可以充分发挥系统资源的整体使用效率,降低维护成本。
系统资源的使用效率问题
改造前:历史数据与实时数据混合存放,营业、账务子系统服务器与存储间I/O压力巨大,服务器与存储资源不匹配,月结期间经常出现服务器等待存储的I/O响应,一方面浪费了服务器资源,另一方面不能满足客户对系统服务的要求。
改造后:将历史数据与实时数据分开存放,实时数据采用内存数据库的方式进行管理,将系统I/O提高了几十倍。极大的提升了系统资源的使用效率。
节省了存储空间,提升了查询效率
改造前:计费、结算、话单查询子系统占用了系统33%的存储资源。
改造后:计费、结算、话单查询子系统只占用系统21%的存储资源,大约可以为河北移动节约50T存储资源,同时在不提高服务器性能的前提下,查询效率提升了大约50%。
管理维护方便
改造前:需要对应用软件、数据库、服务器、存储的各种资源进行不断的调优,确保系统服务效率,满足客户对业务办理和业务查询的需求。
改造后:通过数据库存储方式的调整,即可很容易的匹配各种系统资源,满足企业及用户对系统数据服务的不同要求。最大限度提升了系统资源的使用效率,节约了企业成本。
现代企业对数据的存储不仅仅是增加阵列这么简单,存储系统也有它所支持容量的上限,达到存储容量的上限怎么办?庞大的数据量给主机系统带来巨大的压力,系统主机扩容是个很大的难题。而且,目前有些企业还面临着想要扩容存储,但某些设备已经停产,没有支持的硬盘的现象。怎样选择符合企业需求的产品、合理的对这些庞大的数据进行有效的管理、就显得尤为重要。相信“少量的存储扩容+软存储管理”的方式将是未来10年内海量数据管理的发展方向。 |