CN109101531A - 文件处理方法、装置及系统 - Google Patents
文件处理方法、装置及系统 Download PDFInfo
- Publication number
- CN109101531A CN109101531A CN201810659211.4A CN201810659211A CN109101531A CN 109101531 A CN109101531 A CN 109101531A CN 201810659211 A CN201810659211 A CN 201810659211A CN 109101531 A CN109101531 A CN 109101531A
- Authority
- CN
- China
- Prior art keywords
- field
- file
- record
- duplicate
- similitude
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供了一种文件处理方法。所述方法包括:获取待处理的文件,其中,所述文件包括多条记录,每条记录包括多个字段;以及基于所述多个字段中最不重复的至少一组字段,按照文件分割数量分割所述文件,以确定所述文件中的每条记录所属的分区,其中,所述分区对应的计算系统处理所述分区对应的记录,不同分区对应的计算系统不同。本公开还提供了一种文件处理装置、以及文件处理系统。
Description
技术领域
本公开涉及一种文件处理方法、装置及系统。
背景技术
Hadoop等分布式文件系统进行文件处理时通常需要将目标文件切分为多个块,对多个块并行处理并在并行处理完成之后将多个块的执行结果进行汇总处理,以此方式提高文件的处理效率。这样,在一定程度上分布式系统的执行时间取决于任务执行时间最长的块的执行时间。因此如何合理的切分目标文件,是分布式系统运行的关键因素之一。
发明内容
本公开的一个方面提供了文件处理方法。所述方法包括:获取待处理的文件,所述文件包括多条记录,每条记录包括多个字段;以及基于所述多个字段中最不重复的至少一组字段,按照文件分割数量分割所述文件,以确定所述文件中的每条记录所属的分区,其中,所述分区对应的计算系统处理所述分区对应的记录,不同分区对应的计算系统不同。
根据本分开的实施例,所述方法还包括基于每个字段的自重复率以及不同字段之间的相似性,确定所述最不重复的至少一组字段。
根据本分开的实施例,所述方法还包括以记录作为维度对所述文件进行随机抽样,得到抽样样本文件。所述基于每个字段的自重复率以及不同字段之间的相似性,确定所述最不重复的至少一组字段,包括在所述抽样样本文件中,基于每个字段的自重复率以及不同字段之间的相似性,确定所述最不重复的至少一组字段。
根据本公开的实施例,基于每个字段的自重复率以及不同字段之间的相似性,确定所述最不重复的至少一组字段,包括从所述多个字段中筛选出自重复率最低的至少两个字段,得到一组候选字段,以及从所述一组候选字段中筛选出相似性满足预设要求的至少一组字段,得到所述最不重复的至少一组字段。
根据本公开的实施例,所述自重复率包括在每个字段的取值集合中重复的元素个数与集合的元素总个数之比,其中所述每个字段的取值集合为该字段在不同记录中的取值的集合。所述相似性包括两个字段对应的向量之间的相似性,其中,每个字段对应的向量为该字段在所述不同记录中的取值组合形成。
根据本公开的实施例,从所述一组候选字段中筛选出相似性满足预设要求的至少一组字段,得到所述最不重复的至少一组字段,包括对于所述一组候选字段中的任意两个候选字段,当所述两个候选字段对应的向量的相似性小于区分度阈值时,筛选出所述两个候选字段,或者当所述两个候选字段对应的向量的相似性大于所述区分度阈值时,筛选出所述两个候选字段的其中之一。
根据本公开的实施例,所述基于所述多个字段中最不重复的至少一组字段,按照文件分割数量分割所述文件,以确定所述文件中的每条记录所属的分区,包括对于每条记录,对所述最不重复的至少一组字段按照预定规则进行组合运算,得到组合运算结果,以及将所述每条记录映射到与所述组合运算结果对应的分区。
本公开的另一方面还提供了一种文件处理装置。所述装置包括文件获取模块、和文件分割模块。文件获取模块用于获取待处理的文件,所述文件包括多条记录,每条记录包括多个字段。文件分割模块用于基于所述多个字段中最不重复的至少一组字段,按照文件分割数量分割所述文件,以确定所述文件中的每条记录所属的分区,其中,所述分区对应的计算系统处理所述分区对应的记录,不同分区对应的计算系统不同。
根据本公开的实施例,所述装置还包括字段确定模块。字段确定模块用于基于每个字段的自重复率以及不同字段之间的相似性,确定所述最不重复的至少一组字段。
根据本分开的实施例,所述装置还包括抽样模块。抽样模块用于以记录作为维度对所述文件进行随机抽样,得到抽样样本文件。所述字段确定模块具体用于在所述抽样样本文件中,基于每个字段的自重复率以及不同字段之间的相似性,确定所述最不重复的至少一组字段。
根据本公开的实施例,所述字段确定模块具体用于从所述多个字段中筛选出自重复率最低的至少两个字段,得到一组候选字段,以及从所述一组候选字段中筛选出相似性满足预设要求的至少一组字段,得到所述最不重复的至少一组字段。
根据本公开的实施例,所述自重复率包括在每个字段的取值集合中重复的元素个数与集合的元素总个数之比,其中所述每个字段的取值集合为该字段在不同记录中的取值的集合。所述相似性包括两个字段对应的向量之间的相似性,其中,每个字段对应的向量为该字段在所述不同记录中的取值组合形成。
根据本公开的实施例,所述从所述一组候选字段中筛选出相似性满足预设要求的至少一组字段,得到所述最不重复的至少一组字段,包括对于所述一组候选字段中的任意两个候选字段,当所述两个候选字段对应的向量的相似性小于区分度阈值时,筛选出所述两个候选字段,或者当所述两个候选字段对应的向量的相似性大于所述区分度阈值时,筛选出所述两个候选字段的其中之一。
根据本公开的实施例,所述文件分割模块具体用于对于每条记录,对所述最不重复的至少一组字段按照预定规则进行组合运算,得到组合运算结果,以及将所述每条记录映射到与所述组合运算结果对应的分区。
本公开的另一方面提供了一种文件处理系统,包括存储有可执行指令的一个或多个存储器,及一个或多个处理器。所述处理器执行所述指令以实现如上所述的方法。
本公开的另一方面提供了一种非易失性存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
本公开的另一方面提供了一种计算机程序,所述计算机程序包括计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。
附图说明
为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:
图1示意性示出了可以应用根据本公开实施例的文件处理方法、、装置及系统的系统架构;
图2示意性示出了根据本公开实施例的文件处理方法的流程图;
图3示意性示出了根据本公开实施例的文件处理方法的应用构思;
图4示意性示出了根据本公开另一实施例的文件处理方法的流程图;
图5示意性示出了根据本公开实施例的图4中操作S402的实现方法流程图;
图6示意性示出了根据本公开另一实施例的文件处理方法的流程图;
图7示意性示出了根据本公开实施例的文件处理方法中通过操作S202分割文件的方法流程图;
图8示意性示出了根据本公开实施例的文件处理装置的方框图;以及
图9示意性示出了根据本公开实施例的文件处理系统的方框图。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。本领域技术人员还应理解,实质上任意表示两个或更多可选项目的转折连词和/或短语,无论是在说明书、权利要求书还是附图中,都应被理解为给出了包括这些项目之一、这些项目任一方、或两个项目的可能性。例如,短语“A或B”应当被理解为包括“A”或“B”、或“A和B”的可能性。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。
因此,本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。在本公开的上下文中,计算机可读介质可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,计算机可读介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。计算机可读介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
本公开的实施例提供了一种文件处理方法、装置及系统。该方法包括获取待处理的文件,以及基于所述多个字段中最不重复的至少一组字段,按照文件分割数量分割所述文件,以确定所述文件中的每条记录所属的分区。其中,所述文件包括多条记录,每条记录包括多个字段,所述分区对应的计算系统处理所述分区对应的记录,不同分区对应的计算系统不同。在Hadoop等分布式文件系统进行文件处理时,根据本公开实施例的方法、装置及系统,基于最不重复的至少一组字段进行文件的分割,能够使得切分到不同分区中的文件所需的执行时间基本保持一致,提高了分布式系统的并行度,从而从整体上提高了分布式系统的计算效率。
图1示意性示出了可以应用根据本公开实施例的文件处理方法、装置及系统的系统架构100。需要注意的是,图1所示仅为可以应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,该系统架构100包括终端设备101、主节点服务器102以及多个子节点服务器103。网络104是用以在终端设备101和主节点服务器102之间提供通信链路的介质。网络105是用以在主节点服务器102和多个子节点服务器103之间提供通信链路的介质。在一些实施例中,多个子节点服务器103相互直接也可以通过网络连接。网络104、和网络105可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101通过网络104与主节点服务器102交互,以接收或发送消息等。例如,用户可以使用终端设备101向主节点服务器102发出对待处理的文件的处理指令,并接收主节点服务器102返回的处理结果。终端设备101可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。例如,用户可以通过终端设备101的显示屏查看主节点服务器102返回的处理结果。
主节点服务器102可以是提供各种服务的服务器,例如文件管理服务器等。主节点服务器102可以对接收到的用户请求等数据进行分析等处理,并将处理结果(例如根据用户请求获取或生成的数据统计结果等)反馈给终端设备101。例如,主节点服务器102可以响应于接收到的文件处理指令或者用户请求,获取待处理的文件并将该文件进行切分后分配给多个子节点服务器103进行并行处理,然后获取多个子节点服务器103的并行处理结果以进行数据汇总处理得到文件处理结果,以及最终将该文件处理结果发送给终端设备101。
多个子节点服务器103可以是提供各种服务的服务器,例如文件管理服务器。多个子节点服务器103可以接收主节点服务器102发送的切分文件块,并响应于接收到的指令(例如,主节点服务器102发送的指令,或者终端设备101发送的指令)对切分文件块进行相应地处理分析,然后将处理结果反馈给主节点服务器102。
现有技术中,当主节点服务器102将需要处理的文件切分为多个切分文件块以分配给多个子节点服务器103执行时,往往通过随机切分、或者凭借经验等方式进行,并没有一种行之有效地方法可以保证不同的切分文件块在子节点服务器103上的执行时间基本一致。举例来说,假设用户需要处理2017年全年不同城市的气象数据,例如用户希望统计2017全年不同城市的总降水量等数据。在现有技术中对2017年全年不同城市的气象数据的文件切分之后,可能会出现分配到某一个子节点服务器103的切分文件块中存在大量位于干旱地区的城市,那么该子节点服务器103在计算不同城市全年降水量时会出现大量降水量为0的数据,从而统计任务的执行时间可以很短。而相反地,也可能会出现分到另外一个子节点服务器103的切分文件块中大量存在位于潮湿地区的城市,那么,该另外一个子节点服务器103在统计不同城市的全年降水量时执行时间就会相当长。可见,现有技术中对文件进行切分时,难免造成得到切分文件块在不同的子节点服务器103中的执行时间不同,甚至差异很大。而整个分布式系统的执行时间会取决于任务执行时间最长的切分文件块的执行时间,这样会降低分布式系统的整体执行效率。
本公开实施例提供的文件切分方法、装置及系统,基于最不重复的至少一组字段进行文件的分割,能够使得切分到不同子节点服务器103中的切分文件块中所有记录的差异较为显著,从而使每个切分文件块所需的执行时间基本保持一致,提高了分布式系统的并行度,从而从整体上提高了分布式系统的计算效率。
需要说明的是,本公开实施例所提供的文件处理方法一般可以由主节点服务器102执行。相应地,本公开实施例所提供的文件处理装置及系统一般可以设置于主节点服务器102中。本公开实施例所提供的文件处理方法也可以由不同于主节点服务器102且能够与终端设备101和/或主节点服务器102通信的服务器或服务器集群执行。相应地,本公开实施例所提供的文件处理装置及系统也可以设置于不同于主节点服务器102且能够与终端设备101和/或主节点服务器102通信的服务器或服务器集群中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
图2示意性示出了根据本公开实施例的文件处理方法的流程图。
如图2所示,该文件处理方法包括操作S201~S202。
在操作S201,获取待处理的文件,该文件包括多条记录,每条记录包括多个字段。
在操作S202,基于该多个字段中最不重复的至少一组字段,按照文件分割数量分割该文件,以确定该文件中的每条记录所属的分区,其中,每个分区对应的计算系统处理该分区对应的记录,不同分区对应的计算系统不同。具体地,可以是基于该多个字段中最不重复的至少一组字段对该文件中的所有记录进行分桶。
根据本公开的实施例,该文件处理方法可以应用于spark、presto,impala等数据处理引擎。本公开中以Hadoop分布式文件系统为例进行描述,但并不表明本公开实施例仅限于Hadoop分布式文件系统。根据本公开实施例的文件分割方法对于任何任务切分相关任务都可以适用。
根据本公开的实施例,该最不重复的至少一组字段可以是该文件的多个字段中自重复率最低的一组或多组字段。或者,该最不重复的至少一组字段可以是该文件的多个字段中自重复率最低以及与其他字段之间的相似性最低的一组或多组字段。其中一组字段可以是一个或多个字段。
根据本公开的实施例,该自重复率包括在每个字段的取值集合中重复的元素个数与集合的元素总个数之比,其中该每个字段的取值集合为该字段在不同记录中的取值的集合。该自重复率可以用于表征字段取值集合中重复元素的数量或比例。
根据本公开的实施例,该相似性包括两个字段对应的向量之间的相似性,其中,每个字段对应的向量为该字段在该文件的不同记录中的取值组合形成。
下面参考图3,结合具体实施例对图2所示的方法做进一步说明。
图3示意性示出了根据本公开实施例的文件处理方法的应用构思。
如图3所示,待处理的文件300是2017年全年不同城市的每日气象数据记录文件。图3中文件300以表格形式展示,其中每一行对应为文件300中的一条记录,每条记录包括多个字段。图3中,该多个字段包括日期、城市、经度、纬度、平均温度、平均湿度、平均气压、平均风速、风向等。该多个字段除了图3中示出的部分外,还可以包括最高温度、最低温度、日照时长、平均辐射强度、降水量等等。
需要说明的是,图3中文件300以表格形式展示仅是文件的一种表现形式。在一些应用场景中,文件300还可以是以文本形式展示的文件,例如在文本形式表示的文件300中,一条记录可以表示为“2017年1月1日,北京,116°E,40°N,-5℃,…”。
文件300中每个字段的取值集合为该字段在文件300的不同记录中的取值的集合。
例如,文件300中字段“城市”的取值集合={北京,石家庄,济南,西安,沈阳,海南,杭州,广州,…,北京,石家庄,济南,西安,沈阳,海南,杭州,广州,…,…}。
又例如,文件300中字段“日期”的取值集合={2017.1.1,2017.1.1,2017.1.1,2017.1.1,2017.1.1,2017.1.1,2017.1.1,2017.1.1,…,2017.1.2,2017.1.2,2017.1.2,2017.1.2,2017.1.2,2017.1.2,2017.1.2,…,…,2017.12.31}。
每个字段的自重复率可以是在每个字段的取值集合中重复的元素个数与集合的元素总个数之比。例如,字段“城市”的自重复率=重复的城市个数/文件300中所包括的记录的总个数,字段“时间”的自重复率=365/文件300中所包括的记录的总个数。
文件300中每个字段对应的向量为该字段在文件300的不同记录中的取值组合形成。其中每一条记录对应于该字段对应的向量的一个维度。
例如,文件300中字段“城市”对应的向量=[北京,石家庄,济南,西安,沈阳,海南,杭州,广州,…,北京,石家庄,济南,西安,沈阳,海南,杭州,广州,…,…]T。
又例如,文件300中字段“日期”对应的向量=[2017.1.1,2017.1.1,2017.1.1,2017.1.1,2017.1.1,2017.1.1,2017.1.1,2017.1.1,…,2017.1.2,2017.1.2,2017.1.2,2017.1.2,2017.1.2,2017.1.2,2017.1.2,…,…,2017.12.31]T。
两个字段对应的向量之间的相似性可以表征两个字段对应的向量的互相关度,例如可以通过两个字段对应的向量的余弦相似性来表示。具体地,向量和向量的余弦相似性可以通过如下公式计算,其中θ为向量和向量之间的夹角:
例如,假设从文件300中筛选出的最不重复的至少一组字段是平均风速和平均湿度,那么基于该最不重复的至少一组字段对文件300进行分割。具体地,例如可以是将文件300中的每条记录,基于该条记录中平均风速和平均湿度的取值,按照一定的规则切分到不同的分区。例如图3中将2017年1月1日北京的气象数据这一条记录分割后进入切分文件块301对应的分区,将2017年1月1日石家庄的气象数据这一条记录分割后进入切分文件块303对应的分区。
假设文件分割数量为N,将文件300切分后可以形成N个切分文件块(例如图3中的切分文件块301、切分文件块302、切分文件块303、…),一个切分文件块对应于一个分区。N个切分文件块中N的取值具体为文件分割数量,由文件300的大小、文件300的处理需求、集群规模、以及单实例的执行能力等因素综合确定。在数据量较大的项目中,N的取值可以到达成百上千。其中,一个实例为处理一个切分文件块的计算机系统服务。在图1所示的系统架构100中,一个子节点服务器103可以部署一个实例,或者在一些实施例中一个子节点服务器103可以部署多个实例。
根据本公开的实施例,基于最不重复的至少一组字段(例如,平均风速和平均湿度)对文件300进行分割,使得各个分区中所包括的记录中的平均风速和平均湿度的分布相对一致,从而与平均风速和平均湿度具有一定互相关性的其他字段的分布也会相对一致,进而使得分割得到的不同切分文件块所需的执行时间基本保持一致,提高分布式系统的并行度。
图4示意性示出了根据本公开另一实施例的文件处理方法的流程图。
如图4所示,该文件处理方法除了包括操作S201和操作S202以外,还包括操作S402。
在操作S402,基于每个字段的自重复率以及不同字段之间的相似性,确定该最不重复的至少一组字段。具体地,操作S402可以包括操作S412和操作S422,如图5所示。
图5示意性示出了根据本公开实施例的图4中操作S402的实现方法流程图。
如图5所示,操作S402包括操作S412和操作S422。
在操作S412,从该多个字段中筛选出自重复率最低的至少两个字段,得到一组候选字段。
然后在操作S422,从该一组候选字段中筛选出相似性满足预设要求的至少一组字段,得到该最不重复的至少一组字段。
以图3中的文件300为例。在操作S412中根据每个字段的自重复率,筛选出自重复率最低的至少两个字段(例如,筛选出符合要求的5个字段)。该5个字段例如是辐射强度、平均湿度、日照时长、最大气压、和平均风速。该5个字段即为该一组候选字段。
然后在操作S422中,计算该5个字段中每两个字段的相似性,并根据计算结果选出相似性满足预设要求的至少一组字段,例如最终筛选出的至少一组字段为平均风速和平均湿度。
根据本公开的实施例,在操作S422中进行筛选时,可以是对于该一组候选字段(例如,上述5个字段)中的任意两个候选字段:当该两个候选字段对应的向量的相似性小于区分度阈值时,可以同时筛选出该两个候选字段,或者当该两个候选字段对应的向量的相似性大于该区分度阈值时,仅筛选出该两个候选字段的其中之一。其中,区分度阈值是根据经验或者数据分析需要设定地用于区分两个字段对应的向量的差异程度/相似程度的阈值,具体取值可以根据实际需要进行设定(例如设置为10%)。
图6示意性示出了根据本公开另一实施例的文件处理方法的流程图。
如图6所示,该文件处理方法除了包括操作S201、操作S402和操作S202以外,还包括操作S602。其中操作S602在操作S402之前执行。
在操作S602,以记录作为维度对该文件进行随机抽样,得到抽样样本文件。
然后执行操作S402,具体可以是在该抽样样本文件中,基于每个字段的自重复率以及不同字段之间的相似性,确定该最不重复的至少一组字段。这样,将从该抽样样本文件中确定出的最不重复的至少一组字段作为该文件的多个字段中最不重复的至少一组字段。以此方式,可以减少确定该文件中的最不重复的至少一组字段时的计算量。
操作S602的具体执行可以是,按照文件分割数量(例如N),以记录作为维度将该文件均匀划分为多个子文件,然后从该多个子文件的每一个子文件中随机抽样出相同条数的记录,并将从随机抽样出的记录进行汇总,获得该抽样样本文件。以此方式,可以基本实现均匀抽样,从而使得该抽样样本文件能够是尽可能体现该文件原有的数据特点。
图7示意性示出了根据本公开实施例的文件处理方法中通过操作S202分割文件的方法流程图。
如图7所示,操作S202具体可以包括操作S212和操作S222。
在操作S212,对于每条记录,对该最不重复的至少一组字段按照预定规则进行组合运算,得到组合运算结果。
例如可以对每条记录中该最不重复的至少一组字段的取值按照预定规则进行运算(例如进行线性组合、非线性组合、或者加权平均等等)得到第一运算结果,然后可以将该第一运算结果进行哈希运算得到该组合运算结果。
然后,在操作S222,将该每条记录映射到与该组合运算结果对应的分区。例如,根据哈希运算得到的运算结果,可以将该每条记录映射对应的分区。通过这种方式,可以使得分割到每个分区中的记录相对随机且均匀,从而使得分布式系统中不同分区对应的计算系统执行任务的并行度基本一致,整体上提高分布式系统的计算效率。
图8示意性示出了根据本公开实施例的文件处理装置的方框图。
如图8所示,根据本公开的实施例,该文件处理装置800包括文件获取模块810、和文件分割模块820。根据本公开的一些实施例,该文件处理装置800还可以包括字段确定模块830。该文件处理装置800可以执行上面参考图2~图7描述的方法,以实现分布式系统中的相对均匀的文件分割,使得分布式系统的并行执行时间基本保持一致。
文件获取模块810用于获取待处理的文件。该文件包括多条记录,每条记录包括多个字段。
文件分割模块820用于基于该多个字段中最不重复的至少一组字段,按照文件分割数量分割该文件,以确定该文件中的每条记录所属的分区,其中,该分区对应的计算系统处理该分区对应的记录,不同分区对应的计算系统不同。
字段确定模块830用于基于每个字段的自重复率以及不同字段之间的相似性,确定该最不重复的至少一组字段。
根据本公开的实施例,该自重复率包括在每个字段的取值集合中重复的元素个数与集合的元素总个数之比,其中该每个字段的取值集合为该字段在不同记录中的取值的集合。该相似性包括两个字段对应的向量之间的相似性,其中,每个字段对应的向量为该字段在该不同记录中的取值组合形成。
根据本分开的实施例,该文件处理装置800还可以包括抽样模块840。抽样模块840用于以记录作为维度对该文件进行随机抽样,得到抽样样本文件。该字段确定模块830具体用于在该抽样样本文件中,基于每个字段的自重复率以及不同字段之间的相似性,确定该最不重复的至少一组字段。
根据本公开的实施例,该字段确定模块830具体用于从该多个字段中筛选出自重复率最低的至少两个字段,得到一组候选字段,以及从该一组候选字段中筛选出相似性满足预设要求的至少一组字段,得到该最不重复的至少一组字段。
根据本公开的实施例,从该一组候选字段中筛选出相似性满足预设要求的至少一组字段,得到该最不重复的至少一组字段,包括对于该一组候选字段中的任意两个候选字段,当该两个候选字段对应的向量的相似性小于区分度阈值时,筛选出该两个候选字段,或者当该两个候选字段对应的向量的相似性大于该区分度阈值时,筛选出该两个候选字段的其中之一。
根据本公开的实施例,该文件分割模块820具体用于对于每条记录,对该最不重复的至少一组字段按照预定规则进行组合运算,得到组合运算结果,以及将该每条记录映射到与该组合运算结果对应的分区。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,文件获取模块810、文件分割模块820、字段确定模块830、以及抽样模块840中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,文件获取模块810、文件分割模块820、字段确定模块830、以及抽样模块840中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FPGA)、可编程逻辑阵列(PLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,文件获取模块810、文件分割模块820、字段确定模块830、以及抽样模块840中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
图9示意性示出了根据本公开实施例的文件处理系统的方框图。图9示出的计算机系统仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图9所示,文件处理系统900包括处理器910、以及计算机可读存储介质920。该文件处理系统900可以执行根据本公开实施例的方法。
具体地,处理器910例如可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC)),等等。处理器910还可以包括用于缓存用途的板载存储器。处理器910可以是用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
计算机可读存储介质920,例如可以是能够包含、存储、传送、传播或传输指令的任意介质。例如,可读存储介质可以包括但不限于电、磁、光、电磁、红外或半导体系统、装置、器件或传播介质。可读存储介质的具体示例包括:磁存储装置,如磁带或硬盘(HDD);光存储装置,如光盘(CD-ROM);存储器,如随机存取存储器(RAM)或闪存;和/或有线/无线通信链路。
计算机可读存储介质920可以包括计算机程序921,该计算机程序921可以包括代码/计算机可执行指令,其在由处理器910执行时使得处理器910执行根据本公开实施例的方法或其任何变形。
计算机程序921可被配置为具有例如包括计算机程序模块的计算机程序代码。例如,在示例实施例中,计算机程序921中的代码可以包括一个或多个程序模块,例如包括921A、模块921B、……。应当注意,模块的划分方式和个数并不是固定的,本领域技术人员可以根据实际情况使用合适的程序模块或程序模块组合,当这些程序模块组合被处理器910执行时,使得处理器910可以执行根据本公开实施例的方法或其任何变形。
根据本发明的实施例,文件获取模块810、文件分割模块820、字段确定模块830、以及抽样模块840中的至少一个可以实现为参考图9描述的计算机程序模块,其在被处理器910执行时,可以实现上面描述的相应操作。
本公开还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。
根据本公开的实施例,计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线、光缆、射频信号等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合或/或结合,即使这样的组合或结合没有明确记载于本公开中。特别地,在不脱离本公开精神和教导的情况下,本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。
Claims (10)
1.一种文件处理方法,包括:
获取待处理的文件,所述文件包括多条记录,每条记录包括多个字段;
基于所述多个字段中最不重复的至少一组字段,按照文件分割数量分割所述文件,以确定所述文件中的每条记录所属的分区,其中,所述分区对应的计算系统处理所述分区对应的记录,不同分区对应的计算系统不同。
2.根据权利要求1所述的方法,还包括:
基于每个字段的自重复率以及不同字段之间的相似性,确定所述最不重复的至少一组字段。
3.根据权利要求2所述的方法,其中:
所述方法还包括以记录作为维度对所述文件进行随机抽样,得到抽样样本文件;
基于每个字段的自重复率以及不同字段之间的相似性,确定所述最不重复的至少一组字段,包括:
在所述抽样样本文件中,基于每个字段的自重复率以及不同字段之间的相似性,确定所述最不重复的至少一组字段。
4.根据权利要求2所述的方法,其中,基于每个字段的自重复率以及不同字段之间的相似性,确定所述最不重复的至少一组字段,包括:
从所述多个字段中筛选出自重复率最低的至少两个字段,得到一组候选字段;以及
从所述一组候选字段中筛选出相似性满足预设要求的至少一组字段,得到所述最不重复的至少一组字段。
5.根据权利要求2~4任意一项所述的方法,其中:
所述自重复率包括在每个字段的取值集合中重复的元素个数与集合的元素总个数之比,其中所述每个字段的取值集合为该字段在不同记录中的取值的集合;
所述相似性包括两个字段对应的向量之间的相似性,其中,每个字段对应的向量为该字段在所述不同记录中的取值组合形成。
6.根据权利要求5所述的方法,从所述一组候选字段中筛选出相似性满足预设要求的至少一组字段,得到所述最不重复的至少一组字段,包括对于所述一组候选字段中的任意两个候选字段:
当所述两个候选字段对应的向量的相似性小于区分度阈值时,筛选出所述两个候选字段;或者
当所述两个候选字段对应的向量的相似性大于所述区分度阈值时,筛选出所述两个候选字段的其中之一。
7.根据权利要求1所述的方法,其中,基于所述多个字段中最不重复的至少一组字段,按照文件分割数量分割所述文件,以确定所述文件中的每条记录所属的分区,包括:
对于每条记录,对所述最不重复的至少一组字段按照预定规则进行组合运算,得到组合运算结果;
将所述每条记录映射到与所述组合运算结果对应的分区。
8.一种文件处理装置,包括:
文件获取模块,用于获取待处理的文件,所述文件包括多条记录,每条记录包括多个字段;
文件分割模块,用于基于所述多个字段中最不重复的至少一组字段,按照文件分割数量分割所述文件,以确定所述文件中的每条记录所属的分区,其中,所述分区对应的计算系统处理所述分区对应的记录,不同分区对应的计算系统不同。
9.根据权利要求8所述的装置,还包括:
字段确定模块,用于基于每个字段的自重复率以及不同字段之间的相似性,确定所述最不重复的至少一组字段。
10.一种文件处理系统,包括:
一个或多个存储器,存储有可执行指令;以及
一个或多个处理器,所述处理器执行所述指令以实现根据权利要求1~7中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810659211.4A CN109101531B (zh) | 2018-06-22 | 2018-06-22 | 文件处理方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810659211.4A CN109101531B (zh) | 2018-06-22 | 2018-06-22 | 文件处理方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109101531A true CN109101531A (zh) | 2018-12-28 |
CN109101531B CN109101531B (zh) | 2022-05-31 |
Family
ID=64844940
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810659211.4A Active CN109101531B (zh) | 2018-06-22 | 2018-06-22 | 文件处理方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109101531B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110134547A (zh) * | 2019-04-28 | 2019-08-16 | 平安科技(深圳)有限公司 | 一种基于中间件的重复数据删除方法和相关装置 |
CN111625254A (zh) * | 2020-05-06 | 2020-09-04 | Oppo(重庆)智能科技有限公司 | 文件处理方法、装置、终端及存储介质 |
CN112613256A (zh) * | 2020-12-17 | 2021-04-06 | 海光信息技术股份有限公司 | 验证平台的电路参考文件的生成方法、装置和计算机设备 |
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101212267A (zh) * | 2007-12-21 | 2008-07-02 | 北京创毅视讯科技有限公司 | 广播系统基于文件模式传输业务数据的方法、系统及装置 |
CN101482875A (zh) * | 2008-12-24 | 2009-07-15 | 中国移动通信集团北京有限公司 | 信息查询方法及其装置 |
CN102193917A (zh) * | 2010-03-01 | 2011-09-21 | 中国移动通信集团公司 | 一种数据处理和查询方法和装置 |
CN102387179A (zh) * | 2010-09-02 | 2012-03-21 | 联想(北京)有限公司 | 分布式文件系统及其结点、存储方法和存储控制方法 |
WO2013075578A1 (zh) * | 2011-11-24 | 2013-05-30 | 腾讯科技(深圳)有限公司 | 网络资源文件的离线下载系统和方法 |
US8633966B2 (en) * | 2009-04-07 | 2014-01-21 | Sony Corporation | Information processing device, information processing method, program, and data structure |
CN103605778A (zh) * | 2013-11-28 | 2014-02-26 | 中安消技术有限公司 | 一种视频文件的定位方法、装置及系统 |
US20150082399A1 (en) * | 2013-09-17 | 2015-03-19 | Auburn University | Space-time separated and jointly evolving relationship-based network access and data protection system |
CN104462613A (zh) * | 2012-06-20 | 2015-03-25 | 北京奇虎科技有限公司 | 热点聚合方法及装置 |
CN104765694A (zh) * | 2015-03-18 | 2015-07-08 | 广东电网有限责任公司电力科学研究院 | 一种可配置合并取值的cim内存库加载方法 |
CN107357642A (zh) * | 2017-06-27 | 2017-11-17 | 北京奇艺世纪科技有限公司 | 一种计算任务调整方法及装置 |
CN107463332A (zh) * | 2016-06-03 | 2017-12-12 | 阿里巴巴集团控股有限公司 | 一种文件分割方法及装置 |
CN107480205A (zh) * | 2017-07-24 | 2017-12-15 | 北京京东尚科信息技术有限公司 | 一种进行数据分区的方法和装置 |
CN107657032A (zh) * | 2017-09-28 | 2018-02-02 | 佛山市南方数据科学研究院 | 一种互联网大数据分析提取方法 |
-
2018
- 2018-06-22 CN CN201810659211.4A patent/CN109101531B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101212267A (zh) * | 2007-12-21 | 2008-07-02 | 北京创毅视讯科技有限公司 | 广播系统基于文件模式传输业务数据的方法、系统及装置 |
CN101482875A (zh) * | 2008-12-24 | 2009-07-15 | 中国移动通信集团北京有限公司 | 信息查询方法及其装置 |
US8633966B2 (en) * | 2009-04-07 | 2014-01-21 | Sony Corporation | Information processing device, information processing method, program, and data structure |
CN102193917A (zh) * | 2010-03-01 | 2011-09-21 | 中国移动通信集团公司 | 一种数据处理和查询方法和装置 |
CN102387179A (zh) * | 2010-09-02 | 2012-03-21 | 联想(北京)有限公司 | 分布式文件系统及其结点、存储方法和存储控制方法 |
WO2013075578A1 (zh) * | 2011-11-24 | 2013-05-30 | 腾讯科技(深圳)有限公司 | 网络资源文件的离线下载系统和方法 |
CN104462613A (zh) * | 2012-06-20 | 2015-03-25 | 北京奇虎科技有限公司 | 热点聚合方法及装置 |
US20150082399A1 (en) * | 2013-09-17 | 2015-03-19 | Auburn University | Space-time separated and jointly evolving relationship-based network access and data protection system |
CN103605778A (zh) * | 2013-11-28 | 2014-02-26 | 中安消技术有限公司 | 一种视频文件的定位方法、装置及系统 |
CN104765694A (zh) * | 2015-03-18 | 2015-07-08 | 广东电网有限责任公司电力科学研究院 | 一种可配置合并取值的cim内存库加载方法 |
CN107463332A (zh) * | 2016-06-03 | 2017-12-12 | 阿里巴巴集团控股有限公司 | 一种文件分割方法及装置 |
CN107357642A (zh) * | 2017-06-27 | 2017-11-17 | 北京奇艺世纪科技有限公司 | 一种计算任务调整方法及装置 |
CN107480205A (zh) * | 2017-07-24 | 2017-12-15 | 北京京东尚科信息技术有限公司 | 一种进行数据分区的方法和装置 |
CN107657032A (zh) * | 2017-09-28 | 2018-02-02 | 佛山市南方数据科学研究院 | 一种互联网大数据分析提取方法 |
Non-Patent Citations (4)
Title |
---|
NICOLAS TSIFTES 等: "Enabling large-scale storage in sensor networks with the Coffee file system", 《2009 INTERNATIONAL CONFERENCE ON INFORMATION PROCESSING IN SENSOR NETWORKS》 * |
庞洪钦: "基于Hadoop的出租车数据质量分析与处理", 《中国优秀硕士学位论文全文数据库工程科技Ⅱ辑》 * |
李洪奇 等: "面向海量小文件的分布式存储系统设计与实现", 《计算机工程与设计》 * |
鄢印祯: "文本文件分割方法的实现", 《电脑编程技巧与维护》 * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110134547A (zh) * | 2019-04-28 | 2019-08-16 | 平安科技(深圳)有限公司 | 一种基于中间件的重复数据删除方法和相关装置 |
CN110134547B (zh) * | 2019-04-28 | 2023-08-18 | 平安科技(深圳)有限公司 | 一种基于中间件的重复数据删除方法和相关装置 |
CN111625254A (zh) * | 2020-05-06 | 2020-09-04 | Oppo(重庆)智能科技有限公司 | 文件处理方法、装置、终端及存储介质 |
CN111625254B (zh) * | 2020-05-06 | 2023-09-08 | Oppo(重庆)智能科技有限公司 | 文件处理方法、装置、终端及存储介质 |
CN112613256A (zh) * | 2020-12-17 | 2021-04-06 | 海光信息技术股份有限公司 | 验证平台的电路参考文件的生成方法、装置和计算机设备 |
CN112613256B (zh) * | 2020-12-17 | 2022-06-24 | 海光信息技术股份有限公司 | 验证平台的电路参考文件的生成方法、装置和计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN109101531B (zh) | 2022-05-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210211471A1 (en) | Highly scalable four-dimensional web-rendering geospatial data system for simulated worlds | |
Yang et al. | A spatiotemporal compression based approach for efficient big data processing on cloud | |
US11061984B2 (en) | Grid-based geofence data indexing | |
EP3299972A1 (en) | Efficient query processing using histograms in a columnar database | |
CN110362544A (zh) | 日志处理系统、日志处理方法、终端及存储介质 | |
CN108415845A (zh) | Ab测试系统指标置信区间的计算方法、装置和服务器 | |
CN109101531A (zh) | 文件处理方法、装置及系统 | |
CN110019087A (zh) | 数据处理方法及其系统 | |
CN107463479A (zh) | 一种社交数据监控系统 | |
CN110069579A (zh) | 电子围栏分块方法和装置 | |
Al-Jaroodi et al. | Characteristics and requirements of big data analytics applications | |
CN107861981A (zh) | 一种数据处理方法及装置 | |
Hussain et al. | Novel Dynamic Partial Reconfiguration Implementation of K‐Means Clustering on FPGAs: Comparative Results with GPPs and GPUs | |
US20140337274A1 (en) | System and method for analyzing big data in a network environment | |
CN109729095A (zh) | 数据处理方法、装置和计算设备及介质 | |
CN110457182A (zh) | 一种负载均衡集群实例运行指标监控系统 | |
Fang et al. | Meteorological data analysis using mapreduce | |
CN111695840A (zh) | 一种实现流程控制的方法和装置 | |
CN106605222A (zh) | 有指导的数据探索 | |
CN110019214A (zh) | 对数据拆分结果进行校验的方法和装置 | |
CN110019044A (zh) | 大数据集群准实时Yarn任务监控分析方法 | |
CN109416688A (zh) | 用于灵活的高性能结构化数据处理的方法和系统 | |
CN110245684A (zh) | 数据处理方法、电子设备和介质 | |
CN110503117A (zh) | 数据聚类的方法和装置 | |
CN107908696A (zh) | 一种并行高效的基于网格与密度的多维空间数据聚类算法griden |
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 |