导入大数量数据的方法、装置及系统制造方法及图纸

技术编号:17211832 阅读:26 留言:0更新日期:2018-02-07 23:03
本发明专利技术提供一种导入大数量数据的方法、装置及系统,无需人工将数据拆分多段进行人工导入,能够解决目前数据导入的性能问题,且减轻对数据库的压力,提高用户使用体验和系统可用性。该方法包括:获取按顺序编号的数据的导入任务,记录所述数据的起始编号和终止编号;利用任务调度工具定时抓取所述导入任务,并根据数据库性能将所述导入任务按照编号划分为若干分段任务;对于分段任务对应的分段数据进行防重检验,若数据库中没有存储所述分段数据,则执行所述分段任务,将所述分段数据导入数据库中,并缓存所述分段数据,否则所述分段任务不予执行。

Methods, devices and systems for importing large amounts of data

The present invention provides a method, a large number of data into a device and a system without manual split data into multiple segments for artificial, can solve the performance problems of current data import, and reduce the pressure on the database, improve the user experience and system availability. The method includes: obtaining the sequentially numbered data import task, record the starting number of the data and the termination number; task scheduling tool timing snatching the import task according to the performance of the database in accordance with the number of import task is divided into several sub tasks; for piecewise segmented data correspond to the anti heavy task the inspection, if not stored in the database of the segmented data, executing the segmentation task, the segmented data into the database, and the cache of the segmented data, otherwise the segmentation task not to execute.

【技术实现步骤摘要】
导入大数量数据的方法、装置及系统
本专利技术涉及计算机技术及软件领域,尤其涉及一种导入大数量数据的方法、装置及系统。
技术介绍
数据应用和处理过程中,往往存在需要向数据库导入大数量数据的情形。尤其涉及位于纸质等媒介上的数据(例如发票)的时候,这些数据信息不能有效的被系统感知,现有技术中只能由专门的操作人员进行统一导入。例如规模较大企业一般会一次性购置多箱纸质发票,然后需要导入数据人员手动对发票予以拆分,分次导入系统,操作麻烦且容易分错;且在数据增多的情况下,由于导入数据人员的增多,大量的并发导入,也会严重影响系统性能,给数据库带来较大压力,甚至一定程度上会导致数据库的崩溃,影响各相关系统的应用。具体而言:1、数据库是有性能瓶颈的,导入数据过程中存在大量并发情况,且每次导入数据量又较大,极易导致数据库崩溃;2、随着业务的发展,数据量、并发操作都会随之增长,这也会给当前处理性能稳定的系统带来更大压力;3、由于数据导入是人为操作,因此不可避免会产生导入数据重复的情况的发生,系统需要对各个数据进行防止重复导入的校验工作,导致工作量的增加,导入效率的降低;4、数据量很大的时候,需要人为拆分为多段分次导入,效率低下且容易出错。涉及大数量信息导入的过程中如何高效、无差错且对数据库低压力的导入成为亟待解决的问题。
技术实现思路
有鉴于此,本专利技术提供一种导入大数量数据的方法、装置及系统,无需人工将数据拆分多段进行人工导入,能够解决目前数据导入的性能问题,且减轻对数据库的压力,提高用户使用体验和系统可用性。为实现上述目的,根据本专利技术的一个方面,提供了一种导入大数量数据的方法。本专利技术的一种导入大数量数据的方法包括:获取按顺序编号的数据的导入任务,记录所述数据的起始编号和终止编号;利用任务调度工具定时抓取所述导入任务,并根据数据库性能将所述导入任务按照编号划分为若干分段任务;对于分段任务对应的分段数据进行防重检验,若数据库中没有存储所述分段数据,则执行所述分段任务,将所述分段数据导入数据库中,并缓存所述分段数据,否则所述分段任务不予执行。可选地,利用任务调度工具定时抓取所述导入任务包括:按照先进先出的规则,定时抓取时间最早且未被执行的导入任务。可选地,所述任务调度工具为Quartz、Timer、Elastic-job中的一种或几种。可选地,对分段任务对应的分段数据进行防重检验包括:利用缓存技术,判断数据库中是否已存储所述分段数据;和/或为数据库中存储的数据建立唯一索引,并利用所述唯一索引判断数据库中是否已存储所述分段数据。可选地,所述方法还包括:采用Redis、Memcache与Encache中的至少一种进行缓存。可选地,所述数据为发票信息数据,包括发票号码及其对应的发票代码,其中,发票号码为连续编号的号码,发票代码为同一代码。为实现上述目的,根据本专利技术的另一方面,提供了一种导入大数量数据的装置。本专利技术的一种导入大数量数据的装置包括:任务获取模块,用于获取按顺序编号的数据的导入任务,记录所述数据的起始编号和终止编号;分段模块,用于利用任务调度工具定时抓取所述导入任务,并根据数据库性能将所述导入任务按照编号划分为若干分段任务;执行模块,用于对于分段任务对应的分段数据进行防重检验,若数据库中没有存储所述分段数据,则执行所述分段任务,将所述分段数据导入数据库中,并缓存所述分段数据,否则所述分段任务不予执行。可选地,所述分段模块还用于:按照先进先出的规则,定时抓取时间最早且未被执行的导入任务。可选地,所述任务调度工具为Quartz、Timer、Elastic-job中的一种或几种。可选地,所述执行模块还用于:利用缓存技术,判断数据库中是否已存储所述分段数据;和/或为数据库中存储的数据建立唯一索引,并利用所述唯一索引判断数据库中是否已存储所述分段数据。可选地,所述装置中:采用Redis、Memcache与Encache中的至少一种进行缓存。可选地,所述数据为发票信息数据,包括发票号码及其对应的发票代码,其中,发票号码为连续编号的号码,发票代码为同一代码。为实现上述目的,根据本专利技术的再一方面,提供了一种导入大数量数据的系统。本专利技术的一种导入大数量数据的系统包括:存储器和处理器;其中,所述存储器存储指令;所述处理器被配置为根据所述指令执行下列步骤:获取按顺序编号的数据的导入任务,记录所述数据的起始编号和终止编号;利用任务调度工具定时抓取所述导入任务,并根据数据库性能将所述导入任务按照编号划分为若干分段任务;对于分段任务对应的分段数据进行防重检验,若数据库中没有存储所述分段数据,则执行所述分段任务,将所述分段数据导入数据库中,并缓存所述分段数据,否则所述分段任务不予执行。根据本专利技术的技术方案,通过获取导入任务并记录起止号码信息,从而可以确定要执行的任务的内容和范围;通过采用任务调度工具实现定时调度,从而可以及时的获取数据导入任务;通过根据数据库的导入数据性能将导入任务划分为若干分段,从而可以在保证导入效率的同时缓解数据库的压力;通过基于缓存技术或数据库中存储数据的唯一索引进行待导入数据的防重校验,从而可以确保导入数据的准确性,提升导入效率和操作体验。附图说明附图用于更好地理解本专利技术,不构成对本专利技术的不当限定。其中:图1是根据本专利技术实施例的导入大数量数据的方法的主要步骤的示意图;图2是根据本专利技术实施例的导入大数量数据的方法的主要流程的示意图;图3是根据本专利技术实施例的导入大数量数据的装置的主要模块的示意图;图4是根据本专利技术实施例的导入大数量数据的系统的主要部分的示意图。具体实施方式以下结合附图对本专利技术的示范性实施例做出说明,其中包括本专利技术实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本专利技术的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。现有的向数据库导入大数量数据的情形中,尤其涉及位于纸质等媒介上的数据(例如发票)的时候,这些数据信息往往不能有效的被导入系统感知,从而由专门的操作人员进行统一导入。但事实上,涉及大数量信息导入的过程中,数据的编码一般是顺序编排的。本专利技术实施例的导入大数量数据的技术方案主要是利用异步执行数据导入操作的原理,无需人为拆分多段数据进行导入,解决目前大数量数据导入的性能问题,并且可以减轻对数据库的压力,提高用户导入数据体验和导入系统可用性。具体而言,是在获得导入数据任务后,记录相关导入信息到数据导入任务表,然后利用基于开源工具包Quartz等实现定时调度,定时的获取一批数据导入任务信息,然后基于开源缓存技术例如可以但不限于是Redis进行数据的防重校验,最后执行数据的导入数据库的操作。图1是根据本专利技术实施例的导入大数量数据的方法的主要步骤的示意图。如图1所示,本专利技术实施例的导入大数量数据的方法主要包括如下步骤:步骤S11:获取按顺序编号的数据的导入任务,记录数据的起始编号和终止编号。步骤S12:利用任务调度工具定时抓取导入任务,并根据数据库性能将导入任务按照编号划分为若干分段任务。其中,本专利技术实施例中,利用任务调度工具定时抓取导入任务可以是按照先进先出的规则,定时抓取时间最早且未被执行的本文档来自技高网...
导入大数量数据的方法、装置及系统

