一种海量数据场景下的数据全局合并方法技术

技术编号:29459004 阅读:26 留言:0更新日期:2021-07-27 17:27
本发明专利技术公开了一种海量数据场景下的数据全局合并方法,包括:minor合并,将N个小文件作为一个批次进行归并排序,产生1个或多个文件大小合标的文件;桶合并,经过步骤一后,件大小达标的文件会进入桶合并的候选队列,桶合并逻辑中对队列中的文件再次进行任务构造并进行多路归并排序;major合并,经过步骤二桶合并后的文件将进入major合并的候选队列进行major合并;经过步骤一至步骤三的三级合并完成之后,对现有桶进行平衡判断,若桶内数据不均匀,则执行桶的再平衡操作。本发明专利技术所公开的方法能够高效快速的对实时数据进行全排序及合并,可有效提高实时数据的查询效率,对数据库的优化设计具有很好的参考价值。

A global data merging method in massive data scenario

【技术实现步骤摘要】
一种海量数据场景下的数据全局合并方法
本专利技术公开了一种海量数据场景下的数据全局合并方法,涉及计算机数据合并排序领域,尤其涉及海量数据场景下实时快速全局排序场景。
技术介绍
提高海量数据的实时查询效率一直是数据库设计领域永恒的追求,实际项目中常常遇到入库小文件过多,数据无序导致实时查询速度变慢的问题,小文件过多会使操作系统扫描多个文件,产生大量随机读请求,尤其对于机械硬盘来说,大量的随机读请求无疑会极大地降低整个系统的吞吐量。其次,由于海量数据大都存储于HDFS(HadoopDistributedFileSystem)上,海量小文件的存在会给整个Hadoop集群性能带来严重的性能问题。最后,由于数据是实时接入的,通过一条带条件的SQL查询语句来查询数据时,若数据整体无序,则查询的命中结果集很可能存在于多个文件之中,会使系统的查询变慢。因此,对数据库设计者而言,面对海量数据的小文件,优化数据存储,提高数据有序性是提高实时查询效率最有效的手段之一。为减少HDFS上小文件数量,研究人员们提出了多种手段用于小文件合并,如专利号CN111008235A中提出了一种基于Spark的小文件合并方法及系统,该专利中利用spark定时任务对分区内小文件进行周期性合并,根据任务规则将多个分区中的多个文件合并成1个文件,降低小文件散落数量,从结果上看确实降低了磁盘读取负荷与网络传输消耗,并且有效的提高了数据的查询效率,但是对于海量数据而言,当积压数据量大时,对分区内小文件进行一次性合并,系统资源消耗较大,耗时较长,合并期间,数据实时查询性能受影响,同时,该专利合并期间未对数据进行全局排序,数据查询性能提高有限。多路归并排序由于支持多线程同步排序,被认为是海量数据排序中最有效的排序算法之一,但面对实时接入的数据,仅通过一级多路归档排序显然耗时较长,易造成小文件堆积,实时查询速度仍受到影响,专利号CN111562898A中提出了一种基于FPGA实现的多级归并排序方法,该算法中将排序操作分为多级,前一级的输出作为下一级的输入,支持任意长度排序队列以及大数据量数据排序,在满足时序要求的同时,满足海量离线数据的高效快速数据排序,需要注意的是,该算法基于FPGA实现,不适用主流CPU处理器环境,同时该算法不适用于海量数据实时入库场景。因此,数据库设计中需要考虑一种高效,快速并能支持实时数据的排序及合并方法。
技术实现思路
本专利技术所要解决的技术问题是:针对现有技术的缺陷,提供一种海量数据场景下的数据全局合并方法。本专利技术为解决上述技术问题采用以下技术方案:一种海量数据场景下的数据全局合并方法,所述方法包括:步骤一、minor合并,将N个小文件作为一个批次进行归并排序,产生1个或多个文件大小合标的文件;步骤二、桶合并,经过步骤一后,件大小达标的文件会进入桶合并的候选队列,桶合并逻辑中对队列中的文件再次进行任务构造并进行多路归并排序;步骤三、major合并,经过步骤二桶合并后的文件将进入major合并的候选队列进行major合并;步骤四、经过步骤一至步骤三的三级合并完成之后,对现有桶进行平衡判断,若桶内数据不均匀,则执行桶的再平衡操作。作为进一步优选方案,所述minor合并过程中,输入文件包括实时接入的小文件同时,也包括minor合并后产生的未达阈值的小文件,minor合并阈值由用户自己配置。优选地,考虑到文件可能存储于Hadoop集群上,为防止文件分片可设置为256M。作为进一步优选方案,所述minor合并过程中,对输入文件的大小进行排序,将符合设定阈值大小的一批文件进行归并排序,使得更小的文件最先被合并。当minor合并生成的文件大小超过设置阈值时,会启动文件分片策略,使最终进入桶合并的minor文件大小相近;所述分片策略指的是通过估算找到最有可能达到分片条件的数据条数N,当写入数据量达到N时,获取文件实际大小,若此时文件达不到分片条件,则修正N的值,使得N逐渐增大,直到文件大小达到分片条件。作为进一步优选方案,所述桶合并过程中,所述桶分为两层,分别为level0与level1层,level0中存储桶合并后生成的文件,level1层存储major合并后生成的文件;所述桶合并指的是在排序的过程中根据排序字段的范围,将数据分别写入到对应的桶内的新文件中。经过多轮桶合并后,当桶内的level0层的文件个数达到阈值,即触发major合并;major合并首先计算level1层中与level0中所有文件存在交集的文件,然后将所有level0层和level1层有交集的文件集合作为一个批次进行归并排序,生成N个level1层的彼此之间有序的新文件。作为进一步优选方案,所述桶的再平衡分为两个步骤:1、桶的分裂,所述桶的分裂指的是将原先的桶分裂成多个彼此不相交的,不可分割的最小子集;2、桶的合并,所述桶的合并指的是首先基于所有文件计算出新桶的平均大小,然后基于分裂后的桶集合,进行两两合并,直到合并后的新桶达到平均大小。作为进一步优选方案,为区分和筛选不同环节生成的文件,所述三个合并环节生成的文件名前缀名不同。本专利技术采用以上技术方案与现有技术相比,具有以下技术效果:1.海量数据实时查询场景下,小文件的存在会严重影响数据查询效率,传统的一级合并方式耗时较长,难以第一时间提高实时数据查询效率,本专利技术提出的一种海量数据场景下的数据全局合并方法,将合并阶段分为三级,其中前两级为过渡阶段,耗时较短,可有效提高数据的查询效率。2.提高数据有序性是提高实时数据查询效率的有效手段之一,传统的排序算法要么不适用于海量数据排序场景,要么无法满足实时入库数据排序要求,而本专利技术提出的一种海量数据场景下的数据全局合并方法,对数据进行分级排序,当桶内数据不均匀时,其自带的再平衡算法可保证数据排序不会发生数据偏移,提高了海量数据排序效率。本专利技术提出的一种海量数据场景下的数据全局合并方法能够高效快速的对实时数据进行全排序及合并,可有效提高实时数据的查询效率,对数据库的优化设计具有很好的参考价值。附图说明图1是本专利技术的整体架构示意图。图2是本专利技术过程中,minor合并示意图。图3是本专利技术过程中,桶合并示意图。图4是本专利技术过程中,major合并示意图。图5是本专利技术过程中,桶的再平衡示意图。图6是本专利技术中串行合并流程示意图。图7是本专利技术中,桶合并流程图。图8是本专利技术中,分片逻辑流程图。具体实施方式下面详细描述本专利技术的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本专利技术,而不能解释为对本专利技术的限制。下面结合附图对本专利技术的技术方案做进一步的详细说明:本专利技术提出的一种海量数据场景下的数据全局合并方法共分为三个环节:minor合并本文档来自技高网
...

