CN107330096A - 文件处理方法及装置、计算机可读存储介质和电子设备 - Google Patents
文件处理方法及装置、计算机可读存储介质和电子设备 Download PDFInfo
- Publication number
- CN107330096A CN107330096A CN201710542715.3A CN201710542715A CN107330096A CN 107330096 A CN107330096 A CN 107330096A CN 201710542715 A CN201710542715 A CN 201710542715A CN 107330096 A CN107330096 A CN 107330096A
- Authority
- CN
- China
- Prior art keywords
- data
- file
- processing
- judge
- file data
- 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
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/25—Integrating or interfacing systems involving database management 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/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
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
技术领域
本公开涉及数据处理技术领域,尤其涉及一种文件处理方法、文件处理装置以及实现该文件处理方法的计算机可读存储介质和电子设备。
背景技术
金融行业投资交易软件的种类繁多,证券、基金公司一般会同时使用多家厂商的投资交易软件。通常大型软件厂商的市场占有率比较高,证券、基金公司会考虑将其他小型软件厂商的软件交易数据导入到大型软件厂商的软件中进行资产管理,这里就会涉及到数据文件的导入。一般投资交易系统需要支持数据文件导入功能,同时又要进行实时的交易。但当数据文件比较大的时候,就有可能出现交易端的压力过大,从而影响实时交易功能。
因此,有必要提供一种新的技术方案改善上述方案中存在的一个或者多个问题。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本公开的目的在于提供一种文件处理方法、文件处理装置以及实现该文件处理方法的计算机可读存储介质和电子设备,进而至少在一定程度上克服由于相关技术的限制和缺陷而导致的一个或者多个问题。
本公开的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本公开的实践而习得。
根据本公开实施例的第一方面,提供一种文件处理方法,所述方法包括:读取指定路径的文件数据;根据预设规则判断当前是否适合作数据导入处理;当判定当前适合作数据导入处理时,将所述文件数据导入至数据库中。
本公开的一种示例性实施例中,根据预设规则判断当前是否适合作数据导入处理包括:判断交易菜单对应的业务时间是否处于交易时间段内;当所述业务时间不处于所述交易时间段内时,则允许执行数据导入处理。
本公开的一种示例性实施例中,根据预设规则判断当前是否适合作数据导入处理包括:当所述业务时间处于所述交易时间段内时,判断系统的任务处理队列中的任务数是否小于第一预设阈值;当所述任务数大于等于所述第一预设阈值时,则暂停数据导入处理。
本公开的一种示例性实施例中,根据预设规则判断当前是否适合作数据导入处理包括:当所述任务数小于所述第一预设阈值时,判断当前客户端的资源使用情况是否满足预设条件;当所述当前客户端的资源使用情况满足所述预设条件时,则允许执行数据导入处理;当所述当前客户端的资源使用情况不满足所述预设条件时,则暂停数据导入处理。
本公开的一种示例性实施例中,所述当前客户端的资源使用情况包括CPU、磁盘、内存、网络延迟中的一种或者多种的使用情况。
本公开的一种示例性实施例中,所述方法还包括:根据业务规则配置相应的关键字段;配置所述读取指定路径的文件数据的字段与所述关键字段的对应关系。
本公开的一种示例性实施例中,读取指定路径的文件数据包括:根据所述对应关系读取所述文件数据中与所述关键字段对应的字段数据,加载到内存中。
本公开的一种示例性实施例中,所述方法还包括:在客户端对所述文件数据进行预处理,获得符合规范格式的数据。
本公开的一种示例性实施例中,对所述文件数据进行预处理包括:对所述文件数据进行数据的转换处理;和/或对所述文件数据进行字段运算处理;和/或对所述文件数据进行字段纠错处理。
本公开的一种示例性实施例中,读取指定路径的文件数据包括:对不同文件类型的文件调用相应的处理方法进行处理。
本公开的一种示例性实施例中,所述文件类型包括xls、xlsx、csv、txt、dbf中的任意一种。
本公开的一种示例性实施例中,将所述文件数据导入至数据库中包括:判断所述文件数据的数据量是否超过第二预设阈值;当所述数据量超过所述第二预设阈值时,将所述文件数据按照每次所述第二预设阈值的数量分批次导入至所述数据库中。
本公开的一种示例性实施例中,所述方法还包括:判断数据导入是否成功;当数据导入成功时,系统自动归档备份;当数据导入失败时,对导入失败的数据进行标记,转入人工纠错处理。
根据本公开实施例的第二方面,提供一种文件处理装置,所述装置包括:文件读取模块,用于读取指定路径的文件数据;判断模块,用于根据预设规则判断当前是否适合作数据导入处理;数据导入模块,用于当判定当前适合作数据导入处理时,将所述文件数据导入至数据库中。
根据本公开实施例的第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一实施例中所述文件处理方法的步骤。
根据本公开实施例的第四方面,提供一种电子设备,该电子设备可以包括:处理器;以及存储器,用于存储所述处理器的可执行指令的;其中,所述处理器配置为经由执行所述可执行指令来执行上述任一实施例中所述文件处理方法的步骤。
本公开的实施例提供的技术方案可以包括以下有益效果:
本公开的一种实施例中,根据预设规则来判断数据导入至数据库的时机,从而可以实现大数据量文件导入的同时不影响实时交易。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示意性示出本公开示例性实施例中一种文件处理方法的流程图;
图2示意性示出本公开示例性实施例中读取文件数据的流程图;
图3示意性示出本公开示例性实施例中预处理文件数据的流程图;
图4示意性示出本公开示例性实施例中导入数据的流程图;
图5示意性示出本公开示例性实施例中归档数据文件的流程图;
图6示意性示出本公开示例性实施例中另一种文件处理方法的流程图;
图7示意性示出本公开示例性实施例中一种文件处理装置的示意图;
图8示意性示出本公开示例性实施例中一种电子设备的示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
现有技术中采用的方案是读取指定的文件的所有数据,全量导入数据库,最后对处理失败的数据进行标记再次导入的时候进行控制,从而减轻服务端处理压力,提升系统性能。但现有技术存在以下缺点:仅支持excel和txt数据的导入;每次导入都是全量导入;仅支持对服务端进行减压处理,并未对客户端进行减压处理。
本示例实施方式中首先提供了一种文件处理方法。参考图1中所示,该方法可以包括以下步骤:
步骤S11:读取指定路径的文件数据。
在示例性实施例中,读取指定路径的文件数据可以包括:对不同文件类型的文件调用相应的处理方法进行处理。
在示例性实施例中,所述文件类型可以包括xls、xlsx、csv、txt、dbf等中的任意一种。
在示例性实施例中,所述方法还可以包括:根据业务规则配置相应的关键字段;配置所述读取指定路径的文件数据的字段与所述关键字段的对应关系。
在示例性实施例中,读取指定路径的文件数据可以包括:根据所述对应关系读取所述文件数据中与所述关键字段对应的字段数据,加载到内存中。
在示例性实施例中,所述方法还可以包括:在客户端对所述文件数据进行预处理,获得符合规范格式的数据。
在示例性实施例中,对所述文件数据进行预处理可以包括:对所述文件数据进行数据的转换处理;和/或对所述文件数据进行字段运算处理;和/或对所述文件数据进行字段纠错处理。
步骤S12:根据预设规则判断当前是否适合作数据导入处理。
在示例性实施例中,根据预设规则判断当前是否适合作数据导入处理可以包括:判断交易菜单对应的业务时间是否处于交易时间段内;当所述业务时间不处于所述交易时间段内时,则允许执行数据导入处理。
在示例性实施例中,根据预设规则判断当前是否适合作数据导入处理可以包括:当所述业务时间处于所述交易时间段内时,判断系统的任务处理队列中的任务数是否小于第一预设阈值;当所述任务数大于等于所述第一预设阈值时,则暂停数据导入处理。
在示例性实施例中,根据预设规则判断当前是否适合作数据导入处理可以包括:当所述任务数小于所述第一预设阈值时,判断当前客户端的资源使用情况是否满足预设条件;当所述当前客户端的资源使用情况满足所述预设条件时,则允许执行数据导入处理;当所述当前客户端的资源使用情况不满足所述预设条件时,则暂停数据导入处理。
在示例性实施例中,所述当前客户端的资源使用情况可以包括CPU、磁盘、内存、网络延迟等中的一种或者多种的使用情况。
步骤S13:当判定当前适合作数据导入处理时,将所述文件数据导入至数据库中。
在示例性实施例中,将所述文件数据导入至数据库中可以包括:判断所述文件数据的数据量是否超过第二预设阈值;当所述数据量超过所述第二预设阈值时,将所述文件数据按照每次所述第二预设阈值的数量分批次导入至所述数据库中。
在示例性实施例中,所述方法还可以包括:判断数据导入是否成功;当数据导入成功时,系统自动归档备份;当数据导入失败时,对导入失败的数据进行标记,转入人工纠错处理。
通过上述文件处理方法,根据预设规则来判断数据导入至数据库的时机,从而可以实现大数据量文件导入的同时不影响实时交易,这样可以实现实时交易软件在做交易的同时还能够支持离线数据的大数据量并发导入。
下面,将参考图1至图6对本示例实施方式中的上述方法的各个步骤进行更详细的说明。
在步骤S11中,读取指定路径的文件数据。
参考图2中所示,读取所述文件数据可以包括以下步骤:
步骤S101:扫描文件路径。
步骤S102:判断文件是否存在;当文件存在时,进入步骤S103;当文件不存在时,跳转到步骤S108结束本次读取操作。
步骤S103:判断文件格式是否支持;当文件格式支持时,进入步骤S104;当文件格式不支持时,跳转到步骤S108结束本次读取操作。
步骤S104:读取所述文件数据。
例如,读取整个excel文件的所有数据。
步骤S105:根据所述文件数据的文件类型调用相应的文件处理方法对该文件数据进行处理。
本发明实施例可支持多种类型的文件导入处理,例如xsl,csv,txt,dbf等。分别对不同文件类型的文件做读取操作。
步骤S106:根据字段配置界面读取配置的关键字段。
本发明实施例中,所述根据字段配置界面读取配置的关键字段是指仅读取用户预先配置的关键字段对应的数据,而非读取文件全部数据。
本发明实施例中可以根据系统业务规则配置指定一些字段为关键字段例如f1、f2、f3、f4、f5等。例如委托表包含证券代码、证券名称、交易市场、证券内码、委托价格、委托数量、委托金额、委托方向、委托进度、挂单数量、成交数量、成交进度等字段。这里包含的信息比较全面,可能只需要其中的证券代码、交易市场、委托价格、委托数量、委托金额、委托方向六个字段,可以将委托表中这六个字段指定为关键字段。
如果外部系统导出的数据需要导入至本系统,则需要将外部系统的数据字段名称例如wf1、wf2、wf3、wf4、wf5等,与本系统指定的关键字段名称一一对应配置,并存储在系统字段关系配置表中Tfconfig。例如,外部系统字段:债券代码-->本系统字段:证券代码,外部系统字段:价格-->本系统字段:委托价格,外部系统字段:数量-->本系统字段:委托数量,外部系统字段:委托金额-->本系统字段:委托金额等,目的就是将对方系统的例如excel中包含的字段和本系统中需要导入的数据字段一一对应起来。
步骤S107:读取该文件数据中与该关键字段对应的字段加载到内存中。
在读取数据(例如读取excel文件列头数据)的时候,外部系统可能导出的全量的数据字段,可能有几十个,例如wf1,wf2…wfN,本系统只需要读取指定的关键字段即可例如5个字段,无需将所有字段的所有数据都读取出来,这样可降低客户端处理压力,提升对大文件数据的处理性能,至少可以提升N/5-1倍性能。将指定的关键字段对应的文件数据读取完到内存中中的列表中,例如List<table1>,如果有多个文件则可以分别存入table1-tableN中。
本发明实施例中,导入数据文件支持选取有效字段导入,而不是全量数据导入,这样对文件的操作有限,在外部系统导出的数据字段比较多的情况下,其中有很多字段是无用字段,数据库并不保存这些无用字段数据,从而不会导致数据读取和数据导入方面的性能浪费。例如,假设外部系统的文件有20个字段,而本系统中只需要这其中的15个关键字段,那么另外5个字段就是无用的字段。
步骤S108:结束。
在示例性实施例中,所述方法还可以包括预处理所述文件数据。其中,预处理数据可以包括对数据的转换、字段运算、字段纠错处理等。
参考图3中所示,预处理所述文件数据可以包括以下步骤:
步骤S201:读取数据列表。
例如,从内存中读取List<table1>中的数据。
步骤S202:根据配置的字段作数据类型转换、字段值域转换等。
本发明实施例中,可以首先在设置外部系统数据导入模板的时候根据外部系统的特殊字段的值域进行转义。例如在编程中,表示有特殊意义的字符,如\n在一些程序语言里表示换行。再例如,外部系统A的委托方向值域(例如1-买,2-卖,3-债券买入,4-债券卖出,这里的1,2,3,4就是值域)和本系统的委托方向值域不一致,这里就需要在设置外部系统A的委托方向值域与本系统的委托方向的映射关系,例如外部系统的委托方向:wt1,wt2…wtn与本系统的委托方向:twt1,twt2…twtn之间的对应关系。这样可以将该字段进行转义为本系统识别的委托方向值域。
需要说明的是,本发明实施例中数据的转换并不限于上述实施例中例举的对外部系统的特殊字段的值域进行转义,可以是所有的字段,都是可以配置的,和本系统的定义有差别的都可以做转义。
步骤S203:字段运算处理。
本发明实施例中,由于外部系统存在一些要素字段,而可能缺失一些要素字段运算后的字段。例如,数据文件只有单价、数量,而没有金额字段,这个时候就需要根据金额=单价*数量运算后得到该字段的值。
步骤S204:字段纠错处理。
本发明实施例中,金融交易系统的业务包含很多种类,例如在现货和期货的数据中委托方向就存在区别,现货包括买入、卖出,期货包括买卖、开平仓,但是导出的数据文件中存在期货的数据只有买、卖单独两个字,这里就需要纠正,例如买入开仓、卖出平仓。
步骤S205:结束。
本发明实施例中,以上的处理逻辑都是对外部系统的数据进行预处理,处理为符合本系统能够识别处理的规范格式数据。另一方面,可以将这些处理逻辑放在客户端进行处理,从而可以有效减轻后台处理压力。有些这些运算和处理都是在内存中完成的,只消耗了一点内存和CPU,而没有使用网络,这些运算并不会使客户端产生瓶颈。
在步骤S12中,根据预设规则判断当前是否适合作数据导入处理。
在步骤S13中,当判定当前适合作数据导入处理时,将所述文件数据导入至数据库中。
参考图4中所示,在示例性实施例中,导入数据具体可以包括以下步骤:
步骤301:读取数据列表。
例如,从内存中读取数据列表。
在内存中处理完成后,最终要调用服务端接口将数据导入至数据库中,但是在本发明实施例中,在准备导入数据之前,预先检测当前客户端、系统等资源状况是否合适做导入处理。
步骤302:判断是否处于当前操作员的有权限交易菜单的交易时间段内;当处于所述当前操作员的有权限交易菜单的交易时间段内时,进入步骤S303;当非处于所述交易时间段内时,跳转到步骤S305。
本发明实施例中,在所述交易时间段内实时判断操作员有权限的业务交易时间段列表,根据所述业务交易时间段列表,在非交易时间段内执行数据导入;在交易时间段内,可以根据资源情况判断是否进行数据导入。
例如,分析当前操作员拥有权限的交易菜单,同时判断当前打开的交易菜单,这些交易菜单对应的交易市场的交易时间段,不同业务的时间段不一样,判断交易菜单的业务时间是否为交易时间段,将每个交易菜单的交易市场对应的业务时间范围,跟当前的时间进行比对,从而可以判断是否为交易时间段内。当为非交易时间段时,允许执行数据导入。
步骤303:判断系统全局任务处理队列任务数是否<5;当任务数小于5时,进入步骤S304;当任务数大于等于5时,跳转到步骤S307。
本发明实施例中,根据系统的负荷能力判断当前是否适合进行数据导入操作,例如判断当前全局任务队列中是否有超过5个未处理任务,如果有超过5个未处理任务,则暂停数据导入任务,否则继续执行数据导入。这是因为任务队列中的未处理任务过多时,应该要把资源给任务队列去处理这些未处理任务。
需要说明的是,上述实施例中的任务数设定阈值为5仅是用于举例说明,但本公开并不限定于此,实际可以根据应用场景进行灵活设定。
在其他实施例中,判断当前任务处理队列(指令,委托),如果当前的任务处理队列数据比较多没有处理完成,比如超过10条委托没有处理完成,则暂停数据导入任务。当客户端在做篮子交易的时候每次会有几百笔、上千笔的委托同时下达,需要立即报送到服务端,这个时候就需要占用网络带宽进行报单,则需要暂停数据导入。
步骤304:判断当前客户端的资源使用情况是否满足预设条件;当满足所述预设条件时,进入步骤S305;当不满足所述预设条件时,跳转到步骤S307。
本发明实施例中,可以进一步根据客户端CPU、硬盘、内存等资源使用率以及网络延迟情况,来判断是否适合执行数据导入,从而保障实时交易正常进行。
例如,检查CPU、磁盘、内存、网络等的使用情况,可以设置为使用率超过50%(但本公开并不限定于此)则认为当前客户端资源吃紧,则暂停数据导入操作。CPU和磁盘使用情况主要消耗在委托下达数据量比较多、缓存更新、异步任务执行等,这里会有一些计算和数据落地、日志落地等都会使磁盘的使用率上升,这些都是反应客户端是否在执行大量交易的情况下导致资源吃紧,所以对于这些指标的判断是非常有效的方式。另一方面,客户端还可以同时对网络延迟进行实时测速,例如当网络延迟超过100ms的时候,则需要暂停数据导入任务,这个时候应该把带宽空出来留给系统做指令交易。
步骤305:分批次导入数据至数据库中,每次控制在1000条以内。
当判断当前操作员有权限交易菜单不处于交易时间段内时或者虽然处于所述交易时间段内但判断系统全局任务处理队列任务数小于5且客户端资源使用情况满足所述预设条件时,可以将数据分批次导入。本发明实施例中,分批次导入,每次控制在1000条以内,通过分批次导入可以控制每次导入的耗时,减少后台长时间处理。
例如,对于List<table1>中的数据,进行判断,当数据量大于1000条时,则按照每次1000条的数量进行处理。需要说明的是,这里的1000条是一个经验值,可以根据实际环境配置的情况来调整该值。大数据量分批次处理主要是减轻后台单个请求的时长,减轻后台处理压力,提升系统整体性能。
步骤306:处理完成后回填字段处理标识。
本发明实施例中,回填字段处理标识是表示这条数据导入完成,对其做个标记。
步骤307:结束。
在示例性实施例中,所述方法还可以包括:归档数据文件。参考图5中所示,所述归档数据文件可以包括以下步骤:
步骤401:读取数据列表。
本发明实施例中,所有的文件在处理完成之前内存中都会存档一份完整的数据。
步骤402:判断是否处理成功;当处理成功时,进入步骤S403;当处理失败时,跳转到步骤S404。
本发明实施例中,所述处理失败,例如外部系统的excel文件中没有包含本系统中必须输入的字段。
步骤403:归档备份。
步骤404:打标记,转入人工处理。
本发明实施例中,对于处理失败或者文件数据错误等文件,直接放入处理出错文件夹(该出错文件夹可以设置在客户端),需要人工手工纠错再重新导入,避免客户端多次处理进入错误循环。
根据系统特点,本系统对于数据处理失败的相关文件让人工来处理是比较好的选择,而非系统自行根据一定的规则来处理,因为金融行业的交易系统涉及的交易相关的金额都是比较大,而且对于资金的管理和控制都是非常严格的。所以处理失败的都转由人工处理,调整错误数据后再导入到系统中,导入完成后系统自动归档;处理成功都由系统自动归档备份。
步骤405:结束。
本示例实施方式中还提供了另一种文件处理方法。参考图6中所示,该方法可以包括以下步骤:
步骤S21:扫描文件路径。
本发明实施例中,用户将数据导入到数据库的过程还可以包括:用户预先配置好外部系统字段和本系统字段模板关系。例如根据系统业务规则配置指定关键字段,以及将外部系统的数据字段名称与关键字段名称一一对应配置。
步骤S22:判断文件路径是否存在、文件名称是否合法以及文件格式是否支持;当文件路径不存在时或者文件名称不合法时或者文件格式不支持时,跳转到步骤S212结束本次操作;当文件路径存在且文件名称合法同时文件格式支持时,进入步骤S23。
本发明实施例中,判断文件路径是否存在,如果文件路径不存在则创建,用户将文件存放到指定文件路径。
步骤S23:读取文件数据。
步骤S24:判断该文件数据中是否包含模板中字段;如果包含,则进入步骤S25;如果不包含则跳转到步骤S212结束本次操作。
本发明实施例中,读取指定路径的文件,加载到内存中,根据配置好的模板,读取指定的字段。
步骤S25:预处理所述文件数据。
本发明实施例中,所述预处理可以包括:读取配置字段的数据;根据配置字段模糊匹配转换为指定值等例如,期货业务中,委托方向只有一个字,买或者卖,这个时候会自动匹配里面包含买或者卖,将其分别转换为买入开仓、卖出平仓。
本发明实施例中,所述预处理还可以包括:将读取到的数据内容进行数据纠错,如果数据存在错误,反馈到界面。
步骤S26:判断是否处于当前操作员的有权限交易菜单的交易时间段内;当处于所述交易时间段内时,进入步骤S27;当非处于所述交易时间段内时,跳转到步骤S29。
步骤S27:判断系统全局任务处理队列任务数是否<5;当小于5时,进入步骤S28;当大于等于5时,跳转到步骤S212结束本次操作。
步骤S28:检测客户端机器的CPU使用率、内存使用率是否小于50%,网络延迟是否小于0.1秒;当满足时,进入步骤S29;当不满足时,跳转到步骤S212结束本次操作。
步骤S29:调用后台接口将数据导入,可根据配置数量分批导入。
本发明实施例中,可以启动多线程将文件数据分批次导入数据库,控制每次导入数据库的数据量,减小数据库高并发压力。
步骤S210:导入成功后,将导入后的数据显示在界面,并实时显示处理结果。
本发明实施例中,可以实时界面显示导入进度和数据处理状态,方便用户查看。
步骤S211:归档处理成功的文件;给处理失败的文件做标记。
本发明实施例中,可以根据数据导入数据库的结果,判断数据导入属于成功、部分成功、失败这三种类型,分别对导入后的数据文件进行重命名,在源文件后增加导入结果后缀,并将导入成功的文件转移到指定文件夹(该指定文件夹可以设置于客户端,处理成功就进入备份归档文件夹,处理失败就在当前的文件夹,文件名称加入失败的标识),方便用户查看导入成功的数据。
需要说明的是,如果导入的数据缺失必须的字段属于失败,如果导入的数据包含必须的字段但是数据内部只有一部分的数据是缺失的算是部分失败。
步骤S212:结束。
本发明实施方式提供的文件处理方法,一方面,根据系统的资源、系统任务队列、系统交易时间等要素来决策当前是否执行数据导入任务,从而可以保障实时交易正常进行。此外,通过增加不同系统间的字段匹配,精准的获取有价值的文件数据,同时还能校验文件数据的有效性,检查当前导入的文件是否有本系统需要的必要字段,如果没有这些字段,则该文件是无效文件,无需做后续的导入处理。另一方面,还支持客户端配置化纠正源数据的值域以及相关字段的转换等,服务端拿到数据直接写入数据库,无须做数据类型转换,从而可以减轻服务端压力。另外,根据数据库处理性能分批次导入数据库,可以最大程度上降低数据库的数据处理压力,保证数据库的性能,处理结束后能够将文件转移到指定文件夹,方便查看。
需要说明的是,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。另外,也易于理解的是,这些步骤可以是例如在多个模块/进程/线程中同步或异步执行。
进一步的,本示例实施方式中,还提供了一种文件处理装置。参考图7中所示,装置10可以包括文件读取模块11、判断模块12和数据导入模块13。其中:
所述文件读取模块11,用于读取指定路径的文件数据。
所述判断模块12,用于根据预设规则判断当前是否适合作数据导入处理。
所述数据导入模块13,用于当判定当前适合作数据导入处理时,将所述文件数据导入至数据库中。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。作为模块或单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现木公开方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
本示例实施方式中,还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一实施例中所述文件处理方法的步骤。所述文件处理方法的具体步骤可参考前述实施例中关于上述文件处理方法各步骤的详细描述,此处不再赘述。所述计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本示例实施方式中,还提供一种电子设备,该电子设备可以包括处理器以及用于存储所述处理器的可执行指令的存储器。其中,所述处理器配置为经由执行所述可执行指令来执行上述任一实施例中所述文件处理方法的步骤。该文件处理方法的步骤可参考前述方法实施例中的详细描述,此处不再赘述。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本公开实施方式的方法。
图8示出根据本公开示例实施方式中一种电子设备800的示意图。例如,装置800可以被提供为一服务器或客户端。参照图8,装置800包括处理组件422,其进一步包括一个或多个处理器,以及由存储器432所代表的存储器资源,用于存储可由处理组件422执行的指令,例如应用程序。存储器432中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件422被配置为执行指令,以执行上述方法。
装置800还可以包括一个电源组件426被配置为执行装置400的电源管理,一个有线或无线网络接口450被配置为将装置400连接到网络,和一个输入输出(I/O)接口458。装置800可以操作基于存储在存储器432的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由所附的权利要求指出。
Claims (16)
1.一种文件处理方法,其特征在于,所述方法包括:
读取指定路径的文件数据;
根据预设规则判断当前是否适合作数据导入处理;
当判定当前适合作数据导入处理时,将所述文件数据导入至数据库中。
2.根据权利要求1所述方法,其特征在于,根据预设规则判断当前是否适合作数据导入处理包括:
判断交易菜单对应的业务时间是否处于交易时间段内;
当所述业务时间不处于所述交易时间段内时,则允许执行数据导入处理。
3.根据权利要求2所述方法,其特征在于,根据预设规则判断当前是否适合作数据导入处理包括:
当所述业务时间处于所述交易时间段内时,判断系统的任务处理队列中的任务数是否小于第一预设阈值;
当所述任务数大于等于所述第一预设阈值时,则暂停数据导入处理。
4.根据权利要求3所述方法,其特征在于,根据预设规则判断当前是否适合作数据导入处理包括:
当所述任务数小于所述第一预设阈值时,判断当前客户端的资源使用情况是否满足预设条件;
当所述当前客户端的资源使用情况满足所述预设条件时,则允许执行数据导入处理;
当所述当前客户端的资源使用情况不满足所述预设条件时,则暂停数据导入处理。
5.根据权利要求4所述方法,其特征在于,所述当前客户端的资源使用情况包括CPU、磁盘、内存、网络延迟中的一种或者多种的使用情况。
6.根据权利要求1所述方法,其特征在于,所述方法还包括:
根据业务规则配置相应的关键字段;
配置所述读取指定路径的文件数据的字段与所述关键字段的对应关系。
7.根据权利要求6所述方法,其特征在于,读取指定路径的文件数据包括:根据所述对应关系读取所述文件数据中与所述关键字段对应的字段数据,加载到内存中。
8.根据权利要求1所述方法,其特征在于,所述方法还包括:在客户端对所述文件数据进行预处理,获得符合规范格式的数据。
9.根据权利要求8所述方法,其特征在于,对所述文件数据进行预处理包括:
对所述文件数据进行数据的转换处理;和/或
对所述文件数据进行字段运算处理;和/或
对所述文件数据进行字段纠错处理。
10.根据权利要求1所述方法,其特征在于,读取指定路径的文件数据包括:对不同文件类型的文件调用相应的处理方法进行处理。
11.根据权利要求10所述方法,其特征在于,所述文件类型包括xls、xlsx、csv、txt、dbf中的任意一种。
12.根据权利要求1所述方法,其特征在于,将所述文件数据导入至数据库中包括:
判断所述文件数据的数据量是否超过第二预设阈值;
当所述数据量超过所述第二预设阈值时,将所述文件数据按照每次所述第二预设阈值的数量分批次导入至所述数据库中。
13.根据权利要求1所述方法,其特征在于,所述方法还包括:
判断数据导入是否成功;
当数据导入成功时,系统自动归档备份;
当数据导入失败时,对导入失败的数据进行标记,转入人工纠错处理。
14.一种文件处理装置,其特征在于,所述装置包括:
文件读取模块,用于读取指定路径的文件数据;
判断模块,用于根据预设规则判断当前是否适合作数据导入处理;
数据导入模块,用于当判定当前适合作数据导入处理时,将所述文件数据导入至数据库中。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1~13任一项所述文件处理方法的步骤。
16.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求1~13任一项所述文件处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710542715.3A CN107330096A (zh) | 2017-07-05 | 2017-07-05 | 文件处理方法及装置、计算机可读存储介质和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710542715.3A CN107330096A (zh) | 2017-07-05 | 2017-07-05 | 文件处理方法及装置、计算机可读存储介质和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107330096A true CN107330096A (zh) | 2017-11-07 |
Family
ID=60196007
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710542715.3A Pending CN107330096A (zh) | 2017-07-05 | 2017-07-05 | 文件处理方法及装置、计算机可读存储介质和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107330096A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107943581A (zh) * | 2017-11-14 | 2018-04-20 | 广东欧珀移动通信有限公司 | 应用清理方法、装置、存储介质及电子设备 |
CN108170839A (zh) * | 2018-01-15 | 2018-06-15 | 浙江工业大学 | 一种应用在智能停车联网平台中数据分批导出的方法 |
CN108280223A (zh) * | 2018-02-09 | 2018-07-13 | 弘成科技发展有限公司 | 用于招生录取的dbf数据导入平台及导入方法 |
CN109325002A (zh) * | 2018-09-03 | 2019-02-12 | 北京京东金融科技控股有限公司 | 文本文件处理方法、装置、系统、电子设备、存储介质 |
CN109726175A (zh) * | 2018-12-29 | 2019-05-07 | 北京赛思信安技术股份有限公司 | 一种基于HBase的海量文件离线分区管理方法 |
CN109727106A (zh) * | 2018-09-13 | 2019-05-07 | 网联清算有限公司 | 对账文件的重组方法、装置及电子设备 |
CN109800259A (zh) * | 2018-12-11 | 2019-05-24 | 深圳市金证科技股份有限公司 | 数据采集方法、装置及终端设备 |
CN110046191A (zh) * | 2019-04-22 | 2019-07-23 | 成都四方伟业软件股份有限公司 | 一种数据导出配置方法及装置 |
CN110069449A (zh) * | 2019-03-20 | 2019-07-30 | 平安科技(深圳)有限公司 | 文件处理方法、装置、计算机设备和存储介质 |
CN110276205A (zh) * | 2019-06-06 | 2019-09-24 | 深圳市杰科数码有限公司 | 产品序列号文件生成方法、系统、电子装置及存储介质 |
CN110377563A (zh) * | 2019-07-23 | 2019-10-25 | 中国工商银行股份有限公司 | 文件处理方法和装置、以及电子设备和可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103093342A (zh) * | 2013-01-11 | 2013-05-08 | 北京掌上汇通科技发展有限公司 | 一种联机交易处理平台及其交易处理方法 |
CN103631868A (zh) * | 2013-11-04 | 2014-03-12 | 中国电子科技集团公司第十五研究所 | 一种兼容关系数据库的数据管理系统 |
CN105786992A (zh) * | 2016-02-17 | 2016-07-20 | 中国建设银行股份有限公司 | 一种用于联机交易的数据查询方法和装置 |
CN106095585A (zh) * | 2016-06-22 | 2016-11-09 | 中国建设银行股份有限公司 | 任务请求处理方法、装置和企业信息系统 |
US9747265B2 (en) * | 2011-03-25 | 2017-08-29 | Management Systems Resources, Inc. | Dynamically generating a plurality of interfaces using structured control files |
-
2017
- 2017-07-05 CN CN201710542715.3A patent/CN107330096A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9747265B2 (en) * | 2011-03-25 | 2017-08-29 | Management Systems Resources, Inc. | Dynamically generating a plurality of interfaces using structured control files |
CN103093342A (zh) * | 2013-01-11 | 2013-05-08 | 北京掌上汇通科技发展有限公司 | 一种联机交易处理平台及其交易处理方法 |
CN103631868A (zh) * | 2013-11-04 | 2014-03-12 | 中国电子科技集团公司第十五研究所 | 一种兼容关系数据库的数据管理系统 |
CN105786992A (zh) * | 2016-02-17 | 2016-07-20 | 中国建设银行股份有限公司 | 一种用于联机交易的数据查询方法和装置 |
CN106095585A (zh) * | 2016-06-22 | 2016-11-09 | 中国建设银行股份有限公司 | 任务请求处理方法、装置和企业信息系统 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107943581A (zh) * | 2017-11-14 | 2018-04-20 | 广东欧珀移动通信有限公司 | 应用清理方法、装置、存储介质及电子设备 |
CN107943581B (zh) * | 2017-11-14 | 2020-01-14 | Oppo广东移动通信有限公司 | 应用清理方法、装置、存储介质及电子设备 |
CN108170839A (zh) * | 2018-01-15 | 2018-06-15 | 浙江工业大学 | 一种应用在智能停车联网平台中数据分批导出的方法 |
CN108280223A (zh) * | 2018-02-09 | 2018-07-13 | 弘成科技发展有限公司 | 用于招生录取的dbf数据导入平台及导入方法 |
CN109325002A (zh) * | 2018-09-03 | 2019-02-12 | 北京京东金融科技控股有限公司 | 文本文件处理方法、装置、系统、电子设备、存储介质 |
CN109727106A (zh) * | 2018-09-13 | 2019-05-07 | 网联清算有限公司 | 对账文件的重组方法、装置及电子设备 |
CN109800259A (zh) * | 2018-12-11 | 2019-05-24 | 深圳市金证科技股份有限公司 | 数据采集方法、装置及终端设备 |
CN109726175A (zh) * | 2018-12-29 | 2019-05-07 | 北京赛思信安技术股份有限公司 | 一种基于HBase的海量文件离线分区管理方法 |
CN110069449A (zh) * | 2019-03-20 | 2019-07-30 | 平安科技(深圳)有限公司 | 文件处理方法、装置、计算机设备和存储介质 |
WO2020186786A1 (zh) * | 2019-03-20 | 2020-09-24 | 平安科技(深圳)有限公司 | 文件处理方法、装置、计算机设备和存储介质 |
CN110069449B (zh) * | 2019-03-20 | 2023-09-26 | 平安科技(深圳)有限公司 | 文件处理方法、装置、计算机设备和存储介质 |
CN110046191A (zh) * | 2019-04-22 | 2019-07-23 | 成都四方伟业软件股份有限公司 | 一种数据导出配置方法及装置 |
CN110276205A (zh) * | 2019-06-06 | 2019-09-24 | 深圳市杰科数码有限公司 | 产品序列号文件生成方法、系统、电子装置及存储介质 |
CN110377563A (zh) * | 2019-07-23 | 2019-10-25 | 中国工商银行股份有限公司 | 文件处理方法和装置、以及电子设备和可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107330096A (zh) | 文件处理方法及装置、计算机可读存储介质和电子设备 | |
US20220391763A1 (en) | Machine learning service | |
US10620943B2 (en) | Distributed parallel build system | |
CN108595157B (zh) | 区块链数据的处理方法、装置、设备和存储介质 | |
US9886670B2 (en) | Feature processing recipes for machine learning | |
US9747086B2 (en) | Transmission point pattern extraction from executable code in message passing environments | |
US9575813B2 (en) | Pattern matching process scheduler with upstream optimization | |
WO2015088853A1 (en) | Launching a client application based on a message | |
US11656863B2 (en) | Automated bucket policy management arrangements | |
US11586437B1 (en) | Data flow tracking in program verification | |
US9904574B2 (en) | Parallel computing without requiring antecedent code deployment | |
CN103294482B (zh) | 用于PWscf并行计算系统的Web服务封装方法以及系统 | |
JP2006146679A (ja) | 情報処理装置の制御方法、情報処理装置、及びプログラム | |
CN109791502B (zh) | 针对异构设备类型的对等分布式计算系统 | |
CN116258469B (zh) | 基于通信软件的业务数据处理方法、系统、设备及介质 | |
US11443375B1 (en) | Meta data driven state transition engine for order management system | |
US11262986B2 (en) | Automatic software generation for computer systems | |
US9430196B2 (en) | Message inlining | |
CN111027977A (zh) | 一种数据验证的方法、装置及电子设备 | |
CN114707961A (zh) | 基于审批流配置的待审批任务执行方法、装置、设备、介质和程序产品 | |
CN108920219B (zh) | 一种基于开放平台的业务处理方法及装置 | |
US7861242B2 (en) | Mobile application morphing system and method | |
CN108694046B (zh) | 容器装配方法和装置 | |
CN111538491A (zh) | 数据事件处理方法、装置、设备和存储介质 | |
US11704096B2 (en) | Monitoring application code usage for improved implementation of reusable code |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20171107 |
|
RJ01 | Rejection of invention patent application after publication |