CN114398452A - 一种组件拆分方法、装置、设备及可读存储介质 - Google Patents
一种组件拆分方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN114398452A CN114398452A CN202210043765.8A CN202210043765A CN114398452A CN 114398452 A CN114398452 A CN 114398452A CN 202210043765 A CN202210043765 A CN 202210043765A CN 114398452 A CN114398452 A CN 114398452A
- Authority
- CN
- China
- Prior art keywords
- splitting
- split
- component
- file
- files
- 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
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- 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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/02—Banking, e.g. interest calculation or account maintenance
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Computing Systems (AREA)
- Human Computer Interaction (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种组件拆分方法、装置、设备及可读存储介质,涉及计算机技术领域,包括获取第一信息,所述第一信息包括多个待拆分的组件文件;比较多个待拆分的所述组件文件的相似度,根据相似度对多个待拆分的所述组件文件进行优先级排序;确定所述组件文件的各个拆分位置,所述组件文件中的每一条记录采用分隔符进行分隔;判断所述拆分位置是否位于相邻分隔符之间。按照产品簇完成了利用现有基础设施的拆分改造事项,完成了服务拆分;可以应对拆分期间的新增需求;产品功能模块拆分,使用分布式技术思想,拆分单体应用为多个应用,降低维护难度,减小系统启停时间;功能模块拆分,伴随着数据库拆分,降低了基础设施压力。
Description
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种组件拆分方法、装置、设备及可读存储介质。
背景技术
在银行系统中新一代系统建设推进过程中,现金管理产品组件经过一期、二期、三期建设及境内外一体化改造、全球企业功能扩展等项目叠加发展,从技术上已经成为一个内部技术功能组件多,代码行数多且繁杂,内部交互逻辑复杂,运维难度高的系统;从产品和市场角度,产品功能丰富,客户数量急剧增长的大系统。目前每日交易量最高可达到几千万,给系统带来了很大的压力,带来多个问题,例如系统产品技术规模大、组件之间紧密结合以及单产品数据量已趋近现有可用单数据库的最大容量,无法满足后续市场发展。
发明内容
本发明的目的在于提供一种组件拆分方法、装置、设备及可读存储介质,以改善上述问题。为了实现上述目的,本发明采取的技术方案如下:
第一方面,本申请提供了一种组件拆分方法,包括:
获取第一信息,所述第一信息包括多个待拆分的组件文件;
识别多个待拆分的所述组件文件之间的关联度;
根据所述关联度,比较多个待拆分的所述组件文件的相似度,根据相似度对多个待拆分的所述组件文件进行优先级排序;
根据所述优先级排序的结果和待拆分的所述组件文件的子文件的预置大小,确定所述组件文件的各个拆分位置,所述组件文件中的每一条记录采用分隔符进行分隔;
判断所述拆分位置是否位于相邻分隔符之间,如果是,则在所述相邻分隔符中的前一分隔符或后一分隔符处进行拆分,如果否,则在所述拆分位置进行拆分。
进一步地,获取第一信息,所述第一信息包括多个待拆分的组件文件,之前包括:接收登记设备发送的多个目标文件,将多个目标文件存储至目标数据库;判断所述目标数据库中是否存在结束标识符;当存在所述结束标识符时,根据接收时序在所述目标数据库提取所述结束标识符与上一个结束标识符之间的目标文件,将提取到的目标文件作为待拆分的所述组件文件。
进一步地,则在所述拆分位置进行拆分,包括:根据所述待拆分的组件信息,将所述待拆分的组件信息拆分为组件模块,所述组件模块包括一个或者多个组件模块;识别所述拆分方案中包含的组件模块;读取每一个所述组件模块中的数组,根据所述数组和所述数组相对应的匹配的所述拆分方案;确定对应的所述数组为目标组件。
进一步地,获取第一信息,所述第一信息包括多个待拆分的组件文件,包括:根据用户输入的数据筛选条件,从ORACLE数据库中筛选待拆分的所述组件信息,并以文本文件的形式记录筛选出的待拆分的所述组件信息;利用至少一个操作进程进行同步操作,使每个进程分别根据被拆分后子文件的预置大小,分别定位一个拆分位置;若对应进程的所述拆分位置位于两个相邻的分隔符之间,则所述对应进程在两个所述相邻分隔符中的前一分隔符或后一分隔符处进行拆分。
进一步地,以文本文件的形式记录筛选出的待拆分的所述组件信息,之后包括:检测文件拆分开关是否开启;若所述检测文件拆分开关开启,则执行文件拆分步骤,并将拆分出的所有子文件返回至客户端;若所述检测文件拆分开关关闭,则将所述文本文件返回至客户端。
进一步地,根据所述优先级排序的结果,之后包括:识别所述组件文件的文件类型,所述文件类型分为第一类型和第二类型;当所述待拆分文件的文件类型为第一类型时,调用预设的拆分接口,调用多线程利用所述拆分接口对相应待拆分文件进行拆分;当所述待拆分文件的文件类型为第二类型时,获取预设的多个拆分维度分别对应的拆分表达式;调用多线程对相应待拆分文件进行遍历,将每个拆分表达式与所述待拆分文件进行匹配,根据匹配结果对所述待拆分文件进行拆分。
第二方面,本申请还提供了一种组件拆分装置,包括第一获取模块、第一识别模块、比较模块、分隔模块和第一判断模块,其中:第一获取模块:用于获取第一信息,所述第一信息包括待拆分的组件信息;第一识别模块:用于识别多个待拆分的所述组件文件之间的关联度;比较模块:用于根据所述关联度,比较多个待拆分的所述组件文件的相似度,根据相似度对多个待拆分的所述组件文件进行优先级排序;分隔模块:用于根据所述优先级排序的结果和待拆分的所述组件文件的子文件的预置大小,确定所述组件文件的各个拆分位置,所述组件文件中的每一条记录采用分隔符进行分隔;第一判断模块:用于判断所述拆分位置是否位于相邻分隔符之间,如果是,则在所述相邻分隔符中的前一分隔符或后一分隔符处进行拆分,如果否,则在所述拆分位置进行拆分。
进一步地,第一获取模块,之前包括第一接收模块、第二判断模块和第二接收模块,其中:第一接收模块:用于接收登记设备发送的多个目标文件,将多个目标文件存储至目标数据库;第二判断模块:用于判断所述目标数据库中是否存在结束标识符;第二接收模块:用于当存在所述结束标识符时,根据接收时序在所述目标数据库提取所述结束标识符与上一个结束标识符之间的目标文件,将提取到的目标文件作为待拆分的所述组件文件。
进一步地,第一判断模块,包括拆分单元、识别单元、读取单元和确定单元,其中:拆分单元:用于根据所述待拆分的组件信息,将所述待拆分的组件信息拆分为组件模块,所述组件模块包括一个或者多个组件模块;识别单元:用于识别所述拆分方案中包含的组件模块;读取单元:用于读取每一个所述组件模块中的数组,根据所述数组和所述数组相对应的匹配的所述拆分方案;确定单元:用于确定对应的所述数组为目标组件。
进一步地,第一获取模块包括筛选单元、定位单元和第一判断单元:筛选单元:用于根据用户输入的数据筛选条件,从ORACLE数据库中筛选所述待拆分的组件信息,并以文本文件的形式记录筛选出的所述待拆分的组件信息;定位单元:用于利用至少一个操作进程进行同步操作,使每个进程分别根据被拆分后子文件的预置大小,分别定位一个拆分位置;第一判断单元:用于若对应进程的所述拆分位置位于两个相邻的分隔符之间,则所述对应进程在两个所述相邻分隔符中的前一分隔符或后一分隔符处进行拆分。
进一步地,筛选单元之后包括第二判断单元、第三判断单元和第四判断单元:第二判断单元:用于检测文件拆分开关是否开启;第三判断单元:用于若所述检测文件拆分开关开启,则执行文件拆分步骤,并将拆分出的所有子文件返回至客户端;第四判断单元:用于若所述检测文件拆分开关关闭,则将所述文本文件返回至客户端。
进一步地,分隔模块,之后包括:第二识别模块:用于识别所述组件文件的文件类型,所述文件类型分为第一类型和第二类型;第一调用模块:用于当所述待拆分文件的文件类型为第一类型时,调用预设的拆分接口,调用多线程利用所述拆分接口对相应待拆分文件进行拆分;第二获取模块:用于当所述待拆分文件的文件类型为第二类型时,获取预设的多个拆分维度分别对应的拆分表达式;第二调用模块:用于调用多线程对相应待拆分文件进行遍历,将每个拆分表达式与所述待拆分文件进行匹配,根据匹配结果对所述待拆分文件进行拆分。
第三方面,本申请还提供了一种组件拆分设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现所述组件拆分方法的步骤。
第四方面,本申请还提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述基于组件拆分方法的步骤。
第五方面,本申请还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时用于加载并执行如所述组件拆分方法的步骤。
本发明的有益效果为:按照产品簇完成了利用现有基础设施的拆分改造事项,完成了服务拆分;区别于微服务,没有进行基础技术架构的更新,没有达到微服务的细粒度产品拆分,这样能更好的使用现有资产,基础框架不做太大的变更,并且总体模块功能不细分,可以应对拆分期间的新增需求;产品功能模块拆分,使用分布式技术思想,拆分单体应用为多个应用,降低维护难度,减小系统启停时间;功能模块拆分,伴随着数据库拆分,降低了基础设施压力。
本发明的其他特征和优点将在随后的说明书阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明实施例了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例中所述的组件拆分方法流程示意图;
图2为本发明实施例中所述的组件拆分装置结构示意图;
图3为本发明实施例中所述的组件拆分设备结构示意图。
图中:701、第一获取模块;7011、筛选单元;7012、定位单元;7013、第一判断单元;7014、第二判断单元;7015、第三判断单元;7016、第四判断单元;702、第一识别模块;703、比较模块;704、分隔模块;705、第一判断模块;7051、拆分单元;7052、识别单元;7053、读取单元;7054、确定单元;706、第一接收模块;707、第二判断模块;708、第二接收模块;709、第二识别模块;710、第一调用模块;711、第二获取模块;712、第二调用模块;800、组件拆分设备;801、处理器;802、存储器;803、多媒体组件;804、输入/输出(I/O)接口;805、通信组件。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
本申请技术方案中对数据的获取、存储、使用、处理等均符合国家法律法规的相关规定。
实施例1:
本实施例提供了一种组件拆分方法。
参见图1,图中示出了本方法包括步骤S100、步骤S200、步骤S300、步骤S400和步骤S500。
S100、获取第一信息,第一信息包括待拆分的组件信息。
在第一种情形中,文本文件可以是已经存在的文本文件。对于这种情形,可以直接从文件存储位置调取待拆分的文本文件。
在第二种情形中,可以从数据库中获取数据并形成文本文件。对于这种情形,步骤101可以包括:根据用户输入的数据筛选条件(该数据筛选条件可以转化为SQL语句实现),从ORACLE数据库中筛选数据内容,并以文本文件(该文本文件可以支持DOS或UNIX等格式)的形式记录筛选出的数据内容。
在这种实施方式中,用户可以在客户端提供的数据筛选界面中输入数据筛选条件,比如银行系统中的储蓄用户,服务器就会从数据库中筛选出所有储蓄用户的相关信息,这些信息将被写入用户定义的文件名对应的文本文件中。
在本实施例中,文本文件中的数据可以采用分隔符进行分隔,比如,当文本文件中记录的是大量银行储蓄用户的相关信息时,可以将每一用户的所有相关信息作为一条记录,将不同用户信息对应的不同记录之间采用分隔符进行分隔。
另外,在对文本文件进行拆分前,需要预先设置拆分出的子文件大小,比如,用户可以在客户端设置每一子文件的大小,也可以使用默认设置的子文件大小,比如,每一子文件均为50G、或顺序设置每一子文件的大小(每一子文件可以全部不同或部分不同)。
需要说明的是,S100之前包括S70、S80和S90,其中:
S70:第一接收模块:用于接收登记设备发送的多个目标文件,将多个目标文件存储至目标数据库;
S80:第二判断模块:用于判断目标数据库中是否存在结束标识符;
S90:第二接收模块:用于当存在结束标识符时,根据接收时序在目标数据库提取结束标识符与上一个结束标识符之间的目标文件,将提取到的目标文件作为待拆分的组件文件。
需要说明的是,目标服务器利用应用程序接收登记设备发送的多个目标文件。目标服务器上部署了目标数据库。目标服务器在接收目标文件过程中,通过磁盘镜像映射将接收到的目标文件存储至目标数据库。登记设备在向目标服务器传输目标文件的过程中,每传输一定数量的目标文件会发送一个结束标识符。目标服务器在目标数据库中检测是否存在结束标识符,当存在结束标识符时,根据接收时序在目标数据库提取该结束标识符与上一个结束标识符之间的目标文件,将提取到的目标文件作为待拆分文件发送至拆分终端;拆分终端根据待拆分文件的文件名称等属性识别多个待拆分文件之间的关联度,根据关联度确定多个待拆分文件的优先等级。
拆分终端识别多个待拆分文件的文件类型,根据文件类型获取对应的拆分规则。拆分规则包括多个拆分维度。拆分终端根据拆分规则和优先等级,调用多线程对多个待拆分文件进行拆分,得到每个待拆分文件在不同拆分维度的多个子文件,对多个子文件分别添加对应的维度标识,根据维度标识将多个子文件发送至相应的结算设备。上述文件拆分过程,拆分终端采用多线程对多个待拆分文件进行拆分,使得拆分效率得到大幅提升;且支持多种类型文件的拆分,支持从多种维度对文件进行拆分。
可以理解的是,在S100步骤中分为S101、S102和S103,其中:
S101:根据用户输入的数据筛选条件,从ORACLE数据库中筛选待拆分的组件信息,并以文本文件的形式记录筛选出的待拆分的组件信息;
S102:利用至少一个操作进程进行同步操作,使每个进程分别根据被拆分后子文件的预置大小,分别定位一个拆分位置;
S103:若对应进程的拆分位置位于两个相邻的分隔符之间,则对应进程在两个相邻分隔符中的前一分隔符或后一分隔符处进行拆分。
可以理解的是,在本步骤中,需要说明的是,减少单服务的代码行数;按照内部功能模块相关性,横向拆分成4个产品簇,产品簇之间通过外部交易模式相互之前访问;横向拆分单数据库为多个数据库;产品数据跟随产品簇拆分,形成四个相互独立的产品数据库,应用可以根据需要跨越数据库进行数据访问;形成4个独立的物理部署集群。
各个产品簇独立部署,形成4个不同的物理部署集群;对外同属现金管理组件,属于一个逻辑产品组件概念,外组件对现金管理交互,不必知晓有4个物理集群;变更建行统一服务目录组件,拆分成4个组件;依托银行新一代架构中的P4服务目录组件,4个不同的物理部署集群在P4服务目录上注册为4个不同的组件;此处4个不同的组件编号,同属于现金管理物理子系统,只是呈现不同的物理部署代码和组件编号;提升公共模块的纯功能性质,不再提供具体交易。内部公共模块适应性改造,特定产品功能移动到具体的产品簇,提取不同产品簇共用的功能,提供通用接口,作为API供各个产品簇调用,各个产品簇均依赖公共模块。
需要说明的是,S101之后包括S1011、S1012和S1013,其中:
S1011、第二判断单元:用于检测文件拆分开关是否开启;
S1012、第三判断单元:用于若检测文件拆分开关开启,则执行文件拆分步骤,并将拆分出的所有子文件返回至客户端;
S1013、第四判断单元:用于若检测文件拆分开关关闭,则将文本文件返回至客户端。
可以理解的是,如果文件压缩开关关闭,则直接将拆分出的所有子文件返回至客户端;相应地,将文本文件返回至客户端,包括:如果文件压缩开关开启,则压缩文本本件,并将压缩后的文本文件返回至客户端;如果文件压缩开关关闭,则直接将文本文件返回至客户端。
S200、识别多个待拆分的组件文件之间的关联度。
在本发明中,目标服务器利用应用程序接收登记设备发送的多个目标文件。目标服务器在接收目标文件过程中,通过磁盘镜像映射将接收到的目标文件存储至目标数据库。当多个目标文件全部或部分接收完毕时,目标服务器将接收到的多个目标文件作为待拆分文件发送至拆分终端。待拆分文件记录了多条清算记录。清算记录可以是不同业务类型,不同股东或者不同席位对应的清算数据。拆分终端根据待拆分文件的文件名称或文件描述等属性识别多个待拆分文件之间的关联度。文件名称包含了待拆分文件的用途等信息。文件描述可以是待拆分文件在登记设备的存储路径等。在另一个实施例中,文件描述可以是拆分终端在接收得到待拆分文件后,在待拆分文件中提取主题信息,利用提取到的主题信息生成的。主题信息可以是待拆分文件中多条清算记录分别对应的业务类型、股东或席位等信息。容易理解,具有相似用途、相同存储路径或相似主题信息的多个待拆分文件具有较高的相似度。
S300、根据所述关联度,比较多个待拆分的组件文件的相似度,根据相似度对多个待拆分的组件文件进行优先级排序。
在本步骤中,具体而言,分终端根据关联度确定多个待拆分文件的优先等级。拆分终端比较多个待拆分文件的相似度是否高于阈值。相似度高于阈值的多个待拆分文件可以记作相关的多个待拆分文件。相似度低于或等于阈值的多个待拆分文件可以记作不相关的多个待拆分文件。拆分终端根据相似度对相关的多个待拆分文件进行排序,根据排序确定相关的多个待拆分文件为不同的优先等级。拆分终端将不相关的多个待拆分文件确定为相同的优先等级。例如,拆分终端接收到A1~A10共计10个待拆分文件,其中A1~A5属于相关的待拆分文件,且相似度由A1至A5依序降低;A6~A8属于相关的待拆分文件,且相似度由A6至A8依序降低;其他为不相关的待拆分文件,则可以将待拆分文件A1、A6、A9和A10的优先等级确定为最高优选等级,将待拆分文件A2和A7的优先等级确定为次高优选等级,依次类推。
可以理解的是,在本步骤中,S300包括S301、S302、S303、S304、S305和S306,其中:
S301:根据待拆分的组件信息,将待拆分的组件信息拆分为组件模块,组件模块包括一个或者多个组件模块;
S302:识别拆分方案中包含的组件模块;
S303:读取每一个组件模块中的数组,根据数组和数组相对应的匹配的拆分方案;
S304:确定对应的数组为目标组件。
S305:获取待拆分的组件对应的拆分方案;
S306:根据拆分方案对组件模块进行校验,组件模块包括信息报告模块、收付款模块、合约管理和资金监管模块。
需要说明的是,本发明将原有的现金管理单个组件拆分为:信息报告模块、收付款模块、合约管理和资金监管模块,其中资金管理模块还包括流动性、票据池和公共账务等。现有存在大规模应用并且会有功能变更的产品基础上进行产品功能模块拆分技术;而最小化代码改动,维护技术架构不变,完成产品拆分;API完成对外的交易改造,降低代码结合。
根据组件模块与子文件的对应关系,确定组件模块对应的子文件包括当校验通过时,根据目标组件与子文件的对应关系,确定目标组件对应的子文件。
S400、根据优先级排序的结果和待拆分的组件文件的子文件的预置大小,确定组件文件的各个拆分位置,组件文件中的每一条记录采用分隔符进行分隔。
需要说明的是,S400之后包括S401、S402、S403和S404,其中:
S401、识别组件文件的文件类型,文件类型分为第一类型和第二类型;
S402、用于当待拆分文件的文件类型为第一类型时,调用预设的拆分接口,调用多线程利用拆分接口对相应待拆分文件进行拆分;
S403、用于当待拆分文件的文件类型为第二类型时,获取预设的多个拆分维度分别对应的拆分表达式;
S404、用于调用多线程对相应待拆分文件进行遍历,将每个拆分表达式与待拆分文件进行匹配,根据匹配结果对待拆分文件进行拆分。
在本步骤中,不同文件类型对应的拆分规则可以包含相同的拆分维度,但包含不同的拆分方式。具体的,当待拆分文件的文件类型为第一类型时,对应的拆分方式可以是利用预设的拆分接口进行拆分。例如,当第一类型的待拆分文件为dbf.数据库表文件时,预设的拆分接口可以是OLEDB(一种应用程序接口)。当待拆分文件的文件类型为第二类型时,对应的拆分方式可以是利用预设的多个拆分表达式进行拆分。拆分终端预存储了多个拆分维度分别对应的拆分表达式,每个拆分表达式包括一个或多个拆分字段。拆分终端对待拆分文件进行逐行遍历,将每个拆分维度对应的拆分表达式与待拆分文件中多条清算记录分别进行匹配,将待拆分文件中与每个拆分表达式匹配成功的清算记录拆分为一个相应拆分维度的子文件,从而得到待拆分文件在多个拆分维度的子文件。本实施例针对不同类型的文件配置包含不同拆分方式的拆分规则,从而可以支持多种类型文件的拆分。
S500、判断拆分位置是否位于相邻分隔符之间,如果是,则在相邻分隔符中的前一分隔符或后一分隔符处进行拆分,如果否,则在拆分位置进行拆分。
可以理解的是,S500包括S501、S502、S503、S504,其中:
S501、根据待拆分的组件信息,将待拆分的组件信息拆分为组件模块,组件模块包括一个或者多个组件模块;
S502、识别拆分方案中包含的组件模块;
S503、读取每一个组件模块中的数组,根据数组和数组相对应的匹配的拆分方案;
S504、用于确定对应的数组为目标组件。
如果某一进程定位到的拆分位置在某条记录中的某个位置(非分隔符所在位置),由于该记录的前后均有一个分隔符,此时将该记录的前一分隔符或后一分隔符处作为真正的文件分割位置进行文件拆分。
在一些实施方式中,可以包括:如果对应进程确定拆分位置位于相邻分隔符之间,则对应进程在相邻分隔符中的前一分隔符或后一分隔符处进行拆分。在这种实施方式中,使用C语言实现的多进程同步在各自定位的拆分位置附近进行文件拆分,比如,当待拆分的文本文件大小为170G、且预置拆分出的子文件大小为50G时,可以采用四个进程分别进行拆分,以得到四个子文件,具体地:
当第一个进程在文本本件中定位在第50G大小的位置A时,如果该位置A是分隔符位置,则第一个进程直接在位置A进行拆分,以将文本文件的前50G(等于50G)作为一个子文件拆分出来;如果该位置A在两个分隔符之间,则第一个进程选择位置A的前一分隔符位置处,将前50G(小于50G)作为一个子文件拆分出来、或者第一个进程选择后一分隔符位置处,将前50G(大于50G)作为一个子文件拆分出来,以此类推。
需要说明的是,如果选择在前一分隔符位置处进行拆分,则每个进程均选择前一分隔符位置处拆分出各自负责拆分的子文件,如果选择在后一分隔符位置处进行拆分,则每个进程均选择后一分隔符位置处拆分出各自负责拆分的子文件,这样除了最后一个子文件外,可以尽量保证其它各个子文件的大小相同,并且其它各个子文件均约为预先设置的子文件大小,从而进行继续拆分。
实施例2:
如图2所示,本实施例提供了一种组件拆分装置,参见图2装置包括本申请还提供了一种组件拆分装置,包括第一获取模块701、第一识别模块702、比较模块703、分隔模块704和第一判断模块705,其中:
第一获取模块701:用于获取第一信息,所述第一信息包括待拆分的组件信息;
第一识别模块702:用于识别多个待拆分的所述组件文件之间的关联度;
比较模块703:用于根据所述关联度,比较多个待拆分的所述组件文件的相似度,根据相似度对多个待拆分的所述组件文件进行优先级排序;
分隔模块704:用于根据所述优先级排序的结果和待拆分的所述组件文件的子文件的预置大小,确定所述组件文件的各个拆分位置,所述组件文件中的每一条记录采用分隔符进行分隔;
第一判断模块705:用于判断所述拆分位置是否位于相邻分隔符之间,如果是,则在所述相邻分隔符中的前一分隔符或后一分隔符处进行拆分,如果否,则在所述拆分位置进行拆分。
在一些具体的实施例中,第一获取模块701,之前包括第一接收模块706、第二判断模块707和第二接收模块708,其中:
第一接收模块706:用于接收登记设备发送的多个目标文件,将多个目标文件存储至目标数据库;
第二判断模块707:用于判断所述目标数据库中是否存在结束标识符;
第二接收模块708:用于当存在所述结束标识符时,根据接收时序在所述目标数据库提取所述结束标识符与上一个结束标识符之间的目标文件,将提取到的目标文件作为待拆分的所述组件文件。
在一些具体的实施例中,第一判断模块705,包括拆分单元7051、识别单元7052、读取单元7053和确定单元7054,其中:
拆分单元7051:用于根据所述待拆分的组件信息,将所述待拆分的组件信息拆分为组件模块,所述组件模块包括一个或者多个组件模块;
识别单元7052:用于识别所述拆分方案中包含的组件模块;
读取单元7053:用于读取每一个所述组件模块中的数组,根据所述数组和所述数组相对应的匹配的所述拆分方案;
确定单元7054:用于确定对应的所述数组为目标组件。
在一些具体的实施例中,第一获取模块701包括筛选单元7011、定位单元7012和第一判断单元7013,其中:
筛选单元7011:用于根据用户输入的数据筛选条件,从ORACLE数据库中筛选所述待拆分的组件信息,并以文本文件的形式记录筛选出的所述待拆分的组件信息;
定位单元7012:用于利用至少一个操作进程进行同步操作,使每个进程分别根据被拆分后子文件的预置大小,分别定位一个拆分位置;
第一判断单元7013:用于若对应进程的所述拆分位置位于两个相邻的分隔符之间,则所述对应进程在两个所述相邻分隔符中的前一分隔符或后一分隔符处进行拆分。
在一些具体的实施例中,筛选单元7011之后包括第二判断单元7014、第三判断单元7015和第四判断单元7016,其中:
第二判断单元7014:用于检测文件拆分开关是否开启;
第三判断单元7015:用于若所述检测文件拆分开关开启,则执行文件拆分步骤,并将拆分出的所有子文件返回至客户端;
第四判断单元7016:用于若所述检测文件拆分开关关闭,则将所述文本文件返回至客户端。
在一些具体的实施例中,分隔模块704,之后包括:第二识别模块709、第一调用模块710、第二获取模块711和第二调用模块712,其中:
第二识别模块709:用于识别所述组件文件的文件类型,所述文件类型分为第一类型和第二类型;
第一调用模块710:用于当所述待拆分文件的文件类型为第一类型时,调用预设的拆分接口,调用多线程利用所述拆分接口对相应待拆分文件进行拆分;
第二获取模块711:用于当所述待拆分文件的文件类型为第二类型时,获取预设的多个拆分维度分别对应的拆分表达式;
第二调用模块712:用于调用多线程对相应待拆分文件进行遍历,将每个拆分表达式与所述待拆分文件进行匹配,根据匹配结果对所述待拆分文件进行拆分。
需要说明的是,关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
实施例3:
相应于上面的方法实施例,本实施例中还提供了一种组件拆分设备,下文描述的一种组件拆分设备与上文描述的一种组件拆分方法可相互对应参照。
图3是根据示例性实施例示出的组件拆分设备800的框图。如图3所示,该组件拆分设备800可以包括:处理器801,存储器802。该组件拆分设备800还可以包括多媒体组件803,I/O接口804,以及通信组件805中的一者或多者。
其中,处理器801用于控制该组件拆分设备800的整体操作,以完成上述的一种组件拆分方法中的全部或部分步骤。存储器802用于存储各种类型的数据以支持在该组件拆分设备800的操作,这些数据例如可以包括用于在该组件拆分设备800上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如联系人数据、收发的消息、图片、音频、视频等等。该存储器802可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。多媒体组件803可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器802或通过通信组件805发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口804为处理器801和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件805用于该组件拆分设备800与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(NearFieldCommunication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件805可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
在一示例性实施例中,组件拆分设备800可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的一种组件拆分方法。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,该程序指令被处理器执行时实现上述的一种组件拆分方法的步骤。例如,该计算机可读存储介质可以为上述包括程序指令的存储器802,上述程序指令可由组件拆分设备800的处理器801执行以完成上述的一种组件拆分方法。
实施例4:
相应于上面的方法实施例,本实施例中还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种组件拆分方法可相互对应参照。
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例的一种组件拆分方法的步骤。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
实施例5:
本申请实施例还提供了一种计算机产品,该计算机产品包括计算机程序,该计算机程序被处理器执行时执行本申请任一可选实施例中提供的方法。
基于与本申请实施例提供的方法相同的原理,本申请实施例还提供了一种本计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述本申请任一可选实施例中提供的组件拆分方法。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (15)
1.一种组件拆分方法,其特征在于,包括:
获取第一信息,所述第一信息包括多个待拆分的组件文件;
识别多个待拆分的所述组件文件之间的关联度;
根据所述关联度,比较多个待拆分的所述组件文件的相似度,根据相似度对多个待拆分的所述组件文件进行优先级排序;
根据所述优先级排序的结果和待拆分的所述组件文件的子文件的预置大小,确定所述组件文件的各个拆分位置,所述组件文件中的每一条记录采用分隔符进行分隔;
判断所述拆分位置是否位于相邻分隔符之间,如果是,则在所述相邻分隔符中的前一分隔符或后一分隔符处进行拆分,如果否,则在所述拆分位置进行拆分。
2.根据权利要求1所述的组件拆分方法,其特征在于,所述获取第一信息,所述第一信息包括多个待拆分的组件文件,之前包括:
接收登记设备发送的多个目标文件,将多个目标文件存储至目标数据库;
判断所述目标数据库中是否存在结束标识符;
当存在所述结束标识符时,根据接收时序在所述目标数据库提取所述结束标识符与上一个结束标识符之间的目标文件,将提取到的目标文件作为待拆分的所述组件文件。
3.根据权利要求1所述的组件拆分方法,其特征在于,所述则在所述拆分位置进行拆分,包括:
根据所述待拆分的组件信息,将所述待拆分的组件信息拆分为组件模块,所述组件模块包括一个或者多个组件模块;
识别所述拆分方案中包含的组件模块;
读取每一个所述组件模块中的数组,根据所述数组和所述数组相对应的匹配的所述拆分方案;
确定对应的所述数组为目标组件。
4.根据权利要求1所述的组件拆分方法,其特征在于,所述获取第一信息,所述第一信息包括多个待拆分的组件文件,包括:
根据用户输入的数据筛选条件,从ORACLE数据库中筛选待拆分的所述组件信息,并以文本文件的形式记录筛选出的待拆分的所述组件信息;
利用至少一个操作进程进行同步操作,使每个进程分别根据被拆分后子文件的预置大小,分别定位一个拆分位置;
若对应进程的所述拆分位置位于两个相邻的分隔符之间,则所述对应进程在两个所述相邻分隔符中的前一分隔符或后一分隔符处进行拆分。
5.根据权利要求4所述的组件拆分方法,其特征在于,所述以文本文件的形式记录筛选出的待拆分的所述组件信息,之后包括:
检测文件拆分开关是否开启;
若所述检测文件拆分开关开启,则执行文件拆分步骤,并将拆分出的所有子文件返回至客户端;
若所述检测文件拆分开关关闭,则将所述文本文件返回至客户端。
6.根据权利要求1所述的组件拆分方法,其特征在于,所述根据所述优先级排序的结果,之后包括:
识别所述组件文件的文件类型,所述文件类型分为第一类型和第二类型;
当所述待拆分文件的文件类型为第一类型时,调用预设的拆分接口,调用多线程利用所述拆分接口对相应待拆分文件进行拆分;
当所述待拆分文件的文件类型为第二类型时,获取预设的多个拆分维度分别对应的拆分表达式;
调用多线程对相应待拆分文件进行遍历,将每个拆分表达式与所述待拆分文件进行匹配,根据匹配结果对所述待拆分文件进行拆分。
7.一种组件拆分装置,其特征在于,包括:
第一获取模块:用于获取第一信息,所述第一信息包括待拆分的组件信息;
第一识别模块:用于识别多个待拆分的所述组件文件之间的关联度;
比较模块:用于根据所述关联度,比较多个待拆分的所述组件文件的相似度,根据相似度对多个待拆分的所述组件文件进行优先级排序;
分隔模块:用于根据所述优先级排序的结果和待拆分的所述组件文件的子文件的预置大小,确定所述组件文件的各个拆分位置,所述组件文件中的每一条记录采用分隔符进行分隔;
第一判断模块:用于判断所述拆分位置是否位于相邻分隔符之间,如果是,则在所述相邻分隔符中的前一分隔符或后一分隔符处进行拆分,如果否,则在所述拆分位置进行拆分。
8.根据权利要求7所述的组件拆分装置,其特征在于,所述第一获取模块,之前包括:
第一接收模块:用于接收登记设备发送的多个目标文件,将多个目标文件存储至目标数据库;
第二判断模块:用于判断所述目标数据库中是否存在结束标识符;
第二接收模块:用于当存在所述结束标识符时,根据接收时序在所述目标数据库提取所述结束标识符与上一个结束标识符之间的目标文件,将提取到的目标文件作为待拆分的所述组件文件。
9.根据权利要求7所述的组件拆分装置,其特征在于,所述第一判断模块,包括:
拆分单元:用于根据所述待拆分的组件信息,将所述待拆分的组件信息拆分为组件模块,所述组件模块包括一个或者多个组件模块;
识别单元:用于识别所述拆分方案中包含的组件模块;
读取单元:用于读取每一个所述组件模块中的数组,根据所述数组和所述数组相对应的匹配的所述拆分方案;
确定单元:用于确定对应的所述数组为目标组件。
10.根据权利要求7所述的组件拆分装置,其特征在于,所述第一获取模块,包括:
筛选单元:用于根据用户输入的数据筛选条件,从ORACLE数据库中筛选所述待拆分的组件信息,并以文本文件的形式记录筛选出的所述待拆分的组件信息;
定位单元:用于利用至少一个操作进程进行同步操作,使每个进程分别根据被拆分后子文件的预置大小,分别定位一个拆分位置;
第一判断单元:用于若对应进程的所述拆分位置位于两个相邻的分隔符之间,则所述对应进程在两个所述相邻分隔符中的前一分隔符或后一分隔符处进行拆分。
11.根据权利要求10所述的组件拆分装置,其特征在于,所述筛选单元,之后包括:
第二判断单元:用于检测文件拆分开关是否开启;
第三判断单元:用于若所述检测文件拆分开关开启,则执行文件拆分步骤,并将拆分出的所有子文件返回至客户端;
第四判断单元:用于若所述检测文件拆分开关关闭,则将所述文本文件返回至客户端。
12.根据权利要求7所述的组件拆分装置,其特征在于,所述分隔模块,之后包括:
第二识别模块:用于识别所述组件文件的文件类型,所述文件类型分为第一类型和第二类型;
第一调用模块:用于当所述待拆分文件的文件类型为第一类型时,调用预设的拆分接口,调用多线程利用所述拆分接口对相应待拆分文件进行拆分;
第二获取模块:用于当所述待拆分文件的文件类型为第二类型时,获取预设的多个拆分维度分别对应的拆分表达式;
第二调用模块:用于调用多线程对相应待拆分文件进行遍历,将每个拆分表达式与所述待拆分文件进行匹配,根据匹配结果对所述待拆分文件进行拆分。
13.一种组件拆分设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述组件拆分方法的步骤。
14.一种可读存储介质,其特征在于:所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述组件拆分方法的步骤。
15.一种计算机程序产品,其特征在于:所述计算机程序产品包括计算机程序,所述计算机程序被处理器执行时用于加载并执行如权利要求1-6任一项所述组件拆分方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210043765.8A CN114398452A (zh) | 2022-01-14 | 2022-01-14 | 一种组件拆分方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210043765.8A CN114398452A (zh) | 2022-01-14 | 2022-01-14 | 一种组件拆分方法、装置、设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114398452A true CN114398452A (zh) | 2022-04-26 |
Family
ID=81231678
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210043765.8A Pending CN114398452A (zh) | 2022-01-14 | 2022-01-14 | 一种组件拆分方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114398452A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115062022A (zh) * | 2022-06-16 | 2022-09-16 | 北京汉端科技有限公司 | 航空器手册拆分方法、装置、电子设备和计算机可读介质 |
-
2022
- 2022-01-14 CN CN202210043765.8A patent/CN114398452A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115062022A (zh) * | 2022-06-16 | 2022-09-16 | 北京汉端科技有限公司 | 航空器手册拆分方法、装置、电子设备和计算机可读介质 |
CN115062022B (zh) * | 2022-06-16 | 2023-08-18 | 北京汉端科技有限公司 | 航空器手册拆分方法、装置、电子设备和计算机可读介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9836336B2 (en) | Central registry for binding features using dynamic pointers | |
CN109034993A (zh) | 对账方法、设备、系统及计算机可读存储介质 | |
CN113342750B (zh) | 一种文件的数据比对方法、装置、设备及存储介质 | |
EP3686756A1 (en) | Method and apparatus for grouping data records | |
CN103294592A (zh) | 利用用户工具交互来自动分析其服务交付中的缺陷的方法与系统 | |
CN111951101B (zh) | 数据核对方法及装置 | |
CN110347716A (zh) | 日志数据处理方法、装置、终端及存储介质 | |
US20210241273A1 (en) | Smart contract platform | |
CN109271545B (zh) | 一种特征检索方法及装置、存储介质和计算机设备 | |
CN113157947A (zh) | 知识图谱的构建方法、工具、装置和服务器 | |
CN114398452A (zh) | 一种组件拆分方法、装置、设备及可读存储介质 | |
US7739232B2 (en) | Programming system for occasionally-connected mobile business applications | |
CN113595886A (zh) | 即时通讯消息的处理方法、装置、电子设备及存储介质 | |
CN1828596B (zh) | 在数据库内部表示的文件系统 | |
CN115544050A (zh) | 操作日志记录方法、装置、设备及存储介质 | |
WO2023273042A1 (zh) | 支付方法、系统、电子设备及存储介质 | |
CN114860819A (zh) | 商业智能系统的构建方法、装置、设备和存储介质 | |
JP2010224881A (ja) | 取引データ処理方法、システム及びプログラム | |
CN114240663A (zh) | 数据对账方法、装置、终端及存储介质 | |
CN102346757A (zh) | Ims数据库联机交易中数据影印方法及系统 | |
US11657050B1 (en) | Data reconciliation for big data environments | |
CN117493466B (zh) | 财务数据同步方法及系统 | |
CN113342866B (zh) | 关键词更新方法、装置、计算机设备及存储介质 | |
CN112150294B (zh) | 针对非法集资的识别方法、装置及电子设备 | |
CN114625729A (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 |