数据集合处理方法、装置和系统

文档序号:828774 发布日期:2021-03-30 浏览:3次 >En<

阅读说明:本技术 数据集合处理方法、装置和系统 (Data set processing method, device and system ) 是由 李强 陈庆东 韩丹 于 2019-09-29 设计创作,主要内容包括:本发明提出一种数据集合处理方法、一种数据集合处理装置和一种数据集合处理系统,所述方法包括:获取初始数据集合的集合大小和集合行数;根据预设内存容量、所述集合大小和所述集合行数得到数据加载行数;根据预设读取单位从所述初始数据集合中读取数据得到第一数据量;判断所述第一数据量的行数是否大于所述数据加载行数,当判断所述第一数据量的行数不大于所述数据加载行数时,将所述第一数据量保存至目标数据集合中。本发明实施例提供的数据集合处理方法可以避免通过设置内存不受限直接将大数据集合拆分后重新融合成新的数据集合造成的服务器运行脚本异常问题。(The invention provides a data set processing method, a data set processing device and a data set processing system, wherein the method comprises the following steps: acquiring the set size and the set line number of an initial data set; obtaining a data loading line number according to a preset memory capacity, the set size and the set line number; reading data from the initial data set according to a preset reading unit to obtain a first data volume; and judging whether the line number of the first data volume is larger than the data loading line number, and storing the first data volume into a target data set when the line number of the first data volume is judged not to be larger than the data loading line number. The data set processing method provided by the embodiment of the invention can avoid the problem of abnormal server running scripts caused by directly splitting a large data set and then re-fusing the split large data set into a new data set without limiting the memory.)

数据集合处理方法、装置和系统

技术领域

本发明涉及大数据技术领域,尤其涉及一种数据集合处理方法、一种数据集合处理装置和一种数据集合处理系统。

背景技术

目前,每个项目涉及的大数据集合由于占用磁盘空间过大,从而导致无法有效的释放大数据集合占用的磁盘空间;此外大数据集合所占用服务器资源开销过大,增加服务器资源成本;且大数据集合中历史数据和活跃数据处于共存状态,无法有效地将历史数据归档存储,从而影响历史问题排查分析。

现有相关技术中通过设置内存不受限直接将大数据集合拆分后重新融合成新的数据集合,如此一来运行内存在高突发数据情况下会溢出,造成服务器脚本异常的情况,同时这种方式还会存在一定的服务器风险。

发明内容

因此,本发明提出一种数据集合处理方法、一种数据集合处理装置和一种数据集合处理系统,以避免现有相关技术中通过设置内存不受限直接将大数据集合拆分后重新融合成新的数据集合造成的服务器运行脚本异常问题。

具体地,第一方面,本发明实施例提出一种数据集合处理方法,包括:获取初始数据集合的集合大小和集合行数;根据预设内存容量、所述集合大小和所述集合行数得到数据加载行数;根据预设读取单位从所述初始数据集合中读取数据得到第一数据量;判断所述第一数据量的行数是否大于所述数据加载行数,当判断所述第一数据量的行数不大于所述数据加载行数时,将所述第一数据量保存至目标数据集合中。

在现有技术中,通过设置内存不受限直接将大数据集合拆分后重新融合成新的数据集合,如此一来运行内存在高突发数据情况下会溢出,造成服务器脚本异常的情况,同时这种方式还会存在一定的服务器风险。本发明实施例通过根据预设读取单位从所述初始数据集合中读取数据得到第一数据量;判断所述第一数据量的行数是否大于所述数据加载行数,当判断所述第一数据量的行数不大于所述数据加载行数时,将所述第一数据量保存至目标数据集合中,将大数据集合进行合理性拆分重组,避免了现有相关技术中通过设置内存不受限直接将大数据集合拆分后重新融合成新的数据集合造成的服务器运行脚本异常问题,降低了服务器风险,避免大数据集合占用服务器资源开销过大的情况,可以随时删除原大数据集合,释放磁盘空间降低服务器资源成本,可以根据将历史数据和活跃数据进行分开保存,有效地将历史数据归档,利于历史问题的排查分析。

在本发明的一个实施例中,所述根据预设内存容量、所述集合大小和所述集合行数计算得到数据加载行数,包括:根据所述集合大小和所述集合行数计算得到每行数据大小;根据所述预设内存容量和所述每行数据大小计算得到所述数据加载行数。

