基于内存计算的高性能数据处理系统的制作方法

文档序号:9547297阅读:447来源:国知局
基于内存计算的高性能数据处理系统的制作方法
【技术领域】
[0001]本发明涉及基于内存计算的高性能数据处理系统,使用Java平台和Java ΝΙ0技术实现大数据高速统计。
【背景技术】
[0002]现有统计技术一般通过关系数据库存储过程或SQL统计过程实现,受限与于网络I/O和磁盘I/O瓶颈,较大数据时会产生响应慢和数据库压力过大的问题。
[0003]针对较大数据则采用Hadoop map/reduce并行计算技术,该技术对硬件资源要求巨大,一般5到15个节点以上才有应用价值(视硬件性能而定),且统计任务启动时间至少10秒上,不能满足实时性能要求高的场景。

【发明内容】

[0004]本发明要解决的技术问题是提供基于内存计算的高性能数据处理系统,解决在数据统计过程中的大数据效率过慢问题,使用内存计算技术,将数据通过预定义的方式压缩转入内存,消除统计过程中的I/O瓶颈,最终实现在普通单节点硬件之上进行千万级到亿级数据的秒级统计计算。
[0005]为达到上述目的,本发明的技术方案如下:
[0006]基于内存计算的高性能数据处理系统,包括:
[0007]—数据采集接口定义模块,通过选择数据表,并自动提取数据表相关字段,由用户根据字段类型和范围进行压缩方式定义,
[0008]—数据实时采集模块,根据数据采集接口定义模块定义的元数据从数据源抽取相关数据,其中元数据一般指定义数据格式的数据,数据源是指具体业务数据,一般指企业业务系统关系数据库;
[0009]—数据内存存储模块,将数据通过字典方式,整形编码和压缩算法以字节码的形式存内存之中;
[0010]以及一数据处理模块,所述数据处理模块包括SQL解析模块,根据需要将统计中的记录进行提取。
[0011 ] 在本发明的一个优选实施例中,所述数据进入数据内存存储模块之前还包括一数据内存压缩模块,所有数据经过压缩后进入内存。
[0012]在本发明的一个优选实施例中,还包括一数据磁盘缓存模块,将所有参与统计的“定性类数据”存入磁盘;相对于磁盘,数据内存存储模块中只存储压缩后数据。
[0013]在本发明的一个优选实施例中,所述SQL解析模块包括“位匹配”和“整数化组合索引”两种实现方式。
[0014]在本发明的一个优选实施例中,使用“位匹配”方法实现SQL中的in操作。
[0015]在本发明的一个优选实施例中,“整数化组合索引”方式包括如下:
[0016]SQL语句中的EXISTS条件,使用多列组合索引的方式应对多列条件的EXISTS过程,EXISTS过程分两个部分,左边查询数据和右边条件数据,首先将左边查询组合条件编码为EXITS_CODE,由于EXITS_CODE为整形,可将右边条件列表数据转化为byte字节码数组,该数组以EXITS_CODE为下标的数组各项值的0,1为是否存在的标识,这样在遍历左边查询数据时可快速判断当前数据是否符合EXISTS条件,一次遍历可判断所有待查询数据的有无情况。
[0017]在本发明的一个优选实施例中,系统还包括结果输出模块,统计结果输出到外部数据库。
[0018]通过上述技术方案,本发明的有益效果是:
[0019]本发明将数据经过在不损失统计精度和速度的前提下经过压缩和重组以字节的方式存入内存。
【附图说明】
[0020]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0021]图1为本发明的结构示意图。
[0022]图2为本发明的SQL解析模块的一种实现方式。
[0023]图3为本发明的SQL解析模块的另一种实现方式。
【具体实施方式】
[0024]为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。
[0025]参照图1所示,基于内存计算的高性能数据处理系统,包括:一数据采集接口定义模块,通过选择数据表,并自动提取数据表相关字段,由用户根据字段类型和范围进行压缩方式定义;
[0026]—数据实时采集模块,根据数据采集接口定义模块定义的元数据从数据源抽取相关数据,其中元数据一般指定义数据格式的数据,数据源是指具体业务数据,一般指企业业务系统关系数据库;
[0027]—数据内存存储模块,将数据通过字典方式,整形编码和压缩算法以字节码的形式存内存之中;
[0028]以及一数据处理模块,所述数据处理模块包括SQL解析模块,根据需要将统计中的记录进行提取。
[0029]进一步地,数据进入数据内存存储模块之前还包括一数据内存压缩模块,所有数据经过压缩后进入内存;还包括一数据磁盘缓存模块,将所有参与统计的“定性类数据”存入磁盘;相对于磁盘,数据内存存储模块中只存储压缩后数据。
[0030]其中预定义压缩方式分为:
[0031](—).字典方式,该方式首先将占用字节数很大的字符串编码为整形或者字节型数据,然后将编码后的数据存入内存,将原字符串数据存入磁盘。例如:
[0032]1.对于数据库中的整形字段,可能该字段中的值只有“0、1、2、3、4”4种值,但是在数据库中以整形存储,占用4个字节,此时可由用户根据具体情况判断,是否将存储的值转化为一个字节,如果用户选择是,则由软件自动转化;
[0033]2.对于数据库的字符串字段,则自动将每个相同字符串进行整形编码,也就是将相同字符串用相同的整形或者短整形替代。
[0034]在应用中大部分情况下采用字典方式进行压缩,该方法具有执行速度快,压缩比高的特点,但是需要较多人为参与和判断过程。
[0035](二).使用压缩算法(LZ0)方式,该方式具有通用性高,压缩比高的特点,但是对CPU和内存资源要求较高。
[0036]其中定性类数据的定义:
[0037]关系数据一般可分为定量和定性两种形式,定性类数据一般以字符串形式存储,定量数据以整形或者浮点形式存储,定性类数据在统计过程中不影响统计的数值结果,而只需要在统计结果的展现中将其值显示。
[0038]例如:统计中有一个“名称”字段,每个名称值实际不参与计算,只是在统计完成后显示数据时将名称对应到数值结果进行显示。
[0039]进一步地,在SQL解析模块处理过程中还包括并行计算模块,其通过API和SQL的方式对外提供并行计算接口。
[0040]其中SQL解析模块的一个关键技术为:使用“位匹配”方法实现SQL中的in操作。[0041 ] 例如,对于SQL语句中的条件“ ’ 12’ in columnb”,其中’ 12’为查询条件,columnb为表中字段,下图2说明了程序内部的实现过程:
[0042]图2演示了一个典型的S
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1