一种数据写入方法及装置、数据读取方法及装置制造方法

文档序号:6515934阅读:224来源:国知局
一种数据写入方法及装置、数据读取方法及装置制造方法
【专利摘要】本申请提供了一种数据写入方法及装置、数据读取方法及装置,其中,数据写入方法包括:对包含多条第一数据记录的待写入数据进行分块,待写入数据为依据各条第一数据记录的序号对多条第一数据记录进行排序后得到的数据,分块的数量小于待写入数据中第一数据记录的条数;针对数据块中的目标数据块,对目标数据块进行数据压缩,将目标数据块中第一数据记录的最大序号和最小序号以及压缩后的数据作为第二数据记录写入数据库服务器的数据表中,直至待写入数据的第一数据记录全部写入所述数据库服务器的数据表中。本申请提高了数据存储速度,并且节省了数据库服务器的存储空间。
【专利说明】一种数据写入方法及装置、数据读取方法及装置
【技术领域】
[0001]本发明涉及数据处理【技术领域】,尤其涉及一种数据写入方法及装置、数据读取方 法及装置。
【背景技术】
[0002]数据分析应用系统是指对生产交易等各类业务数据进行加工运算、汇总、筛选等 操作的软件平台。数据分析应用系统通过加载数据库中的原始数据,并经过一系列数据操 作得到结果数据,然后将结果数据存储到结果数据库中的数据表中,即,全部结果数据都将 从数据分析应用系统所在的应用服务器传输到结果数据库所在的数据库服务器上。
[0003]现有技术中,结果数据是逐条写入数据库服务器中的数据表的。发明人在实现本 发明创造的过程中发现:由于结果数据的数据量很大,即,结果数据包括很多条数据记录, 逐条写入数据记录将导致结果数据的存储耗时很长。

【发明内容】

[0004]有鉴于此,本发明提供了一种写入方法及装置、数据读取方法及装置,用以解决现 有技术中逐条写入数据记录将导致结果数据的存储耗时很长的问题,其技术方案如下:
[0005]一种数据写入方法,包括:
[0006]对包含多条第一数据记录的待写入数据进行分块,所述待写入数据为依据各条第 一数据记录的序号对所述多条第一数据记录进行排序后得到的数据,所述分块的数量小于 所述待写入数据中第一数据记录的条数;
[0007]针对数据块中的目标数据块,对所述目标数据块进行数据压缩,将所述目标数据 块中第一数据记录的最大序号和最小序号以及压缩后的数据作为第二数据记录写入数据 库服务器的数据表中,直至所述待写入数据的第一数据记录全部写入所述数据库服务器的 数据表中。
[0008]可选的,上述数据写入方法还可以包括:
[0009]判断所述待写入数据所包含的多条第一数据记录是否依据所述各条第一数据记 录的序号进行排序;
[0010]如果否,则依据所述各条第一数据记录的序号按从小到大,或者从大到小的顺序 进行排序。
[0011]其中,对包含多条第一数据记录的待写入数据进行分块,包括:
[0012]确定所述待写入数据中第一数据记录的总条数M ;
[0013]基于所述待写入数据中第一数据记录的总条数M,以及预先设定的每个数据块所 包含第一数据记录的最大条数S,对所述待写入数据进行分块,使分块后的每个数据块中的 第一数据记录的条数小于或等于S,其中,M和S均为大于0的整数。
[0014]一种数据读取方法,包括:
[0015]获取待读取第一数据记录的序号;[0016]基于所述待读取第一数据记录的序号以及数据库服务器存储的数据表的第二数 据记录中,第一数据记录的最大序号和最小序号确定所述待读取第一数据记录所属的第二 数据记录;
[0017]对确定出的第二数据记录中的压缩数据进行解压;
[0018]基于所述待读取第一数据记录的序号在解压后得到的第一数据记录中查找所述 待读取第一数据记录;
[0019]在查找到所述第一数据记录后,读取所述待读取第一数据记录。
[0020]其中,基于所述待读取第一数据记录的序号以及数据库服务器存储的数据表的第 二数据记录中,第一数据记录的最大序号和最小序号确定所述待读取第一数据记录所属的 第二数据记录,包括:
[0021]在所述数据表中的第二数据记录中查找第一数据记录的最小序号小于或等于所 述待读取第一数据记录的序号,并且第一数据记录的最大序号大于或等于所述待读取第一 数据记录的序号的第二数据记录,确定该第二数据记录为所述待读取第一数据记录所属的 第二数据记录。
[0022]一种数据写入装置,包括:
[0023]数据分块模块,用于对包含多条第一数据记录的待写入数据进行分块,所述待写 入数据为依据各条第一数据记录的序号对所述多条第一数据记录进行排序后的数据,所述 分块的数量小于所述待写入数据中第一数据记录的条数;
[0024]数据压缩模块,用于针对数据块中的目标数据块,对所述目标数据块进行数据压 缩;
[0025]数据写入模块,用于将所述目标数据块中第一数据记录的最大序号和最小序号以 及压缩后的数据作为第二数据记录写入数据库服务器的数据表中,直至所述待写入数据的 第一数据记录全部写入所述数据库服务器的数据表中。
[0026]可选的,上述的数据写入装置还包括:
[0027]判断模块,用于判断所述待写入数据所包含的多条第一数据记录是否依据所述各 条第一数据记录的序号进行排序;
[0028]排序模块,用于当所述待写入数据所包含的多条第一数据记录未依据所述各条第 一数据记录的序号进行排序时,依据所述各条第一数据记录的序号按从小到大,或者从大 到小的顺序进行排序。
[0029]其中,所述数据分块模块包括:
[0030]第一确定子模块,用于确定所述待写入数据中第一数据记录的总条数M ;
[0031]分块子模块,用于基于所述待写入数据中第一数据记录的总条数M,以及预先设定 的每个数据块所包含第一数据记录的最大条数S,对所述待写入数据进行分块,使分块后的 每个数据块中的第一数据记录的条数小于或等于S,其中,M和S均为大于0的整数。
[0032]一种数据读取装置,包括:
[0033]获取模块,用于获取待读取第一数据记录的序号;
[0034]确定模块,用于基于所述待读取第一数据记录的序号以及数据库服务器存储的数 据表的第二数据记录中,第一数据记录的最大序号和最小序号确定所述待读取第一数据记 录所属的第二数据记录;[0035]解压模块,用于对确定出的第二数据记录中的压缩数据进行解压;
[0036]查找模块,用于基于所述待读取第一数据记录的序号在解压后得到的第一数据记 录中查找所述待读取第一数据记录;
[0037]读取模块,用于在查找到所述第一数据记录后,读取所述待读取第一数据记录。
[0038]其中,所述确定模块包括:
[0039]查找子模块,用于在所述数据表中的第二数据记录中查找第一数据记录的最小序 号小于或等于所述待读取第一数据记录的序号,并且第一数据记录的最大序号大于或等于 所述待读取第一数据记录的序号的第二数据记录;
[0040]第二确定子模块,用于确定所述查找模块查找到的第二数据记录为所述待读取第 一数据记录所属的第二数据记录。
[0041]上述技术方案具有如下有益效果:
[0042]本发明提供的数据写入方法及装置、数据读取方法及装置中,在写入数据时,首先 将待写入数据进行分块,然后对每个数据块进行压缩,最后将压缩后的数据写入数据库服 务器中的数据表中,在读取数据时,首先确定待读取第一数据记录在数据库服务器的数据 表中的位置,即确定待读取第一数据记录在数据表中的哪条第二数据记录中,确定出待读 取第一数据记录所属的第二数据记录后,对第二数据记录中的压缩数据进行解压,基于待 读取第一数据记录的序号在解压后的数据中查找待读取第一数据记录,并读取待读取第一 数据记录。本发明提供的数据写入方法及装置一次可写入多条数据记录,与现有技术中逐 条写入数据记录的方式相比,数据存储速度大大提高,另外,由于数据记录进行了压缩,因 此,节省了数据库服务器的存储空间;本发明提供的数据读取方法及装置能迅速从数据表 中查找到待读取第一数据记录并读取,数据读取速度较快。
【专利附图】