在本发明的一个实施例中,前述数据集合处理方法还包括:当判断所述第一数据量的行数大于所述数据加载行数时,修改所述预设读取单位得到第一目标读取单位,根据所述第一目标读取单位从所述初始数据集合中读取数据得到第二数据量;判断所述第二数据量的行数是否大于所述数据加载行数,当判断所述第二数据量的行数不大于所述数据加载行数时,将所述第二数据量保存至所述目标数据集合中。

在本发明的一个实施例中,所述修改所述预设读取单位得到第一目标读取单位包括:将所述预设读取单位拆分为相等的第一时间长度和第二时间长度,并所述第一时间长度作为所述第一目标读取单位。

在本发明的一个实施例中,前述数据集合处理方法还包括:将所述预设读取单位的所述第二时间长度作为第二目标读取单位;根据所述第二目标读取单位从所述初始数据集合中读取数据得到第三数据量;判断所述第三数据量的行数是否大于所述数据加载行数,当判断所述第三数据量的行数不大于所述数据加载行数时,将所述第三数据量存储至所述目标数据集合中。

在本发明的一个实施例中,前述数据集合处理方法,还包括:当判断所述第一数据量的行数大于所述数据加载行数时,对所述第一数据量进行处理得到第二数据量;判断所述第二数据量的行数是否大于所述数据加载行数,当判断所述第二数据量的行数不大于所述数据加载行数时,将所述第二数据量保存至所述目标数据集合中。

在本发明的一个实施例中,所述对所述第一数据量进行处理得到第二数据量,包括:将所述第一数据量拆分为相等的第一子数据量和第二子数据量,将所述第一子数据量作为所述第二数据量。

在本发明的一个实施例中,前述数据集合处理方法还包括:将第二子数据量作为第三数据量;判断所述第三数据量的行数是否大于所述数据加载行数,当判断所述第三数据量的行数不大于所述数据加载行数时,将所述第三数据量存储至所述目标数据集合中。

第二方面,本发明实施例提出一种数据集合处理装置,包括:参数获取模块,用于获取初始数据集合的集合大小和集合行数;行数确定模块,用于根据预设内存容量、所述集合大小和所述集合行数得到数据加载行数;数据获取模块,用于根据预设读取单位从所述初始数据集合中读取数据得到第一数据量;数据保存模块,用于判断所述第一数据量的行数是否大于所述数据加载行数,当判断所述第一数据量的行数不大于所述数据加载行数时,将所述第一数据量保存至目标数据集合中。

第三方面,本发明实施例提出一种数据集合处理系统,包括:处理器和连接所述处理器的存储器;其中所述存储器存储有所述处理器执行的指令,且所述指令使得所述处理器执行操作以进行如前述中任意一项所述的数据集合处理方法。

第四方面,本发明实施例提出一种计算机可读介质,所述计算机可读介质存储有计算机可读指令,所述计算机可读指令包括用于执行如前述中任一项所述的数据集合处理方法的指令。

由上可知,本发明实施例可以达成以下一个或多个有益效果:避免了现有相关技术中通过设置内存不受限直接将大数据集合拆分后重新融合成新的数据集合造成的服务器运行脚本异常问题,降低了服务器风险,避免大数据集合占用服务器资源开销过大的情况,可以随时删除原大数据集合,释放磁盘空间降低服务器资源成本,可以根据将历史数据和活跃数据进行分开保存,有效地将历史数据归档,利于历史问题的排查分析。

通过以下参考附图的详细说明,本发明的其它方面和特征变得明显。但是应当知道,该附图仅仅为解释的目的设计,而不是作为本发明的范围的限定。还应当知道,除非另外指出,不必要依比例绘制附图,它们仅仅力图概念地说明此处描述的结构和流程。

附图说明

下面将结合附图,对本发明的

具体实施方式

进行详细的说明。

图1为本发明第一实施例提供的一种数据集合处理方法的流程示意图;

图2为本发明第一实施例提供的一种数据集合处理方法的另一流程示意图;

图3为本发明第二实施例提供的一种数据集合处理装置的模块示意图;

图4为本发明第三实施例提供的一种数据集合处理系统的结构流程图;

图5为本发明第四实施例提供的一种计算机可读介质的示意图。

【附图标记说明】

S11-S16:数据集合处理方法步骤;

20:数据集合处理装置;21:参数获取模块;22:行数确定模块;23:数据获取模块;24:数据保存模块;

30:数据集合处理系统;31:处理器;32:存储器;

40:计算机可读介质。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。

为了使本领域普通技术人员更好地理解本发明的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应当理解这样使用的术语在适当情况下可以互换,以便这里描述的本发明实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其他步骤或单元。

【第一实施例】

参见图1,本发明第一实施例提供了一种数据集合处理方法。如图1所示,数据集合处理方法例如包括步骤S11至步骤S14。

步骤S11:获取初始数据集合的集合大小和集合行数;

步骤S12:根据预设内存容量、所述集合大小和所述集合行数得到数据加载行数;

步骤S13:根据预设读取单位从所述初始数据集合中读取数据得到第一数据量;

步骤S14:判断所述第一数据量的行数是否大于所述数据加载行数,当判断所述第一数据量的行数不大于所述数据加载行数时,将所述第一数据量保存至目标数据集合中。

具体地,步骤S11中提到的初始数据集合例如为某一数据库中的表数据,数据库例如为Mongo数据库、SQL数据库或其他数据库。举例而言,初始数据集合例如为某一项目涉及的大数据集合,其包括从项目开始时间到项目结束时间的所有项目数据。提到的集合大小例如为初始数据集合所占用磁盘空间容量。提到的集合行数例如为初始数据集合中的数据行的数量。

步骤S12例如包括:根据所述集合大小和所述集合行数计算得到每行数据大小,根据所述预设内存容量和所述每行数据大小计算得到所述数据加载行数。提到的预设内容容量为根据内存消耗资源等信息评估出的可用于执行脚本的使用内存大小。举例而言,初始数据集合的集合大小为4638396416字节,集合行数为5385160行,则每行数据大小为4638396416/5385160=861.3字节,预设内容容量例如为50M,即50*1024*1024=52428800字节,则计算得到数据加载行数为52428800/861.3=60871行,则可以理解为程序在每次加载安全区域时的行数应当小于60871行。

步骤S13提到的预设读取单位例如为时间单位,举例而言为以天为读取单位。当然本实施例并不以此为限,预设读取单位还可以以年、月、小时等为数据读取单位。举例而言,步骤S13可以理解为以天为单位到初始数据集合中读取初始数据集合中存储的某一天的全部数据得到第一数据量。通常而言,在最开始进行数据读取时,从初始数据集合中第一天的数据开始读取,例如初始数据集合例如包括2018年12月1日0点至2019年2月15日23点59分59秒的数据,步骤S13可以理解为从初始数据集合中读取2018年12月1日一天即从2018年12月1日0点到2018年12月1日23点59分59秒的数据。

步骤S14中提到的目标数据集合同初始数据集合类似,均为数据库的表数据,区别在于,目标数据集合包括的数据大小远小于初始数据集合包括的数据大小,以项目数据举例而言,初始数据集合为某一项目从开始建立到结束所涉及的全部数据,其例如包括2018年12月1日0点至2019年2月15日23点59分59秒的全部项目数据,目标数据集合例如为以月份为单位的数据集合,即目标数据集合包括的数据为初始数据集合的某一部分数据,目标数据集合例如为2018年12月的数据集合,通过本实施例提供的数据集合处理方法进行数据存储后,最后目标数据集合应该包括从2018年12月1日0点至2018年12月31日23点59分59秒的数据。当然目标数据集合并不限制以月份为单位,当项目周期较长时,目标数据集合还可以以季度或年份为单位,当项目周期较短时,目标数据集合还可以以星期为单位。

其中,本实施例通过将第一数据量的行数与数据加载行数对比,当第一数据量的行数不大于数据加载行数时,将第一数据量存储至目标数据集合中,可以有效地避免服务器运行脚本异常问题,降低服务器在整体运行过程中的风险值。

进一步地,如图2所示,数据集合处理方法例如还包括步骤S15至步骤S16。

步骤S15:当判断所述第一数据量的行数大于所述数据加载行数时,修改所述预设读取单位得到第一目标读取单位,根据所述第一目标读取单位从所述初始数据集合中读取数据得到第二数据量;

步骤S16:判断所述第二数据量的行数是否大于所述数据加载行数,当判断所述第二数据量的行数不大于所述数据加载行数时,将所述第二数据量保存至所述目标数据集合中。

