CN105302915B - 基于内存计算的高性能数据处理系统 - Google Patents

基于内存计算的高性能数据处理系统 Download PDF

Info

Publication number
CN105302915B
CN105302915B CN201510782709.6A CN201510782709A CN105302915B CN 105302915 B CN105302915 B CN 105302915B CN 201510782709 A CN201510782709 A CN 201510782709A CN 105302915 B CN105302915 B CN 105302915B
Authority
CN
China
Prior art keywords
data
module
memory
data processing
calculated based
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510782709.6A
Other languages
English (en)
Other versions
CN105302915A (zh
Inventor
程宏亮
卢耀宗
郭联伟
强劲
张小平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Merrill Lynch Data Technology Ltd By Share Ltd
Original Assignee
Merrill Lynch Data Technology Ltd By Share Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Merrill Lynch Data Technology Ltd By Share Ltd filed Critical Merrill Lynch Data Technology Ltd By Share Ltd
Priority to CN201510782709.6A priority Critical patent/CN105302915B/zh
Publication of CN105302915A publication Critical patent/CN105302915A/zh
Application granted granted Critical
Publication of CN105302915B publication Critical patent/CN105302915B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了基于内存计算的高性能数据处理系统,包括:一数据采集接口定义模块,通过选择数据表,并自动提取数据表相关字段,由用户根据字段类型和范围进行压缩方式定义;一数据实时采集模块,根据数据采集接口定义模块定义的元数据从数据源抽取相关数据,其中元数据一般指定义数据格式的数据,数据源是指具体业务数据,一般指企业业务系统关系数据库;一数据内存存储模块,将数据通过字典方式,整形编码和压缩算法以字节码的形式存内存之中;以及一数据处理模块,所述数据处理模块包括SQL解析模块,根据需要将统计中的记录进行提取。本发明将数据经过在不损失统计精度和速度的前提下经过压缩和重组以字节的方式存入内存。

Description

基于内存计算的高性能数据处理系统
技术领域
本发明涉及基于内存计算的高性能数据处理系统,使用Java平台和Java NIO技术实现大数据高速统计。
背景技术
现有统计技术一般通过关系数据库存储过程或SQL统计过程实现,受限与于网络I/O和磁盘I/O瓶颈,较大数据时会产生响应慢和数据库压力过大的问题。
针对较大数据则采用Hadoop map/reduce并行计算技术,该技术对硬件资源要求巨大,一般5到15个节点以上才有应用价值(视硬件性能而定),且统计任务启动时间至少10秒上,不能满足实时性能要求高的场景。
发明内容
本发明要解决的技术问题是提供基于内存计算的高性能数据处理系统,解决在数据统计过程中的大数据效率过慢问题,使用内存计算技术,将数据通过预定义的方式压缩转入内存,消除统计过程中的I/O瓶颈,最终实现在普通单节点硬件之上进行千万级到亿级数据的秒级统计计算。
为达到上述目的,本发明的技术方案如下:
基于内存计算的高性能数据处理系统,包括:
一数据采集接口定义模块,通过选择数据表,并自动提取数据表相关字段,由用户根据字段类型和范围进行压缩方式定义,
一数据实时采集模块,根据数据采集接口定义模块定义的元数据从数据源抽取相关数据,其中元数据一般指定义数据格式的数据,数据源是指具体业务数据,一般指企业业务系统关系数据库;
一数据内存存储模块,将数据通过字典方式,整形编码和压缩算法以字节码的形式存内存之中;
以及一数据处理模块,所述数据处理模块包括SQL解析模块,根据需要将统计中的记录进行提取。
在本发明的一个优选实施例中,所述数据进入数据内存存储模块之前还包括一数据内存压缩模块,所有数据经过压缩后进入内存。
在本发明的一个优选实施例中,还包括一数据磁盘缓存模块,将所有参与统计的“定性类数据”存入磁盘;相对于磁盘,数据内存存储模块中只存储压缩后数据。
在本发明的一个优选实施例中,所述SQL解析模块包括“位匹配”和“整数化组合索引”两种实现方式。
在本发明的一个优选实施例中,使用“位匹配”方法实现SQL中的in操作。
在本发明的一个优选实施例中,“整数化组合索引”方式包括如下:
SQL语句中的EXISTS条件,使用多列组合索引的方式应对多列条件的EXISTS过程,EXISTS过程分两个部分,左边查询数据和右边条件数据,首先将左边查询组合条件编码为EXITS_CODE,由于EXITS_CODE为整形,可将右边条件列表数据转化为byte字节码数组,该数组以EXITS_CODE为下标的数组各项值的0,1为是否存在的标识,这样在遍历左边查询数据时可快速判断当前数据是否符合EXISTS条件,一次遍历可判断所有待查询数据的有无情况。
在本发明的一个优选实施例中,系统还包括结果输出模块,统计结果输出到外部数据库。
通过上述技术方案,本发明的有益效果是:
本发明将数据经过在不损失统计精度和速度的前提下经过压缩和重组以字节的方式存入内存。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的结构示意图。
图2为本发明的SQL解析模块的一种实现方式。
图3为本发明的SQL解析模块的另一种实现方式。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。
参照图1所示,基于内存计算的高性能数据处理系统,包括:一数据采集接口定义模块,通过选择数据表,并自动提取数据表相关字段,由用户根据字段类型和范围进行压缩方式定义;
一数据实时采集模块,根据数据采集接口定义模块定义的元数据从数据源抽取相关数据,其中元数据一般指定义数据格式的数据,数据源是指具体业务数据,一般指企业业务系统关系数据库;
一数据内存存储模块,将数据通过字典方式,整形编码和压缩算法以字节码的形式存内存之中;
以及一数据处理模块,所述数据处理模块包括SQL解析模块,根据需要将统计中的记录进行提取。
进一步地,数据进入数据内存存储模块之前还包括一数据内存压缩模块,所有数据经过压缩后进入内存;还包括一数据磁盘缓存模块,将所有参与统计的“定性类数据”存入磁盘;相对于磁盘,数据内存存储模块中只存储压缩后数据。
其中预定义压缩方式分为:
(一).字典方式,该方式首先将占用字节数很大的字符串编码为整形或者字节型数据,然后将编码后的数据存入内存,将原字符串数据存入磁盘。例如:
1.对于数据库中的整形字段,可能该字段中的值只有“0、1、2、3、4”4种值,但是在数据库中以整形存储,占用4个字节,此时可由用户根据具体情况判断,是否将存储的值转化为一个字节,如果用户选择是,则由软件自动转化;
2.对于数据库的字符串字段,则自动将每个相同字符串进行整形编码,也就是将相同字符串用相同的整形或者短整形替代。
在应用中大部分情况下采用字典方式进行压缩,该方法具有执行速度快,压缩比高的特点,但是需要较多人为参与和判断过程。
(二).使用压缩算法(LZO)方式,该方式具有通用性高,压缩比高的特点,但是对CPU和内存资源要求较高。
其中定性类数据的定义:
关系数据一般可分为定量和定性两种形式,定性类数据一般以字符串形式存储,定量数据以整形或者浮点形式存储,定性类数据在统计过程中不影响统计的数值结果,而只需要在统计结果的展现中将其值显示。
例如:统计中有一个“名称”字段,每个名称值实际不参与计算,只是在统计完成后显示数据时将名称对应到数值结果进行显示。
进一步地,在SQL解析模块处理过程中还包括并行计算模块,其通过API和SQL的方式对外提供并行计算接口。
其中SQL解析模块的一个关键技术为:使用“位匹配”方法实现SQL中的in操作。
例如,对于SQL语句中的条件“’12’in columnb”,其中’12’为查询条件,columnb为表中字段,下图2说明了程序内部的实现过程:
图2演示了一个典型的SQL语句中的“‘12’in colb”条件在SQL解析完成后所生成的代码执行逻辑。有一张表,包含字段colb,输入一个查询条件“12”,则说明需要查询所有colb字段包含“1”或者“2”的记录。
首先将查询条件“12”转化为位(bit)形式为[1,1,0,0,0,0,0,0]的字节码,该字节码中的每一bit位的位置值代表一个值,例如出现“2”则说明字节中的第二个比特(bit)位有值,将第二个比特(bit)位的值设置为1,反之则为0,因此一个字节可表示8种值。字段colb中的值在存储时已经转化为位(bit)形式编码的字节值。因此通过按位与(&)的方式可一个指令便可判断该条件记录是否符合查询条件,如果通过传统方式实现以上匹配过程,则需要进行两层for循环才可实现,因此“位匹配”方法可产生巨大性能提升。
进一步地该软件的SQL解析模块,其中的另一个关键技术为SQL语句中的EXISTS过程的“整数化组合索引”法。
对于SQL语句中的EXISTS条件,使用多列组合索引的方式应对多列条件的EXISTS过程,EXISTS过程分两个部分,左边查询数据和右边条件数据,首先将左边查询组合条件编码为EXITS_CODE,由于EXITS_CODE为整形,可将右边条件列表数据转化为byte字节码数组,该数组以EXITS_CODE为下标的数组各项值的0,1为是否存在的标识,这样在遍历左边查询数据时可快速判断当前数据是否符合EXISTS条件,一次遍历可判断所有待查询数据的有无情况。
如图3所示,例如,有一张表包含cola,colb,colc三个字段,针对以下条件匹配语句“Select*from TableX WHERE cola,colb exists(select cola,colb,colc fromTableY where cola=TableX.cola and colb=TableX.Colb and colc=TableX.colc)”,如下图(3):
首先将左侧表数据和右侧表数据的(cola,colb,colc)三个字段组合后的字符值进行整形化编码载入内存,根据编码值存入字节数组(bExists)中,字节数组的下标代表编码值,例如,某条记录整形化编码后值为5,则字节数组的第5项值设置为1,这样通过下标的方式节省了内存存储,且在匹配时只需用当前编码值直接访问对下标的数组项,如果为1则说明存在,反之不存在。
“位匹配”和“整数化组合索引”的各自应用范围和效果
(一)“位匹配”法对应的应用范围和使用效果:
统计数据中字段的值的类别个数小于或等于8个,而且在统计过程中有SQL中的in操作,例如对于电网中的地域等级(网、省、市、县)和电压等级(低压、高压、超高压、特高压)。可采用“位匹配”的方式进行统计,由于位匹配方式采用位操作,避免了多重循环带来的CPU消耗,可将统计速度提几个数量级(一般30到50倍左右)。
(二)整数化组合索引法对应的应用范围和使用效果:
如果统计过程中包含集合间的“SQL EXISTS”操作,则可在数据导入时构建数据的“整数化组合索引”,“整数化组合索引”法可大大降低程序的内存使用量,并且将统计中的记录提取过程的性能提升到内存寻址时间的级别。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

Claims (4)

1.基于内存计算的高性能数据处理系统,其特征在于,包括:
一数据采集接口定义模块,通过选择数据表,并自动提取数据表相关字段,由用户根据字段类型和范围进行压缩方式定义,
一数据实时采集模块,根据数据采集接口定义模块定义的元数据从数据源抽取相关数据,其中元数据指定义数据格式的数据,数据源是指具体业务数据,该具体业务数据为企业业务系统关系数据库;
一数据内存存储模块,将数据通过字典方式,整形编码和压缩算法以字节码的形式存内存之中;
以及一数据处理模块,所述数据处理模块包括SQL解析模块,根据需要将统计中的记录进行提取;
所述SQL解析模块包括“位匹配”和“整数化组合索引”两种实现方式;
所述“位匹配”为使用“位匹配”方法实现SQL 中的in 操作;
所述“整数化组合索引”方式包括如下:
SQL语句中的 EXISTS条件,使用多列组合索引的方式应对多列条件的EXISTS过程,EXISTS 过程分两个部分,左边查询数据和右边条件数据,首先将左边查询组合条件编码为EXITS_CODE,由于EXITS_CODE为整形,将右边条件列表数据转化为byte字节码数组,该数组以 EXITS_CODE为下标的数组各项值的0,1为是否存在的标识,这样在遍历左边查询数据时快速判断当前数据是否符合EXISTS条件,一次遍历能够判断所有待查询数据的有无情况。
2.根据权利要求1所述的基于内存计算的高性能数据处理系统,其特征在于,所述数据实时采集模块抽取的数据进入数据内存存储模块之前还包括一数据内存压缩模块,所有数据经过压缩后进入内存。
3.根据权利要求2所述的基于内存计算的高性能数据处理系统,其特征在于,还包括一数据磁盘缓存模块,将所有参与统计的“定性类数据”存入磁盘;相对于磁盘,数据内存存储模块中只存储压缩后数据。
4.根据权利要求1或2或3所述的基于内存计算的高性能数据处理系统,其特征在于,系统还包括结果输出模块,统计结果输出到外部数据库。
CN201510782709.6A 2015-12-23 2015-12-23 基于内存计算的高性能数据处理系统 Active CN105302915B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510782709.6A CN105302915B (zh) 2015-12-23 2015-12-23 基于内存计算的高性能数据处理系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510782709.6A CN105302915B (zh) 2015-12-23 2015-12-23 基于内存计算的高性能数据处理系统

Publications (2)

Publication Number Publication Date
CN105302915A CN105302915A (zh) 2016-02-03
CN105302915B true CN105302915B (zh) 2019-04-09

Family

ID=55200184

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510782709.6A Active CN105302915B (zh) 2015-12-23 2015-12-23 基于内存计算的高性能数据处理系统

Country Status (1)

Country Link
CN (1) CN105302915B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107958011B (zh) * 2017-05-18 2021-12-10 北京聚通达科技股份有限公司 一种基于Discuz社区的快速统计方法
CN107368370A (zh) * 2017-07-04 2017-11-21 合肥市乐腾科技咨询有限公司 一种高效率数据处理系统
CN110263155B (zh) * 2019-05-21 2023-02-28 创新先进技术有限公司 数据分类方法、数据分类模型的训练方法及系统
CN113835929B (zh) * 2021-09-24 2024-04-30 深圳追一科技有限公司 数据获取方法、装置、电子设备及存储介质
CN114528444B (zh) * 2022-02-25 2023-02-03 北京百度网讯科技有限公司 图数据处理方法、装置、电子设备和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007310845A (ja) * 2006-05-22 2007-11-29 Nomura Research Institute Ltd データ処理システム
CN101853287A (zh) * 2010-05-24 2010-10-06 南京高普科技有限公司 数据压缩快速检索文件系统及其方法
CN102122959A (zh) * 2011-03-29 2011-07-13 西安交通大学 提高计算机主存可靠性的数据压缩装置及其方法
JP2013101470A (ja) * 2011-11-08 2013-05-23 Toshiba Corp データベース圧縮装置
CN104111945A (zh) * 2013-04-19 2014-10-22 领步科技集团有限公司 一种海量电能质量数据的存储管理方法及系统
CN104715039A (zh) * 2015-03-23 2015-06-17 星环信息科技(上海)有限公司 基于硬盘和内存的列式存储和查询方法及设备

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090132466A1 (en) * 2004-10-13 2009-05-21 Jp Morgan Chase Bank System and method for archiving data
CN101615176B (zh) * 2009-08-07 2012-04-04 北京协成致远网络科技有限公司 一种数据监测系统及实现方法
CN104063384A (zh) * 2013-03-19 2014-09-24 上海软智信息科技有限公司 一种数据检索方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007310845A (ja) * 2006-05-22 2007-11-29 Nomura Research Institute Ltd データ処理システム
CN101853287A (zh) * 2010-05-24 2010-10-06 南京高普科技有限公司 数据压缩快速检索文件系统及其方法
CN102122959A (zh) * 2011-03-29 2011-07-13 西安交通大学 提高计算机主存可靠性的数据压缩装置及其方法
JP2013101470A (ja) * 2011-11-08 2013-05-23 Toshiba Corp データベース圧縮装置
CN104111945A (zh) * 2013-04-19 2014-10-22 领步科技集团有限公司 一种海量电能质量数据的存储管理方法及系统
CN104715039A (zh) * 2015-03-23 2015-06-17 星环信息科技(上海)有限公司 基于硬盘和内存的列式存储和查询方法及设备

Also Published As

Publication number Publication date
CN105302915A (zh) 2016-02-03

Similar Documents

Publication Publication Date Title
CN105302915B (zh) 基于内存计算的高性能数据处理系统
US11055287B2 (en) Eigenvalue-based data query
CN106897322B (zh) 一种数据库和文件系统的访问方法和装置
US10102039B2 (en) Converting a hybrid flow
CN110032369A (zh) 一种代码自动生成方法、装置及介质
US10332008B2 (en) Parallel decision tree processor architecture
US10769147B2 (en) Batch data query method and apparatus
US9298774B2 (en) Changing the compression level of query plans
CA2997061C (en) Method and system for parallelization of ingestion of large data sets
Wu Notes on design and implementation of compressed bit vectors
CN102033748A (zh) 一种数据处理流程代码的生成方法
CN105701200A (zh) 一种内存云计算平台上的数据仓库安全olap方法
CN107066551B (zh) 一种树状数据的行式和列式存储方法及系统
CN103440246A (zh) 用于MapReduce的中间结果数据排序方法及系统
US20150262063A1 (en) Decision tree processors
CN105183880A (zh) 一种哈希连接的方法及装置
US8321429B2 (en) Accelerating queries using secondary semantic column enumeration
CN110389953B (zh) 基于压缩图的数据存储方法、存储介质、存储装置和服务器
Andrzejewski et al. GPU-PLWAH: GPU-based implementation of the PLWAH algorithm for compressing bitmaps
CN107623524B (zh) 一种基于硬件的Huffman编码方法及系统
CN108829930B (zh) 三维数字化工艺设计mbd模型的轻量化方法
CN104090895B (zh) 获取基数的方法、装置、服务器及系统
CN103631983A (zh) 一种战术数据报文模拟方法及系统
WO2008085359A1 (en) Accelerating queries using delayed value projection of enumerated storage
CN112395286B (zh) 链式数据表连接方法、装置、设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 710065 Shaanxi hi tech Zone, Xi'an science and technology zone, No. 68 Xi'an Software Park, Han Yun Ge C501

Applicant after: MERITDATA TECHNOLOGY CO.,LTD.

Address before: 710065 Shaanxi hi tech Zone, Xi'an science and technology zone, No. 68 Xi'an Software Park, Han Yun Ge C501

Applicant before: XI'AN MERITDATA TECHNOLOGY Co.,Ltd.

GR01 Patent grant
GR01 Patent grant
CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: 710075 6th floor, national e-commerce demonstration base, No.528, tianguba Road, software new town, high tech Zone, Xi'an City, Shaanxi Province

Patentee after: MERITDATA TECHNOLOGY CO.,LTD.

Address before: 710065 C501, hanyunge, Xi'an Software Park, No. 68, Keji Second Road, high tech Zone, Xi'an, Shaanxi

Patentee before: MERITDATA TECHNOLOGY CO.,LTD.