【技术保护点】
1.一种海量数据场景下的数据全局合并方法,其特征在于,所述方法包括:/n步骤一、minor合并,将N个小文件作为一个批次进行归并排序,产生1个或多个文件大小合标的文件;/n步骤二、桶合并,经过步骤一后,件大小达标的文件会进入桶合并的候选队列,桶合并逻辑中对队列中的文件再次进行任务构造并进行多路归并排序;/n步骤三、major合并,经过步骤二桶合并后的文件将进入major合并的候选队列进行major合并;/n步骤四、经过步骤一至步骤三的三级合并完成之后,对现有桶进行平衡判断,若桶内数据不均匀,则执行桶的再平衡操作。/n

【技术特征摘要】
1.一种海量数据场景下的数据全局合并方法,其特征在于,所述方法包括:
步骤一、minor合并,将N个小文件作为一个批次进行归并排序,产生1个或多个文件大小合标的文件;
步骤二、桶合并,经过步骤一后,件大小达标的文件会进入桶合并的候选队列,桶合并逻辑中对队列中的文件再次进行任务构造并进行多路归并排序;
步骤三、major合并,经过步骤二桶合并后的文件将进入major合并的候选队列进行major合并;
步骤四、经过步骤一至步骤三的三级合并完成之后,对现有桶进行平衡判断,若桶内数据不均匀,则执行桶的再平衡操作。


2.如权利要求1所述的一种海量数据场景下的数据全局合并方法,其特征在于:所述minor合并过程中,输入文件包括实时接入的小文件同时,也包括minor合并后产生的未达阈值的小文件,minor合并阈值由用户自己配置。


3.如权利要求1所述的一种海量数据场景下的数据全局合并方法,其特征在于:所述minor合并过程中,对输入文件的大小进行排序,将符合设定阈值大小的一批文件进行归并排序,使得更小的文件最先被合并。


4.如权利要求1所述的一种海量数据场景下的数据全局合并方法,其特征在于:当minor合并生成的文件大小超过设置阈值时,会启动文件分片策略,使最终进入桶合并的minor文件大小相近;
所述分片策略指的是通过估算找到最有可能达到分...

【专利技术属性】
技术研发人员:汪洋王磊陶泽军陈煌卢兴杨
申请(专利权)人:南京烽火星空通信发展有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1