恭喜国网江苏省电力有限公司镇江供电分公司刘元莹获国家专利权
买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
龙图腾网恭喜国网江苏省电力有限公司镇江供电分公司申请的专利一种数据迁移的方法获国家发明授权专利权,本发明授权专利权由国家知识产权局授予,授权公告号为:CN115576924B 。
龙图腾网通过国家知识产权局官网在2025-05-13发布的发明授权授权公告中获悉:该发明授权的专利申请号/专利号为:202211286629.8,技术领域涉及:G06F16/21;该发明授权一种数据迁移的方法是由刘元莹;胡航;陈永明;赵罡;王昊炜;夏妍;曹美玲;徐溯;侯超;姚鹏;刁杨华;陈董秀;范洵;王文涛设计研发完成,并于2022-10-20向国家知识产权局提交的专利申请。
本一种数据迁移的方法在说明书摘要公布了:本发明公开了一种数据迁移的方法,采用Spark计算引擎读取数据并进行存储,将N个分区中的数据进行重新分区,重新分区后第i个分区中存储的数据均同时分别对应输入至第i个缓冲区,每个缓冲区基于阻塞队列实现。重分区结束后,每个分区都会启动两个线程,一个生产者线程、一个消费者线程,生产者线程遍历每个分区中的每一条数据并将其写入阻塞队列中,并根据数据库资源的的实时使用情况,动态的修改速度的阈值,然后根据阈值控制生产者线程将数据写入阻塞队列中的速度,在生产者线程将数据写入阻塞队列的同时消费者线程从阻塞队列中获取数据并将其写入至数据库中,从而完成数据的同步。本发明能够提高写入速度,从而提高迁移的速度。
本发明授权一种数据迁移的方法在权利要求书中公布了:1.一种数据迁移的方法,其特征在于,采用Spark计算引擎读取数据并进行存储,Spark内部存储数据的逻辑结构是Rdd,Rdd包括第1至第N个分区;将N个分区中的数据进行重新分区,重新分区后第i个分区中存储的数据均同时分别对应输入至第i个缓冲区,每个缓冲区基于阻塞队列实现,其中i=1,2,…,N;重新分区结束后,每个分区都启动两个线程,一个生产者线程和一个消费者线程,生产者线程遍历每个分区中的每一条数据并将其写入阻塞队列中,并根据数据库资源的实时使用情况,动态的修改写入速度的阈值,然后根据阈值控制生产者线程将数据写入阻塞队列中的速度,在生产者线程将数据写入阻塞队列的同时消费者线程从阻塞队列中读取数据并将其写入至数据库中,从而完成数据的同步;数据迁移的方法包括以下步骤:步骤1同时遍历第i个分区中的每条数据并添加到第i个集合Li中,若Li中的数据的条数达到预设的条数,或者虽然Li中的数据的条数未达到预设的条数但是第i个分区中的数据已遍历结束,则运行步骤2;步骤2消费者线程与生产者线程同时进行,消费者线程实时从阻塞队列中读取数据并将其写入至第i个数据库中;生产者线程第k次将Li中的数据写入阻塞队列后,计算第k次写入阻塞队列中数据的大小△Ck;实时计算cp+△Ck,cp为目前阻塞队列中还未被消费者线程读取的数据大小,当消费者线程从阻塞队列中每读取一条数据时更新cp为cp=cp-size,size为每次从阻塞队列中读取数据的大小;如果cp+△Ckcapacity,capacity是阻塞队列的容量,生产者线程会阻塞;直到cp+△Ckcapacity,才会将Li中的数据写入到阻塞队列中,第k次时累计写入阻塞队列的数据的总大小Ck=△Ck+Ck-1,其中,Ck-1为第k-1次时累计写入阻塞队列的数据的总大小;步骤3更新第k次写入阻塞队列后的速度阈值speedk,方法如下:获取第k次生产者线程向阻塞队列写完数据的时间tk,计算距离上一次查询数据库的IO使用率的时间interval1=tk-TT,TT为上一次查询数据库的IO使用率的时间,TT初始值为生产者线程的启动的时间;若interval1=tt,则设置TT=tk,tt是预设的查询数据库的IO使用率时间间隔;获取数据库的IO使用率rate,若Y≥rate≥X,则speedk=speedk-1;若rateY,调整生产者线程向阻塞队列中写入数据速度的下降次数N1=N1+1,生产者线程向阻塞队列中写入数据速度的上升次数N2=0,speedk=speedk-1-ZN1*speedk-1,Z为[0-1];若speedkminSpeed,则speedk=minSpeed;若rateX,调整N2=N2+1,N1=0,则speedk=speedk-1+ZN2*speedk-1,若speedkmaxSpeed,则speedk=maxSpeed;其中X为IO使用率rate的下限范围,Y为IO使用率rate的上限范围,X为[0-40],Y为[60-100],minSpeed是预设的生产者线程向阻塞队列写入数据的最小速度,maxSpeed是预设的生产者线程向阻塞队列写入数据的最大速度;若interval1tt,则speedk=speedk-1;步骤4进行测速,计算测速时间间隔interval2=tk-T,判断如果interval2t,则进入步骤5;否则k=k+1,进入步骤1;其中,T为上一次测速时间,其初始值为生产者线程启动的时间,t为预设的测速时间间隔;步骤5计算当前实际的写入速度speed:speed=Ck-Cinterval2,若speedspeedk,则进入步骤6,否则进入步骤7;其中,C为上一次测速时累计写入阻塞队列的数据的大小;步骤6计算生产者线程的休息时间st,st=speed*interval2speedk-interval2;如果st大于0,则生产者线程开始休息,停止向阻塞队列中继续写入数据,经过st后生产者线程停止休息,继续向阻塞队列中写入数据,进入步骤7;步骤7设置C=Ck,T=tk,k=k+1,进入步骤1;如果各个分区的数据都被生产者线程写入到阻塞队列中,并且阻塞队列中的数据全部被消费者线程读取,并写入到数据库中,则整个数据迁移任务结束;所述将N个分区中的数据进行重新分区,使用的算法是Hash后取模,将原先1个分区的数据分散到多个分区中去。
如需购买、转让、实施、许可或投资类似专利技术,可联系本专利的申请人或专利权人国网江苏省电力有限公司镇江供电分公司,其通讯地址为:212001 江苏省镇江市电力路182号;或者联系龙图腾网官方客服,联系龙图腾网可拨打电话0551-65771310或微信搜索“龙图腾网”。
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。