CN102750159A - 一种用于文件装载的方法和装置 - Google Patents
一种用于文件装载的方法和装置 Download PDFInfo
- Publication number
- CN102750159A CN102750159A CN2011101011781A CN201110101178A CN102750159A CN 102750159 A CN102750159 A CN 102750159A CN 2011101011781 A CN2011101011781 A CN 2011101011781A CN 201110101178 A CN201110101178 A CN 201110101178A CN 102750159 A CN102750159 A CN 102750159A
- Authority
- CN
- China
- Prior art keywords
- duty
- file
- record
- working
- parameter
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5017—Task decomposition
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Retry When Errors Occur (AREA)
Abstract
本发明提供一种文件装载方法,根据文件中的记录数,将文件分成一个或多个段,利用两个或者更多个工作单元并发处理所述一个或多个段,其中,所述两个或者更多个工作单元的每一个每次在处理完对应的段中的预定数量的记录后就更新工作状态,所述工作状态用于为异常处理提供信息。
Description
技术领域
本发明涉及文件装载的并发处理和断点续装,并且尤其涉及用于文件装载的方法和装置。
背景技术
在金融或电信等系统中,将应用参数录入到系统,即文件装载,是保持业务正确运行的前提,尤其地,在联机系统中快速装入参数是及时准确响应服务的必要前提。现有技术中,常见的参数录入方式有人工逐参数录入或者通过数据库工具导入与数据库所要求的格式匹配的参数文件。现有技术中的这些方式有如下缺点:耗时、对参数录入以及参数文件格式要求较高、出错几率大,以及出错后的修复十分麻烦。
因此,需要一种能够实现文件的快速装载、对文件格式要求较低、出错几率小以及修复简单的方法和装置。
发明内容
为解决现有技术的上述问题和其它问题,本发明的一个目的在于提供一种文件装载方法,包括以下步骤,
根据文件中的记录数,将文件分成一个或多个段,
利用两个或者更多个工作单元并发处理一个或多个段,
其中,两个或者更多个工作单元的每一个每次在处理完对应的段中的预定数量的记录后就更新各自的工作状态,工作状态用于为异常处理提供信息。
优选地,将对应于一个或多个段的段信息分配给两个或者更多个工作单元,每个工作单元根据被分配到的段信息处理相应的段。
优选地,段信息包括用于指示相应的段的开始记录和结束记录的指针。
优选地,工作状态包括对预定数量的记录的处理结果。
优选地,工作状态进一步包括发生异常的记录的指针。
优选地,当工作状态指示处理结果为异常,从发生异常的记录的指针处开始恢复处理。
优选地,采用轮询模式监控工作状态。
优选地,上述方法进一步包括向外部系统发送关于工作状态的信息,并将来自外部系统的响应信息更新到工作状态中。
优选地,工作状态被存储在文件中,以及两个或者更多个工作单元共同维护一个工作状态文件或者两个或者更多个工作单元分别维护各自的工作状态文件。
优选地,文件是参数文件,记录是参数,处理是将参数文件中的参数录入到系统的数据库中。
优选地,处理通过将参数直接装载到正式参数表来完成录入。
根据本发明的另一个目的,提供了一种文件装载装置,包括:
预处理模块,用于根据文件中的记录数,将文件分成一个或多个段,
工作单元模块,包括两个或者更多个工作单元,用于并发处理一个或多个段,
异常处理模块,用于进行异常处理,
其中,两个或者更多个工作单元的每一个每次在处理完对应的段中的预定数量的记录后就更新各自的工作状态,工作状态用于为异常处理模块提供信息。
优选地,预处理模块将对应于一个或多个段的段信息分配给两个或者更多个工作单元,每个工作单元根据被分配到的段信息处理相应的段。
优选地,段信息包括用于指示相应的段的开始记录和结束记录的指针,工作状态包括对预定数量的记录的处理结果和发生异常情况的记录的指针,
异常处理模块被配置成监控工作单元的工作状态,当工作状态指示处理结果为异常时,从发生异常的记录开始恢复处理。
优选地,该装置进一步包括文件反馈处理模块,用于向外部系统发送关于工作状态的信息,并将来自外部系统的响应信息更新到工作状态中。
优选地,该装置进一步包括文件控制模块,用于文件的预处理和工作单元的处理装载进行监控。
本文提出了一种支持并发和断点续装的参数文件装载方法和装置。这种方法针对到文件读写的效率比较低,不能满足大记录数下短时间内解析并实时装载的需求,提出了并发装载,如采用的多线程或者多线程并发的方式。对待装载文件首先根据文件大小决定文件并发的数目,对每一个工作单元(相应的线程或者进程)分配不同的文件段,不同线程在各自的段内独立工作互不影响,这种并发装载的设计有效地克服了文件串行处理以及I/O上的低效率的缺陷。
现有技术中的文件装载通常先将参数慢慢装入临时表,处理好后再统一导入正式表。本发明针对大记录数文件装载时间长,并且在期间发生磁盘、数据库、网络、主机掉电等异常时恢复起来麻烦的缺陷,本发明的方法将参数直接装载到正式参数表,提高参数的时效性,并实时记录每个工作单元已处理工作点的方式。因此即使发生了异常也能够从断点处迅速恢复,不会出现大面积重做或者正式表记录已经有前面处理的冗余数据问题。
本发明的技术方案在应用金融信息等系统的参数文件装载中能够缩短业务数据生效时间、提高服务质量和异常恢复能力。
附图说明
在参照附图阅读了本发明的具体实施方式以后,本领域技术人员将会更清楚地了解本发明的各个方面。本领域技术人员应当理解的是,这些附图仅仅用于配合具体实施方式说明本发明的技术方案,而并非意在对本发明的保护范围构成限制。其中,
图1是根据本发明实施例的文件装载装置的结构示意图。
具体实施方式
下面参照附图,对本发明的具体实施方式作进一步的详细描述。
如图1所示,文件装载装置可以包括预处理模块、工作单元模块、异常处理模块、控制模块和文件反馈处理模块。
预处理模块模块是文件装载的入口,负责接收来自外部系统的调用指令,并将调用指令进行解析和预处理。其根据调用指令装载文件或参数文件的记录,并且根据文件中的记录数,将文件分成一个或多个段。
在一个实施例中,预处理模块可以将对应于一个或多个段的段信息分配给两个或者更多个工作单元,每个工作单元根据被分配到的段信息处理相应的段。
在一个实施例中,段信息可以包括待处理文件的记录的指针,指示相应的段的开始记录和结束记录。也就是说,段信息可以包含待处理参数文件的指针,指示段的始末位置。进一步,可以控制单个文件的分段数量。当可被并发处理的段的数量达到预定上限时,则等待至前面被派发出去的段由工作单元处理完成,即直到有工作单元闲置的时候再继续分配段。后文将详细描述工作单元的处理。
这里,预处理模块将单个文件拆分成一个或多个段并让多个工作单元并发处理的优点在于,一方面,分段并发处理可以充分利用当前主机系统的并发特性,大幅度地提升装载文件的速度;另一方面,如本文后面将详细描述的,分段并发处理能够降低异常处理的颗粒度。当某个段异常时,只需重做该段,从而提升装载文件的效率。
本领域的技术人员可以理解的本发明不限于将参数文件内数据提取到参数数据库,还可以被应用于任何文件的装载或者对于文件的任何处理。
工作单元模块包括两个或者更多个工作单元,用于并发处理所述一个或多个段以完成每个文件段的装置任务。
在一个实施例中,两个或者更多个工作单元的每一个每次在处理完对应的段中的预定数量的记录后就更新工作状态,工作状态可以被用于为后文将描述的异常处理模块提供信息。例如,工作单元每解析装载段内的预定数量的数据则提交数据库并更新记录工作单元的工作状态。这里,工作状态可以被存储在文件中,工作单元可以共同维护一个工作状态文件或者分别维护各自的工作状态文件。作为文件记录的工作状态可以被用于实现参数文件的断点续传。举例来说,段内具有1000条记录,而“预定数量”可以被设定为10条,即工作单元处理好10条后更新工作状态。如此,更新越频繁后续出现异常时断点续装中重复处理记录的数量越少。
在一个实施例中,工作状态进可以包括发生异常情况的记录的指针来指示恢复操作的起点。
在一个实施例中,工作状态可以包括对所述预定数量的记录的处理结果,该处理结果可以包括正常情况和异常情况。
异常处理模块,用于进行异常处理,对工作状态为异常的段进行异常排查,待异常处理完毕,将工作状态更新为正常。
在一个实施例中,当工作状态指示处理结果为异常时,异常处理模块从发生异常情况的记录开始恢复处理。例如,工作单元异常终止或者主机断电等应用重启后,均从工作单元状态的文件记录的断点处,即发生异常的记录处开始恢复。如此能够缩减重复处理概率和异常恢复所需要时间,例如,当10000条记录已经处理了9990条记录时,则该重启后根据上次保留的工作状态,需要重做的记录数目是10条,而无需从头文件开始处重新处理。
在一个实施例中,异常处理模块可以采用轮询模式监控工作状态。
可选地,文件装载装置可以包括控制模块,用于对文件装载请求的处理状态以及各个工作单元的处理进行监控。当发现文件分段调度完成并且所有被调度工作单元已完成时,控制模块启动下一步文件处理。本领域的技术人员可以理解的还可以利用其它已知的各种技术来实现对反馈文件生成流程的监控和/或触发响应。
可选地,文件装载装置可以包括文件反馈处理模块,用于向外部系统发送关于工作状态的信息,并将来自外部系统的响应信息更新到工作状态中。反馈处理模块可以作为反馈文件生成过程中的对外“出口”。本领域的技术人员可以理解的还可以利用其它已知的各种技术来实现文件反馈的功能。
本发明的上述的模块都可以设计成多进程并发模式,通过将单一参数文件任务拆分成多段的装载任务、任务并发执行、可单任务重做,配合各个任务在任务状态可实现异常时从断点处重装,即可实现高效、高可用的文件装载。
本发明的支持并发和断点续装的文件装载方法和装置,充分利用了系统资源、进程间通信以及数据库资源,提高了文件装载的效率和异常恢复能力,尤其在大记录数(如十万到千万级的记录)时,实时将参数文件装载直接装载到正式表的性能与异常恢复方面具有很高的价值。正常情况下所用时间近似为非并发下的“并发数分之一”,而无断点续装机制的情形下,异常恢复并完成装载的时间大于正常装载时间,有断点续装机制的情形下异常恢复并完成装载的时间约为正常装载时间减异常前已处理时间。
通过以上实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件结合硬件平台的方式来实现,当然也可以全部通过硬件来实施。本领域中的普通技术人员能够理解,在不偏离本发明的精神和范围的情况下,还可以对本发明的具体实施方式作各种变更和替换。这些变更和替换都落在本发明权利要求书所限定的范围内。
Claims (16)
1.一种文件装载方法,其特征在于,
根据文件中的记录数,将文件分成一个或多个段,
利用两个或者更多个工作单元并发处理所述一个或多个段,
其中,所述两个或者更多个工作单元的每一个每次在处理完对应的段中的预定数量的记录后就更新各自的工作状态,所述工作状态用于为异常处理提供信息。
2.如权利要求1所述的方法,其特征在于,将对应于所述一个或多个段的段信息分配给所述两个或者更多个工作单元,每个工作单元根据被分配到的段信息处理相应的段。
3.如权利要求2所述的方法,其特征在于,所述段信息包括用于指示所述相应的段的开始记录和结束记录的指针。
4.如权利要求1所述的方法,其特征在于,所述工作状态包括对所述预定数量的记录的处理结果。
5.如权利要求4所述的方法,其特征在于,所述工作状态进一步包括发生异常的记录的指针。
6.如权利要求5所述的方法,其特征在于,当工作状态指示处理结果为异常,从发生异常的记录的指针处开始恢复处理。
7.如权利要求6所述的方法,其特征在于,采用轮询模式监控工作状态。
8.如权利要求1所述的方法,其特征在于,进一步包括向外部系统发送关于工作状态的信息,并将来自外部系统的响应信息更新到工作状态中。
9.如权利要求1所述的方法,其特征在于,所述工作状态被存储在文件中,以及所述两个或者更多个工作单元共同维护一个工作状态文件或者所述两个或者更多个工作单元分别维护各自的工作状态文件。
10.如权利要求1所述的方法,其特征在于,所述文件是参数文件,所述记录是参数,所述处理是将所述参数文件中的参数录入到系统的数据库中。
11.如权利要求10所述的方法,其特征在于,所述处理通过将所述参数直接装载到正式参数表来完成录入。
12.一种文件装载装置,其特征在于,包括,
预处理模块,用于根据文件中的记录数,将文件分成一个或多个段,
工作单元模块,包括两个或者更多个工作单元,用于并发处理所述一个或多个段,
异常处理模块,用于进行异常处理,
其中,所述两个或者更多个工作单元的每一个每次在处理完对应的段中的预定数量的记录后就更新各自的工作状态,所述工作状态用于为异常处理模块提供信息。
13.如权利要求12所述的装置,其特征在于,所述预处理模块将对应于所述一个或多个段的段信息分配给所述两个或者更多个工作单元,每个工作单元根据被分配到的段信息处理相应的段。
14.如权利要求13所述的装置,其特征在于,所述段信息包括用于指示所述相应的段的开始记录和结束记录的指针,所述工作状态包括对所述预定数量的记录的处理结果和发生异常情况的记录的指针,
所述异常处理模块被配置成监控工作单元的工作状态,当工作状态指示处理结果为异常时,从发生异常的记录开始恢复处理。
15.如权利要求12所述的装置,其特征在于,进一步包括文件反馈处理模块,用于向外部系统发送关于工作状态的信息,并将来自外部系统的响应信息更新到工作状态中。
16.如权利要求12所述的装置,其特征在于,进一步包括文件控制模块,用于对文件的预处理和工作单元的处理装载进行监控。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110101178.1A CN102750159B (zh) | 2011-04-21 | 2011-04-21 | 一种用于文件装载的方法和装置 |
PCT/CN2012/074426 WO2012142962A1 (zh) | 2011-04-21 | 2012-04-20 | 一种用于文件装载的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110101178.1A CN102750159B (zh) | 2011-04-21 | 2011-04-21 | 一种用于文件装载的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102750159A true CN102750159A (zh) | 2012-10-24 |
CN102750159B CN102750159B (zh) | 2017-08-25 |
Family
ID=47030381
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110101178.1A Active CN102750159B (zh) | 2011-04-21 | 2011-04-21 | 一种用于文件装载的方法和装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102750159B (zh) |
WO (1) | WO2012142962A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106708620A (zh) * | 2015-11-13 | 2017-05-24 | 苏宁云商集团股份有限公司 | 一种处理数据的方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101179392A (zh) * | 2006-12-12 | 2008-05-14 | 腾讯科技(深圳)有限公司 | 一种上传文件的方法和系统 |
US7593922B1 (en) * | 2003-06-13 | 2009-09-22 | At&T Intellectual Property, I. L.P. | Method and system for providing delivery of segmented data files |
US20100057992A1 (en) * | 2008-08-27 | 2010-03-04 | Sandisk Il Ltd. | Portable storage device with an accelerated access speed |
CN101729586A (zh) * | 2008-10-24 | 2010-06-09 | 中国移动通信集团广东有限公司 | 数据上传方法、装置、下载方法、装置及传输方法、装置 |
CN102004663A (zh) * | 2009-09-02 | 2011-04-06 | 中国银联股份有限公司 | 一种多任务并发调度的系统及方法 |
-
2011
- 2011-04-21 CN CN201110101178.1A patent/CN102750159B/zh active Active
-
2012
- 2012-04-20 WO PCT/CN2012/074426 patent/WO2012142962A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7593922B1 (en) * | 2003-06-13 | 2009-09-22 | At&T Intellectual Property, I. L.P. | Method and system for providing delivery of segmented data files |
CN101179392A (zh) * | 2006-12-12 | 2008-05-14 | 腾讯科技(深圳)有限公司 | 一种上传文件的方法和系统 |
US20100057992A1 (en) * | 2008-08-27 | 2010-03-04 | Sandisk Il Ltd. | Portable storage device with an accelerated access speed |
CN101729586A (zh) * | 2008-10-24 | 2010-06-09 | 中国移动通信集团广东有限公司 | 数据上传方法、装置、下载方法、装置及传输方法、装置 |
CN102004663A (zh) * | 2009-09-02 | 2011-04-06 | 中国银联股份有限公司 | 一种多任务并发调度的系统及方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106708620A (zh) * | 2015-11-13 | 2017-05-24 | 苏宁云商集团股份有限公司 | 一种处理数据的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102750159B (zh) | 2017-08-25 |
WO2012142962A1 (zh) | 2012-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103034554B (zh) | 一种纠错重启以及自动判断启动的etl调度系统及方法 | |
CN103136074B (zh) | 多个磁盘阵列系统的数据储存方法及数据储存系统 | |
US10831622B2 (en) | Method and apparatus for processing gateway device fault | |
CN103473151A (zh) | 数据库表的备份方法及装置 | |
CN103647834A (zh) | 一种用于处理多阶段分布式任务调度的系统及方法 | |
CN109597846B (zh) | 大数据平台数据仓库数据处理方法、装置和计算机设备 | |
CN101135981A (zh) | 一种实现批量报表生成的方法及装置 | |
CN109558260B (zh) | Kubernetes故障排除系统、方法、设备及介质 | |
CN101604268A (zh) | 一种监控目录变化事件过滤方法 | |
US9164849B2 (en) | Backup jobs scheduling optimization | |
CN102439565A (zh) | 启动恢复的方法和装置 | |
CN105260238A (zh) | 一种多进程提升性能部署的方法 | |
CN102541750A (zh) | 数据快照的实现方法和装置 | |
CN105608138A (zh) | 一种优化阵列数据库并行数据加载性能的系统 | |
CN104182295A (zh) | 一种数据备份方法及装置 | |
DE112011100262T5 (de) | Aktualisieren von Elementen in einer Datenspeichereinrichtung unter Verwendung einer vordefinierten Zustandsmaschine über einen ausgedehnten Zeitraum | |
CN102750159A (zh) | 一种用于文件装载的方法和装置 | |
CN103218256B (zh) | 一种主机批量的回退方法以及系统 | |
CN103235988B (zh) | 数据库一体化监管平台的工作方法 | |
CN102681650B (zh) | 一种电源控制节能方法及其对应的存储系统 | |
CN116719623A (zh) | 作业调度方法、作业结果处理方法及其装置 | |
CN103677879A (zh) | 软件安装方法及相应软件安装装置 | |
CN115168012A (zh) | 一种线程池并发线程数确定方法及相关产品 | |
CN112506631A (zh) | 基于电力大数据模型任务调度方法、平台及存储介质 | |
CN101470625A (zh) | 一种大型软件中多任务执行方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |