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、数据量很大的时候,需要人为拆分为多段分次导入,效率低下且容易出错。涉及大数量信息导入的过程中如何高效、无差错且对数据库低压力的导入成为亟待解决的问题。
技术实现思路
有鉴于此,本专利技术提供一种导入大数量数据的方法、装置及系统,无需人工将数据拆分多段进行人工导入,能够解决目前数据导入的性能问题,且减轻对数据库的压力,提高用户使用体验和系统可用性。为实现上述目的,根据本专利技术的一个方面,提供了一种导入大数量数据的方 ...
【技术保护点】
一种导入大数量数据的方法,其特征在于,包括:获取按顺序编号的数据的导入任务,记录所述数据的起始编号和终止编号;利用任务调度工具定时抓取所述导入任务,并根据数据库性能将所述导入任务按照编号划分为若干分段任务;对于分段任务对应的分段数据进行防重检验,若数据库中没有存储所述分段数据,则执行所述分段任务,将所述分段数据导入数据库中,并缓存所述分段数据,否则所述分段任务不予执行。
【技术特征摘要】
1.一种导入大数量数据的方法,其特征在于,包括:获取按顺序编号的数据的导入任务,记录所述数据的起始编号和终止编号;利用任务调度工具定时抓取所述导入任务,并根据数据库性能将所述导入任务按照编号划分为若干分段任务;对于分段任务对应的分段数据进行防重检验,若数据库中没有存储所述分段数据,则执行所述分段任务,将所述分段数据导入数据库中,并缓存所述分段数据,否则所述分段任务不予执行。2.根据权利要求1所述的方法,其特征在于,利用任务调度工具定时抓取所述导入任务包括:按照先进先出的规则,定时抓取时间最早且未被执行的导入任务。3.根据权利要求1所述的方法,其特征在于,所述任务调度工具为Quartz、Timer、Elastic-job中的一种或几种。4.根据权利要求1所述的方法,其特征在于,对分段任务对应的分段数据进行防重检验包括:利用缓存技术,判断数据库中是否已存储所述分段数据;和/或为数据库中存储的数据建立唯一索引,并利用所述唯一索引判断数据库中是否已存储所述分段数据。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:采用Redis、Memcache与Encache中的至少一种进行缓存。6.根据权利要求1-5任一项所述的方法,其特征在于,所述数据为发票信息数据,包括发票号码及其对应的发票代码,其中,发票号码为连续编号的号码,发票代码为同一代码。7.一种导入大数量数据的装置,其特征在于,包括:任务获取模块,用于获取按顺序编号的数据的导入任务,记录所述数据的起始编号和终止编号;分段模块,用于利用任务调度工具定时抓取所述导入任务,并根据数据库性能将所述导入任务按照编号划分为若干分...
【专利技术属性】
技术研发人员:马文军,
申请(专利权)人:北京京东尚科信息技术有限公司,北京京东世纪贸易有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。