一种基于规则标签的大文档分片处理方法及装置制造方法及图纸

技术编号:39320939 阅读:8 留言:0更新日期:2023-11-12 16:01
本发明专利技术公开了一种基于规则标签的大文档分片处理方法及装置。其中,方法包括:使用主线程先对待处理文档进行标签的定位标记,并收集待处理文档中所有的标记坐标对,其中每一对标记包含开始和结束的坐标,视为一组;依据计算设备对所有的标记坐标对进行分片,确定待处理的多组标记;采用多线程根据每组标记的起始和结束坐标使用文档的随机读写技术,获取该组坐标范围内的内容数据;读取每组标记的内容数据至内存,进行内容数据的扩展操作。进行内容数据的扩展操作。进行内容数据的扩展操作。

【技术实现步骤摘要】
一种基于规则标签的大文档分片处理方法及装置


[0001]本专利技术涉及文档分片处理
,并且更具体地,涉及一种基于规则标签的大文档分片处理方法及装置。

技术介绍

[0002]对于具有规则的大文档例如十几G,如果内存只有几个G大小,如何有效快速的处理数据是一项艰难的任务。如果CPU也只有2核心,在这种资源匮乏的情况下需要有一种机制可以处理超出资源处理能力的数据文档。
[0003]目前主流的做法,主要是针对规则的XML文档进行处理,不能兼容更多的文档类型例如txt、dbf、pdf等等,而且只能处理小于内存大小的文档,因此局限性比较多。如何利用现在有的机器资源对具有规则的大文档进行数据高效读取和分片处理成为亟待解决的技术问题。目前解决方案严重依赖内存和CPU资源,利用多线程技术将文档全部读入内存,然后在进行内存数据操作,并没有真正意义上做到数据分片处理,如果文档内容远远大于内存大小,那么会造成文档处理失败。因此这样处理方案并没有合理利用现有的有限资源,反而过渡依赖内存和CPU的资源,造成任务不可处理。

技术实现思路

