CN110955637A - 一种基于低内存实现超大文件的排序方法 - Google Patents

一种基于低内存实现超大文件的排序方法 Download PDF

Info

Publication number
CN110955637A
CN110955637A CN201911178421.2A CN201911178421A CN110955637A CN 110955637 A CN110955637 A CN 110955637A CN 201911178421 A CN201911178421 A CN 201911178421A CN 110955637 A CN110955637 A CN 110955637A
Authority
CN
China
Prior art keywords
data
file
ordering
module
comparison
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.)
Pending
Application number
CN201911178421.2A
Other languages
English (en)
Inventor
崔晶晶
周旭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jeo Polymerization Beijing Artificial Intelligence Technology Co ltd
Original Assignee
Jeo Polymerization Beijing Artificial Intelligence Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Jeo Polymerization Beijing Artificial Intelligence Technology Co ltd filed Critical Jeo Polymerization Beijing Artificial Intelligence Technology Co ltd
Priority to CN201911178421.2A priority Critical patent/CN110955637A/zh
Publication of CN110955637A publication Critical patent/CN110955637A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/168Details of user interfaces specifically adapted to file systems, e.g. browsing and visualisation, 2d or 3d GUIs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (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

本发明提出了一种基于低内存实现超大文件的排序方法,包括:步骤S1,采用split分片法进行逻辑划分,对来自多个数据源的数据文件进行切割;步骤S2,利用对比去重和按照数据大小的排序原则将切割后的数据块进行重新排序;步骤S3,将重新排序后的多个数据块进行重新合并为一个文件;步骤S4,将合并后的文件与预存的历史存储文档中的数据进行排序对比以及去重复过滤处理后,得到最终数据结果并返回给数据请求方。本发明实现利用较低内存对超大文件进行排序整合,在确保文本数据的准确性以及高效性的前提条件下,使得低内存计算机也可以处理超大文本。

Description

一种基于低内存实现超大文件的排序方法
技术领域
本发明涉及数据信息处理技术领域,特别涉及一种基于低内存实现超大文件的排序方法。
背景技术
随着互联网,云技术、大数据技术不断融入我们的生活,人类积累的数据在互联网、通信、金融、商业、医疗等诸多领域不断增长和积累,而这些数据也已经推进了数据提供商和数据消费者的发展。随着数据量的不断增长,我们处理数据的计算机的内存会出现不够用的情况,软硬件要求高,***资源占用率高。对海量的数据进行处理,除了好的方法,最重要的就是合理使用工具,合理分配***资源。一般情况,如果处理的数据过TB级,小型机是要考虑的,普通的机子如果有好的方法可以考虑,不过也必须加大CPU和内存,就象面对着千军万马,光有勇气没有一兵一卒是很难取胜的。随着数据量的不断增加,电脑处理性能还未提升,势必会带来以下几个问题:
1、当数据量过大,展开一个excel几十万行数据电脑就卡死崩;
2、近千万行的数据,订单提交数据库,sql sever处理要5分多钟,如果频繁入库/取数的话,势必对服务器造成一定的压力,也会影响处理速度;
3、数据量过大,电脑内存不足以支撑,就需要购入内存条甚至更换电脑,这样造价太高,成本太高。
发明内容
本发明的目的旨在至少解决所述技术缺陷之一。
为此,本发明的目的在于提出一种基于低内存实现超大文件的排序方法。
为了实现上述目的,本发明的实施例提供一种基于低内存实现超大文件的排序方法,包括如下步骤:
步骤S1,采用split分片法进行逻辑划分,对来自多个数据源的数据文件进行切割;
步骤S2,利用对比去重和按照数据大小的排序原则将切割后的数据块进行重新排序;
步骤S3,将重新排序后的多个数据块进行重新合并为一个文件;
步骤S4,将合并后的文件与预存的历史存储文档中的数据进行排序对比以及去重复过滤处理后,得到最终数据结果并返回给数据请求方。
进一步,在所述步骤S1,所述采用split分片法进行逻辑划分,通过hadoop中的InputFormat接口中的getSplit()方法得到。
进一步,在所述步骤S2中,首先将切割后的数据块进行去重复处理,然后再按照数据的大小进行排序。
本发明实施例还提出一种基于低内存实现超大文件的排序装置,包括:文件切割模块、切片排序模块、文件合成模块和对比过滤模块,其中,
所述文件切割模块用于采用split分片法进行逻辑划分,对来自多个数据源的数据文件进行切割;所述切片排序模块用于利用对比去重和按照数据大小的排序原则将切割后的数据块进行重新排序;所述文件合成模块用于将重新排序后的多个数据块进行重新合并为一个文件;所述对比过滤模块用于将合并后的文件与预存的历史存储文档中的数据进行排序对比以及去重复过滤处理后,得到最终数据结果并返回给数据请求方。
进一步,所述文件切割模块采用split分片法进行逻辑划分,通过hadoop中的InputFormat接口中的getSplit()方法得到。
进一步,所述切片排序模块首先将切割后的数据块进行去重复处理,然后再按照数据的大小进行排序。
根据本发明实施例的基于低内存实现超大文件的排序方法及装置,实现利用较低内存对超大文件进行排序整合,在确保文本数据的准确性以及高效性的前提条件下,使得低内存计算机也可以处理超大文本。本发明可以实现利用低内存设备处理超大文件,为低内存设备提供支持。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1为根据本发明实施例的基于低内存实现超大文件的排序方法的流程图;
图2为根据本发明实施例的基于低内存实现超大文件的排序装置的结构图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
如图1所示,本发明实施例的基于低内存实现超大文件的排序方法,包括如下步骤:
步骤S1,采用split分片法进行逻辑划分,对来自多个数据源的数据文件进行切割。
具体的,数据源提供方提供多份大量无序数据,超大文本文件接入。利用Spark数据交互处理方法实现对数据的重新排序和整合。Split分片(逻辑划分)的核心目的只是为了让map task更好地获取数据。split是通过hadoop中的InputFormat接口中的getSplit()方法得到的。
下面介绍几个数据量:totalSize:整个mapreduce job输入文件的总大小。numSplits:来自job.getNumMapTasks()。
即在job启动时用户利用org.apache.hadoop.mapred.JobConf.setNumMapTasks(intn)设置的值,从方法的名称上看,是用于设置map的个数。但是,最终map的个数也就是split的个数并不一定取用户设置的这个值,用户设置的map个数值只是给最终的map个数一个提示,只是一个影响因素,而不是决定因素。goalSize:totalSize/numSplits,即期望的split的大小,也就是每个mapper处理多少的数据。但也仅仅是期望。minSize:split的最小值,该值可由两个途径设置:1.通过子类重写方法protected void setMinSplitSize(long minSplitSize)进行设置。2.通过配置文件中的mapred.min.split.size进行设置。最终取两者中的最大值。split计算公式:finalSplitSize=max(minSize,min(goalSize,blockSize))。
在本发明的实施例中,分片大小范围可以在mapred-site.xml中设置,参数为mapred.min.split.size和mapred.max.split.size,其中minSplitSize大小默认为1B,maxSplitSize大小默认为Long.MAX_VALUE=9223372036854775807。
步骤S2,利用对比去重和按照数据大小的排序原则将切割后的数据块进行重新排序。
首先将切割后的数据块block进行去重复处理,去除掉重复的数据,即取出完全一致的数据;然后再按照数据的大小进行排序,得到一些新的数据block块数据。
步骤S3,将重新排序后的多个数据块进行重新合并为一个文件。
具体的,将步骤S2中新得到的block块数据进行合并为一个大文件。
步骤S4,将合并后的文件与预存的历史存储文档中的数据进行排序对比以及去重复过滤处理后,得到最终数据结果并返回给数据请求方。
在本步骤中,利用输出的文件和历史存储文档进行对比过滤去重排序,得到过滤后新增量文件,即将获取到的最新的文件与历史存档文件中的数据进行排序对比以及去重复过滤处理后,得到最终的数据。最后,将返回结果提供给数据请求方。
在本发明的实施例中,历史存储文档中的数据为之前进行切片整合后的数据。
步骤S4中的去重复过滤处理过程,与步骤S2的流程相同,即去重以及按照数据大小的排序的方法进行排序。
如图2所示,本发明还提出一种基于低内存实现超大文件的排序装置,包括:文件切割模块1、切片排序模块2、文件合成模块3和对比过滤模块4。
具体的,文件切割模块1用于采用split分片法进行逻辑划分,对来自多个数据源的数据文件进行切割。
文件切割模块1采用split分片法进行逻辑划分,通过hadoop中的InputFormat接口中的getSplit()方法得到。
具体的,数据源提供方提供多份大量无序数据,超大文本文件接入。利用Spark数据交互处理方法实现对数据的重新排序和整合。Split分片(逻辑划分)的核心目的只是为了让map task更好地获取数据。split是通过hadoop中的InputFormat接口中的getSplit()方法得到的。
下面介绍几个数据量:totalSize:整个mapreduce job输入文件的总大小。numSplits:来自job.getNumMapTasks()。
即在job启动时用户利用org.apache.hadoop.mapred.JobConf.setNumMapTasks(intn)设置的值,从方法的名称上看,是用于设置map的个数。但是,最终map的个数也就是split的个数并不一定取用户设置的这个值,用户设置的map个数值只是给最终的map个数一个提示,只是一个影响因素,而不是决定因素。goalSize:totalSize/numSplits,即期望的split的大小,也就是每个mapper处理多少的数据。但也仅仅是期望。minSize:split的最小值,该值可由两个途径设置:1.通过子类重写方法protected void setMinSplitSize(long minSplitSize)进行设置。2.通过配置文件中的mapred.min.split.size进行设置。最终取两者中的最大值。split计算公式:finalSplitSize=max(minSize,min(goalSize,blockSize))。
在本发明的实施例中,分片大小范围可以在mapred-site.xml中设置,参数为mapred.min.split.size和mapred.max.split.size,其中minSplitSize大小默认为1B,maxSplitSize大小默认为Long.MAX_VALUE=9223372036854775807。
切片排序模块2用于利用对比去重和按照数据大小的排序原则将切割后的数据块进行重新排序。
具体的,切片排序模块2首先将切割后的数据块进行去重复处理,即取出完全一致的数据;然后再按照数据的大小进行排序,得到一些新的数据block块数据。
文件合成模块3用于将重新排序后的多个数据块进行重新合并为一个文件。
对比过滤模块4用于将合并后的文件与预存的历史存储文档中的数据进行排序对比以及去重复过滤处理后,得到最终数据结果并返回给数据请求方。
在本发明的实施例中,历史存储文档中的数据为之前进行切片整合后的数据。
对比过滤模块4的去重复过滤处理过程,与切片排序模块2的处理流程相同,即去重以及按照数据大小的排序的方法进行排序。
对比过滤模块4利用输出的文件和历史存储文档进行对比过滤去重排序,得到过滤后新增量文件,即将获取到的最新的文件与历史存档文件中的数据进行排序对比以及去重复过滤处理后,得到最终的数据。最后,将返回结果提供给数据请求方。
根据本发明实施例的基于低内存实现超大文件的排序方法及装置,实现利用较低内存对超大文件进行排序整合,在确保文本数据的准确性以及高效性的前提条件下,使得低内存计算机也可以处理超大文本。本发明可以实现利用低内存设备处理超大文件,为低内存设备提供支持。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。本发明的范围由所附权利要求及其等同限定。

Claims (6)

1.一种基于低内存实现超大文件的排序方法,其特征在于,包括如下步骤:
步骤S1,采用split分片法进行逻辑划分,对来自多个数据源的数据文件进行切割
步骤S2,利用对比去重和按照数据大小的排序原则将切割后的数据块进行重新排序;
步骤S3,将重新排序后的多个数据块进行重新合并为一个文件;
步骤S4,将合并后的文件与预存的历史存储文档中的数据进行排序对比以及去重复过滤处理后,得到最终数据结果并返回给数据请求方。
2.如权利要求1所述的基于低内存实现超大文件的排序方法,其特征在于,在所述步骤S1,所述采用split分片法进行逻辑划分,通过hadoop中的InputFormat接口中的getSplit()方法得到。
3.如权利要求1所述的基于低内存实现超大文件的排序方法,其特征在于,在所述步骤S2中,首先将切割后的数据块进行去重复处理,然后再按照数据的大小进行排序。
4.一种基于低内存实现超大文件的排序装置,其特征在于,包括:文件切割模块、切片排序模块、文件合成模块和对比过滤模块,其中,
所述文件切割模块用于采用split分片法进行逻辑划分,对来自多个数据源的数据文件进行切割;
所述切片排序模块用于利用对比去重和按照数据大小的排序原则将切割后的数据块进行重新排序;
所述文件合成模块用于将重新排序后的多个数据块进行重新合并为一个文件;
所述对比过滤模块用于将合并后的文件与预存的历史存储文档中的数据进行排序对比以及去重复过滤处理后,得到最终数据结果并返回给数据请求方。
5.如权利要求4所述的基于低内存实现超大文件的排序装置,其特征在于,所述文件切割模块采用split分片法进行逻辑划分,通过hadoop中的InputFormat接口中的getSplit()方法得到。
6.如权利要求4所述的基于低内存实现超大文件的排序装置,其特征在于,所述切片排序模块首先将切割后的数据块进行去重复处理,然后再按照数据的大小进行排序。
CN201911178421.2A 2019-11-27 2019-11-27 一种基于低内存实现超大文件的排序方法 Pending CN110955637A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911178421.2A CN110955637A (zh) 2019-11-27 2019-11-27 一种基于低内存实现超大文件的排序方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911178421.2A CN110955637A (zh) 2019-11-27 2019-11-27 一种基于低内存实现超大文件的排序方法

Publications (1)

Publication Number Publication Date
CN110955637A true CN110955637A (zh) 2020-04-03

Family

ID=69978516

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911178421.2A Pending CN110955637A (zh) 2019-11-27 2019-11-27 一种基于低内存实现超大文件的排序方法

Country Status (1)

Country Link
CN (1) CN110955637A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113378202A (zh) * 2021-06-29 2021-09-10 湖南盈聚信息技术有限公司 基于大数据的多维度数据安全存储***

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110059428A (ko) * 2009-11-27 2011-06-02 주식회사 아이티컨트롤 그리드 파일 시스템 방식의 분산을 통한 동영상 인코딩 방법 및 장치와 그 시스템
US20120158672A1 (en) * 2010-12-16 2012-06-21 Microsoft Corporation Extensible Pipeline for Data Deduplication
CN103198127A (zh) * 2013-04-10 2013-07-10 中国银行股份有限公司 大文件排序方法及***
US20130346425A1 (en) * 2012-06-06 2013-12-26 Spiral Genetics Inc. Method and system for sorting data in a cloud-computing environment and other distributed computing environments
CN105787008A (zh) * 2016-02-23 2016-07-20 浪潮通用软件有限公司 一种大数据量的数据去重清洗方法
CN106951475A (zh) * 2017-03-07 2017-07-14 郑州铁路职业技术学院 基于云计算的大数据分布式处理方法及***
CN107368290A (zh) * 2016-05-12 2017-11-21 阿里巴巴集团控股有限公司 确定增量数据方法及装置、更新数据包方法、装置及***
US20180253478A1 (en) * 2017-03-01 2018-09-06 Next Pathway Inc. Method and system for parallelization of ingestion of large data sets
US20180260422A1 (en) * 2017-03-10 2018-09-13 Schweitzer Engineering Laboratories, Inc. Distributed Resource Parallel-Operated Data Sorting Systems and Methods
CN109086307A (zh) * 2018-06-22 2018-12-25 阿里巴巴集团控股有限公司 文件处理的方法及装置
CN110147351A (zh) * 2019-05-20 2019-08-20 中国刑事警察学院 一种Office文件数据分片识别、排序、重组方法
CN110209728A (zh) * 2019-04-22 2019-09-06 凯通科技股份有限公司 一种分布式异构数据库同步方法、电子设备及存储介质

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110059428A (ko) * 2009-11-27 2011-06-02 주식회사 아이티컨트롤 그리드 파일 시스템 방식의 분산을 통한 동영상 인코딩 방법 및 장치와 그 시스템
US20120158672A1 (en) * 2010-12-16 2012-06-21 Microsoft Corporation Extensible Pipeline for Data Deduplication
US20130346425A1 (en) * 2012-06-06 2013-12-26 Spiral Genetics Inc. Method and system for sorting data in a cloud-computing environment and other distributed computing environments
CN103198127A (zh) * 2013-04-10 2013-07-10 中国银行股份有限公司 大文件排序方法及***
CN105787008A (zh) * 2016-02-23 2016-07-20 浪潮通用软件有限公司 一种大数据量的数据去重清洗方法
CN107368290A (zh) * 2016-05-12 2017-11-21 阿里巴巴集团控股有限公司 确定增量数据方法及装置、更新数据包方法、装置及***
US20180253478A1 (en) * 2017-03-01 2018-09-06 Next Pathway Inc. Method and system for parallelization of ingestion of large data sets
CN106951475A (zh) * 2017-03-07 2017-07-14 郑州铁路职业技术学院 基于云计算的大数据分布式处理方法及***
US20180260422A1 (en) * 2017-03-10 2018-09-13 Schweitzer Engineering Laboratories, Inc. Distributed Resource Parallel-Operated Data Sorting Systems and Methods
CN109086307A (zh) * 2018-06-22 2018-12-25 阿里巴巴集团控股有限公司 文件处理的方法及装置
CN110209728A (zh) * 2019-04-22 2019-09-06 凯通科技股份有限公司 一种分布式异构数据库同步方法、电子设备及存储介质
CN110147351A (zh) * 2019-05-20 2019-08-20 中国刑事警察学院 一种Office文件数据分片识别、排序、重组方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
SUPER1123YOUNG: "MapReduc:详解Shuffle过程", Retrieved from the Internet <URL:https://blog.csdn.net/super1123young/article/details/79149875> *
WEIXIN_43009847: "MapReduce全过程", Retrieved from the Internet <URL:https://blog.csdn.net/weixin_43009847/article/details/87921216/?ops_request_misc=&request_id=&biz_id=102&utm_term=finalSplitSize=max(minSize,min&utm_medium=distribute.pc_search_result.none-task-blog-2~all~so***web~default-0-87921216.142^v88^control_2,239^v2^insert_chatgpt&spm=1018.2226.3001.4187> *
你苛求全面吗: "mr!shuffle详细全过程", Retrieved from the Internet <URL:https://blog.csdn.net/qq_15074737/article/details/83790466> *
孟鑫淼: "基于HBase的空间数据云存储研究", 《基础科学》, no. 03 *
韩荣琴;: "大型文件排序的一种自适应算法", 计算机时代, no. 04 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113378202A (zh) * 2021-06-29 2021-09-10 湖南盈聚信息技术有限公司 基于大数据的多维度数据安全存储***
CN113378202B (zh) * 2021-06-29 2022-05-03 湖南盈聚信息技术有限公司 基于大数据的多维度数据安全存储***

Similar Documents

Publication Publication Date Title
JP6827127B2 (ja) 多次元データベース環境において1回のスキャンでロード、集約、およびバッチ計算を行なうためのシステムおよび方法
US11144361B2 (en) System and method for automatic dependency analysis for use with a multidimensional database
US10956380B2 (en) System and method for parallel support of multidimensional slices with a multidimensional database
US9811570B2 (en) Managing storage of data for range-based searching
RU2663358C2 (ru) Устройство и способ кластерного хранения
Tao et al. Minimal mapreduce algorithms
EP3550441B1 (en) Managing storage of individually accessible data units
US9305076B1 (en) Flattening a cluster hierarchy tree to filter documents
JP7202442B2 (ja) 多次元データベース環境における仮想キューブでのリアルタイムデータ集約のためのシステムおよび方法
EP3076310A1 (en) Variable virtual split dictionary for search optimization
Al-Khasawneh et al. MapReduce a comprehensive review
WO2019179449A1 (zh) 一种HBase表的Region合并方法、装置及计算机设备
CN115391307A (zh) 数据库优化方法、装置、电子设备及计算机可读存储介质
CN110955637A (zh) 一种基于低内存实现超大文件的排序方法
CN104714983A (zh) 分布式索引的生成方法及装置
CN110427390B (zh) 数据查询方法及装置、存储介质、电子装置
CN117331919B (zh) 数据库联合查询方法、装置、电子设备及存储介质
CN118260244A (zh) 一种分布式小文件的治理方法、装置、设备及存储介质
GB2594960A (en) Methods and systems for cloud computing
CN117194337A (zh) 选取新的源文件方法、装置、计算机设备及存储介质
CN117093559A (zh) 用于快速分布式文件***的方法、装置和***
Simion A BETTER MANAGEMENT OF DATA FOR FLEXIBLE ECONOMIC APPLICATIONS.
Fitzjarrell et al. Compression

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200403