一种基于话单数据的压缩和存储方法技术

技术编号:9765938 阅读:141 留言:0更新日期:2014-03-15 11:51
本发明专利技术涉及一种基于话单数据的压缩和存储方法,由列存储系统实现,列存储系统包括压缩模块、存储模块和处理模块,本发明专利技术方法采用多种轻量级压缩算法从语法和语义分别对数据进行压缩,将数据存储于特定的列存数据库。并支持多种数据处理语言对压缩态下的数据进行查询筛选等操作。本发明专利技术针对运营商实际存在的问题提出了一种有效的解决方案,并且适用于各大运营商处理其大量的话单数据,大大减少了数据存储所需的空间,在数据存储上引入了列存数据库,由于其自身存储的特殊性,与各种轻量级压缩算法可以完美的结合起来,由于采用轻量级压缩算法,可以对压缩态的数据直接进行SQL操作,大大提高了数据的处理速度。

【技术实现步骤摘要】

本专利技术涉及数据压缩和数据库领域,特别涉及。
技术介绍
如今人们的日常生活已经越来越离不开移动通信,而随之产生大量数据也得到了更多的关注。就中国移动的业务支撑能力而言,在业务量方面,用户总数超过7亿,全年受理营业300多亿次,完成统计报表数亿张;在支撑能力方面,全年处理几万亿张计费话单,几千万张结算单,全网OLTP处理能力接近40亿tpmC,存储的有效容量将近20PB。面对如此之大的数据量,传统的存储方式和处理策略存在很大的局限性与滞后性。如何找到一种对大规模话单数据进行存储和处理的方式,已经成为三大运营商的当务之急。另一方面,列存数据库作为一个新兴的技术,得到越来越多学者的注意。然而,关于各种通用数据压缩算法在列存数据库中的具体实现和应用,国内尚处于起步阶段。在国夕卜,各种开源的列存数据库由于受到资金、人力资源和实践检验的约束,导致其自身的设计与实现均存在着各种各样的缺陷。更是没有人将列存数据库应用到具有特定数据结构的大规模的数据存储上。综上两点,运营商产生大量的话单数据得不到高效的存储和处理,列存数据库系统有着其自身的优势但是没有在存储大规模数据上得到具体的应用。因此,如何为话单数据设计出适合其存储和处理的列存数据库,并且采用特定的压缩算法来进一步减少数据存储所需的空间,而且可以高效快速的读取和处理数据,已经成为一个新型的研究方向下的技术难题。
技术实现思路
为解决上述技术问题,本专利技术所采用的技术方案如下:,由列存储系统实现,列存储系统包括压缩模块、存储模块和处理模块,其压缩和存储方法如下:步骤一、压缩模块对话单数据需要压缩的属性列采取不同的轻量级压缩算法;步骤二、由存储模块将经过压缩模块处理后的话单数据存入列存数据库,列存数据库的数据结构包括压缩区和未压缩区,压缩区将采用不同轻量级压缩算法压缩后的属性列分开存储,未压缩区则将不需要压缩的属性列直接存储;步骤三、处理模块对列存数据库的数据进行SQL操作,对未压缩区的数据直接进行SQL操作;对压缩区的数据进行SQL操作时,可以解压后直接进行SQL操作,也可以不解压间接进行SQL操作;当不进行解压时,其SQL的间接操作方法如下:(I)通过操作算法选择器对压缩区不同属性列采用的压缩算法进行分析,(2)通过转换器将SQL语句转换成相应的可以用于该压缩算法的语句。步骤一中所述的轻量级压缩算法可以为RLE行程编码、差值压缩或粗粒度字典压缩。本专利技术针对运营商实际存在的问题提出了一种有效的解决方案,并且适用于各大运营商处理其大量的话单数据,大大减少了数据存储所需的空间,在数据存储上引入了列存数据库,由于其自身存储的特殊性,与各种轻量级压缩算法可以完美的结合起来,由于采用轻量级压缩算法,可以对压缩态的数据直接进行SQL操作,大大提高了数据的处理速度。【附图说明】图1列存储系统的整体构架图。图2压缩模块的压缩流程图。图3存储模块列存数据库的数据结构。图4处理模块的处理流程图。【具体实施方式】下面结合说明书附图对本专利技术作进一步的详细说明。本专利技术针对话单数据设计了,该方法由列存储系统实现,该系统的整体构架如附图1所示,由三个模块构成,分别为压缩模块、存储模块、处理模块。本方法针对运营商产生的大规模的话单数据,采用多种轻量级压缩算法从语法和语义分别对数据进行压缩,将数据存储于特定的列存数据库。并支持多种数据处理语言对压缩态下的数据进行查询筛选等操作。压缩模块分装了对各种数据的压缩算法,并且与存储模块中的数据结构紧密联系。存储模块设计了一种特定的列存数据库有效地组织和保存算法生成的压缩值。处理模块用于将一般的SQL语句转换成可以适用于各种轻量级压缩算法的语句,以便在未解压的情况下就能对压缩态数据进行操作。SQL是Structured Query Language的英文缩写,中文名为结构化查询语言,是一种对数据库进行操作的语言。该系统设计的好处在于:将三个模块独立分装,从而保证了各个模块之间的低耦合度。比如当数据压缩方式发生变化的时候,我们只需要修改压缩运算库对外提供的各种接口就可以保证其他模块不需要任何改动了。压缩模块主要针对话单数据这一特定的数据结构,对各个属性列采取不同的压缩算法。具体流程如附图2所示。原始话单数据在逻辑上已经按列存储,分别为属性列1、属性列2…属性列m。这些属性列通过压缩算法选择器为不同的列制定特定的压缩效率较高的压缩算法。这里我们采用的压缩算法主要有RLE行程编码(Run Length Encoding)、差值压缩、粗粒度字典压缩。原因是这些都是轻量级压缩算法,可以不需解压直接进行SQL操作。由于话单数据的特殊性,存在大量的重复性数据,如通话类型标识(主要由10101、10106,10108不断重复出现),对方运营商标识(主要由11、12、13不断重复出现),主叫/被叫归属区号(主要由591、592、857、858不断重复出现)、分局标识(基本都是一样的)、计费事件类型标识等等,这些我们都可以采用粗粒度字典压缩。将这些数据保存到一个字典中,并代之以一个整数来表示,这样就节省了大量的空间。而另一些属性列如通话开始时间,由于每一宗通话的开始时间在时间上是连续的,因此可以采用差值压缩。例如(201407011023,201407011024,201407011025)就可以被压缩为(201407011023,0,I, 2),对于 0、1、2 来说,可以用更少的位数来表示,从而达到节省空间的目的。还有的属性列比如原始话单文件号,其内容多数都是13022800000000000000这样的数据,我们可以看到有连续的14个O。采用RLE编码可以大大缩短数据的长度。因此,我们设计了以粗粒度字典压缩为主,RLE行程编码和差值压缩为辅的压缩策略。另外的一些属性列如主叫和被叫号码,由于数据的规律性不明显,我们将其直接存储而不压缩。最后,当各个属性列经过压缩算法执行器压缩后,还需将采用相同压缩算法的列合并到一起,便于处理模块对其进行操作。存储模块设计了一种对各类压缩算法生成的数据可以进行准确编码解码以及操作的列存数据库。如附图3,本专利技术的列存数据库的数据结构充分体现了列存数据库的特点。该数据结构主要分为压缩区和未压缩区。压缩区又根据不同的压缩算法分为字典压缩区、RLE压缩区、差值压缩区。这样的好处在于处理模块可根据每一区域不同的压缩算法而采取不同的解压算法以及相应的压缩态数据操作。而未压缩区则直接存储不需要压缩的数据。处理模块可以对压缩后的数据进行准确解码,并且,由于压缩采用的是轻量级压缩算法,该模块可以直接对压缩态下的数据进行操作。具体流程如附图4。SQL语句不能直接作用在原始的压缩态数据上。数据首先要通过操作算法选择器为不同的属性列选择不同的算法。由于各个属性列都是按照相同的压缩算法连续存储的,因此操作算法选择器具有方便性和快捷性。然后对应于不同的压缩算法有着不同的转换方式。便可以将最基本的SQL语句转换成相应的可以用于该压缩算法的数据库操作语句。例如上述的粗粒度字典压缩,压缩后的数据在SQL运算中只需将字符串运算转换为整数运算就可以了。因此该数据处理模块大大减少了数据操作所需花费的时间。本文档来自技高网...