【技术保护点】
一种导入大数量数据的方法,其特征在于,包括:获取按顺序编号的数据的导入任务,记录所述数据的起始编号和终止编号;利用任务调度工具定时抓取所述导入任务,并根据数据库性能将所述导入任务按照编号划分为若干分段任务;对于分段任务对应的分段数据进行防重检验,若数据库中没有存储所述分段数据,则执行所述分段任务,将所述分段数据导入数据库中,并缓存所述分段数据,否则所述分段任务不予执行。

【技术特征摘要】
1.一种导入大数量数据的方法,其特征在于,包括:获取按顺序编号的数据的导入任务,记录所述数据的起始编号和终止编号;利用任务调度工具定时抓取所述导入任务,并根据数据库性能将所述导入任务按照编号划分为若干分段任务;对于分段任务对应的分段数据进行防重检验,若数据库中没有存储所述分段数据,则执行所述分段任务,将所述分段数据导入数据库中,并缓存所述分段数据,否则所述分段任务不予执行。2.根据权利要求1所述的方法,其特征在于,利用任务调度工具定时抓取所述导入任务包括:按照先进先出的规则,定时抓取时间最早且未被执行的导入任务。3.根据权利要求1所述的方法,其特征在于,所述任务调度工具为Quartz、Timer、Elastic-job中的一种或几种。4.根据权利要求1所述的方法,其特征在于,对分段任务对应的分段数据进行防重检验包括:利用缓存技术,判断数据库中是否已存储所述分段数据;和/或为数据库中存储的数据建立唯一索引,并利用所述唯一索引判断数据库中是否已存储所述分段数据。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:采用Redis、Memcache与Encache中的至少一种进行缓存。6.根据权利要求1-5任一项所述的方法,其特征在于,所述数据为发票信息数据,包括发票号码及其对应的发票代码,其中,发票号码为连续编号的号码,发票代码为同一代码。7.一种导入大数量数据的装置,其特征在于,包括:任务获取模块,用于获取按顺序编号的数据的导入任务,记录所述数据的起始编号和终止编号;分段模块,用于利用任务调度工具定时抓取所述导入任务,并根据数据库性能将所述导入任务按照编号划分为若干分...

【专利技术属性】
技术研发人员:马文军
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京,11

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

1