CN110502562A - 数据导入方法及装置、可读存储介质 - Google Patents
数据导入方法及装置、可读存储介质 Download PDFInfo
- Publication number
- CN110502562A CN110502562A CN201910766884.4A CN201910766884A CN110502562A CN 110502562 A CN110502562 A CN 110502562A CN 201910766884 A CN201910766884 A CN 201910766884A CN 110502562 A CN110502562 A CN 110502562A
- Authority
- CN
- China
- Prior art keywords
- data
- imported
- file
- postposition
- data file
- 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/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种数据导入方法,所述数据导入方法包括如下步骤:监控到待导入数据文件后,获取所述待导入数据文件对应的解析指令;控制一个或多个数据执行线程按照所述解析指令对所述待导入数据文件进行解析;将所述解析文件导入临时数据表中,并根据所述临时数据表的数据更新目标数据表的数据。本发明还提供了一种数据导入装置和可读存储介质。这样,本发明提供的技术方案将数据导入分解成目录监控、数据导入等子阶段,每一阶段通过一个或多个线程单独实现,以降低了数据导入过程复杂度,增强了数据导入过程的可控性。
Description
技术领域
本发明涉及网络数据技术领域,特别涉及一种数据导入方法及装置、可读存储介质。
背景技术
目前,系统与系统之间需要进行数据交换,而交换方式一般为从源系统生成数据文件,然后将数据文件传入目标系统,最后,由目标系统将数据文件导入到数据表中。
对于数据比较多的项目,现有方案一般采用手工数据导入工具,比如:采用MYSQL(关系型数据库管理系统)、SQL Server(Structured Query LanguageServer)等工具,但现有的方案只能通过手工导入文件,无法实现自动导入,且导入的数据文件的过程较为复杂,可控性低。
发明内容
本发明的主要目的是提供一种数据导入方法及装置、可读存储介质,解决了现有数据导入只能通过手工导入文件,无法实现自动导入,且导入过程较为复杂,可控性低的问题。
为实现上述目的,本发明提出了一种数据导入方法,所述数据导入方法包括:
监控到待导入数据文件后,获取所述待导入数据文件对应的解析指令;
控制一个或多个数据执行线程按照所述解析指令对所述待导入数据文件进行解析;
将解析后的所述待导入数据文件导入临时数据表中,并根据所述临时数据表的数据更新目标数据表的数据。
可选地,所述监控到待导入数据文件后,获取所述待导入数据文件对应的解析指令的步骤之前,还包括:
获取待监控目录的文件锁;
若所述文件锁获取成功,则对所述待监控目录的数据文件进行监控。
可选地,当所述待导入数据文件包括多个时,所述监控到待导入数据文件后,获取所述待导入数据文件对应的解析指令的步骤包括:
监控到待导入数据文件后,将所述待导入数据文件添加至导入任务队列;
按照所述导入任务队列依次获取各个所述待导入数据文件对应的解析指令。
可选地,所述将所述待导入数据文件添加至导入任务队列的步骤包括:
获取监控到各个所述待导入数据文件的时间点;
根据所述时间点对所述待导入数据文件进行排序,得到排序结果;
根据所述排序结果将所述待导入数据文件添加至所述导入任务队列。
可选地,所述将解析后的所述待导入数据文件导入临时数据表中,并根据所述临时数据表的数据更新目标数据表的数据的步骤包括:
新建临时数据表,并将解析后的所述待导入数据文件导入所述临时数据表中;
删除所述目标数据表中与所述临时数据表的数据对应的数据,并将所述临时数据表的数据导入至所述目标数据表。
可选地,所述将解析后的所述待导入数据文件导入临时数据表中,并根据所述临时数据表的数据更新目标数据表的数据的步骤之后,还包括:
在所述目标数据表中的数据更新成功后,获取所述目标数据表中更新后的数据文件携带的后置动作任务;
将所述后置动作任务添加至后置动作任务队列;
按照所述后置动作任务队列控制一个或多个后置动作执行线程对所述后置动作任务进行处理。
可选地,所述按照所述后置动作任务队列控制一个或多个后置动作执行线程对所述后置动作任务进行处理的步骤之后,还包括:
若处理成功,则将处理成功后的所述后置动作任务移除;
若处理失败,则将处理失败的所述后置动作任务重新添加至所述后置动作任务队列,以在所述后置动作任务队列中等待下一次处理。
可选地,所述控制一个或多个数据执行线程按照所述解析指令对所述待导入数据文件进行解析的步骤之后,还包括:
获取服务器当前的运行状态;
在所述服务器当前的运行状态满足预设条件时,执行所述将解析后的所述待导入数据文件导入临时数据表中,并根据所述临时数据表的数据更新目标数据表的数据的步骤。
为实现上述目的,本发明提出了一种数据导入装置,所述数据导入装置包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据导入程序,所述处理器执行所述数据导入程序时,实现上述的数据导入方法的步骤。
为实现上述目的,本发明提出了一种可读存储介质,所述可读存储介质上存储有数据导入程序,所述数据导入程序被处理器执行时实现上述的数据导入方法的步骤。
本发明提供了一种数据导入方法,所述数据导入方法包括如下步骤:监控到待导入数据文件后,获取所述待导入数据文件对应的解析指令;控制一个或多个数据执行线程按照所述解析指令对所述待导入数据文件进行解析;将解析后的所述待导入数据文件导入临时数据表中,并根据所述临时数据表的数据更新目标数据表的数据。这样,本发明提供的技术方案将数据导入分解成目录监控、数据导入等子阶段,每一阶段通过一个或多个线程单独实现,以降低了数据导入过程复杂度,增强了数据导入过程的可控性。
附图说明
为了更清楚地说明本发明实施例或示例性中的技术方案,下面将对实施例或示例性描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的获得其他的附图。
图1为本发明实施例方案涉及的硬件运行环境的装置结构示意图;
图2为本发明数据导入方法第一实施例的步骤流程示意图;
图3为本发明数据导入方法第二实施例的步骤流程示意图;
图4为本发明数据导入方法第三实施例的步骤流程示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,图1是本发明实施例方案涉及的终端的硬件运行环境示意图。
如图1所示,该终端可以包括:处理器1001,例如CPU,网络接口1004,用户接口1003,存储器1005,通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如键盘(Keyboard)、遥控器,可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如存储器(non-volatile memory)),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的终端的结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及数据导入程序。
在图1所示的终端中,网络接口1004主要用于连接后台服务器,与后台服务器进行数据通信;用户接口1003主要用于连接客户端(用户端),与客户端进行数据通信;而处理器1001可以用于调用存储器1005中存储的数据导入程序,并执行以下操作:
监控到待导入数据文件后,获取所述待导入数据文件对应的解析指令;
控制一个或多个数据执行线程按照所述解析指令对所述待导入数据文件进行解析;
将解析后的所述待导入数据文件导入临时数据表中,并根据所述临时数据表的数据更新目标数据表的数据。
进一步地,处理器1001可以调用存储器1005中存储的数据导入程序,还执行以下操作:
获取待监控目录的文件锁;
若所述文件锁获取成功,则对所述待监控目录的数据文件进行监控。
进一步地,处理器1001可以调用存储器1005中存储的数据导入程序,还执行以下操作:
监控到待导入数据文件后,将所述待导入数据文件添加至导入任务队列;
按照所述导入任务队列依次获取各个所述待导入数据文件对应的解析指令。
进一步地,处理器1001可以调用存储器1005中存储的数据导入程序,还执行以下操作:
获取监控到各个所述待导入数据文件的时间点;
根据所述时间点对所述待导入数据文件进行排序,得到排序结果;
根据所述排序结果将所述待导入数据文件添加至所述导入任务队列。
进一步地,处理器1001可以调用存储器1005中存储的数据导入程序,还执行以下操作:
新建临时数据表,并将解析后的所述待导入数据文件导入所述临时数据表中;
删除所述目标数据表中与所述临时数据表的数据对应的数据,并将所述临时数据表的数据导入至所述目标数据表。
进一步地,处理器1001可以调用存储器1005中存储的数据导入程序,还执行以下操作:
在所述目标数据表中的数据更新成功后,获取所述目标数据表中更新后的数据文件携带的后置动作任务;
将所述后置动作任务添加至后置动作任务队列;
按照所述后置动作任务队列控制一个或多个后置动作执行线程对后置动作任务进行处理。
进一步地,处理器1001可以调用存储器1005中存储的数据导入程序,还执行以下操作:
若处理成功,则将处理成功后的所述后置动作任务移除;
若处理失败,则将处理失败的所述后置动作任务添加至所述后置动作任务队列,以在所述后置动作任务队列中等待下一次处理。
进一步地,处理器1001可以调用存储器1005中存储的数据导入程序,还执行以下操作:
获取服务器当前的运行状态;
在所述服务器当前的运行状态满足预设条件时,执行将解析后的所述待导入数据文件导入临时数据表中,并根据所述临时数据表的数据更新目标数据表的数据的步骤。
本发明提供了一种数据导入方法。
参照图2,图2为本发明数据导入方法第一实施例的流程示意图。
本实施例提出一种数据导入方法,该数据导入方法包括:
S10、监控到待导入数据文件后,获取所述待导入数据文件对应的解析指令;
在一实施例中,监控到待导入数据文件后,获取所述待导入数据文件对应的解析指令。其中,通过监控线程监控待导入数据文件,即监控线程用于实时或定时监控一个或多个监控目录是否存在待导入数据文件。其中,待导入数据文件包括多种格式的数据文件,比如:XML文件、XLS文件、XLSX文件、MDB文件、DBF文件等,在此并无限定。
可以理解的是,同一个监控目录一次只能有一个监控线程进行监控,因此,该监控线程必须进行并发控制,即启动的监控线程数不是越多越好,最佳启动的监控线程数为:
最佳监控线程数=监控目录数/部署的实例个数;
因此,如果部署的实例较多,监控目录不多时,监控线程可以只启动一个线程即可。
而在监控到待导入数据文件后,获取所述待导入数据文件对应的解析指令的步骤之前,还包括:获取待监控目录的文件锁;若所述文件锁获取成功,则对所述监控目录的数据进行监控。即只有在获取到待监控目录的文件锁时,控制监控线程对该待监控目录的数据文件进行监控,并在监控到带导入数据之后,获取所述待导入数据文件对应的解析指令。当监控完待监控目录时,需要释放该待监控目录的文件锁,以便下个监控线程对该监控目录进行监控。
进一步地,监控线程在监控到待导入数据文件时,并不是立即处理,而是先对该待导入数据文件添加独占锁,如果添加成功,则说明数据已经传输完毕,获取所述待导入数据文件对应的解析指令;如果添加失败,则说明数据还没有传输完,不能立即处理,需要等待下个处理周期。
其中,当所述待导入数据文件包括多个时,所述监控到待导入数据文件后,获取所述待导入数据文件对应的解析指令的步骤包括:
监控到待导入数据文件后,将所述待导入数据文件添加至导入任务队列;
按照所述导入任务队列依次获取各个所述待导入数据文件对应的解析指令。
进一步地,监控线程监控到待导入数据文件后,将所述待导入数据文件添加至导入任务队列。其中,导入任务队列用于存放待导入数据文件,而将待导入数据文件添加至导入任务队列可以保证待导入数据文件不会丢失,并在该导入任务队列中排队等待处理。具体地,监控到待导入数据文件后,将该待导入数据文件重命名一个随机文件名后移入工作目录,并生成导入任务项放入导入任务队列中,然后生成一个解析指令,并通知数据导入线程进行解析处理。在将待导入数据文件重命名一个随机文件名并移入工作目录后,会将该待导入数据文件拷贝至备份目录中,以在数据文件丢失或被破坏时,可以从备份目录中取出该待导入数据进行解析。
进一步地,将工作目录中的待导入数据文件生成导入任务项,并放入导入任务队列,并在导入成功之后,删除该工作目录中的待导入数据文件。
进一步地,监控到待导入数据文件后,获取监控到各个所述待导入数据文件的时间点,并根据所述时间点对所述待导入数据文件进行排序,得到排序结果。其中,时间点为各个待导入数据文件的监控时间,根据监控时间对待导入数据文件进行排序,根据所述排序结果将所述待导入数据文件添加至所述导入任务队列。
进一步地,按照所述导入任务队列依次获取各个所述待导入数据文件对应的解析指令,即导入任务队列中的每个待导入数据文件具有一个对应的解析指令。
进一步地,数据导入线程用于从导入任务队列中取出待导入数据文件放到数据执行线程中处理,其并没有完成具体导入工作,因此一般只需要启动一个数据导入线程即可,当然也可以启动多个数据导入线程。不过,即使启动一个数据导入线程,为了使数据导入线程达到高可用,会启动多个实例(进程),因此,在数据导入线程从导入任务队列中取出待导入数据文件时,也需要设置文件锁,以保证一次只有一个数据导入线程能进入导入任务队列中,从而防止一个待导入数据文件被多个数据导入线程进行处理。
进一步地,数据导入线程在操作导入任务队列时,由于设置了文件锁控制整个导入任务队列的访问,而数据导入执行线程在执行具体数据导入任务时,每个任务都有一个文件锁,也就是控制一个任务一次只能有一个线程执行。即在数据导入的每个阶段都支持采用线程进行并发处理,提升系统性能,同时使用文件锁做为多线程、高可用集群环境下各线程的同步控制,保证高效率并发处理。
另外,导入任务队列中的所有待导入数据文件都可以用不同数据导入线程进行并发处理,比如,当一个配置的数据导入任务同时来了多个待导入数据文件,多个待导入数据文件必须按照先后顺序依次执行,即这些待导入数据文件就需要放在一个队列的子队列中,由一个数据执行线程依次执行。
S20、控制一个或多个数据执行线程按照所述解析指令对所述待导入数据文件进行解析;
在一实施例中,在获取到解析指令时,数据导入线程从导入任务队列中取出解析指令对应的待导入数据文件,然后生成一组任务对象集,放入数据执行线程进行解析,如果解析失败,且解析次数没有达到预定阈值,则通过数据导入线程将解析失败的待导入数据文件重新添加回导入任务队列,以等待另一数据执行线程进行重试。
S30、将解析后的所述待导入数据文件导入临时数据表中,并根据所述临时数据表的数据更新目标数据表的数据。
在一实施例中,当获取所述待导入数据文件对应的解析指令后,控制一个或多个数据执行线程按照所述解析指令对所述待导入数据文件进行解析,并将解析后的待导入数据存入服务器的内存中。其中,该解析指令为控制一个或多个数据执行线程对所述待导入数据文件进行解析,该解析为抽取待导入数据文件中对应的数据并生成一个集合对象存储至服务器的内存中。
进一步地,将解析后的所述待导入数据文件导入临时数据表中,并根据所述临时数据表的数据更新目标数据表的数据的步骤包括:新建临时数据表,并将解析后的所述待导入数据文件导入所述临时数据表中;删除所述目标数据表中与所述临时数据表的数据对应的数据,并将所述临时数据表的数据导入至所述目标数据表。
具体地,由于待导入数据文件较大,一次导入几十万上百万条记录,而且要控制事务,如果直接解析后的所述待导入数据文件导入目标数据表,同时启动事务,此时因为从应用层逐条插入目标表性能很低,因此将会锁表太长时间,导致此表很长时间不能提供服务,甚至导致死锁。为了解决这一问题,本实施例通过建立一个与目标数据表完全相同结构的临时数据表,然后将解析后的所述待导入数据文件逐条插入临时数据表,此时不启动事务,也不会出现锁表,也不会影响前台访问。在解析后的所述待导入数据文件插入完后启动事务,使用SQL语句批量将临时数据表的数据更新目标数据表的数据,处理速度快且锁表时间很短。
具体地,获取解析后的所述待导入数据文件对应的表结构信息,根据所述表结构信息构造创建临时数据表脚本,调用存储过程传入的创建临时数据表脚本的字符串,根据所述字符串创建临时数据表;判断临时数据表是否创建成功,当临时数据表创建成功时,将解析后的所述待导入数据循环导入临时数据表中,删除所述目标数据表中与所述临时数据表的数据对应的数据,并将所述临时数据表的数据导入至所述目标数据表。即将数据入库模式分为先以非事务模式下,将解析后的所述待导入数据导入临时数据表,再在事务模式下批量从临时数据表导入目标数据表中,从而提高了性能,又保证了事务,也不会出现死锁,以影响数据表的使用时间降到最低。
在本发明的实施例中,所述数据导入方法包括如下步骤:监控到待导入数据文件后,获取所述待导入数据文件对应的解析指令;控制一个或多个数据执行线程按照所述解析指令对所述待导入数据文件进行解析;将解析后的所述待导入数据文件导入临时数据表中,并根据所述临时数据表的数据更新目标数据表的数据。这样,本发明提供的技术方案将数据导入分解成目录监控、数据导入等子阶段,每一阶段通过一个或多个线程单独实现,以降低了数据导入过程复杂度,增强了数据导入过程的可控性。
进一步地,参照图3,基于第一实施例提出本发明第二实施例,在本实施例中,所述将解析后的所述待导入数据文件导入临时数据表中,并根据所述临时数据表的数据更新目标数据表的数据的步骤之后,还包括:
S40、在所述目标数据表中的数据更新成功后,获取所述目标数据表中更新后的数据文件携带的后置动作任务;
S50、将所述后置动作任务添加至后置动作任务队列;
S60、按照所述后置动作任务队列控制一个或多个后置动作执行线程对所述后置动作任务进行处理。
在一实施例中,在所述目标数据表中的数据更新成功后,即将所述目标数据表中更新后的数据文件携带的后置动作任务添加至目标数据表成功后,判断所述目标数据表中更新后的数据文件是否携带的有后置动作任务,在确定所述目标数据表中更新后的数据文件携带有后置动作任务时,获取所述目标数据表中更新后的数据文件中携带的后置动作任务,并将后置动作任务添加至后置动作任务队列。其中,后置动作任务队列用于存放后置动作任务,而将后置动作任务添加至后置动作任务队列可以保证后置动作任务不会丢失,并在该后置动作任务队列中排队等待处理。
进一步地,当后置动作任务为多个时,将该后置动作任务进行排序,得到排序结果;根据所述排序结果将所述后置动作任务添加至所述后置动作任务队列。
进一步地,通过后置动作线程将后置动作任务从后置动作任务队列中取出后置动作任务,然后生成一组任务对象集,放入后置动作执行线程进行处理,如果处理失败,且处理次数没有达到预定阈值,则通过后置动作线程将处理失败的待导入数据文件重新添加回后置动作任务队列,以等待另一后置动作执行线程进行重试。
进一步地,后置动作线程用于从后置动作任务队列中取出后置动作任务放到后置动作线程中处理,其并没有完成具体处理工作,因此一般只需要启动一个后置动作线程即可,当然也可以启动多个后置动作线程。不过,即使启动一个后置动作线程,为了使后置动作线程达到高可用,会启动多个实例(进程),因此,在后置动作线程从后置动作任务队列中取出解析文件时,也需要设置文件锁,以保证一次只有一个后置动作线程能进入后置动作任务队列中,从而防止一个解析文件被多个后置动作线程进行处理。
进一步地,后置动作线程在操作后置动作任务队列时,由于设置了文件锁控制整个后置动作任务队列的访问,而后置动作执行线程在执行具体解析任务时,每个任务都有一个文件锁,也就是控制一个任务一次只能有一个线程执行。即在任务解析的每个阶段都支持采用线程进行并发处理,提升系统性能,同时使用文件锁做为多线程、高可用集群环境下各线程的同步控制,保证高效率并发处理。
另外,后置动作任务队列中的所有后置动作任务都可以用不同后置动作线程进行并发处理,比如,当一个配置的后置动作任务同时来了多个后置动作任务,多个后置动作任务必须按照先后顺序依次执行,即这些后置动作任务就需要放在一个队列的子队列中,由一个后置动作执行线程依次执行。
具体地,按照所述后置动作任务队列控制一个或多个后置动作执行线程对所述后置动作任务进行处理。其中,对后置动作任务进行处理可以包括将对应的数据进行建表等操作,在此并无限制。
进一步地,在控制一个或多个后置动作执行线程对所述后置动作任务进行处理后,判断后置动作执行线程对后置动作任务的处理是否成功,若处理成功,则将处理成功后的所述后置动作任务移除;若处理失败,则将处理失败的所述后置动作任务重新添加至所述后置动作任务队列,以在所述后置动作任务队列中等待下一次处理,从而在处理失败时又能反复重试,某个线程或实例处理失败时,其他线程和实例能继续处理,保证后置任务处理的高可用。
这样,本发明提供的技术方案将具有后置动作任务的解析文件添加至后置动作任务队列中,以保证所有任务能排队处理,处理失败时又能反复重试,即在某个线程或实例处理失败时,其他线程和实例能继续处理,保证后置任务处理的高可用。
进一步地,参照图4,基于第一实施例提出本发明第三实施例,在本实施例中,所述控制一个或多个数据执行线程按照所述解析指令对所述待导入数据文件进行解析的步骤之后,还包括:
S70、获取服务器当前的运行状态;
在所述服务器当前的运行状态满足预设条件时,执行步骤S30。
本实施例中,数据表集群的服务器性能决定了数据导入效率,当数据表集群出现高负载时,会造成数据导入的阻塞、延迟,数据的延迟导入进而会影响对新数据处理计算的实时性,并且该影响会随着数据导入量的增加而愈加明显。可实时监控服务器的运行状态,在检测到服务器的负载空闲或者正常时,可将解析文件导入至目标数据表。
进一步地,在服务器当前的运行状态满足预设条件时,执行步骤S30,即将所述解析文件导入临时数据表中,并根据所述临时数据表的数据更新目标数据表的数据。
这样,获取服务器当前的运行状态,在所述服务器当前的运行状态满足所述预设条件时,才将解析文件导入至目标数据表,从而实现数据的快速导入。
本发明还提出一种数据导入装置,所述数据导入装置包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据导入程序,所述处理器执行所述数据导入程序时,实现如以上任一实施例所述的数据导入方法的步骤。
本发明还提出一种可读存储介质,该可读存储介质上存储有数据导入程序,所述数据导入程序被处理器执行时实现如以上任一实施例所述的数据导入方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,云端服务器,或者网络设备等)执行本发明各个实施例的方法。
以上所述仅为本发明的可选实施例,并非因此限制本发明的专利范围,凡是在本发明的构思下,利用本发明说明书及附图内容所作的等效变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。
Claims (10)
1.一种数据导入方法,其特征在于,所述数据导入方法包括:
监控到待导入数据文件后,获取所述待导入数据文件对应的解析指令;
控制一个或多个数据执行线程按照所述解析指令对所述待导入数据文件进行解析;
将解析后的所述待导入数据文件导入临时数据表中,并根据所述临时数据表的数据更新目标数据表的数据。
2.如权利要求1所述的数据导入方法,其特征在于,所述监控到待导入数据文件后,获取所述待导入数据文件对应的解析指令的步骤之前,还包括:
获取待监控目录的文件锁;
若所述文件锁获取成功,则对所述待监控目录的数据文件进行监控。
3.如权利要求1所述的数据导入方法,其特征在于,当所述待导入数据文件包括多个时,所述监控到待导入数据文件后,获取所述待导入数据文件对应的解析指令的步骤包括:
监控到待导入数据文件后,将所述待导入数据文件添加至导入任务队列;
按照所述导入任务队列依次获取各个所述待导入数据文件对应的解析指令。
4.如权利要求3所述的数据导入方法,其特征在于,所述将所述待导入数据文件添加至导入任务队列的步骤包括:
获取监控到各个所述待导入数据文件的时间点;
根据所述时间点对所述待导入数据文件进行排序,得到排序结果;
根据所述排序结果将所述待导入数据文件添加至所述导入任务队列。
5.如权利要求1所述的数据导入方法,其特征在于,所述将解析后的所述待导入数据文件导入临时数据表中,并根据所述临时数据表的数据更新目标数据表的数据的步骤包括:
新建临时数据表,并将解析后的所述待导入数据文件导入所述临时数据表中;
删除所述目标数据表中与所述临时数据表的数据对应的数据,并将所述临时数据表的数据导入至所述目标数据表。
6.如权利要求1所述的数据导入方法,其特征在于,所述将解析后的所述待导入数据文件导入临时数据表中,并根据所述临时数据表的数据更新目标数据表的数据的步骤之后,还包括:
在所述目标数据表中的数据更新成功后,获取所述目标数据表中更新后的数据文件携带的后置动作任务;
将所述后置动作任务添加至后置动作任务队列;
按照所述后置动作任务队列控制一个或多个后置动作执行线程对所述后置动作任务进行处理。
7.如权利要求6所述的数据导入方法,其特征在于,所述按照所述后置动作任务队列控制一个或多个后置动作执行线程对所述后置动作任务进行处理的步骤之后,还包括:
若处理成功,则将处理成功后的所述后置动作任务移除;
若处理失败,则将处理失败的所述后置动作任务重新添加至所述后置动作任务队列,以在所述后置动作任务队列中等待下一次处理。
8.如权利要求1所述的数据导入方法,其特征在于,所述控制一个或多个数据执行线程按照所述解析指令对所述待导入数据文件进行解析的步骤之后,还包括:
获取服务器当前的运行状态;
在所述服务器当前的运行状态满足预设条件时,执行所述将解析后的所述待导入数据文件导入临时数据表中,并根据所述临时数据表的数据更新目标数据表的数据的步骤。
9.一种数据导入装置,其特征在于,所述数据导入装置包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的数据导入程序,所述处理器执行所述数据导入程序时,实现如权利要求1~8中任一项所述数据导入方法的步骤。
10.一种可读存储介质,其特征在于,所述可读存储介质上存储有数据导入程序,所述数据导入程序被处理器执行时实现如权利要求1~8中任一项所述的数据导入方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910766884.4A CN110502562A (zh) | 2019-08-16 | 2019-08-16 | 数据导入方法及装置、可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910766884.4A CN110502562A (zh) | 2019-08-16 | 2019-08-16 | 数据导入方法及装置、可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110502562A true CN110502562A (zh) | 2019-11-26 |
Family
ID=68588466
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910766884.4A Pending CN110502562A (zh) | 2019-08-16 | 2019-08-16 | 数据导入方法及装置、可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110502562A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112162964A (zh) * | 2020-10-15 | 2021-01-01 | 苏州交驰人工智能研究院有限公司 | 一种自适应数据同步方法、装置、计算机设备及存储介质 |
CN113448841A (zh) * | 2021-05-27 | 2021-09-28 | 工银科技有限公司 | 一种基于多进程的数据加载方法及装置 |
CN113486010A (zh) * | 2021-07-01 | 2021-10-08 | 远光软件股份有限公司 | 数据库的同步方法、装置、服务器和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110087714A1 (en) * | 2009-10-12 | 2011-04-14 | Linkage Technology Group Co., Ltd. | Methodology Based on Oracle's Umbel Data Import and Export |
US20150081652A1 (en) * | 2013-09-16 | 2015-03-19 | Siemens Aktiengesellschaft | Method and a system for merging data into a database table with constraints consistency analysis and customized merge parameters |
CN106095585A (zh) * | 2016-06-22 | 2016-11-09 | 中国建设银行股份有限公司 | 任务请求处理方法、装置和企业信息系统 |
CN107357885A (zh) * | 2017-06-30 | 2017-11-17 | 北京奇虎科技有限公司 | 数据写入方法及装置、电子设备、计算机存储介质 |
CN108804712A (zh) * | 2018-06-27 | 2018-11-13 | 中国建设银行股份有限公司 | 数据导出方法及装置 |
CN108984177A (zh) * | 2018-06-21 | 2018-12-11 | 中国铁塔股份有限公司 | 一种数据处理方法及系统 |
-
2019
- 2019-08-16 CN CN201910766884.4A patent/CN110502562A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110087714A1 (en) * | 2009-10-12 | 2011-04-14 | Linkage Technology Group Co., Ltd. | Methodology Based on Oracle's Umbel Data Import and Export |
US20150081652A1 (en) * | 2013-09-16 | 2015-03-19 | Siemens Aktiengesellschaft | Method and a system for merging data into a database table with constraints consistency analysis and customized merge parameters |
CN106095585A (zh) * | 2016-06-22 | 2016-11-09 | 中国建设银行股份有限公司 | 任务请求处理方法、装置和企业信息系统 |
CN107357885A (zh) * | 2017-06-30 | 2017-11-17 | 北京奇虎科技有限公司 | 数据写入方法及装置、电子设备、计算机存储介质 |
CN108984177A (zh) * | 2018-06-21 | 2018-12-11 | 中国铁塔股份有限公司 | 一种数据处理方法及系统 |
CN108804712A (zh) * | 2018-06-27 | 2018-11-13 | 中国建设银行股份有限公司 | 数据导出方法及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112162964A (zh) * | 2020-10-15 | 2021-01-01 | 苏州交驰人工智能研究院有限公司 | 一种自适应数据同步方法、装置、计算机设备及存储介质 |
CN112162964B (zh) * | 2020-10-15 | 2024-04-05 | 苏州交驰人工智能研究院有限公司 | 一种自适应数据同步方法、装置、计算机设备及存储介质 |
CN113448841A (zh) * | 2021-05-27 | 2021-09-28 | 工银科技有限公司 | 一种基于多进程的数据加载方法及装置 |
CN113486010A (zh) * | 2021-07-01 | 2021-10-08 | 远光软件股份有限公司 | 数据库的同步方法、装置、服务器和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11422853B2 (en) | Dynamic tree determination for data processing | |
CN109739894B (zh) | 补充元数据描述的方法、装置、设备及存储介质 | |
US9996593B1 (en) | Parallel processing framework | |
CN110502562A (zh) | 数据导入方法及装置、可读存储介质 | |
KR102674648B1 (ko) | 문서 분석 방법, 장치, 기기 및 저장 매체 | |
US20140006459A1 (en) | Rule-based automated test data generation | |
US20120159421A1 (en) | System and Method for Exclusion of Inconsistent Objects from Lifecycle Management Processes | |
US8689179B2 (en) | Transportable refactoring object | |
US9569492B2 (en) | Coalescing operation for query processing | |
CN106687955B (zh) | 简化将数据从数据源转移到数据目标的导入过程的调用 | |
US20130111436A1 (en) | Method and framework for software development | |
US9037525B2 (en) | Correlating data from multiple business processes to a business process scenario | |
CN107784026A (zh) | 一种etl数据处理方法及装置 | |
CN105653356B (zh) | 处理多服务器并发操作的方法及装置 | |
CN112261101B (zh) | Mqtt消息中心引入规则引擎的方法 | |
US8407713B2 (en) | Infrastructure of data summarization including light programs and helper steps | |
US11169847B1 (en) | Method and device for processing distributed data solving problem of manual intervention by data analysts | |
US20210365406A1 (en) | Method and apparatus for processing snapshot, device, medium and product | |
CN112948467B (zh) | 数据处理方法及装置、计算机设备和存储介质 | |
CN111831536A (zh) | 一种自动化测试方法和装置 | |
US9563668B2 (en) | Executing a batch process on a repository of information based on an analysis of the information in the repository | |
CN114547007A (zh) | 一种大数据特征提取方法、设备及计算机可读存储介质 | |
CN112748855B (zh) | 处理高并发数据请求的方法和装置 | |
CN108763474B (zh) | 获取交易相关性及执行回归测试的方法、装置及存储介质 | |
CN112579615A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191126 |
|
RJ01 | Rejection of invention patent application after publication |