CN114265849A - 数据聚合方法及系统 - Google Patents
数据聚合方法及系统 Download PDFInfo
- Publication number
- CN114265849A CN114265849A CN202210184281.5A CN202210184281A CN114265849A CN 114265849 A CN114265849 A CN 114265849A CN 202210184281 A CN202210184281 A CN 202210184281A CN 114265849 A CN114265849 A CN 114265849A
- Authority
- CN
- China
- Prior art keywords
- data
- aggregation
- aggregation result
- memory
- result data
- 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.)
- Granted
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种数据聚合方法,定义待聚合数据的每一行为一条数据,每一列为一个字段,聚合方法包括:对待聚合数据进行聚合,得到聚合结果数据,并利用内存暂存聚合结果数据;根据内存使用情况,分若干次将暂存在内存中的聚合结果数据存入聚合结果文件,直至完成对所有待聚合数据的聚合,获得最终的聚合结果文件。该方案的有益效果在于,通过分若干次将内存中的聚合结果数据存入聚合结果文件,及时移入到聚合结果文件中,避免了数据在聚合时内存不足的问题。
Description
技术领域
本发明属于半导体设计和生产领域,特别涉及一种数据聚合方法及系统。
背景技术
在先进工艺的整个生命周期中,存在一个影响产品成品率的重要风险因素:作为相对简单的环境,工艺开发阶段的主要目的是针对某个工艺节点开发出平台工艺,而产品引入和量产阶段作为复杂多变的环境,则是以实际产品结果为导向的。芯片产品是多样化的,每个芯片的设计成熟度和对工艺的敏感度均不同,甚至可能存在巨大差异,因此在从工艺开发导入到芯片产品引入和量产阶段的过程中,会出现很多在工艺开发阶段未发现或未重视的各种问题,导致工艺开发和产品引入的脱节。
在传统测试芯片工艺下,客户只能通过对测试芯片中的测试结构进行测试,来推断产品芯片中相应器件的状态。但是,随着工艺节点的不断演进,产品芯片中器件与测试芯片中测试结构所面临的物理环境不同而产生的差异逐渐体现。因此,如何利用真实的产品芯片来设计内置测试芯片,从而实现对产品芯片关键器件在真实物理环境下的测试,对产品芯片成品率的提升具有重大意义。
器件数据一般以二维行列表形式(device list)存储,存储方式包括面向行和面向列,两种存储方式各有优缺点。面向行,器件数据按行存储,能高效添加数据,特别是在数据的实时存储上具有优势,但是,在查询数据时显得低效且缓慢,比如在查询某一行数据时,需要读取该行中的每一列字段;面向列,器件数据按列存储,在数据添加上效率不高,特别是实时数据的添加,但是,在整个二维表上执行集合范围操作时具有优势,可以更精确且快速地响应数据查询。
在测试芯片的设计中,如何从庞大的器件数据中筛选出需要进行测试的器件数据是至关重要的一步,这就涉及到对器件数据进行聚合处理。例如如表1中所示的一批器件数据(device list),表中有一些行的内容是完全相同的,聚合计数将统计各个不相同的行分别出现了多少次,聚合结果如表2中所示,其中,长度、宽度、模块三列称为聚合条件,最后一列为体现聚合结果的计数字段。聚合过程有效地减小了数据量,从聚合前的28行减小到聚合后的8行。需要说明的是,聚合不一定要针对所有列,也可以针对部分列,如表3中为只针对模块列聚合的结果,即聚合条件仅为模块列;聚合也不一定要针对原生列,还可以针对派生列,如表4中为针对长度×宽度≥0.0008且长度×宽度≤0.001进行聚合的结果。
表1 器件数据
表2 聚合结果
表3 只针对模块列聚合的结果
表4 针对长度×宽度≥0.0008且长度×宽度≤0.001进行聚合的结果
在实际应用中,聚合前的device list总行数最多能达到十亿数量级,而聚合后的结果总行数能达到百万数量级。聚合过程中需要将聚合结果始终保存在内存中,而始终保存在百万行的聚合结果会给内存带来极大的压力,甚至不可能完成。因此,如何解决大数据量的信息在聚合过程中内存压力过大的问题,对于完成大数量的器件数据聚合从而完成测试器件的选定具有重要的意义。
发明内容
本发明提供一种数据聚合方法,能够解决大数据量的数据在进行聚合时内存不足的问题。
本发明的其他目的和优点可以从本发明所揭露的技术特征中得到进一步的了解。
为达上述之一或部分或全部目的或是其他目的,本发明一技术方案提供一种数据聚合方法,定义待聚合数据的每一行为一条数据,每一列为一个字段,所述聚合方法包括:对待聚合数据进行聚合,得到聚合结果数据,并利用内存暂存聚合结果数据;其中,所述聚合结果数据包括聚合条件和计数字段,所述计数字段用于表征满足所述聚合条件的数据条数;根据内存使用情况,分若干次将暂存在内存中的聚合结果数据存入聚合结果文件,直至完成对所有待聚合数据的聚合,获得最终的聚合结果文件。该技术方案的有益效果在于,在数据聚合过程中,实时根据内存使用情况来分若干次将内存中的聚合结果数据存入聚合结果文件,及时将聚合结果数据移入到聚合结果文件中,避免了数据在聚合时内存不足的问题,特别是在处理大数据量的数据时尤为明显。
所述聚合条件为若干个用于聚合的字段,包括若干原生列或/和若干派生列;所述原生列为所述待聚合数据中某一列的字段,所述派生列为对所述待聚合数据中若干列中的字段进行逻辑组合后生成的字段。
设定所述内存中用于存储聚合结果数据的存储上限,且当暂存在内存中的聚合结果数据达到所述存储上限时,触发将暂存在内存中的聚合结果数据移入所述聚合结果文件中;所述存储上限为所述内存中用于存储聚合结果数据的最大行数。
在一种可能的实施例中,将暂存在内存中的聚合结果数据移入所述聚合结果文件中时,将暂存在内存中的聚合结果数据全部存入所述聚合结果文件中。
在另一种可能的实施例中,将暂存在内存中的聚合结果数据移入所述聚合结果文件中时,将暂存在内存中的聚合结果数据部分存入所述聚合结果文件中,直至在最后一次将暂存在内存中的聚合结果数据全部存入所述聚合结果文件中。
优选的,在将暂存在内存中的聚合结果数据部分存入聚合结果文件中时,选择计数字段值小的聚合结果数据存入所述聚合结果文件中。
除最后一次外,在将暂存在内存中的聚合结果数据存入所述聚合结果文件中时,还将所述聚合结果文件中的若干条聚合结果数据移入到内存中,并保证移入到内存中的聚合结果数据的条数不多于存入所述聚合结果文件中的聚合结果数据的条数。
进一步地,在将所述聚合结果文件中的若干条聚合结果数据移入到内存中时,先判断所述聚合结果文件中是否存在与当前正在进行聚合的数据聚合条件相同的聚合结果数据;若存在,则在所述聚合结果文件中选择与当前正在进行聚合的数据聚合条件相同的聚合结果数据以及其他若干条计数字段值大的聚合结果数据移入内存中;若不存在,则在所述聚合结果文件中仅选择若干条技术字段值大的聚合结果数据移入内存中,并在内存中新增一条聚合结果数据,该条聚合结果数据的聚合条件即为当前正在进行聚合的数据的聚合条件。
此外,所述的用于存储聚合结果数据的最大行数的计算方法为:获取当前可用内存的字节数,记为Mem;获取所述待聚合数据中每条数据所占用的字节数,记为Agg;最大行数=[Mem*α/Agg],其中,符号[]表示取整数,α为预设的占用处理器可用内存的比重值。
记所述待聚合数据的总行数为N,用于存储聚合结果数据的最大行数为M;所述数据聚合方法包括:步骤1.初始化i=1,j=0,其中,i∈[1,N],j∈[0,M];步骤2.读取所述待聚合数据中的第i行数据,并获取所述第i行数据的聚合条件;将所述第i行数据的聚合条件与内存中存储的j条聚合结果数据进行对比,判断内存中是否已存储有与所述第i行数据的聚合条件相同的聚合结果数据;若是,则将该聚合结果数据的计数字段+1,至步骤4;若否,则至步骤3;步骤3.判断j是否等于M,若否,则内存新增一条聚合结果数据,该聚合结果数据的聚合条件即为所述第i行数据的聚合条件,该聚合结果数据的计数字段为1,令j=j+1,至步骤4;若是,则将内存中的m条聚合结果数据写入聚合结果文件,m∈(1,M],并判断聚合结果文件中是否已有与所述第i行数据的聚合条件相同的聚合结果数据,如有,则从聚合结果文件中选取该条聚合结果数据以及其他m-1条聚合结果数据存入内存中,令j=M,再将与所述第i行数据的聚合条件相同的聚合结果数据的计数字段+1,至步骤4;若无,则从聚合结果文件中选取m-1条聚合结果数据存入内存中,再在内存中新增一条聚合结果数据,该聚合结果数据的聚合条件即为所述第i行数据的聚合条件,该聚合结果数据的计数字段为1,令j=M,至步骤4;步骤4.判断i是否等于N,若否,则令i=i+1,并循环至步骤2,若是,则将内存中的全部聚合结果数据写入聚合结果文件,完成对所述待聚合数据的聚合。
所述待聚合数据采用面向行方式存储,对所述待聚合数据进行聚合采用逐行读取的方式进行聚合。
所述待聚合数据和所述聚合结果文件存储在相同或不同的存储设备中,所述存储设备为数据库、磁盘和硬盘中的一种。
本发明还提供一种数据聚合系统,包括存储设备,所述存储设备中存储有若干条指令,所述若干条指令用于由处理器加载并执行上述所述的数据聚合方法。
与现有技术相比,本发明的有益效果主要包括:本发明所提供的数据聚合方法,解决了大数据量的数据在进行聚合时的内存不足问题,且特别适合对面向行存储的数据进行聚合,仅需每条数据读取一次就能完成整个待聚合数据的聚合。
为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举优选实施例,并配合附图,作详细说明如下。
附图说明
为了更清楚地说明本发明具体实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一的聚合方法的流程图。
具体实施方式
有关本发明的前述及其他技术内容、特点与功效,在以下配合参考图式的一优选实施例的详细说明中,将可清楚的呈现。以下实施例中所提到的方向用语,例如:上、下、左、右、前或后等,仅是参考附加图式的方向。因此,使用的方向用语是用来说明并非用来限制本发明。
本发明实施例一提供一种数据聚合方法,用于对待聚合数据进行聚合。定义该待聚合数据的每一行为一条数据,每一列为一个字段。
本实施例的数据聚合方法包括:对待聚合数据进行聚合,得到聚合结果数据,并利用内存暂存聚合结果数据;根据内存使用情况,分若干次将内存中的聚合结果数据存入聚合结果文件,直至完成对所有待聚合数据的聚合,获得最终的聚合结果文件。
在对待聚合数据中的数据进行聚合时,得到的聚合结果数据包括聚合条件和计数字段。聚合条件是指若干个用于聚合的字段,包括若干原生列或/和若干派生列;原生列是指待聚合数据中某一列的字段,派生列是指对待聚合数据中任意两列或者两列以上的字段进行逻辑组合后生成的字段,例如两个字段的相加、减或乘等;计数字段则是用于表征满足相应聚合条件的数据条数。
具体在本实施例中,根据内存使用情况,分若干次将暂存在内存中的聚合结果数据存入聚合结果文件又具体包括:设定内存中用于存储聚合结果数据的存储上限,当内存中暂存的聚合结果数据达到内存的存储上限时,触发将内存中暂存的聚合结果数据移入聚合结果文件中。本实施例中,存储上限可以设定为内存中用于存储聚合结果数据的最大行数,该存储上限可以在数据聚合开始前预先设定好,也可以在数据聚合过程中设定,本发明对其不做具体限定,可以根据实际使用习惯或方便度调节该存储上限的设定时机,此外,用户也可以设定其他形式的存储上限。分若干次也即为:当待聚合数据聚合完成时还未超过内存的存储上限时,可以一次性的将内存中的聚合结果数据存入到聚合结果文件中;而当待聚合数据在聚合中的某一时刻就达到内存的存储上限时,先将内存中已有的聚合结果数据存入聚合结果文件中,在进行后续聚合操作,直至分多次将内存中的聚合结果数据存入聚合结果文件中。
本实施例中的存储上限,也即内存中用于存储聚合结果数据的最大行数的计算方法具体为:获取当前可用内存的字节数,记为Mem;获取待聚合数据中每条数据所占用的字节数,即每行数据所占字节数,记为Agg;根据公式:最大行数=[Mem*α/Agg],计算得到最大行数,记为M,其中,符号[]表示取整数,α为预设的占用处理器可用内存的比重值,本实施例中α=80%,实际使用中α可以为其他任意值,根据实际情况决定。需要说明的是,存储上限的计算方法在实际应用中也可以根据实际内存情况来做合理限定,不局限于本实施例中所提供的计算方法。
在判断暂存在内存中的聚合结果数据达到存储上限时,触发将暂存在内存中的聚合结果数据存入到聚合结果文件中,在存入到聚合结果文件中时,可以每次都将暂存在内存中的全部聚合结果数据存入到聚合结果文件中,再执行后续的继续对待聚合数据中的数据进行聚合的操作;也可以每次仅将暂存在内存中的部分聚合结果数据存入到聚合结果文件中,且在将内存中的部分聚合结果数据存入聚合结果文件中时,选择计数字段值小的聚合结果数据存入聚合结果文件中,直至在最后一次再将内存中的聚合结果数据全部存入到聚合结果文件中。本实施例中选用每次都将暂存在内存中的全部聚合结果数据存入到聚合结果文件中。在其他实施例中,用户可以根据实际情况决定将全部还是部分存入到聚合结果文件中。
还需要说明的是,除最后一次外,其余每次在将暂存在内存中的聚合结果数据存入聚合结果文件中时,还同时将聚合结果文件中的若干条聚合结果数据移入到内存中,并保证移入到内存中的聚合结果数据的条数不多于存入聚合结果文件中的聚合结果数据的条数。
进一步地,在从聚合结果文件中选择移入到内存中的聚合结果数据时,会先判断聚合结果文件中是否存在与当前正在进行聚合的数据聚合条件相同的聚合结果数据。如果存在,则从所述聚合结果文件中选择与当前正在进行聚合的数据聚合条件相同的聚合结果数据、以及其他若干条计数字段值大的聚合结果数据移入到内存中;如果不存在,则在所述聚合结果文件中仅选择若干条计数字段值大的聚合结果数据移入内存中,并在内存中新增一条聚合结果数据,该条聚合结果数据的聚合条件即为当前正在进行聚合的数据的聚合条件。此处需要说明的是,这里的计数字段值的大小,可以是对聚合结果文件中的计数字段值进行排序对比,提取前若干条计数字段值大的移入到内存中,提取计数字段值大的原因在于说明这个聚合条件的数据在待聚合数据中存在的可能比较多,优选将可能存在比较多的条件移入内存中继续进行聚合;当然,在其他实施例中也可以任意选择若干条聚合结果数据移入到内存中,也即,可以随意选择若干条聚合结果数据、也可以限定选择计数字段值在某个区间、某些固定值的聚合结果数据等,本发明对此不做具体限定。
具体而言,本实施例的数据聚合方法的流程图如图1中所示。请参考图1,记待聚合数据的总行数为N,用于存储聚合结果数据的最大行数为M;聚合方法包括如下步骤:
步骤1:初始化i=1,j=0;其中,i∈[1,N],j∈[0,M]。
步骤2:读取所述待聚合数据中的第i行数据,并获取所述第i行数据的聚合条件;将所述第i行数据的聚合条件与内存中存储的j条聚合结果数据进行对比,判断内存中是否已存储有与所述第i行数据的聚合条件相同的聚合结果数据;
若是,则将该聚合结果数据的计数字段+1,至步骤4;
若否,则至步骤3。
步骤3:判断j是否等于M;
若否,则内存新增一条聚合结果数据,该聚合结果数据的聚合条件即为所述第i行数据的聚合条件,该聚合结果数据的计数字段为1;令j=j+1,至步骤4;
若是,则将内存中的m条聚合结果数据写入聚合结果文件,m∈(1,M],并判断聚合结果文件中是否已有与所述第i行数据的聚合条件相同的聚合结果数据:如有,则从聚合结果文件中选取该条聚合结果数据以及其他m-1条聚合结果数据存入内存中,令j=M,再将与所述第i行数据的聚合条件相同的聚合结果数据的计数字段+1,至步骤4;如无,则从聚合结果文件中选取m-1条聚合结果数据存入内存中,再在内存中新增一条聚合结果数据,该聚合结果数据的聚合条件即为所述第i行数据的聚合条件,该聚合结果数据的计数字段为1,令j=M,至步骤4。
步骤4:判断i是否等于N;若否,则令i=i+1,并循环至步骤2;
若是,则将内存中的全部聚合结果数据写入聚合结果文件,完成对所述待聚合数据的聚合。
本实施例中的待聚合数据为面向行存储的数据,针对面向行存储的数据的特性,本实施例的聚合方法可以实现每条数据仅需读取一次就能完成整个待聚合数据的聚合,特别适合面向行存储数据逐行读取的特性;当然,本实施例的聚合方法也适用于面向列存储的数据,本发明对此不做具体限定。
此外,在对待聚合数据中的数据进行聚合时,本实施例中采用逐行读取的方式进行聚合,当然,在其他实施例中,还可以采用其他读取方式进行读取,例如先读偶数行再读奇数行等,只需保证完成对待聚合数据中的所有数据的读取即可,本发明对此不做具体限定。为清楚解释本实施例的聚合方法的过程并方便本领域技术人员更全面地理解具体的聚合过程,特举具体个例说明。为便于描述,该具体个例中使用的参数值都较小,具体请参考表5至表11。请参考表5,其示出了待聚合的总行数N=28的待聚合数据,为便于描述,在待聚合数据的最左侧增加了一列行序号,此列可以存储在实际的数据库中,也可以不存储。设定内存中用于存储聚合结果数据的最大行数M=6。初始时,内存中未暂存任何聚合结果数据,即内存中存储有j=0条的聚合结果数据。
表5 待聚合的总行数N=28的待聚合数据
开始聚合时,对待聚合数据逐行读取进行聚合,即从待聚合数据的第一行数据开始进行聚合,即i的初始值为1;当读取第i=20时,此时内存中暂存有如表6中所示的聚合结果数据,即内存中暂存了6行的聚合结果数据,而第i=20行的数据的聚合条件与现有内存中的6条聚合结果数据的聚合条件均不相同,因此需要新增一条聚合结果数据,也即内存中需要第7行来暂存第i=20行的聚合结果,此时达到了内存中用于存储聚合结果数据的最大行数,触发需要将内存中暂存的聚合结果数据移入到聚合结果文件F中,但在移入之前,先判断内存中是否存在与第i=20行数据的聚合条件相同的聚合结果数据,判断结果是无,此时将内存中的6行聚合结果数据全部写入聚合结果文件F中,聚合结果文件F的内容如表7中所示,需要提及的是,如果判断结果是的话,则内存中相应的聚合结果数据的计数字段+1,继续后续数据的聚合。
表6 读取第i=20时内存中暂存的聚合结果数据
表7 聚合结果文件F
本个例中判断结果无,则继续下述过程:判断聚合结果文件F中也没有与第i=20行数据聚合条件相同的聚合结果数据,此时,从聚合结果文件F中选取5条聚合结果数据存入内存中,并在内存中新增当前第i=20行数据的聚合结果数据,此时内存如表8中所示。需要说明的是,本具体个例在从聚合结果文件F中选取聚合结果数据存入内存中时,仅聚合结果数据的排列顺序提取了5条,没有设定按计数字段值大小依次提取出计数字段值较大的聚合结果数据,实际操作过程中可以按实际需求设定,此处仅选取个例说明聚合过程,本发明不以此为限。
表8 从聚合结果文件F中选取5条并新增当前第i=20行数据的聚合结果数据后的内存
内存如表8中时,继续后续剩余数据的聚合,直到当i=28行时,此时,内存中存储有如表9中所示的6条聚合结果数据,这6条聚合结果数据中没有与第i=28行数据聚合条件相同的聚合结果数据,此时触发将内存中的聚合结果数据写入到聚合结果文件F中,得到如表10中所示的更新后的聚合结果文件F。判断此时聚合结果文件F中也没有与第i=28行数据聚合条件相同的聚合结果数据,此时选取聚合结果文件F中的5条聚合结果数据移入至内存中,并在内存中新增一行聚合结果数据,即为当前第i=28行数据的聚合结果数据。
表9 继续后续剩余数据的聚合直到当i=28行时内存中存储的聚合结果数据
表10 更新后的聚合结果文件F
判断i是否满足i=N,若是,将内存中的所有聚合结果数据写入聚合结果文件F中,得到最终如表11中所示的聚合结果文件,从而完成对表5中所有待聚合数据的聚合。
表11 将内存中的所有聚合结果数据写入聚合结果文件F中得到的聚合结果文件
另外,本实施例中的待聚合数据和聚合结果文件可以存储在各自或同一个存储设备中,存储设备例如可以为数据库、磁盘或者硬盘。
本发明另一实施例还提供一种数据聚合系统,包括存储设备,该存储设备中存储有若干条指令,上述若干条指令用于由处理器加载并执行实施例一种的数据聚合方法。
以上所述,仅为本发明的优选实施例而已,当不能以此限定本发明实施的范围,即所有依本发明权利要求书及说明书所作的简单的等效变化与修改,皆仍属本发明专利涵盖的范围内。另外,本发明的任一实施例或权利要求不须达成本发明所揭露的全部目的或优点或特点。此外,摘要部分和发明名称仅是用来辅助专利文件检索之用,并非用来限制本发明的权利范围。此外,本说明书或权利要求书中提及的“第一”、“第二”等用语仅用以命名元件(element)的名称或区别不同实施例或范围,而并非用来限制元件数量上的上限或下限。
Claims (13)
1.一种数据聚合方法,其特征在于,定义待聚合数据的每一行为一条数据,每一列为一个字段;所述聚合方法包括:
对待聚合数据进行聚合,得到聚合结果数据,并利用内存暂存聚合结果数据;其中,所述聚合结果数据包括聚合条件和计数字段,所述计数字段用于表征满足所述聚合条件的数据条数;
根据内存使用情况,分若干次将暂存在内存中的聚合结果数据存入聚合结果文件,直至完成对所有待聚合数据的聚合,获得最终的聚合结果文件。
2.根据权利要求1所述的数据聚合方法,其特征在于,所述聚合条件为若干个用于聚合的字段,包括若干原生列或/和若干派生列;所述原生列为所述待聚合数据中某一列的字段,所述派生列为对所述待聚合数据中若干列中的字段进行逻辑组合后生成的字段。
3.根据权利要求1所述的数据聚合方法,其特征在于,设定所述内存中用于存储聚合结果数据的存储上限,且当暂存在内存中的聚合结果数据达到所述存储上限时,触发将暂存在内存中的聚合结果数据移入所述聚合结果文件中;所述存储上限为所述内存中用于存储聚合结果数据的最大行数。
4.根据权利要求3所述的数据聚合方法,其特征在于,将暂存在内存中的聚合结果数据移入所述聚合结果文件中时,将暂存在内存中的聚合结果数据全部存入所述聚合结果文件中。
5.根据权利要求3所述的数据聚合方法,其特征在于,将暂存在内存中的聚合结果数据移入所述聚合结果文件中时,将暂存在内存中的聚合结果数据部分存入所述聚合结果文件中,直至在最后一次将暂存在内存中的聚合结果数据全部存入所述聚合结果文件中。
6.根据权利要求5所述的数据聚合方法,其特征在于,在将暂存在内存中的聚合结果数据部分存入聚合结果文件中时,选择计数字段值小的聚合结果数据存入所述聚合结果文件中。
7.根据权利要求3所述的数据聚合方法,其特征在于,除最后一次外,在将暂存在内存中的聚合结果数据存入所述聚合结果文件中时,还将所述聚合结果文件中的若干条聚合结果数据移入到内存中,并保证移入到内存中的聚合结果数据的条数不多于存入所述聚合结果文件中的聚合结果数据的条数。
8.根据权利要求7所述的数据聚合方法,其特征在于,在将所述聚合结果文件中的若干条聚合结果数据移入到内存中时,先判断所述聚合结果文件中是否存在与当前正在进行聚合的数据聚合条件相同的聚合结果数据;
若存在,则在所述聚合结果文件中选择与当前正在进行聚合的数据聚合条件相同的聚合结果数据以及其他若干条计数字段值大的聚合结果数据移入内存中;
若不存在,则在所述聚合结果文件中仅选择若干条计数字段值大的聚合结果数据移入内存中,并在内存中新增一条聚合结果数据,该条聚合结果数据的聚合条件即为当前正在进行聚合的数据的聚合条件。
9.根据权利要求3所述的数据聚合方法,其特征在于,所述用于存储聚合结果数据的最大行数的计算方法为:
获取当前可用内存的字节数,记为Mem;
获取所述待聚合数据中每条数据所占用的字节数,记为Agg;
最大行数=[Mem*α/Agg],其中,符号[]表示取整数,α为预设的占用处理器可用内存的比重值。
10.根据权利要求3所述的数据聚合方法,其特征在于,记所述待聚合数据的总行数为N,用于存储聚合结果数据的最大行数为M;所述数据聚合方法包括:
步骤1:初始化i=1,j=0;其中,i∈[1,N],j∈[0,M];
步骤2:读取所述待聚合数据中的第i行数据,并获取所述第i行数据的聚合条件;
将所述第i行数据的聚合条件与内存中存储的j条聚合结果数据进行对比,判断内存中是否已存储有与所述第i行数据的聚合条件相同的聚合结果数据;
若是,则将该聚合结果数据的计数字段+1,至步骤4;
若否,则至步骤3;
步骤3:判断j是否等于M;
若否,则内存新增一条聚合结果数据,该聚合结果数据的聚合条件即为所述第i行数据的聚合条件,该聚合结果数据的计数字段为1;令j=j+1,至步骤4;
若是,则将内存中的m条聚合结果数据写入聚合结果文件,m∈(1,M],并判断聚合结果文件中是否已有与所述第i行数据的聚合条件相同的聚合结果数据:如有,则从聚合结果文件中选取该条聚合结果数据以及其他m-1条聚合结果数据存入内存中,令j=M,再将与所述第i行数据的聚合条件相同的聚合结果数据的计数字段+1,至步骤4;如无,则从聚合结果文件中选取m-1条聚合结果数据存入内存中,再在内存中新增一条聚合结果数据,该聚合结果数据的聚合条件即为所述第i行数据的聚合条件,该聚合结果数据的计数字段为1,令j=M,至步骤4;
步骤4:判断i是否等于N;
若否,则令i=i+1,并循环至步骤2;
若是,则将内存中的全部聚合结果数据写入聚合结果文件,完成对所述待聚合数据的聚合。
11.根据权利要求1至10任一项所述的数据聚合方法,其特征在于,所述待聚合数据采用面向行方式存储;对所述待聚合数据进行聚合采用逐行读取的方式进行聚合。
12.根据权利要求1至10任一项所述的数据聚合方法,其特征在于,所述待聚合数据件和所述聚合结果文件存储在相同或不同的存储设备中,所述存储设备为数据库、磁盘和硬盘中的一种。
13.一种数据聚合系统,包括存储设备,其特征在于,所述存储设备中存储有若干条指令,所述若干条指令用于由处理器加载并执行所述权利要求1至12中任一项所述的数据聚合方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210184281.5A CN114265849B (zh) | 2022-02-28 | 2022-02-28 | 数据聚合方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210184281.5A CN114265849B (zh) | 2022-02-28 | 2022-02-28 | 数据聚合方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114265849A true CN114265849A (zh) | 2022-04-01 |
CN114265849B CN114265849B (zh) | 2022-06-10 |
Family
ID=80833701
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210184281.5A Active CN114265849B (zh) | 2022-02-28 | 2022-02-28 | 数据聚合方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114265849B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115237605A (zh) * | 2022-09-19 | 2022-10-25 | 四川大学 | Cpu与gpu间的数据传输方法及计算机设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007299118A (ja) * | 2006-04-28 | 2007-11-15 | Meidensha Corp | データ集計システム |
CN105631003A (zh) * | 2015-12-28 | 2016-06-01 | 北京赛思信安技术股份有限公司 | 支持海量数据分组统计的智能索引构建、查询及维护方法 |
CN106484879A (zh) * | 2016-10-14 | 2017-03-08 | 哈尔滨工程大学 | 一种基于MapReduce的Map端数据的聚合方法 |
CN110457350A (zh) * | 2019-07-24 | 2019-11-15 | 阿里巴巴集团控股有限公司 | 用于在查询数据库中进行聚合查询的方法及装置 |
CN110569263A (zh) * | 2019-08-27 | 2019-12-13 | 苏宁云计算有限公司 | 实时数据去重计数方法及装置 |
CN111291082A (zh) * | 2020-01-20 | 2020-06-16 | 北京百度网讯科技有限公司 | 数据聚合处理方法、装置、设备及存储介质 |
CN111367956A (zh) * | 2018-12-25 | 2020-07-03 | 杭州海康威视数字技术股份有限公司 | 数据统计方法及装置 |
US20200233867A1 (en) * | 2019-01-18 | 2020-07-23 | Maritz Holdings Inc. | Backend data aggregation system and method |
CN111506581A (zh) * | 2020-06-17 | 2020-08-07 | 北京北龙超级云计算有限责任公司 | 一种数据聚合方法和服务器 |
CN112732763A (zh) * | 2021-01-20 | 2021-04-30 | 北京千方科技股份有限公司 | 数据的聚合方法、装置、电子设备及介质 |
-
2022
- 2022-02-28 CN CN202210184281.5A patent/CN114265849B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007299118A (ja) * | 2006-04-28 | 2007-11-15 | Meidensha Corp | データ集計システム |
CN105631003A (zh) * | 2015-12-28 | 2016-06-01 | 北京赛思信安技术股份有限公司 | 支持海量数据分组统计的智能索引构建、查询及维护方法 |
CN106484879A (zh) * | 2016-10-14 | 2017-03-08 | 哈尔滨工程大学 | 一种基于MapReduce的Map端数据的聚合方法 |
CN111367956A (zh) * | 2018-12-25 | 2020-07-03 | 杭州海康威视数字技术股份有限公司 | 数据统计方法及装置 |
US20200233867A1 (en) * | 2019-01-18 | 2020-07-23 | Maritz Holdings Inc. | Backend data aggregation system and method |
CN110457350A (zh) * | 2019-07-24 | 2019-11-15 | 阿里巴巴集团控股有限公司 | 用于在查询数据库中进行聚合查询的方法及装置 |
CN110569263A (zh) * | 2019-08-27 | 2019-12-13 | 苏宁云计算有限公司 | 实时数据去重计数方法及装置 |
CN111291082A (zh) * | 2020-01-20 | 2020-06-16 | 北京百度网讯科技有限公司 | 数据聚合处理方法、装置、设备及存储介质 |
CN111506581A (zh) * | 2020-06-17 | 2020-08-07 | 北京北龙超级云计算有限责任公司 | 一种数据聚合方法和服务器 |
CN112732763A (zh) * | 2021-01-20 | 2021-04-30 | 北京千方科技股份有限公司 | 数据的聚合方法、装置、电子设备及介质 |
Non-Patent Citations (2)
Title |
---|
SRIKANTA TIRTHAPURA: ""A General Method for Estimating Correlated Aggregates over a Data Stream"", 《2012 IEEE 28TH INTERNATIONAL CONFERENCE ON DATA ENGINEERING》 * |
岳鹏昊: ""大数据聚合存储平台的设计与实现"", 《中国优秀硕士学位论文全文数据库(电子期刊)信息科技辑》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115237605A (zh) * | 2022-09-19 | 2022-10-25 | 四川大学 | Cpu与gpu间的数据传输方法及计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114265849B (zh) | 2022-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9569454B2 (en) | Selective compression of objects in a storage compute device | |
JP2957703B2 (ja) | データを記憶し検索する方法及びメモリ構成体 | |
CN108897761B (zh) | 一种聚簇存储方法及装置 | |
CN103019887B (zh) | 数据备份方法及装置 | |
US10120588B2 (en) | Sliding-window multi-class striping | |
US7263520B2 (en) | Fast aggregation of compressed data using full table scans | |
US7849113B2 (en) | Query statistics | |
O'Neil et al. | Bitmap index design choices and their performance implications | |
CN107341507B (zh) | 一种基于gpu与级联哈希的快速图像sift特征匹配方法 | |
CN114265849B (zh) | 数据聚合方法及系统 | |
CN116450656B (zh) | 数据处理方法、装置、设备及存储介质 | |
CN115203455A (zh) | 使用随机关联存储器调谐相似性搜索的性能和/或准确性的技术 | |
CN114265702B (zh) | 一种iSCSI服务负载均衡方法、装置、设备及介质 | |
CN112434085B (zh) | 基于Roaring Bitmap的用户数据统计方法 | |
CN113568572A (zh) | 一种基于固态硬盘的数据库并行排序连接系统 | |
CN116975006A (zh) | 基于磁盘缓存及b树索引的数据去重方法、系统及介质 | |
CN115576924A (zh) | 一种数据迁移的方法 | |
CN114780535A (zh) | 一种数据聚合方法及聚合系统 | |
CN110298442B (zh) | 一种智能的权重信息的分区处理方法 | |
US9129042B2 (en) | Nearest neighbor serial content addressable memory | |
CN112328630A (zh) | 数据查询方法、装置、设备及存储介质 | |
CN107301073B (zh) | 一种基于固态硬盘系统的配置信息检索方法及其装置 | |
CN117290674B (zh) | 一种大数据量随机比特序列重码统计和定位的方法和系统 | |
CN113486021B (zh) | 分布式银行系统中确定账户日平均余额的方法及装置 | |
KR102703138B1 (ko) | 기계 학습 기반 데이터베이스 튜닝 방법 및 장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |