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

文档序号:9547297阅读:来源:国知局
QL语句中的“ ‘12’ in colb”条件在SQL解析完成后所生成的代码执行逻辑。有一张表,包含字段colb,输入一个查询条件“12”,则说明需要查询所有colb字段包含“ 1 ”或者“2”的记录。
[0043]首先将查询条件“12”转化为位(bit)形式为[1,1,0,0,0,0,0,0]的字节码,该字节码中的每一 bit位的位置值代表一个值,例如出现“2”则说明字节中的第二个比特(bit)位有值,将第二个比特(bit)位的值设置为1,反之则为0,因此一个字节可表示8种值。字段colb中的值在存储时已经转化为位(bit)形式编码的字节值。因此通过按位与(&)的方式可一个指令便可判断该条件记录是否符合查询条件,如果通过传统方式实现以上匹配过程,则需要进行两层for循环才可实现,因此“位匹配”方法可产生巨大性能提升。
[0044]进一步地该软件的SQL解析模块,其中的另一个关键技术为SQL语句中的EXISTS过程的“整数化组合索引”法。
[0045]对于SQL语句中的EXISTS条件,使用多列组合索引的方式应对多列条件的EXISTS过程,EXISTS过程分两个部分,左边查询数据和右边条件数据,首先将左边查询组合条件编码为EXITS_C0DE,由于EXITS_C0DE为整形,可将右边条件列表数据转化为byte字节码数组,该数组以EXITS_C0DE为下标的数组各项值的0,1为是否存在的标识,这样在遍历左边查询数据时可快速判断当前数据是否符合EXISTS条件,一次遍历可判断所有待查询数据的有无情况。
[0046]如图3所示,例如,有一张表包含cola,colb,colc三个字段,针对以下条件匹配语句“Select*from TableX WHERE cola, colb exists (select cola, colb, colc from TableYwhere cola = TableX.cola and colb = TableX.Colb and colc = TableX.colc),,,如下图⑶:
[0047]首先将左侧表数据和右侧表数据的(cola,colb, colc)三个字段组合后的字符值进行整形化编码载入内存,根据编码值存入字节数组(bExists)中,字节数组的下标代表编码值,例如,某条记录整形化编码后值为5,则字节数组的第5项值设置为1,这样通过下标的方式节省了内存存储,且在匹配时只需用当前编码值直接访问对下标的数组项,如果为1则说明存在,反之不存在。
[0048]“位匹配”和“整数化组合索引”的各自应用范围和效果
[0049](一 ) “位匹配”法对应的应用范围和使用效果:
[0050]统计数据中字段的值的类别个数小于或等于8个,而且在统计过程中有SQL中的in操作,例如对于电网中的地域等级(网、省、市、县)和电压等级(低压、高压、超高压、特高压)。可采用“位匹配”的方式进行统计,由于位匹配方式采用位操作,避免了多重循环带来的CPU消耗,可将统计速度提几个数量级(一般30到50倍左右)。
[0051]( 二)整数化组合索引法对应的应用范围和使用效果:
[0052]如果统计过程中包含集合间的“SQL EXISTS”操作,则可在数据导入时构建数据的“整数化组合索引”,“整数化组合索引”法可大大降低程序的内存使用量,并且将统计中的记录提取过程的性能提升到内存寻址时间的级别。
[0053]以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
【主权项】
1.基于内存计算的高性能数据处理系统,其特征在于,包括: 一数据采集接口定义模块,通过选择数据表,并自动提取数据表相关字段,由用户根据字段类型和范围进行压缩方式定义, 一数据实时采集模块,根据数据采集接口定义模块定义的元数据从数据源抽取相关数据,其中元数据一般指定义数据格式的数据,数据源是指具体业务数据,一般指企业业务系统关系数据库; 一数据内存存储模块,将数据通过字典方式,整形编码和压缩算法以字节码的形式存内存之中; 以及一数据处理模块,所述数据处理模块包括SQL解析模块,根据需要将统计中的记录进行提取。2.根据权利要求1所述的基于内存计算的高性能数据处理系统,其特征在于,所述数据进入数据内存存储模块之前还包括一数据内存压缩模块,所有数据经过压缩后进入内存。3.根据权利要求2所述的基于内存计算的高性能数据处理系统,其特征在于,还包括一数据磁盘缓存模块,将所有参与统计的“定性类数据”存入磁盘;相对于磁盘,数据内存存储模块中只存储压缩后数据。4.根据权利要求1所述的基于内存计算的高性能数据处理系统,其特征在于,所述SQL解析模块包括“位匹配”和“整数化组合索引”两种实现方式。5.根据权利要求4所述的基于内存计算的高性能数据处理系统,其特征在于,使用“位匹配”方法实现SQL中的in操作。6.根据权利要求4所述的基于内存计算的高性能数据处理系统,其特征在于,“整数化组合索引”方式包括如下: SQL语句中的EXISTS条件,使用多列组合索引的方式应对多列条件的EXISTS过程,EXISTS过程分两个部分,左边查询数据和右边条件数据,首先将左边查询组合条件编码为EXITS_CODE,由于EXITS_CODE为整形,可将右边条件列表数据转化为byte字节码数组,该数组以EXITS_CODE为下标的数组各项值的0,1为是否存在的标识,这样在遍历左边查询数据时可快速判断当前数据是否符合EXISTS条件,一次遍历可判断所有待查询数据的有无情况。7.根据权利要求1或2或3所述的基于内存计算的高性能数据处理系统,其特征在于,系统还包括结果输出模块,统计结果输出到外部数据库。
【专利摘要】本发明公开了基于内存计算的高性能数据处理系统,包括:一数据采集接口定义模块,通过选择数据表,并自动提取数据表相关字段,由用户根据字段类型和范围进行压缩方式定义;一数据实时采集模块,根据数据采集接口定义模块定义的元数据从数据源抽取相关数据,其中元数据一般指定义数据格式的数据,数据源是指具体业务数据,一般指企业业务系统关系数据库;一数据内存存储模块,将数据通过字典方式,整形编码和压缩算法以字节码的形式存内存之中;以及一数据处理模块,所述数据处理模块包括SQL解析模块,根据需要将统计中的记录进行提取。本发明将数据经过在不损失统计精度和速度的前提下经过压缩和重组以字节的方式存入内存。
【IPC分类】G06F17/30
【公开号】CN105302915
【申请号】CN201510782709
【发明人】程宏亮, 卢耀宗, 郭联伟, 强劲, 张小平
【申请人】西安美林数据技术股份有限公司
【公开日】2016年2月3日
【申请日】2015年12月23日
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1