[0004]针对现有技术的不足,本专利技术提供一种基于规则标签的大文档分片处理方法及装置。
[0005]根据本专利技术的一个方面,提供了一种基于规则标签的大文档分片处理方法,包括:
[0006]使用主线程先对待处理文档进行标签的定位标记,并收集待处理文档中所有的标记坐标对,其中每一对标记包含开始和结束的坐标,视为一组;
[0007]依据计算设备对所有的标记坐标对进行分片,确定待处理的多组标记;
[0008]采用多线程根据每组标记的起始和结束坐标使用文档的随机读写技术,获取该组坐标范围内的内容数据;
[0009]读取每组标记的内容数据至内存,进行内容数据的扩展操作。
[0010]可选地,待处理文档的类型包括:txt、xml、dbf、pdf。
[0011]可选地,依据计算设备对所有的标记坐标对进行分片,确定待处理的多组标记,包括:
[0012]在计算设备为本地计算设备的情况下,根据本地计算设备的CPU核心数n和内存大小mG进行均衡的分片,则每个核心分得N/n=x组标记,并且每个CPU核心同时处理的数据大小之和不能超过m*(3/4)=m_maxG,确定每个CPU核心每次处理x/(m_max)=x_per组标记,循环处理m_max次;
[0013]在计算设备为分布式处理的情况下,根据每台计算设备的配置的权重进行分片,确定待处理的多组标记。
[0014]可选地,扩展操作为对接批处理框进行数据的process、转换以及持久化操作。
[0015]根据本专利技术的另一个方面,提供了一种基于规则标签的大文档分片处理装置,包括:
[0016]定位标记模块,用于使用主线程先对待处理文档进行标签的定位标记,并收集待处理文档中所有的标记坐标对,其中每一对标记包含开始和结束的坐标,视为一组;
[0017]确定模块,用于依据计算设备对所有的标记坐标对进行分片,确定待处理的多组标记;
[0018]获取模块,用于采用多线程根据每组标记的起始和结束坐标使用文档的随机读写技术,获取该组坐标范围内的内容数据;
[0019]扩展操作模块,用于读取每组标记的内容数据至内存,进行内容数据的扩展操作。
[0020]根据本专利技术的又一个方面,提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序用于执行本专利技术上述任一方面所述的方法。
[0021]根据本专利技术的又一个方面,提供了一种电子设备,所述电子设备包括:处理器;用于存储所述处理器可执行指令的存储器;所述处理器,用于从所述存储器中读取所述可执行指令,并执行所述指令以实现本专利技术上述任一方面所述的方法。
[0022]从而,本专利技术可以利用定位标记、标记分片、分片处理三个阶段根据不同的机器资源进行不同的组合配置,依据CPU的核心数以及内存的大小,计算分片的大小以及分片处理的并发度,在机器资源及其匮乏的情况下,也可以完成大文档数据的处理,与其他方案相比,可处理更多类型的文档,其分片处理方案更可以自由组合配置。本专利技术关键点是主线程做定位标记和标记分片,然后依据CPU和内存的大小,计算每个线程或者每台机器处理的分片大小,真正做到每个线程、每台机器的负载均衡;同时也支持分布式处理方案,RPC到远程进行数据的处理。该技术方案实现文档最细粒度的数据分片,解决了超大文档只能在配置高的机器上运行,配置低的机器就无法运行的局面。
附图说明
[0023]通过参考下面的附图,可以更为完整地理解本专利技术的示例性实施方式:
[0024]图1是本专利技术一示例性实施例提供的基于规则标签的大文档分片处理方法的流程示意图;
[0025]图2是本专利技术一示例性实施例提供的基于规则标签的大文档分片处理方法的另一流程示意图;
[0026]图3是本专利技术一示例性实施例提供的基于规则标签的大文档分片处理方法的流程示意图;
[0027]图4是本专利技术一示例性实施例提供的扩展操作的流程示意图;
[0028]图5是本专利技术一示例性实施例提供的电子设备的结构。
具体实施方式
[0029]下面,将参考附图详细地描述根据本专利技术的示例实施例。显然,所描述的实施例仅仅是本专利技术的一部分实施例,而不是本专利技术的全部实施例,应理解,本专利技术不受这里描述的示例实施例的限制。
[0030]应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布
置、数字表达式和数值不限制本专利技术的范围。
[0031]本领域技术人员可以理解,本专利技术实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
[0032]还应理解,在本专利技术实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
[0033]还应理解,对于本专利技术实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
[0034]另外,本专利技术中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本专利技术中字符“/”,一般表示前后关联对象是一种“或”的关系。
[0035]还应理解,本专利技术对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
[0036]同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
[0037]以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本专利技术及其应用或使用的任何限制。
[0038]对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,技术、方法和设备应当被本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于规则标签的大文档分片处理方法,其特征在于,包括:使用主线程先对待处理文档进行标签的定位标记,并收集所述待处理文档中所有的标记坐标对,其中每一对标记包含开始和结束的坐标,视为一组;依据计算设备对所有的所述标记坐标对进行分片,确定待处理的多组标记;采用多线程根据每组标记的起始和结束坐标使用文档的随机读写技术,获取该组坐标范围内的内容数据;读取每组标记的所述内容数据至内存,进行内容数据的扩展操作。2.根据权利要求1所述的方法,其特征在于,所述待处理文档的类型包括:txt、xml、dbf、pdf。3.根据权利要求1所述的方法,其特征在于,依据计算设备对所有的所述标记坐标对进行分片,确定待处理的多组标记,包括:在所述计算设备为本地计算设备的情况下,根据本地计算设备的CPU核心数n和内存大小mG进行均衡的分片,则每个核心分得N/n=x组标记,并且每个CPU核心同时处理的数据大小之和不能超过m*(3/4)=m_maxG,确定每个CPU核心每次处理x/(m_max)=x_per组标记,循环处理m_max次;在所述计算设备为分布式处理的情况下,根据每台计算设备的配置的权重进行分片,确定待处理的多组标记。4.根据权利要求1所述的方法,其特征在于,所述扩展操作为对接批处理框进行数据的process、转换以及持久化操作。5.一种基于规则标签的大文档分片处理装置,其特征在于,包括:定位标记模块,用于使用主线程先对待处理文档进行标签的定位标记,并收集所述待处理文档中所有的标记坐标对,其中每一对标记包含开始和结束的坐标,视为一组;确定模块,用于依据计...

【专利技术属性】
技术研发人员:代江波陈凌云李宁刘栋胡方全张晴普闵洋洋丁福照吴光炳王玉峰魏臣苑歌范宝珠叶伟睿
申请(专利权)人:德邦证券股份有限公司
类型:发明
国别省市:

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

1