【附图说明】
[0043]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据 提供的附图获得其他的附图。
[0044]图1为本发明实施例提供的一种数据写入方法的流程示意图;
[0045]图2为本发明实施例提供的一种数据读取方法的流程示意图;
[0046]图3为本发明实施例提供的另一种数据写入方法的流程示意图;
[0047]图4为本发明实施例提供的数据写入方法中,对包含多条第一数据记录的待写入 数据进行分块的一种实现方式的流程示意图;
[0048]图5为本发明实施例提供的另一种数据读取方法的流程示意图;
[0049]图6为本发明实施例提供的数据写入装置的结构示意图;
[0050]图7为本发明实施例提供的数据读取装置的结构示意图。
【具体实施方式】
[0051]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。
[0052]请参阅图1,为本发明实施例提供的一种数据写入方法的流程示意图,该方法可以 包括:
[0053]步骤SlOl:对包含多条第一数据记录的待写入数据进行分块。
[0054]其中,待写入数据为依据各条第一数据记录的序号对多条第一数据记录进行排序 后的数据。
[0055]其中,分块的数量小于待写入数据中第一数据记录的条数。
[0056]步骤S102:针对数据块中的目标数据块,对目标数据块进行数据压缩,将目标数 据块中第一数据记录的最大序号和最小序号以及压缩后的数据作为第二数据记录写入数 据库服务器的数据表中,直至待写入数据的第一数据记录全部写入数据库服务器的数据表 中。
[0057]本发明实施例提供的数据写入方法,首先将待写入数据进行分块,然后对每个数 据块进行压缩,最后将压缩后的数据写入数据库服务器中的数据表中。本发明实施例提供 的数据写入方法一次可写入多条数据记录,与现有技术中逐条写入数据记录的方式相比, 数据存储速度大大提高。另外,由于数据记录进行了压缩,因此,节省了数据库服务器的存 储空间。
[0058]与上述数据写入方法相对应,本发明实施例还提供了一种数据读取方法,请参阅 图2,为本发明实施例提供的数据读取方法的流程示意图,该方法可以包括:
[0059]步骤S201:获取待读取第一数据记录的序号。
[0060]步骤S202:基于待读取第一数据记录的序号以及数据库服务器存储的数据表的 第二数据记录中,第一数据记录的最大序号和最小序号确定待读取第一数据记录所属的第 二数据记录。
[0061]步骤S203:对确定出的第二数据记录中的压缩数据进行解压。
[0062]步骤S204:基于待读取第一数据记录的序号在解压后得到的第一数据记录中查 找待读取第一数据记录。
[0063]步骤S205:在查找到待读取第一数据记录后,读取待读取第一数据记录。
[0064]本发明实施例提供的数据读取方法,首先确定待读取第一数据记录在数据库服务 器的数据表中的位置,即确定待读取第一数据记录在哪条第二数据记录中,确定出待读取 第一数据记录所属的第二数据记录后,对第二数据记录中的压缩数据进行解压,基于待读 取第一数据记录的序号在解压后的数据中查找待读取第一数据记录,并读取待读取第一数 据记录。本发明实施例提供的数据读取方法能迅速从数据表中查找到待读取第一数据记录 并读取,数据读取速度较快。
[0065]请参阅图3,为本发明实施例提供的另一种数据写入方法的流程示意图,该方法可 以包括:
[0066]步骤S301:判断待写入数据所包含的多条第一数据记录是否依据各条第一数据 记录的序号进行排序,如果待写入数据所包含的多条第一数据记录已经依据各条第一数据 记录的序号进行排序,则转入步骤S303,否则转入步骤S302。
[0067]步骤S302:依据各条第一数据记录的序号按从小到大,或者从大到小的顺序进行排序。
[0068]步骤S303:对包含多条第一数据记录的待写入数据进行分块。
[0069]其中,分块的数量小于待写入数据中第一数据记录的条数。
[0070]对包含多条第一数据记录的待写入数据进行分块的实现方式有多种,图4示出了 一种可能的实现方式的流程示意图,可以包括:
[0071]步骤S401:确定待写入数据中第一数据记录的总条数M。
[0072]步骤S402:基于待写入数据中第一数据记录的总条数M,以及预先设定的每个数 据块所包含第一数据记录的最大条数S,对待写入数据进行分块,使分块后的每个数据块中 的第一数据记录的条数小于或等于S,其中,M和S均为大于0的整数。
[0073]基于待写入数据中第一数据记录的总条数M,以及预先设定的每个数据块所包含 第一数据记录的最大条数S,对待写入数据进行分块的实现方式有多种。
[0074]在一种可能的实现方式中,可对待写入数据进行平均分块,具体的,如果第一数据 记录的总条数M能被S整除,则将待写入数据平均分为M/S块,每个数据块所包含第一数 据记录的数量均为S ;如果第一数据记录的总条数M不能被S整除,则将待写入数据平均分
为[M / Sj+1块,其中[M / Sj个数据块中的每个数据块所包含第一数据记录的数量均为
s,剩余的I块包含M-S*[M /Sj条第一数据记录,其中,L 表示向下取整。例如,待写入
数据所包含7条第一数据记录,即M=7,分别为NI?N7,设定S=3,则将待写入数据分为3个 数据块,其中有两个数据块均包含3条第一数据记录,另外I块包含I条数据记录,具体的, 第一个数据块包括NI?N3,第二个数据块包括N4?N6,第三个数据块包括N7。
[0075]在上述实现方式中,待写入数据是平均分块的,当然,也可不平均分块。以待写入 数据包含6条第一数据记录,即M=6,分别为NI?N6,设定S=3为例,分块方式可以为:第一 个数据块包括3条第一数据记录,第二个数据块包括2条第一数据记录,第三个数据块包括 I条第一数据记录,具体的,第一个数据块包括NI?N3,第二个数据块包括N4?N5,第三个 数据块包括N6。
[0076]需要说明的是,在对待写入数据进行分块时,不管是平均分块还是不平均分块,其 分块原则均是使每个数据块所包含的第一数据记录的数量小于或等于S。另外,本发明实施 例并不限定待写入数据的分块方式为上述方式,只要基于数据分块的思想进行数据的写入 都是本发明保护的范围。
[0077]在对待写入数据进行分块后,返回数据写入方法的流程:
[0078]步骤S304:针对数据块中的目标数据块,对目标数据块进行数据压缩,将目标数 据块的序号、目标数据块中第一数据记录的最大序号和最小序号以及压缩后的数据作为第 二数据记录写入数据库服务器的数据表中,直至待写入数据的第一数据记录全部写入所述 数据库服务器的数据表中。
[0079]在上述本发明实施例的基础上,现列举一具体实例进行说明。
[0080]假设待写入数据为表I中的各条数据记录。表I中的分析对象代码即为数据记录 的序号。表I中包括了 NI?N77条数据记录。
[0081]表I
[0082]
【权利要求】
1.一种数据写入方法,其特征在于,包括:对包含多条第一数据记录的待写入数据进行分块,所述待写入数据为依据各条第一数据记录的序号对所述多条第一数据记录进行排序后得到的数据,所述分块的数量小于所述待写入数据中第一数据记录的条数;针对数据块中的目标数据块,对所述目标数据块进行数据压缩,将所述目标数据块中第一数据记录的最大序号和最小序号以及压缩后的数据作为第二数据记录写入数据库服务器的数据表中,直至所述待写入数据的第一数据记录全部写入所述数据库服务器的数据表中。
2.根据权利要求1所述的数据写入方法,其特征在于,还包括:判断所述待写入数据所包含的多条第一数据记录是否依据所述各条第一数据记录的序号进行排序;如果否,则依据所述各条第一数据记录的序号按从小到大,或者从大到小的顺序进行排序。
3.根据权利要求1或2所述的数据写入方法,其特征在于,对包含多条第一数据记录的待写入数据进行分块,包括:确定所述待写入数据中第一数据记录的总条数M;基于所述待写入数据中第一数据记录的总条数M,以及预先设定的每个数据块所包含第一数据记录的最大条数S,对所述待写入数据进行分块,使分块后的每个数据块中的第一数据记录的条数小于或等于S,其中,M和S均为大于0的整数。
4.一种数据读取方法,其特征在于,包括:获取待读取第一数据记录的序号;基于所述待读取第一数据记录的序号以及数据库服务器存储的数据表的第二数据记录中,第一数据记录的最大序号和最小序号确定所述待读取第一数据记录所属的第二数据记录;对确定出的第二数据记录中的压缩数据进行解压;基于所述待读取第一数据记录的序号在解压后得到的第一数据记录中查找所述待读取第一数据记录;在查找到所述第一数据记录后,读取所述待读取第一数据记录。
5.根据权利要求4所述的数据读取方法,其特征在于,基于所述待读取第一数据记录的序号以及数据库服务器存储的数据表的第二数据记录中,第一数据记录的最大序号和最小序号确定所述待读取第一数据记录所属的第二数据记录,包括:在所述数据表中的第二数据记录中查找第一数据记录的最小序号小于或等于所述待读取第一数据记录的序号,并且第一数据记录的最大序号大于或等于所述待读取第一数据记录的序号的第二数据记录,确定该第二数据记录为所述待读取第一数据记录所属的第二数据记录。
6.一种数据写入装置,其特征在于,包括:数据分块模块,用于对包含多条第一数据记录的待写入数据进行分块,所述待写入数据为依据各条第一数据记录的序号对所述多条第一数据记录进行排序后的数据,所述分块的数量小于所述待写入数据中第一数据记录的条数;数据压缩模块,用于针对数据块中的目标数据块,对所述目标数据块进行数据压缩; 数据写入模块,用于将所述目标数据块中第一数据记录的最大序号和最小序号以及压缩后的数据作为第二数据记录写入数据库服务器的数据表中,直至所述待写入数据的第一数据记录全部写入所述数据库服务器的数据表中。
7.根据权利要求6所述的数据写入装置,其特征在于,还包括:判断模块,用于判断所述待写入数据所包含的多条第一数据记录是否依据所述各条第一数据记录的序号进行排序;排序模块,用于当所述待写入数据所包含的多条第一数据记录未依据所述各条第一数据记录的序号进行排序时,依据所述各条第一数据记录的序号按从小到大,或者从大到小的顺序进行排序。
8.根据权利要求6或7所述的数据写入装置,其特征在于,所述数据分块模块包括:第一确定子模块,用于确定所述待写入数据中第一数据记录的总条数M ;分块子模块,用于基于所述待写入数据中第一数据记录的总条数M,以及预先设定的每个数据块所包含第一数据记录的最大条数S,对所述待写入数据进行分块,使分块后的每个数据块中的第一数据记录的条数小于或等于S,其中,M和S均为大于0的整数。
9.一种数据读取装置, 其特征在于,包括:获取模块,用于获取待读取第一数据记录的序号;确定模块,用于基于所述待读取第一数据记录的序号以及数据库服务器存储的数据表的第二数据记录中,第一数据记录的最大序号和最小序号确定所述待读取第一数据记录所属的第二数据记录;解压模块,用于对确定出的第二数据记录中的压缩数据进行解压;查找模块,用于基于所述待读取第一数据记录的序号在解压后得到的第一数据记录中查找所述待读取第一数据记录;读取模块,用于在查找到所述第一数据记录后,读取所述待读取第一数据记录。
10.根据权利要求9所述的数据读取装置,其特征在于,所述确定模块包括:查找子模块,用于在所述数据表中的第二数据记录中查找第一数据记录的最小序号小于或等于所述待读取第一数据记录的序号,并且第一数据记录的最大序号大于或等于所述待读取第一数据记录的序号的第二数据记录;第二确定子模块,用于确定所述查找模块查找到的第二数据记录为所述待读取第一数据记录所属的第二数据记录。
【文档编号】G06F17/30GK103500224SQ201310493539
【公开日】2014年1月8日 申请日期:2013年10月18日 优先权日:2013年10月18日
【发明者】陈宏仁, 张毅, 钱运辉, 王培勇 申请人:税友软件集团股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1