【技术保护点】
一种基于话单数据的压缩和存储方法,由列存储系统实现,列存储系统包括压缩模块、存储模块和处理模块,其压缩和存储方法如下:步骤一、压缩模块对话单数据需要压缩的属性列采取不同的轻量级压缩算法;步骤二、由存储模块将经过压缩模块处理后的话单数据存入列存数据库,列存数据库的数据结构包括压缩区和未压缩区,压缩区将采用不同轻量级压缩算法压缩后的属性列分开存储,未压缩区则将不需要压缩的属性列直接存储;步骤三、处理模块对列存数据库的数据进行SQL操作,对未压缩区的数据直接进行SQL操作;对压缩区的数据进行SQL操作时,可以解压后直接进行SQL操作,也可以不解压间接进行SQL操作;当不进行解压时,其SQL的间接操作方法如下:(1)通过操作算法选择器对压缩区不同属性列采用的压缩算法进行分析,(2)通过转换器将SQL语句转换成相应的可以用于该压缩算法的语句。

【技术特征摘要】
1.一种基于话单数据的压缩和存储方法,由列存储系统实现,列存储系统包括压缩模块、存储模块和处理模块,其压缩和存储方法如下: 步骤一、压缩模块对话单数据需要压缩的属性列采取不同的轻量级压缩算法; 步骤二、由存储模块将经过压缩模块处理后的话单数据存入列存数据库,列存数据库的数据结构包括压缩区和未压缩区,压缩区将采用不同轻量级压缩算法压缩后的属性列分开存储,未压缩区则将不需要压缩的属性列直接存储; 步骤三、处理模块对列存数据库的数据进行SQL操作,对...

【专利技术属性】
技术研发人员:朱洪波沈顺卢捍华朱翀徐蔓青钱超
申请(专利权)人:南京邮电大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1