其中,步骤S15中提到的修改所述预设读取单位得到第一目标读取单位例如包括:将所述预设读取单位拆分为相等的第一时间长度和第二时间长度,并所述第一时间长度作为所述第一目标读取单位。第一时间长度和第二时间长度相同,即将预设读取单位进行对半拆分,举例而言,预设读取单位为以天为单位,将其换算为以天为单位的24小时制,并拆分为前12小时作为第一时间长度,后12小时作为第二时间长度。通过将预设读取单位拆为第一时间长度和第二时间长度在分别进行数据读取和判断,有利于提到程序运行的安全性,利于计算,提高查询归档的效率。

进一步地,当判断第二数据量的行数大于数据加载行数时,对第一目标读取单位进行同预设读取单位相同的处理,即将第一目标读取单位拆分为两个时间长度,以其中一个时间长度为单位从初始数据集合中读取数据进行再次判断。

进一步地,前述数据集合处理方法还包括:将所述预设读取单位的所述第二时间长度作为第二目标读取单位;根据所述第二目标读取单位从所述初始数据集合中读取数据得到第三数据量;判断所述第三数据量的行数是否大于所述数据加载行数,当判断所述第三数据量的行数不大于所述数据加载行数时,将所述第三数据量存储至所述目标数据集合中。

进一步地,当第三数据量的行数大于数据加载行数时,对第二目标读取单位进行同预设读取单位相同的处理,即将第二目标读取单位拆分为两个时间长度,以其中一个时间长度为单位从初始数据集合中读取数据进行再次判断。

在前述第一数据量的行数大于数据加载行数后,将预设读取单位对半拆分后得到第一目标读取单位和第二目标读取单元,在基于第一目标读取单位和第二目标读取单元分别从初始数据集合中读取数据并进行数据量的行数判断,将行数不大于数据加载行数的数据量存储至目标数据集合中,将行数大于数据加载行数的数据量在进行对半拆分,重复进行前述步骤直至预设读取单位读取的第一数据量全部存储至目标数据集合中,保证了数据读取的安全性。举例而言,以天为单位进行数据读取和判断,当判断不符合要求后,将以天为单位对半拆分为以12个小时为单位进行数据读取,不符合要求后,在将12小时为单位拆分为以6小时为单元进行数据读取,反复操作直至将这一天的数据全部存储至目标数据集合中,才可以开始下一天数据的读取。其中,在进行下一天数据读取之前,还可以将前一天程序进行数据读取和判断等过程占用的内存释放出来,以避免内存占用过大,运行脚本不安全的情况。

进一步地,除了前述分割读取单位进行数据读取再判断的过程之外,本发明实施例还可以直接将通过预设读取单元读取的第一数据量进行拆分再判断。

具体地,本实施例的数据集合处理方法在步骤S14之后例如还包括:当判断所述第一数据量的行数大于所述数据加载行数时,对所述第一数据量进行处理得到第二数据量;判断所述第二数据量的行数是否大于所述数据加载行数,当判断所述第二数据量的行数不大于所述数据加载行数时,将所述第二数据量保存至所述目标数据集合中。进一步地,将第二子数据量作为第三数据量;判断所述第三数据量的行数是否大于所述数据加载行数,当判断所述第三数据量的行数不大于所述数据加载行数时,将所述第三数据量存储至所述目标数据集合中。

其中,提到的对所述第一数据量进行处理得到第二数据量例如包括:将所述第一数据量拆分为相等的第一子数据量和第二子数据量,将所述第一子数据量作为所述第二数据量。提到的第一子数据量和第二子数据量大小相同,即将第一数据量对半拆分,如此一来,可以简化计算过程,提高查询归档效率。

进一步地,当判断所述第二数据量的行数大于所述数据加载行数时,对所述第二数据量进行如前述第一数据量相似的处理,即将第二数据量对半均分后,将每一半数据量对应的行数分别与数据加载行数对比,将小于数据加载行数的数据量保存至所述目标数据集合中。

重复进行前述分割数据量进行判断、并在判断数据量的行数不大于数据加载行数后,将数据量保存至目标数据集合中的过程,直至根据预设读取单位从初始数据集合中读取的第一数据量全部存储到目标数据集合中。举例而言,以天为单位读取数据,然后在判断读取得到的一天数据量的行数大于数据加载行数后,将这一天数据量进行对半均分为两个数据量,在分别判断行数是否大于数据加载行数,将不大于数据加载行数的数据量存储至目标数据集合,大于数据加载行数的数据量再次对比均分,重复进行前述过程直至这一天数据量全部存储至目标数据集合中,然后在进行下一天数据的读取。其中,在进行下一天数据读取之前,还可以将前一天程序进行数据读取和判断等过程占用的内容释放,以避免内存占用过大,脚本不安全的情况。

