CN103500224B - 一种数据写入方法及装置、数据读取方法及装置 - Google Patents
一种数据写入方法及装置、数据读取方法及装置 Download PDFInfo
- Publication number
- CN103500224B CN103500224B CN201310493539.0A CN201310493539A CN103500224B CN 103500224 B CN103500224 B CN 103500224B CN 201310493539 A CN201310493539 A CN 201310493539A CN 103500224 B CN103500224 B CN 103500224B
- Authority
- CN
- China
- Prior art keywords
- data
- data record
- sequence number
- record
- read
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种数据写入方法及装置、数据读取方法及装置,其中,数据写入方法包括:对包含多条第一数据记录的待写入数据进行分块,待写入数据为依据各条第一数据记录的序号对多条第一数据记录进行排序后得到的数据,分块的数量小于待写入数据中第一数据记录的条数;针对数据块中的目标数据块,对目标数据块进行数据压缩,将目标数据块中第一数据记录的最大序号和最小序号以及压缩后的数据作为第二数据记录写入数据库服务器的数据表中,直至待写入数据的第一数据记录全部写入所述数据库服务器的数据表中。本申请提高了数据存储速度,并且节省了数据库服务器的存储空间。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种数据写入方法及装置、数据读取方法及装置。
背景技术
数据分析应用***是指对生产交易等各类业务数据进行加工运算、汇总、筛选等操作的软件平台。数据分析应用***通过加载数据库中的原始数据,并经过一系列数据操作得到结果数据,然后将结果数据存储到结果数据库中的数据表中,即,全部结果数据都将从数据分析应用***所在的应用服务器传输到结果数据库所在的数据库服务器上。
现有技术中,结果数据是逐条写入数据库服务器中的数据表的。发明人在实现本发明创造的过程中发现:由于结果数据的数据量很大,即,结果数据包括很多条数据记录,逐条写入数据记录将导致结果数据的存储耗时很长。
发明内容
有鉴于此,本发明提供了一种写入方法及装置、数据读取方法及装置,用以解决现有技术中逐条写入数据记录将导致结果数据的存储耗时很长的问题,其技术方案如下:
一种数据写入方法,包括:
对包含多条第一数据记录的待写入数据进行分块,所述待写入数据为依据各条第一数据记录的序号对所述多条第一数据记录进行排序后得到的数据,所述分块的数量小于所述待写入数据中第一数据记录的条数;
针对数据块中的目标数据块,对所述目标数据块进行数据压缩,将所述目标数据块中第一数据记录的最大序号和最小序号以及压缩后的数据作为第二数据记录写入数据库服务器的数据表中,直至所述待写入数据的第一数据记录全部写入所述数据库服务器的数据表中;
其中,所述对包含多条第一数据记录的待写入数据进行分块,包括:
确定所述待写入数据中第一数据记录的总条数M;
基于所述待写入数据中第一数据记录的总条数M,以及预先设定的每个数据块所包含第一数据记录的最大条数S,对所述待写入数据进行分块,使分块后的每个数据块中的第一数据记录的条数小于或等于S,其中,M和S均为大于0的整数。
可选的,上述数据写入方法还可以包括:
判断所述待写入数据所包含的多条第一数据记录是否依据所述各条第一数据记录的序号进行排序;
如果否,则依据所述各条第一数据记录的序号按从小到大,或者从大到小的顺序进行排序。
一种数据读取方法,包括:
获取待读取第一数据记录的序号;
基于所述待读取第一数据记录的序号以及数据库服务器存储的数据表的第二数据记录中,第一数据记录的最大序号和最小序号确定所述待读取第一数据记录所属的第二数据记录;
对确定出的第二数据记录中的压缩数据进行解压;
基于所述待读取第一数据记录的序号在解压后得到的第一数据记录中查找所述待读取第一数据记录;
在查找到所述第一数据记录后,读取所述待读取第一数据记录;
其中,基于所述待读取第一数据记录的序号以及数据库服务器存储的数据表的第二数据记录中,第一数据记录的最大序号和最小序号确定所述待读取第一数据记录所属的第二数据记录,包括:
在所述数据表中的第二数据记录中查找第一数据记录的最小序号小于或等于所述待读取第一数据记录的序号,并且第一数据记录的最大序号大于或等于所述待读取第一数据记录的序号的第二数据记录,确定该第二数据记录为所述待读取第一数据记录所属的第二数据记录。
一种数据写入装置,包括:
数据分块模块,用于对包含多条第一数据记录的待写入数据进行分块,所述待写入数据为依据各条第一数据记录的序号对所述多条第一数据记录进行排序后的数据,所述分块的数量小于所述待写入数据中第一数据记录的条数;
数据压缩模块,用于针对数据块中的目标数据块,对所述目标数据块进行数据压缩;
数据写入模块,用于将所述目标数据块中第一数据记录的最大序号和最小序号以及压缩后的数据作为第二数据记录写入数据库服务器的数据表中,直至所述待写入数据的第一数据记录全部写入所述数据库服务器的数据表中;
其中,所述数据分块模块包括:
第一确定子模块,用于确定所述待写入数据中第一数据记录的总条数M;
分块子模块,用于基于所述待写入数据中第一数据记录的总条数M,以及预先设定的每个数据块所包含第一数据记录的最大条数S,对所述待写入数据进行分块,使分块后的每个数据块中的第一数据记录的条数小于或等于S,其中,M和S均为大于0的整数。
可选的,上述的数据写入装置还包括:
判断模块,用于判断所述待写入数据所包含的多条第一数据记录是否依据所述各条第一数据记录的序号进行排序;
排序模块,用于当所述待写入数据所包含的多条第一数据记录未依据所述各条第一数据记录的序号进行排序时,依据所述各条第一数据记录的序号按从小到大,或者从大到小的顺序进行排序。
一种数据读取装置,包括:
获取模块,用于获取待读取第一数据记录的序号;
确定模块,用于基于所述待读取第一数据记录的序号以及数据库服务器存储的数据表的第二数据记录中,第一数据记录的最大序号和最小序号确定所述待读取第一数据记录所属的第二数据记录;
解压模块,用于对确定出的第二数据记录中的压缩数据进行解压;
查找模块,用于基于所述待读取第一数据记录的序号在解压后得到的第一数据记录中查找所述待读取第一数据记录;
读取模块,用于在查找到所述第一数据记录后,读取所述待读取第一数据记录;
其中,所述确定模块包括:
查找子模块,用于在所述数据表中的第二数据记录中查找第一数据记录的最小序号小于或等于所述待读取第一数据记录的序号,并且第一数据记录的最大序号大于或等于所述待读取第一数据记录的序号的第二数据记录;
第二确定子模块,用于确定所述查找模块查找到的第二数据记录为所述待读取第一数据记录所属的第二数据记录。
上述技术方案具有如下有益效果:
本发明提供的数据写入方法及装置、数据读取方法及装置中,在写入数据时,首先将待写入数据进行分块,然后对每个数据块进行压缩,最后将压缩后的数据写入数据库服务器中的数据表中,在读取数据时,首先确定待读取第一数据记录在数据库服务器的数据表中的位置,即确定待读取第一数据记录在数据表中的哪条第二数据记录中,确定出待读取第一数据记录所属的第二数据记录后,对第二数据记录中的压缩数据进行解压,基于待读取第一数据记录的序号在解压后的数据中查找待读取第一数据记录,并读取待读取第一数据记录。本发明提供的数据写入方法及装置一次可写入多条数据记录,与现有技术中逐条写入数据记录的方式相比,数据存储速度大大提高,另外,由于数据记录进行了压缩,因此,节省了数据库服务器的存储空间;本发明提供的数据读取方法及装置能迅速从数据表中查找到待读取第一数据记录并读取,数据读取速度较快。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种数据写入方法的流程示意图;
图2为本发明实施例提供的一种数据读取方法的流程示意图;
图3为本发明实施例提供的另一种数据写入方法的流程示意图;
图4为本发明实施例提供的数据写入方法中,对包含多条第一数据记录的待写入数据进行分块的一种实现方式的流程示意图;
图5为本发明实施例提供的另一种数据读取方法的流程示意图;
图6为本发明实施例提供的数据写入装置的结构示意图;
图7为本发明实施例提供的数据读取装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,为本发明实施例提供的一种数据写入方法的流程示意图,该方法可以包括:
步骤S101:对包含多条第一数据记录的待写入数据进行分块。
其中,待写入数据为依据各条第一数据记录的序号对多条第一数据记录进行排序后的数据。
其中,分块的数量小于待写入数据中第一数据记录的条数。
步骤S102:针对数据块中的目标数据块,对目标数据块进行数据压缩,将目标数据块中第一数据记录的最大序号和最小序号以及压缩后的数据作为第二数据记录写入数据库服务器的数据表中,直至待写入数据的第一数据记录全部写入数据库服务器的数据表中。
本发明实施例提供的数据写入方法,首先将待写入数据进行分块,然后对每个数据块进行压缩,最后将压缩后的数据写入数据库服务器中的数据表中。本发明实施例提供的数据写入方法一次可写入多条数据记录,与现有技术中逐条写入数据记录的方式相比,数据存储速度大大提高。另外,由于数据记录进行了压缩,因此,节省了数据库服务器的存储空间。
与上述数据写入方法相对应,本发明实施例还提供了一种数据读取方法,请参阅图2,为本发明实施例提供的数据读取方法的流程示意图,该方法可以包括:
步骤S201:获取待读取第一数据记录的序号。
步骤S202:基于待读取第一数据记录的序号以及数据库服务器存储的数据表的第二数据记录中,第一数据记录的最大序号和最小序号确定待读取第一数据记录所属的第二数据记录。
步骤S203:对确定出的第二数据记录中的压缩数据进行解压。
步骤S204:基于待读取第一数据记录的序号在解压后得到的第一数据记录中查找待读取第一数据记录。
步骤S205:在查找到待读取第一数据记录后,读取待读取第一数据记录。
本发明实施例提供的数据读取方法,首先确定待读取第一数据记录在数据库服务器的数据表中的位置,即确定待读取第一数据记录在哪条第二数据记录中,确定出待读取第一数据记录所属的第二数据记录后,对第二数据记录中的压缩数据进行解压,基于待读取第一数据记录的序号在解压后的数据中查找待读取第一数据记录,并读取待读取第一数据记录。本发明实施例提供的数据读取方法能迅速从数据表中查找到待读取第一数据记录并读取,数据读取速度较快。
请参阅图3,为本发明实施例提供的另一种数据写入方法的流程示意图,该方法可以包括:
步骤S301:判断待写入数据所包含的多条第一数据记录是否依据各条第一数据记录的序号进行排序,如果待写入数据所包含的多条第一数据记录已经依据各条第一数据记录的序号进行排序,则转入步骤S303,否则转入步骤S302。
步骤S302:依据各条第一数据记录的序号按从小到大,或者从大到小的顺序进行排序。
步骤S303:对包含多条第一数据记录的待写入数据进行分块。
其中,分块的数量小于待写入数据中第一数据记录的条数。
对包含多条第一数据记录的待写入数据进行分块的实现方式有多种,图4示出了一种可能的实现方式的流程示意图,可以包括:
步骤S401:确定待写入数据中第一数据记录的总条数M。
步骤S402:基于待写入数据中第一数据记录的总条数M,以及预先设定的每个数据块所包含第一数据记录的最大条数S,对待写入数据进行分块,使分块后的每个数据块中的第一数据记录的条数小于或等于S,其中,M和S均为大于0的整数。
基于待写入数据中第一数据记录的总条数M,以及预先设定的每个数据块所包含第一数据记录的最大条数S,对待写入数据进行分块的实现方式有多种。
在一种可能的实现方式中,可对待写入数据进行平均分块,具体的,如果第一数据记录的总条数M能被S整除,则将待写入数据平均分为M/S块,每个数据块所包含第一数据记录的数量均为S;如果第一数据记录的总条数M不能被S整除,则将待写入数据平均分为块,其中个数据块中的每个数据块所包含第一数据记录的数量均为S,剩余的1块包含条第一数据记录,其中,表示向下取整。例如,待写入数据所包含7条第一数据记录,即M=7,分别为N1~N7,设定S=3,则将待写入数据分为3个数据块,其中有两个数据块均包含3条第一数据记录,另外1块包含1条数据记录,具体的,第一个数据块包括N1~N3,第二个数据块包括N4~N6,第三个数据块包括N7。
在上述实现方式中,待写入数据是平均分块的,当然,也可不平均分块。以待写入数据包含6条第一数据记录,即M=6,分别为N1~N6,设定S=3为例,分块方式可以为:第一个数据块包括3条第一数据记录,第二个数据块包括2条第一数据记录,第三个数据块包括1条第一数据记录,具体的,第一个数据块包括N1~N3,第二个数据块包括N4~N5,第三个数据块包括N6。
需要说明的是,在对待写入数据进行分块时,不管是平均分块还是不平均分块,其分块原则均是使每个数据块所包含的第一数据记录的数量小于或等于S。另外,本发明实施例并不限定待写入数据的分块方式为上述方式,只要基于数据分块的思想进行数据的写入都是本发明保护的范围。
在对待写入数据进行分块后,返回数据写入方法的流程:
步骤S304:针对数据块中的目标数据块,对目标数据块进行数据压缩,将目标数据块的序号、目标数据块中第一数据记录的最大序号和最小序号以及压缩后的数据作为第二数据记录写入数据库服务器的数据表中,直至待写入数据的第一数据记录全部写入所述数据库服务器的数据表中。
在上述本发明实施例的基础上,现列举一具体实例进行说明。
假设待写入数据为表1中的各条数据记录。表1中的分析对象代码即为数据记录的序号。表1中包括了N1~N77条数据记录。
表1
分析对象代码 | 数据1 | 数据2 | 数据3 |
N1 | 10 | 11 | 12 |
N2 | 20 | 21 | 22 |
N3 | 30 | 31 | 32 |
N4 | 10 | 11 | 12 |
N5 | 20 | 21 | 22 |
N6 | 30 | 31 | 32 |
N7 | 10 | 20 | 30 |
由于表1中的数据记录已依据分析对象代码进行排序,因此:
第一步:对待写入数据进行分块。
以分块数据量为两块为例,将数据记录N1~N4作为第一数据块,如表2所示,将数据记录N5~N7作为第二数据块,如表3所示。除了这种分块方式外,还可采用其它分块方式,例如,将N1~N3作为第一数据块,将数据记录N4~N7作为第二数据块,或者,将N1~N5作为第一数据块,将数据记录N6~N7作为第二数据块等。
表2
分析对象代码 | 数据1 | 数据2 | 数据3 |
N1 | 10 | 11 | 12 |
N2 | 20 | 21 | 22 |
N3 | 30 | 31 | 32 |
N4 | 10 | 11 | 12 |
表3
分析对象代码 | 数据1 | 数据2 | 数据3 |
N5 | 20 | 21 | 22 |
N6 | 30 | 31 | 32 |
N7 | 10 | 20 | 30 |
第二步:分别对第一个数据块和第二个数据块进行压缩。
第三步:将第一个数据块的序号、第一个数据块中分析对象最小值N1和分析对象代码最大值N4、以及第一个数据块的压缩数据作为一条新的数据记录写入数据库服务器的数据表中,如表4所示。同样的,将第二个数据块的序号、第一个数据块中分析对象最小值N5和分析对象代码最大值N7、以及第二个数据块的压缩数据作为一条新的数据记录写入数据库服务器的数据表中,如表4所示。
表4
本发明实施例提供的数据写入方法,首先将待写入数据进行分块,然后对每个数据块进行压缩,最后将压缩后的数据写入数据库服务器中的数据表中。本发明实施例提供的数据写入方法一次可写入多条数据记录,与现有技术中逐条写入数据记录的方式相比,数据存储速度大大提高。另外,由于数据记录进行了压缩,因此,节省了数据库服务器的存储空间。
请参阅图5,为本发明实施例提供的另一种数据读取方法的流程示意图,该方法可以包括:
步骤S501:获取待读取第一数据记录的序号。
步骤S502:在数据库服务器存储的数据表中的第二数据记录中查找第一数据记录的最小序号小于或等于待读取第一数据记录的序号,并且第一数据记录的最大序号大于或等于待读取第一数据记录的序号的第二数据记录,确定该第二数据记录为待读取第一数据记录所属的第二数据记录。
步骤S503:对确定出的第二数据记录中的压缩数据进行解压。
步骤S504:基于待读取第一数据记录的序号在解压后得到的第一数据记录中查找待读取第一数据记录。
步骤S505:在查找到待读取第一数据记录后,读取待读取第一数据记录。
在上述本发明实施例的基础上,现列举一具体实例进行说明。
以上述实施例中的数据表为例,假设待读取的第一数据记录的序号(分析对象代码)为N6:
第一步:在数据表(表4)中查找分析对象代码最小值小于或等于N6,并且,分析对象代码最大值大于或等于N6的数据记录,通过查找可知待读取第一数据记录位于数据表中的第二条数据记录中,即待读取第一数据记录位于第二数据块中。
第二步:对第二数据块的压缩数据进行解压,可得到数据记录N5~N7。
第三步:遍历解压后的数据记录N5~N7,查找到分析对象代码为N6的数据记录。
第四步:查找到分析对象代码为N6的数据记录后,读取该数据激励。
本发明实施例提供的数据读取方法,首先确定待读取第一数据记录在数据库服务器的数据表中的位置,即确定待读取第一数据记录在哪条第二数据记录中,确定出待读取第一数据记录所属的第二数据记录后,对第二数据记录中的压缩数据进行解压,基于待读取第一数据记录的序号在解压后的数据中查找待读取第一数据记录,并读取待读取第一数据记录。本发明实施例提供的数据读取方法能迅速从数据表中查找到待读取第一数据记录并读取,数据读取速度较快。
请参阅图6,为本发明实施例提供的一种数据写入装置的结构示意图,该装置可以包括:数据分块模块601、数据压缩模块602和数据写入模块603。其中:
数据分块模块601,用于对包含多条第一数据记录的待写入数据进行分块,所述待写入数据为依据各条第一数据记录的序号对所述多条第一数据记录进行排序后的数据,所述分块的数量小于所述待写入数据中第一数据记录的条数。
数据压缩模块602,用于针对数据块中的目标数据块,对所述目标数据块进行数据压缩。
数据写入模块603,用于将目标数据块中第一数据记录的最大序号和最小序号以及压缩后的数据作为第二数据记录写入数据库服务器的数据表中,直至待写入数据的第一数据记录全部写入所述数据库服务器的数据表中。
本发明实施例提供的数据写入装置,首先通过数据分块模块601将待写入数据进行分块,然后通过数据压缩模块602对每个数据块进行压缩,最后由数据写入模块603将压缩后的数据写入数据库服务器中的数据表中。本发明实施例提供的数据写入方法一次可写入多条数据记录,与现有技术中逐条写入数据记录的方式相比,数据存储速度大大提高。另外,由于数据记录进行了压缩,因此,节省了数据库服务器的存储空间。
可选的,上述实施例中的数据写入装置还可以包括:判断模块和排序模块。其中:
判断模块,用于判断待写入数据所包含的多条第一数据记录是否依据所述各条第一数据记录的序号进行排序。
排序模块,用于当待写入数据所包含的多条第一数据记录未依据各条第一数据记录的序号进行排序时,依据各条第一数据记录的序号按从小到大,或者从大到小的顺序进行排序。
在上述实施例中,数据分块模块601可以包括:第一确定子模块和分块子模块。其中:
第一确定子模块,用于确定待写入数据中第一数据记录的总条数M。
分块子模块,用于基于待写入数据中第一数据记录的总条数M,以及预先设定的每个数据块所包含第一数据记录的最大条数S,对待写入数据进行分块,使分块后的每个数据块中的第一数据记录的条数小于或等于S。
请参阅图7,为本发明实施例提供的一种数据读取装置,其特征在于,包括:获取模块701、确定模块702、解压模块703、查找模块704和读取模块705。其中:
获取模块701,用于获取待读取第一数据记录的序号。
确定模块702,用于基于待读取第一数据记录的序号以及数据库服务器存储的数据表的第二数据记录中,第一数据记录的最大序号和最小序号确定所待读取第一数据记录所属的第二数据记录。
解压模块703,用于对确定出的第二数据记录中的压缩数据进行解压。
查找模块704,用于基于待读取第一数据记录的序号在解压后得到的第一数据记录中查找待读取第一数据记录。
读取模块705,用于在查找到第一数据记录后,读取待读取第一数据记录。
本发明实施例提供的数据读取装置,可确定待读取第一数据记录在数据库服务器的数据表中的位置,即确定待读取第一数据记录在哪条第二数据记录中,在确定出待读取第一数据记录所属的第二数据记录后,可对第二数据记录中的压缩数据进行解压,基于待读取第一数据记录的序号在解压后的数据中查找待读取第一数据记录,并读取待读取第一数据记录。本发明实施例提供的数据读取装置能迅速从数据表中查找到待读取第一数据记录并读取,数据读取速度较快。
在上述实施例中,确定模块702可以包括:查找子模块和第二确定子模块。其中:
查找子模块,用于在数据表中的第二数据记录中查找第一数据记录的最小序号小于或等于待读取第一数据记录的序号,并且第一数据记录的最大序号大于或等于待读取第一数据记录的序号的第二数据记录。
第二确定子模块,用于确定查找子模块查找到的第二数据记录为待读取第一数据记录所属的第二数据记录。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (2)
1.一种数据写入读取方法,其特征在于,包括:
对包含多条第一数据记录的待写入数据进行分块,所述待写入数据为依据各条第一数据记录的序号对所述多条第一数据记录进行排序后得到的数据,所述分块的数量小于所述待写入数据中第一数据记录的条数;
针对数据块中的目标数据块,对所述目标数据块进行数据压缩,将所述目标数据块中第一数据记录的最大序号和最小序号以及压缩后的数据作为第二数据记录写入数据库服务器的数据表中,直至所述待写入数据的第一数据记录全部写入所述数据库服务器的数据表中;
其中,所述对包含多条第一数据记录的待写入数据进行分块,包括:
确定所述待写入数据中第一数据记录的总条数M;
基于所述待写入数据中第一数据记录的总条数M,以及预先设定的每个数据块所包含第一数据记录的最大条数S,对所述待写入数据进行分块,使分块后的每个数据块中的第一数据记录的条数小于或等于S,其中,M和S均为大于0的整数;
其中,还包括:
判断所述待写入数据所包含的多条第一数据记录是否依据所述各条第一数据记录的序号进行排序;
如果否,则依据所述各条第一数据记录的序号按从小到大,或者从大到小的顺序进行排序;
获取待读取第一数据记录的序号;
基于所述待读取第一数据记录的序号以及数据库服务器存储的数据表的第二数据记录中,第一数据记录的最大序号和最小序号确定所述待读取第一数据记录所属的第二数据记录;
对确定出的第二数据记录中的压缩数据进行解压;
基于所述待读取第一数据记录的序号在解压后得到的第一数据记录中查找所述待读取第一数据记录;
在查找到所述第一数据记录后,读取所述待读取第一数据记录;
其中,所述基于所述待读取第一数据记录的序号以及数据库服务器存储的数据表的第二数据记录中,第一数据记录的最大序号和最小序号确定所述待读取第一数据记录所属的第二数据记录,包括:
在所述数据表中的第二数据记录中查找第一数据记录的最小序号小于或等于所述待读取第一数据记录的序号,并且第一数据记录的最大序号大于或等于所述待读取第一数据记录的序号的第二数据记录,确定该第二数据记录为所述待读取第一数据记录所属的第二数据记录。
2.一种数据写入读取装置,其特征在于,包括:
数据分块模块,用于对包含多条第一数据记录的待写入数据进行分块,所述待写入数据为依据各条第一数据记录的序号对所述多条第一数据记录进行排序后的数据,所述分块的数量小于所述待写入数据中第一数据记录的条数;
数据压缩模块,用于针对数据块中的目标数据块,对所述目标数据块进行数据压缩;
数据写入模块,用于将所述目标数据块中第一数据记录的最大序号和最小序号以及压缩后的数据作为第二数据记录写入数据库服务器的数据表中,直至所述待写入数据的第一数据记录全部写入所述数据库服务器的数据表中;
其中,所述数据分块模块包括:
第一确定子模块,用于确定所述待写入数据中第一数据记录的总条数M;
分块子模块,用于基于所述待写入数据中第一数据记录的总条数M,以及预先设定的每个数据块所包含第一数据记录的最大条数S,对所述待写入数据进行分块,使分块后的每个数据块中的第一数据记录的条数小于或等于S,其中,M和S均为大于0的整数;
其中,还包括:
判断模块,用于判断所述待写入数据所包含的多条第一数据记录是否依据所述各条第一数据记录的序号进行排序;
排序模块,用于当所述待写入数据所包含的多条第一数据记录未依据所述各条第一数据记录的序号进行排序时,依据所述各条第一数据记录的序号按从小到大,或者从大到小的顺序进行排序;
获取模块,用于获取待读取第一数据记录的序号;
确定模块,用于基于所述待读取第一数据记录的序号以及数据库服务器存储的数据表的第二数据记录中,第一数据记录的最大序号和最小序号确定所述待读取第一数据记录所属的第二数据记录;
解压模块,用于对确定出的第二数据记录中的压缩数据进行解压;
查找模块,用于基于所述待读取第一数据记录的序号在解压后得到的第一数据记录中查找所述待读取第一数据记录;
读取模块,用于在查找到所述第一数据记录后,读取所述待读取第一数据记录;
其中,所述确定模块包括:
查找子模块,用于在所述数据表中的第二数据记录中查找第一数据记录的最小序号小于或等于所述待读取第一数据记录的序号,并且第一数据记录的最大序号大于或等于所述待读取第一数据记录的序号的第二数据记录;
第二确定子模块,用于确定所述查找模块查找到的第二数据记录为所述待读取第一数据记录所属的第二数据记录。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310493539.0A CN103500224B (zh) | 2013-10-18 | 2013-10-18 | 一种数据写入方法及装置、数据读取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310493539.0A CN103500224B (zh) | 2013-10-18 | 2013-10-18 | 一种数据写入方法及装置、数据读取方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103500224A CN103500224A (zh) | 2014-01-08 |
CN103500224B true CN103500224B (zh) | 2016-03-16 |
Family
ID=49865435
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310493539.0A Active CN103500224B (zh) | 2013-10-18 | 2013-10-18 | 一种数据写入方法及装置、数据读取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103500224B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12045497B2 (en) | 2019-10-18 | 2024-07-23 | Ant Blockchain Technology (shanghai) Co., Ltd. | Disk storage-based data reading methods and apparatuses, and devices |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10108649B2 (en) * | 2014-02-25 | 2018-10-23 | Internatonal Business Machines Corporation | Early exit from table scans of loosely ordered and/or grouped relations using nearly ordered maps |
CN104156407B (zh) * | 2014-07-29 | 2017-08-25 | 华为技术有限公司 | 索引数据的存储方法、装置及存储设备 |
CN106610992B (zh) * | 2015-10-23 | 2021-03-02 | 南京苏宁软件技术有限公司 | 一种数据读取方法及装置 |
CN106250783B (zh) * | 2016-08-31 | 2019-10-18 | 天津南大通用数据技术股份有限公司 | 一种数据库数据加密、解密方法及装置 |
CN106604111A (zh) * | 2016-12-16 | 2017-04-26 | 深圳市九洲电器有限公司 | 机顶盒Flash数据存储方法及*** |
CN110703982B (zh) * | 2018-07-10 | 2023-02-10 | 合一智芯科技(北京)有限公司 | 一种结构体排序方法、排序装置及排序器 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101178693A (zh) * | 2007-12-14 | 2008-05-14 | 沈阳东软软件股份有限公司 | 一种数据缓存方法及*** |
CN101221577A (zh) * | 2008-01-24 | 2008-07-16 | 中兴通讯股份有限公司 | 一种实现内存数据库表存盘和加载的方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8645337B2 (en) * | 2009-04-30 | 2014-02-04 | Oracle International Corporation | Storing compression units in relational tables |
US20120310917A1 (en) * | 2011-05-31 | 2012-12-06 | International Business Machines Corporation | Accelerated Join Process in Relational Database Management System |
-
2013
- 2013-10-18 CN CN201310493539.0A patent/CN103500224B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101178693A (zh) * | 2007-12-14 | 2008-05-14 | 沈阳东软软件股份有限公司 | 一种数据缓存方法及*** |
CN101221577A (zh) * | 2008-01-24 | 2008-07-16 | 中兴通讯股份有限公司 | 一种实现内存数据库表存盘和加载的方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US12045497B2 (en) | 2019-10-18 | 2024-07-23 | Ant Blockchain Technology (shanghai) Co., Ltd. | Disk storage-based data reading methods and apparatuses, and devices |
Also Published As
Publication number | Publication date |
---|---|
CN103500224A (zh) | 2014-01-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103500224B (zh) | 一种数据写入方法及装置、数据读取方法及装置 | |
US10817258B2 (en) | Clustering storage method and apparatus | |
KR101806055B1 (ko) | 선택도에 대해 데이터 비트를 인터리빙함으로써 관계형 데이터베이스에 대한 멀티-칼럼 인덱스의 발생 | |
TWI603211B (zh) | Construction of inverted index system based on Lucene, data processing method and device | |
CN102663090B (zh) | 元数据查询方法和装置 | |
CN104715039A (zh) | 基于硬盘和内存的列式存储和查询方法及设备 | |
CN103488709B (zh) | 一种索引建立方法及***、检索方法及*** | |
US9213782B2 (en) | Sorting multiple records of data using ranges of key values | |
US9176995B2 (en) | Organization of data within a database | |
CN103902702A (zh) | 一种数据存储***和存储方法 | |
US10042873B2 (en) | Data encoding and processing columnar data | |
CN102682108B (zh) | 一种行列混合的数据库存储方法 | |
CN107729406B (zh) | 一种数据分类存储方法及装置 | |
CN102402617A (zh) | 一种利用分片及稀疏位图的易压缩数据库索引存储***及其相应的构建、调度和查询处理方法 | |
US10726005B2 (en) | Virtual split dictionary for search optimization | |
CN103577559A (zh) | 数据排序方法和装置 | |
CN102591855A (zh) | 一种数据标识方法及*** | |
CN104298736A (zh) | 数据集合连接方法、装置及数据库*** | |
CN105159950A (zh) | 海量数据实时排序查询方法及*** | |
CN103473268B (zh) | 线性要素空间索引构建方法、***和检索方法及其*** | |
CN104462080B (zh) | 针对检索结果进行分组统计的索引结构创建方法和*** | |
CN102156759B (zh) | 二叉树并行查找方法和设备 | |
CN112434085A (zh) | 基于Roaring Bitmap的用户数据统计方法 | |
CN106682047A (zh) | 一种数据导入方法以及相关装置 | |
CN107239454A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20210310 Address after: Room 708, 268 Xiangke Road, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai, 200120 Patentee after: 17WIN NETWORK TECHNOLOGY Co.,Ltd. Address before: 310053 no.3738, South Ring Road, Puyan street, Binjiang District, Hangzhou City, Zhejiang Province Patentee before: SERVYOU SOFTWARE GROUP Co.,Ltd. |
|
TR01 | Transfer of patent right |