CN112506869A - 文件处理方法、装置及系统 - Google Patents
文件处理方法、装置及系统 Download PDFInfo
- Publication number
- CN112506869A CN112506869A CN202011425406.6A CN202011425406A CN112506869A CN 112506869 A CN112506869 A CN 112506869A CN 202011425406 A CN202011425406 A CN 202011425406A CN 112506869 A CN112506869 A CN 112506869A
- Authority
- CN
- China
- Prior art keywords
- splitting
- split
- file
- fields
- field
- 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
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 21
- 238000012545 processing Methods 0.000 claims abstract description 71
- 238000000034 method Methods 0.000 claims abstract description 42
- 238000013524 data verification Methods 0.000 claims description 18
- 238000012795 verification Methods 0.000 claims description 12
- 238000005516 engineering process Methods 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000005034 decoration Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013024 troubleshooting Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种文件处理方法、装置及系统。其中,该方法应用于分布式处理集群的处理节点,该方法包括:获取待拆分文件,以及待拆分文件对应的拆分规则,其中,待拆分文件包含多个字段;识别待拆分文件中的多个字段;将多个字段与拆分规则进行匹配,确定多个字段中的拆分字段;基于拆分字段对待拆分文件进行拆分,得到多个子文件。本发明解决了相关技术中文件处理方法对文件进行拆分的拆分较低的技术问题。
Description
技术领域
本发明涉及文件处理领域,具体而言,涉及一种文件处理方法、装置及系统。
背景技术
在银行业等存在总分机构的系统架构中,存在将整体文件拆分成一个或多个子文件的需求。相关技术中,Linux操作系统提供split命令对文件均等大小的串行拆分,但是,拆分效率较低。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种文件处理方法、装置及系统,以至少解决相关技术中文件处理方法对文件进行拆分的拆分效率较低的技术问题。
根据本发明实施例的一个方面,提供了一种文件处理方法,该方法应用于分布式处理集群的处理节点,其中,该方法包括:获取待拆分文件,以及待拆分文件对应的拆分规则,其中,待拆分文件包含多个字段;识别待拆分文件中的多个字段;将多个字段与拆分规则进行匹配,确定多个字段中的拆分字段;基于拆分字段对待拆分文件进行拆分,得到多个子文件。
可选地,将多个字段与拆分规则进行匹配,确定多个字段中的拆分字段,包括:基于拆分规则,生成正则表达式;将多个字段与正则表达式进行匹配;确定与正则表达式匹配成功的字段为拆分字段。
可选地,在基于拆分字段对待拆分文件进行拆分,得到多个子文件之前,该方法还包括:获取数据校验规则,以及待拆分文件中拆分字段对应的数据;基于数据校验规则,对拆分字段对应的数据进行校验;如果校验成功,则基于拆分字段对待拆分文件进行拆分;如果校验失败,则将拆分字段对应的数据存储至错误文件中。
可选地,获取待拆分文件中拆分字段对应的数据包括:逐行读取待拆分文件中的数据;基于拆分字段对应的字段分隔符,确定拆分字段对应的数据。
可选地,在基于拆分字段对待拆分文件进行拆分,得到多个子文件之后,该方法还包括:获取多个子文件的第一数据量,以及错误文件的第二数据量;基于第一数据量和第二数据量,得到拆分字段对应的拆分比率;基于拆分比率,确定目标拆分字段,其中,目标拆分字段用于下一次对待拆分文件进行拆分。
可选地,在拆分字段为多个的情况下,基于多个拆分字段对待拆分文件进行拆分,确定每个拆分字段对应的拆分比率,并确定最高拆分比率对应的拆分字段为目标拆分字段。
可选地,从关系型数据库或分布式存储系统中获取拆分规则。
根据本发明实施例的另一方面,还提供了一种文件处理装置,该装置部署于分布式处理集群的处理节点中,其中,该装置包括:获取模块,用于获取待拆分文件,以及待拆分文件对应的拆分规则,其中,待拆分文件包含多个字段;识别模块,用于识别待拆分文件中的多个字段;匹配模块,用于将多个字段与拆分规则进行匹配,确定多个字段中的拆分字段;拆分模块,用于基于拆分字段对待拆分文件进行拆分,得到多个子文件。
根据本发明实施例的另一方面,还提供了一种文件处理系统,包括:数据库,用于存储待拆分文件对应的拆分规则,其中,待拆分文件包含多个字段;分布式处理集群,与数据库连接,包括处理节点,分布式处理集群用于存储待拆分文件,处理节点用于识别待拆分文件中的多个字段,将多个字段与拆分规则进行匹配,确定多个字段中的拆分字段,并基于拆分字段对待拆分文件进行拆分,得到多个子文件。
根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的程序,其中,在程序运行时控制计算机可读存储介质所在设备执行上述的文件处理方法。
根据本发明实施例的另一方面,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述的文件处理方法。
在本发明实施例中,在获取到待拆分文件,以及待拆分文件对应的拆分规则之后,可以将自动识别出的待拆分文件的多个字段与拆分规则进行匹配,从而得到待拆分文件的拆分字段,并按照拆分字段对拆分文件进行拆分,从而实现大批量文件自动拆分的目的。容易注意到的是,可以通过分布式处理集群对大量文件进行并行拆分操作,而且,可以自动识别拆分字段,减少了人工操作的工作量,避免人工操作出现的误操作和拆分错误的问题,从而达到了提高拆分效率和拆分准确率,提升用户体验感的技术效果,进而解决了相关技术中文件处理方法对文件进行拆分的拆分较低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种文件处理方法的流程图;
图2是根据本发明实施例的一种可选的文件拆分系统架构的示意图;
图3是根据本发明实施例的一种可选的文件拆分流程的流程图;
图4是根据本发明实施例的一种文件处理装置的示意图;
图5是根据本发明实施例的一种文件处理系统的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
对于上述的通过split命令对文件进行均等大小的串行拆分的方案,该方案只能在单机进行,拆分效率受限于单台服务器CPU以及内存的限制;拆分功能只是将文件按照均等大小或者固定行数进行拆分,难以实现问题数据的过滤操作;在拆分大文件时如果出现失败,需要从头再来;另外,该方法不能指定个性化差分规则,灵活性较差。
本发明提供的方案针对现有技术存在的缺陷及不足进行功能扩展及完善,具体实现方案如下:
实施例1
根据本发明实施例,提供了一种文件处理方法,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
可选地,该方法可以应用于分布式处理集群的处理节点中。
上述的分布式处理集群可以是Hadoop集群,Hadoop集群中的MapReduce是一种面向大规模数据处理的并行计算模型、框架和平台。处理节点可以是Hadoop集群中的节点,每个节点可以部署在一个服务器上,或者多个节点部署在同一个服务器上。
在一种可选的实施例中,采用分布式拆分的方法可以实现大批量文件同时拆分的目的,从而极大的提高了拆分效率。
图1是根据本发明实施例的一种文件处理方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,获取待拆分文件,以及待拆分文件对应的拆分规则,其中,待拆分文件包含多个字段。
上述步骤中的待拆分文件可以是分布式处理集群中每个节点需要进行拆分的文件,每个节点可以同时对不同的文件进行拆分,可以同时对同一个文件进行拆分。
上述步骤中的拆分规则可以是用户针对不同文件定制的不同拆分规则,通过设定拆分规则可以随时扩展拆分范围。在一种可选的实施例中,用户可以根据已知的几类拆分字段,例如机构号、客户号、客户账号、省号代码等编写拆分规则。
可选地,从关系型数据库或分布式存储系统中获取拆分规则。
上述的关系型数据库可以是Oracle、MySQL或DB2等,但不仅限于此。上述的分布式存储系统可以是HBase,HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。通过HBase提供的强大的读取能力,可满足拆分过程中频繁读取规则数据(Key/Value)进行关联拆分处理的业务场景。
在一种可选的实施例中,可以采用关系型数据库作为拆分规则配置库,主要用于存储拆分规则,拆分方法配置,待拆分文件等信息。根据某些特定规则文件(含有其他文件拆分所依赖的规则数据)加工拆分规则数据(Key/Value)存储于HBase中。
步骤S104,识别待拆分文件中的多个字段。
上述步骤中的字段可以是待拆分文件中包含的所有字段,例如,机构号、客户号、客户账号、省号代码等,但不仅限于此。
步骤S106,将多个字段与拆分规则进行匹配,确定多个字段中的拆分字段。
上述步骤中的拆分字段可以是指与拆分规则相匹配的字段,也即,拆分字段是用户编写拆分规则时所依据的字段。需要说明的是,用户在编写拆分规则时往往依据多个字段,因此识别出的拆分字段也往往是多个。
步骤S108,基于拆分字段对待拆分文件进行拆分,得到多个子文件。
在一种可选的实施例中,当需要对大批量文件进行拆分时,可以采用分布式拆分的方法同时进行处理,对于每个处理节点,可以根据拆分任务从数据库读取拆分规则,并获取到该处理节点需要拆分的待拆分文件。对待拆分文件中所有字段进行识别,并依靠拆分规则自动识别出可用于拆分的所有拆分字段,并依此进行拆分。
通过本发明上述实施例,在获取到待拆分文件,以及待拆分文件对应的拆分规则之后,可以将自动识别出的待拆分文件的多个字段与拆分规则进行匹配,从而得到待拆分文件的拆分字段,并按照拆分字段对拆分文件进行拆分,从而实现大批量文件自动拆分的目的。容易注意到的是,可以通过分布式处理集群对大量文件进行并行拆分操作,而且,可以自动识别拆分字段,减少了人工操作的工作量,避免人工操作出现的误操作和拆分错误的问题,从而达到了提高拆分效率和拆分准确率,提升用户体验感的技术效果,进而解决了相关技术中文件处理方法对文件进行拆分的拆分较低的技术问题。
可选地,在本发明上述实施例中,将多个字段与拆分规则进行匹配,确定多个字段中的拆分字段,包括:基于拆分规则,生成正则表达式;将多个字段与正则表达式进行匹配;确定与正则表达式匹配成功的字段为拆分字段。
正则表达式是对字符串操作的一种逻辑公式,使用预先定义好的特定字符以及特定字符的组合,组合成一个规则字符串,通过该规则字符串可以实现对字符串的查询、过滤等逻辑。
在一种可选的实施例中,为了方便计算机自动识别拆分字段,用户可以直接根据已知的几类拆分字段编写相应的正则表达式,从而每个处理节点在进行文件拆分操作时,可以直接通过正则表达式进行字段匹配,并将匹配正则表达式的字段识别为待拆分数据的拆分字段。
可选地,在本发明上述实施例中,在基于拆分字段对待拆分文件进行拆分,得到多个子文件之前,该方法还包括:获取数据校验规则,以及待拆分文件中拆分字段对应的数据;基于数据校验规则,对拆分字段对应的数据进行校验;如果校验成功,则基于拆分字段对待拆分文件进行拆分;如果校验失败,则将拆分字段对应的数据存储至错误文件中。
上述步骤中的数据校验规则可以是用户针对不同文件定制的对数据字段进行数据校验的规则,包括但不限于数据长度、数据类型、数值精确度等,数据校验规则同样可以存储在上述的数据库中。
上述步骤中的错误文件可以是用于存储问题数据(包括错误数据、异常数据、校验失败数据等)的文件。
在一种可选的实施例中,为了避免发生由于数据质量问题导致文件无法拆分的情况,可以逐行读取待拆分文件中的数据,并按照拆分字段进行切分,然后根据数据校验规则检查该拆分字段的数据是否存在数据质量问题,如果校验成功,则表明该拆分字段的数据不存在数据质量问题,可以继续进行拆分操作;如果校验失败,则表明该拆分字段的数据存在数据质量问题,可以直接写入到ERROR文件中。通过数据校验可以将问题数据进行过滤归档,方便后续排查无法拆分的原因,避免使用过程中出现数据无法加载或数据不一致的问题。
可选地,在本发明上述实施例中,获取待拆分文件中拆分字段对应的数据包括:逐行读取待拆分文件中的数据;基于拆分字段对应的字段分隔符,确定拆分字段对应的数据。
在一种可选的实施例中,在使用MapReduce执行拆分过程中,逐行读取待拆分数据文件,拆分字段的字段分隔符,将逐行数据切分成若干个字段,再对各个字段进行数据校验。
可选地,在本发明上述实施例中,在基于拆分字段对待拆分文件进行拆分,得到多个子文件之后,该方法还包括:获取多个子文件的第一数据量,以及错误文件的第二数据量;基于第一数据量和第二数据量,得到拆分字段对应的拆分比率;基于拆分比率,确定目标拆分字段,其中,目标拆分字段用于下一次对待拆分文件进行拆分。
在一种可选的实施例中,在使用自动识别的拆分字段对待拆分数据文件进行拆分后,可以生成一系列子文件及ERROR文件,进一步可以利用MapReduce自定义输出统计信息,自动计算拆分成的各个子文件的数据量(即上述的第一数据量)以及ERROR文件的数据量(即上述的第二数据量),据此可计算出该数据文件采用当前自动识别的拆分字段进行拆分的拆分比,其中,拆分比S的计算公式如下:
其中,Mi表示第i个子文件的数据量,Merror表示ERROR文件的数据量。
可选地,在本发明上述实施例中,在拆分字段为多个的情况下,基于多个拆分字段对待拆分文件进行拆分,确定每个拆分字段对应的拆分比率,并确定最高拆分比率对应的拆分字段为目标拆分字段。
在一种可选的实施例中,对于存在多个可用于拆分待拆分文件的拆分字段的情况,可以根据多个拆分字段对待拆分文件进行多次拆分操作,并进行对比测试,基于每次拆分操作得到的拆分比,确定最高拆分比率对应的字段为后续使用的目标拆分字段。
在另一种可选的实施例中,在根据自动识别到的拆分字段进行上述拆分后获得的拆分比情况,可以自定义设置拆分字段,用户可以自定义设置多个拆分字段进行拆分,从而解决了在确定目标拆分字段后,仍存在无数据质量问题但是数据无法拆分的情况。
下面结合图2和图3对本发明一种优选的实施例进行详细说明。
如图2所示,对于MapReduce,整个系统架构可以包括:ORALCE服务器、接收服务器、拆分集群、下载服务器和ETL(Extract-Transform-Load,抽取-转换-加载)作业调度。其中,接收服务器用于接收用户上传的待拆分文件和拆分规则文件;ETL作业调度用于调度接收服务器将接收到的文件存储至拆分集群,并调度拆分集群并行执行文件拆分操作;ORALCE服务器作为配置库,主要用于存储拆分规则、拆分方法配置、数据校验规则等;拆分集群用于对待拆分文件进行拆分;下载服务器用于接收用户发送的文件下载请求,并将该请求对应的子文件进行合并压缩转码(也即编码格式转换),最后将文件下发至客户端。
对于拆分集群,如图2和图3所示,文件拆分流程如下:根据拆分作业(可以是文件拆分任务所需计算机完成的工作处理单元)从数据库读取拆分配置信息,获取到本拆分作业待拆分数据文件的所有字段;根据待拆分数据文件的字段自动识别拆分字段匹配拆分规则;根据获取到待拆分文件的所有字段,读取数据文件并进行数据校验;通过数据校验后,根据自动识别的拆分字段以及匹配的拆分规则,执行拆分主体流程;将待拆分数据文件拆分为多个子文件,同时将数据校验过程中存在数据质量问题的数据以及未匹配到拆分规则的数据写入到ERROR文件;分别统计所有拆分结果文件及ERROR文件的数据量;根据拆分结果数据量与数据文件实际数据量计算拆分比。根据某些特定规则文件(含有其他文件拆分所依赖的规则数据)加工拆分规则数据(Key/Value)存储于HBase中。而且,针对ERROR文件进行过滤归档,便于后续问题排查中排查无法拆分的原因。
通过上述方案,通过采用分布式计算方式提升拆分效率,缩短拆分耗时;通过拆分字段自动识别,避免了人工录入存在问题,提高工作效率的同时也提高了拆分的准确性;拆分过程中逐行处理数据,根据配置的数据校验规则,过滤存在数据质量问题数据,提升数据质量及可用性;支持拆分规则个性化配置,实现拆分的可定制化,满足不同的业务需求;拆分规则一致的数据文件,仅需配置拆分相关信息即可,无需修改源码,提升代码复用率,减少开发工作量;自动化统计拆分结果数据量核算拆分比,大大减少了人工核查拆分结果调整拆分规则的周期,极大的提高了工作效率;多字段组合拆分,数据文件拆分更彻底,减少了因拆分不彻底,拆分结果文件数据不全,以致业务使用数据时出现与前台数据不一致的情况。
实施例2
根据本发明实施例,还提供了一种文件处理装置,该装置可以执行上述实施例中的文件处理方法,具体实现方案和优选应用场景与上述实施例相同,在此不做赘述。
可选地,该方法可以部署于分布式处理集群的处理节点中。
上述的分布式处理集群可以是Hadoop集群,Hadoop集群中的MapReduce是一种面向大规模数据处理的并行计算模型、框架和平台。处理节点可以是Hadoop集群中的节点,每个节点可以部署在一个服务器上,或者多个节点部署在同一个服务器上。
在一种可选的实施例中,采用分布式拆分的方法可以实现大批量文件同时拆分的目的,从而极大的提高了拆分效率。
图4是根据本发明实施例的一种文件处理装置的示意图,如图4所示,该装置包括:
获取模块42,用于获取待拆分文件,以及待拆分文件对应的拆分规则,其中,待拆分文件包含多个字段;
识别模块44,用于识别待拆分文件中的多个字段;
匹配模块46,用于将多个字段与拆分规则进行匹配,确定多个字段中的拆分字段;
拆分模块48,用于基于拆分字段对待拆分文件进行拆分,得到多个子文件。
可选地,在本发明上述实施例中,匹配模块46包括:生成单元,用于基于拆分规则,生成正则表达式;匹配单元,用于将多个字段与正则表达式进行匹配;第一确定单元,用于确定与正则表达式匹配成功的字段为拆分字段。
可选地,在本发明上述实施例中,该装置还包括:获取模块42还用于获取数据校验规则,以及待拆分文件中拆分字段对应的数据;校验模块,用于基于数据校验规则,对拆分字段对应的数据进行校验;拆分模块48还用于如果校验成功,则基于拆分字段对待拆分文件进行拆分;存储模块,用于如果校验失败,则将拆分字段对应的数据存储至错误文件中。
可选地,在本发明上述实施例中,获取模块42包括:读取单元,用于逐行读取待拆分文件中的数据;第二确定单元,用于基于拆分字段对应的字段分隔符,确定拆分字段对应的数据。
可选地,在本发明上述实施例中,该装置还包括:获取模块42还用于获取多个子文件的第一数据量,以及错误文件的第二数据量;处理模块,用于基于第一数据量和第二数据量,得到拆分字段对应的拆分比率;确定模块,用于基于拆分比率,确定目标拆分字段,其中,目标拆分字段用于下一次对待拆分文件进行拆分。
可选地,在本发明上述实施例中,在拆分字段为多个的情况下,拆分模块48还用于基于多个拆分字段对待拆分文件进行拆分;获取模块42还用于确定每个拆分字段对应的拆分比率,并确定最高拆分比率对应的拆分字段为目标拆分字段。
实施例3
根据本发明实施例,还提供了一种文件处理系统,该装置可以执行上述实施例中的文件处理方法,具体实现方案和优选应用场景与上述实施例相同,在此不做赘述。
图5是根据本发明实施例的一种文件处理系统的示意图,如图5所示,该系统包括:
数据库52,用于存储待拆分文件对应的拆分规则,其中,待拆分文件包含多个字段。
上述的数据库可以是关系型数据库或分布式存储系统,其中,关系型数据库可以是Oracle、MySQL或DB2等,但不仅限于此;分布式存储系统可以是HBase,HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。通过HBase提供的强大的读取能力,可满足拆分过程中频繁读取规则数据(Key/Value)进行关联拆分处理的业务场景。
分布式处理集群54,与数据库连接,包括处理节点,分布式处理集群用于存储待拆分文件,处理节点用于识别待拆分文件中的多个字段,将多个字段与拆分规则进行匹配,确定多个字段中的拆分字段,并基于拆分字段对待拆分文件进行拆分,得到多个子文件。
上述的分布式处理集群可以是Hadoop集群,Hadoop集群中的MapReduce是一种面向大规模数据处理的并行计算模型、框架和平台。处理节点可以是Hadoop集群中的节点,每个节点可以部署在一个服务器上,或者多个节点部署在同一个服务器上。
可选地,在本发明上述实施例中,处理节点还用于基于拆分规则,生成正则表达式,将多个字段与正则表达式进行匹配,并确定与正则表达式匹配成功的字段为拆分字段。
可选地,在本发明上述实施例中,处理节点还用于获取数据校验规则,以及待拆分文件中拆分字段对应的数据,并基于数据校验规则,对拆分字段对应的数据进行校验;其中,如果校验成功,则基于拆分字段对待拆分文件进行拆分;如果校验失败,则将拆分字段对应的数据存储至错误文件中。
可选地,在本发明上述实施例中,处理节点还用于逐行读取待拆分文件中的数据,并基于拆分字段对应的字段分隔符,确定拆分字段对应的数据。
可选地,在本发明上述实施例中,处理节点还用于获取多个子文件的第一数据量,以及错误文件的第二数据量,基于第一数据量和第二数据量,得到拆分字段对应的拆分比率,并基于拆分比率,确定目标拆分字段,其中,目标拆分字段用于下一次对待拆分文件进行拆分。
可选地,处理节点还用于在拆分字段为多个的情况下,基于多个拆分字段对待拆分文件进行拆分,确定每个拆分字段对应的拆分比率,并确定最高拆分比率对应的拆分字段为目标拆分字段。
实施例4
根据本发明实施例,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的程序,其中,在程序运行时控制计算机可读存储介质所在设备执行上述实施例1中的文件处理方法。
实施例5
根据本发明实施例,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述实施例1中的文件处理方法。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种文件处理方法,其特征在于,所述方法应用于分布式处理集群的处理节点,其中,所述方法包括:
获取待拆分文件,以及所述待拆分文件对应的拆分规则,其中,所述待拆分文件包含多个字段;
识别所述待拆分文件中的所述多个字段;
将所述多个字段与所述拆分规则进行匹配,确定所述多个字段中的拆分字段;
基于所述拆分字段对所述待拆分文件进行拆分,得到多个子文件。
2.根据权利要求1所述的方法,其特征在于,将所述多个字段与所述拆分规则进行匹配,确定所述多个字段中的拆分字段,包括:
基于所述拆分规则,生成正则表达式;
将所述多个字段与所述正则表达式进行匹配;
确定与所述正则表达式匹配成功的字段为所述拆分字段。
3.根据权利要求1所述的方法,其特征在于,在基于所述拆分字段对所述待拆分文件进行拆分,得到多个子文件之前,所述方法还包括:
获取数据校验规则,以及所述待拆分文件中所述拆分字段对应的数据;
基于所述数据校验规则,对所述拆分字段对应的数据进行校验;
如果校验成功,则基于所述拆分字段对所述待拆分文件进行拆分;
如果校验失败,则将所述拆分字段对应的数据存储至错误文件中。
4.根据权利要求3所述的方法,其特征在于,获取所述待拆分文件中所述拆分字段对应的数据包括:
逐行读取所述待拆分文件中的数据;
基于所述拆分字段对应的字段分隔符,确定所述拆分字段对应的数据。
5.根据权利要求3所述的方法,其特征在于,在基于所述拆分字段对所述待拆分文件进行拆分,得到多个子文件之后,所述方法还包括:
获取所述多个子文件的第一数据量,以及所述错误文件的第二数据量;
基于所述第一数据量和所述第二数据量,得到所述拆分字段对应的拆分比率;
基于所述拆分比率,确定目标拆分字段,其中,所述目标拆分字段用于下一次对所述待拆分文件进行拆分。
6.根据权利要求5所述的方法,其特征在于,在所述拆分字段为多个的情况下,基于多个拆分字段对所述待拆分文件进行拆分,确定每个拆分字段对应的拆分比率,并确定最高拆分比率对应的拆分字段为所述目标拆分字段。
7.一种文件处理装置,其特征在于,所述装置部署于分布式处理集群的处理节点中,其中,所述装置包括:
获取模块,用于获取待拆分文件,以及所述待拆分文件对应的拆分规则,其中,所述待拆分文件包含多个字段;
识别模块,用于识别所述待拆分文件中的所述多个字段;
匹配模块,用于将所述多个字段与所述拆分规则进行匹配,确定所述多个字段中的拆分字段;
拆分模块,用于基于所述拆分字段对所述待拆分文件进行拆分,得到多个子文件。
8.一种文件处理系统,其特征在于,包括:
数据库,用于存储待拆分文件对应的拆分规则,其中,所述待拆分文件包含多个字段;
分布式处理集群,与所述数据库连接,包括处理节点,所述分布式处理集群用于存储所述待拆分文件,所述处理节点用于识别所述待拆分文件中的所述多个字段,将所述多个字段与所述拆分规则进行匹配,确定所述多个字段中的拆分字段,并基于所述拆分字段对所述待拆分文件进行拆分,得到多个子文件。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至6中任意一项所述的文件处理方法。
10.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至6中任意一项所述的文件处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011425406.6A CN112506869A (zh) | 2020-12-08 | 2020-12-08 | 文件处理方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011425406.6A CN112506869A (zh) | 2020-12-08 | 2020-12-08 | 文件处理方法、装置及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112506869A true CN112506869A (zh) | 2021-03-16 |
Family
ID=74971501
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011425406.6A Pending CN112506869A (zh) | 2020-12-08 | 2020-12-08 | 文件处理方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112506869A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113641633A (zh) * | 2021-08-10 | 2021-11-12 | 中国工商银行股份有限公司 | 文件处理方法、装置、电子设备、介质和计算机程序 |
CN115378937A (zh) * | 2022-08-10 | 2022-11-22 | 北京友友天宇系统技术有限公司 | 任务的分布式并发方法、装置、设备和可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109697209A (zh) * | 2018-12-25 | 2019-04-30 | 广东亿迅科技有限公司 | 一种面向分布式数据库的报表处理方法及装置 |
CN109889375A (zh) * | 2019-01-23 | 2019-06-14 | 中国银行股份有限公司 | 业务报文校验方法、装置及计算机存储介质 |
CN111382128A (zh) * | 2020-03-20 | 2020-07-07 | 中国邮政储蓄银行股份有限公司 | 一种文件的拆分方法、装置及计算机系统 |
-
2020
- 2020-12-08 CN CN202011425406.6A patent/CN112506869A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109697209A (zh) * | 2018-12-25 | 2019-04-30 | 广东亿迅科技有限公司 | 一种面向分布式数据库的报表处理方法及装置 |
CN109889375A (zh) * | 2019-01-23 | 2019-06-14 | 中国银行股份有限公司 | 业务报文校验方法、装置及计算机存储介质 |
CN111382128A (zh) * | 2020-03-20 | 2020-07-07 | 中国邮政储蓄银行股份有限公司 | 一种文件的拆分方法、装置及计算机系统 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113641633A (zh) * | 2021-08-10 | 2021-11-12 | 中国工商银行股份有限公司 | 文件处理方法、装置、电子设备、介质和计算机程序 |
CN113641633B (zh) * | 2021-08-10 | 2024-03-29 | 中国工商银行股份有限公司 | 文件处理方法、装置、电子设备、介质和计算机程序 |
CN115378937A (zh) * | 2022-08-10 | 2022-11-22 | 北京友友天宇系统技术有限公司 | 任务的分布式并发方法、装置、设备和可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107832406B (zh) | 海量日志数据的去重入库方法、装置、设备及存储介质 | |
JP2010524060A (ja) | 分散コンピューティングにおけるデータマージング | |
CN110781231A (zh) | 基于数据库的批量导入方法、装置、设备及存储介质 | |
CN110119292A (zh) | 系统运行参数查询方法、匹配方法、装置及节点设备 | |
CN104077328B (zh) | MapReduce分布式系统的作业诊断方法及设备 | |
CN112506869A (zh) | 文件处理方法、装置及系统 | |
WO2016060552A1 (en) | System generator module for electronic document and electronic file | |
CN105955875A (zh) | 一种监控raid卡日志的装置和方法 | |
CN112667860A (zh) | 一种子图匹配方法、装置、设备及存储介质 | |
CN112199935A (zh) | 数据的比对方法、装置、电子设备及计算机可读存储介质 | |
CN109271545A (zh) | 一种特征检索方法及装置、存储介质和计算机设备 | |
CN108038253B (zh) | 一种日志查询的处理方法及装置 | |
CN110008236B (zh) | 一种数据分布式自增编码方法、系统、设备及介质 | |
CN111752541A (zh) | 一种基于Rete算法的支付路由方法 | |
CN114168581A (zh) | 数据清洗方法、装置、计算机设备及存储介质 | |
CN113986576A (zh) | 消息处理方法及装置 | |
CN115048359A (zh) | 一种多类型接入数据源的通用数据处理架构设计方法 | |
CN104320454A (zh) | 一种在http协议还原中实现自定义输出的方法及系统 | |
CN114138786A (zh) | 一种联机交易消息去重方法、装置、介质、产品和设备 | |
CN114511314A (zh) | 一种支付账户管理的方法、装置、计算机设备和存储介质 | |
CN109785099B (zh) | 一种自动对业务数据信息进行处理的方法及系统 | |
CN112800091A (zh) | 一种流批一体式计算控制系统及方法 | |
CN113836157A (zh) | 获取数据库增量数据的方法和装置 | |
CN109697216B (zh) | 清算交易信息处理方法、装置及系统 | |
CN106469086B (zh) | 事件处理方法和装置 |
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 |