综上所述,本发明实施例提供的数据集合处理方法,避免了现有相关技术中通过设置内存不受限直接将大数据集合拆分后重新融合成新的数据集合造成的服务器运行脚本异常问题,降低了服务器风险,避免服务器内存资源占用过大,使用不足的情况,保证服务器整体能够稳定可持续化运行,可以随时删除原大数据集合,释放磁盘空间,降低服务器资源成本,可以根据将历史数据和活跃数据进行分开保存,有效地将历史数据归档,利于历史问题的排查分析。

【第二实施例】

参见图3,本发明第二实施例提供一种数据集合处理装置。如图3所示,数据集合处理装置20例如包括参数获取模块21、行数确定模块22、数据获取模块23和数据保存模块24。

其中,参数获取模块21用于获取初始数据集合的集合大小和集合行数。行数确定模块22用于根据预设内存容量、所述集合大小和所述集合行数得到数据加载行数。数据获取模块23用于根据预设读取单位从所述初始数据集合中读取数据得到第一数据量。数据保存模块24用于判断所述第一数据量的行数是否大于所述数据加载行数,当判断所述第一数据量的行数不大于所述数据加载行数时,将所述第一数据量保存至目标数据集合中。

进一步地,一方面,数据集合处理装置例如还包括:单位修改模块和第二数据保存模块(图中未示出)。其中单位修改模块用于当判断所述第一数据量的行数大于所述数据加载行数时,修改所述预设读取单位得到第一目标读取单位,根据所述第一目标读取单位从所述初始数据集合中读取数据得到第二数据量。第二数据保存模块用于判断所述第二数据量的行数是否大于所述数据加载行数,当判断所述第二数据量的行数不大于所述数据加载行数时,将所述第二数据量保存至所述目标数据集合中。

另一方面,数据集合处理装置例如还包括:数据量处理模块和第三数据保存模块(图中未示出)。其中数据量处理模块用于当判断所述第一数据量的行数大于所述数据加载行数时,对所述第一数据量进行处理得到第二数据量。第三数据保存模块用于判断所述第二数据量的行数是否大于所述数据加载行数,当判断所述第二数据量的行数不大于所述数据加载行数时,将所述第二数据量保存至所述目标数据集合中。

需要说明的是,本实施例上述数据集合处理装置20所实现的数据集合处理方法如前述第一实施例所述,可选地,第二实施例中的各个模块和上述其他操作或功能分别为了实现本发明第一实施例中的方法,为了简洁,不在此赘述。本实施例提供的数据集合处理装置20的技术效果与第一实施例中数据集合处理方法的技术效果相同,在此不再赘述。

【第三实施例】

参加图4,本发明第三实施例提供一种数据集合处理系统。如图4所示,数据集合处理系统30例如包括处理器31和连接处理器31的存储器32,其中存储器存储有处理器31执行的指令,且所述指令使得处理器31执行操作以进行如前述第一实施例所述的数据集合处理方法。

本实施例提供的数据集合处理系统30中处理器31执行操作以进行的数据集合处理方法如前述第一实施例所述,为了简洁,不在此赘述。本实施例提供的数据集合处理系统30的技术效果与第一实施例提供的数据集合处理方法的技术效果相同,在此不再赘述。

【第四实施例】

参见图5,本发明第四实施例提供一种计算机可读介质。如图5所示,计算机可读介质40存储有计算机可读指令,所述计算机可读指令包括用于执行如第一实施例所述的数据集合处理方法的指令。

本实施例提供的计算机可读介质40其计算机可读指令执行的数据集合处理方法如前述第一实施例所述,故在此不再进行详细讲述。本实施例提供的计算机可读介质40的技术效果与第一实施例中数据集合处理方法的技术效果相同,在此不再赘述。

需要说明的是,在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和/或方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多路单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多路网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元/模块可以集成在一个处理单元/模块中,也可以是各个单元/模块单独物理存在,也可以两个或两个以上单元/模块集成在一个单元/模块中。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用硬件加软件功能单元/模块的形式实现。

上述以软件功能单元/模块的形式实现的集成的单元/模块,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)的一个或多个处理器执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。

14页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种存储系统的元数据的发送方法及存储系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类