CN113672556A - 一种批量文件的迁移方法及装置 - Google Patents
一种批量文件的迁移方法及装置 Download PDFInfo
- Publication number
- CN113672556A CN113672556A CN202110954373.2A CN202110954373A CN113672556A CN 113672556 A CN113672556 A CN 113672556A CN 202110954373 A CN202110954373 A CN 202110954373A CN 113672556 A CN113672556 A CN 113672556A
- Authority
- CN
- China
- Prior art keywords
- file
- queue
- mapping table
- source file
- batch
- 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
- 230000005012 migration Effects 0.000 title claims abstract description 90
- 238000013508 migration Methods 0.000 title claims abstract description 90
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000013507 mapping Methods 0.000 claims abstract description 74
- 230000005540 biological transmission Effects 0.000 claims abstract description 29
- 238000004590 computer program Methods 0.000 claims description 13
- 238000012163 sequencing technique Methods 0.000 claims description 13
- 238000003780 insertion Methods 0.000 claims description 5
- 230000037431 insertion Effects 0.000 claims description 5
- 230000006870 function Effects 0.000 description 17
- 230000008569 process Effects 0.000 description 16
- 238000012545 processing Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 7
- 230000008878 coupling Effects 0.000 description 7
- 238000010168 coupling process Methods 0.000 description 7
- 238000005859 coupling reaction Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 230000010354 integration Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000010606 normalization Methods 0.000 description 2
- 230000000750 progressive effect Effects 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 239000002253 acid Substances 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
Images
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/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/119—Details of migration of file 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/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- 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/18—File system types
- G06F16/182—Distributed file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于大数据技术领域,本发明提供了一种批量文件的迁移方法及装置,所述批量文件的迁移方法包括:将源文件存储至关系型数据库中;根据所述源文件的全局文件数据库ID号及时间戳,将所述关系型数据库中的文件列表插入至分布式缓存队列中;根据所述分布式缓存队列生成所述源文件的映射表;根据所述映射表将所述源文件进行迁移。本发明克服了现有技术中的稳定性问题、并发性能问题以及断点批量续传问题,充分实现了redis分布式缓存消息队列的高效性和便捷性。
Description
技术领域
本申请属于大数据技术领域,具体涉及一种批量文件的迁移方法及装置。
背景技术
随着科技的飞速发展,互联网技术更新迭代时间大大缩减,各种功能的应用系统的升级越来越频繁,而在更新系统过程中,需要将老系统的文件数据迁移到新系统中,这一过程中会涉及到如下几个问题,传统的文件迁移系统大多采用单体系统架构,因为那时几乎没有分布式系统框架技术,所以就导致传统文件迁移系统并发和性能水平非常有限,其次,现有技术中文件迁移系统容错性较低,迁移过程中如果出现错误后大多只是做重试处理,这样就有批量迁移时一旦出现问题是无法直接重试的问题,因为错误点没有分析和记录出现错误后新旧系统的数据同步难度非常大,也就是不支持断点续传功能,最后是现有的文件迁移系统因为架构设计等原因普遍都是无法整合分布式组件方便。
发明内容
本发明可用于大数据技术在金融方面应用的技术领域,也可用于除金融领域之外的任意领域,本发明解决现有技术文件迁系统一些痛点问题,包括文件迁移的并发性,耦合性,扩展性等问题,并支持断点批量续传功能,以及支持分布式组件整合。
为解决上述技术问题,本发明提供以下技术方案:
第一方面,本发明提供一种批量文件的迁移方法包括:
将源文件存储至关系型数据库中;
根据所述源文件的全局文件数据库ID号及时间戳,将所述关系型数据库中的文件列表插入至分布式缓存队列中;
根据所述分布式缓存队列生成所述源文件的映射表;
根据所述映射表将所述源文件进行迁移。
一实施例中,所述根据所述源文件的全局文件数据库ID号及时间戳,将所述关系型数据库中的文件列表插入至分布式缓存队列中,包括:
根据所述全局文件数据库ID号及时间戳,将所述关系型数据库中的源文件进行排序;
将排序后的源文件对应的文件列表进行拆分;
将拆分后的文件列表插入至分布式缓存redis队列中。
一实施例中,所述根据所述分布式缓存队列生成所述源文件的映射表包括:
根据所述分布式缓存redis队列,生成所述源文件中多个子文件与所述多个子文件位置之间的映射表。
一实施例中,所述根据所述映射表将所述源文件进行迁移包括:
根据所述映射表以及所述源文件生成生产者队列;
当生产者队列长度大于0时,以多线程的方式将所述生产者队列写入至消费者队列中。
一实施例中,批量文件的迁移方法还包括:
当发生源文件迁移断点时,根据断点时间以及所述映射表确定发生断点的子文件;
删除消费者队列中的发生断点的子文件,并根据所述映射表以及所述源文件进行断点续传。
第二方面,本发明提供一种批量文件的迁移装置,该装置包括:
源文件存储模块,用于将源文件存储至关系型数据库中;
文件列表插入模块,用于根据所述源文件的全局文件数据库ID号及时间戳,将所述关系型数据库中的文件列表插入至分布式缓存队列中;
映射表生成模块,用于根据所述分布式缓存队列生成所述源文件的映射表;
源文件迁移模块,用于根据所述映射表将所述源文件进行迁移。
一实施例中,所述文件列表插入模块包括:
源文件排序单元,用于根据所述全局文件数据库ID号及时间戳,将所述关系型数据库中的源文件进行排序;
文件列表拆分单元,用于将排序后的源文件对应的文件列表进行拆分;
文件列表插入单元,用于将拆分后的文件列表插入至分布式缓存redis队列中;
一实施例中,所述映射表生成模块包括:
映射表生成单元,用于根据所述分布式缓存redis队列,生成所述源文件中多个子文件与所述多个子文件位置之间的映射表。
一实施例中,所述源文件迁移模块包括:
生产者队列生成单元,用于根据所述映射表以及所述源文件生成生产者队列;
生产者队列写入单元,用于当生产者队列长度大于0时,以多线程的方式将所述生产者队列写入至消费者队列中;
一实施例中,所述的批量文件的迁移装置还包括:
子文件确定模块,用于当发生源文件迁移断点时,根据断点时间以及所述映射表确定发生断点的子文件;
源文件续传模块,用于删除消费者队列中的发生断点的子文件,并根据所述映射表以及所述源文件进行断点续传。
第三方面,本发明提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现批量文件的迁移方法的步骤。
第四方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现批量文件的迁移方法的步骤。
从上述描述可知,本发明实施例提供一种批量文件的迁移方法及装置,首先将源文件存储至关系型数据库中;根据源文件的全局文件数据库ID号及时间戳,将关系型数据库中的文件列表插入至分布式缓存队列中;接着,根据分布式缓存队列生成源文件的映射表;最后根据映射表将源文件进行迁移。本发明克服了现有技术中的稳定性问题、并发性能问题以及断点批量续传问题,充分发挥了redis分布式缓存消息队列的高效性和便捷性。具体地,本发明具有以下有益效果:本发明解决现有技术文件迁移过程中所遇到的文件迁移的并发性,耦合性,扩展性等问题,并支持断点批量续传功能,以及支持分布式组件整合,文件迁移的目标是多样化的,可以迁移到指定服务器的磁盘中,也可以迁移到oss的私有云中,支持的文件类型没有限制,因为是支持分批次的迁移系统,所以部署成本上也是非常灵活,可根据实际预算成本来配置系统的批量规格以及线程池参数。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的实施例中批量文件的迁移方法的流程示意图一;
图2为本发明的实施例中步骤200的流程示意图;
图3为本发明的实施例中步骤300的流程示意图;
图4为本发明的实施例中步骤400的流程示意图;
图5为本发明的实施例中批量文件的迁移方法的流程示意图二;
图6为本发明的具体实施方式中批量文件的迁移方法的流程示意图;
图7为本发明的具体实施方式中批量文件的迁移方法的思维导图;
图8为本发明的实施例中批量文件的迁移装置的方块图一;
图9为本发明的实施例中文件列表插入模块20的方块图;
图10为本发明的实施例中映射表生成模块30的方块图;
图11为本发明的实施例中源文件迁移模块30的方块图;
图12为本发明的实施例中批量文件的迁移装置的方块图二;
图13为本发明的实施例中的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
本发明的实施例提供一种批量文件的迁移方法的具体实施方式,参见图1,该方法具体包括如下内容:
步骤100:将源文件存储至关系型数据库中。
关系型数据库,是指采用了关系模型来组织数据的数据库,其以行和列的形式存储数据,以便于用户理解,关系型数据库这一系列的行和列被称为表,一组表组成了数据库。用户通过查询来检索数据库中的数据,而查询是一个用于限定数据库中某些区域的执行代码。关系模型可以简单理解为二维表格模型,而一个关系型数据库就是由二维表及其之间的关系组成的一个数据组织。具体地,其具有以下特点:
1.存储方式:传统的关系型数据库采用表格的储存方式,数据以行和列的方式进行存储,要读取和查询都十分方便。
2.存储结构:关系型数据库按照结构化的方法存储数据,每个数据表都必须对各个字段定义好(也就是先定义好表的结构),再根据表的结构存入数据,这样做的好处就是由于数据的形式和内容在存入数据之前就已经定义好了,所以整个数据表的可靠性和稳定性都比较高,但带来的问题就是一旦存入数据后,如果需要修改数据表的结构就会十分困难。
3.存储规范:关系型数据库为了避免重复、规范化数据以及充分利用好存储空间,把数据按照最小关系表的形式进行存储,这样数据管理的就可以变得很清晰、一目了然,当然这主要是一张数据表的情况。如果是多张表情况就不一样了,由于数据涉及到多张数据表,数据表之间存在着复杂的关系,随着数据表数量的增加,数据管理会越来越复杂。
4.扩展方式:由于关系型数据库将数据存储在数据表中,数据操作的瓶颈出现在多张数据表的操作中,而且数据表越多这个问题越严重,如果要缓解这个问题,只能提高处理能力,也就是选择速度更快性能更高的计算机,这样的方法虽然可以一定的拓展空间,但这样的拓展空间一定有非常有限的,也就是关系型数据库只具备纵向扩展能力。
5.查询方式:关系型数据库采用结构化查询语言(即SQL)来对数据库进行查询,SQL早已获得了各个数据库厂商的支持,成为数据库行业的标准,它能够支持数据库的CRUD(增加,查询,更新,删除)操作,具有非常强大的功能,SQL可以采用类似索引的方法来加快查询操作。
6.规范化:在数据库的设计开发过程中开发人员通常会面对同时需要对一个或者多个数据实体(包括数组、列表和嵌套数据)进行操作,这样在关系型数据库中,一个数据实体一般首先要分割成多个部分,然后再对分割的部分进行规范化,规范化以后再分别存入到多张关系型数据表中,这是一个复杂的过程。好消息是随着软件技术的发展,相当多的软件开发平台都提供一些简单的解决方法,例如,可以利用ORM层(也就是对象关系映射)来将数据库中对象模型映射到基于SQL的关系型数据库中去以及进行不同类型系统的数据之间的转换。
7.事务性:关系型数据库强调ACID规则(原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)),可以满足对事务性要求较高或者需要进行复杂数据查询的数据操作,而且可以充分满足数据库操作的高性能和操作稳定性的要求。并且关系型数据库十分强调数据的强一致性,对于事务的操作有很好的支持。关系型数据库可以控制事务原子性细粒度,并且一旦操作有误或者有需要,可以马上回滚事务。
8.读写性能:关系型数据库十分强调数据的一致性,并为此降低读写性能付出了巨大的代价,虽然关系型数据库存储数据和处理数据的可靠性很不错,但一旦面对海量数据的处理的时候效率就会变得很差,特别是遇到高并发读写的时候性能就会下降的非常厉害。
步骤200:根据所述源文件的全局文件数据库ID号及时间戳,将所述关系型数据库中的文件列表插入至分布式缓存队列中。
具体地,将源文件存储到关系型数据库表后,经过排序,批次规格,等配置文件中参数将数据库表中的文件列表进行分段拆分,并插入到由分布式缓存redis实现的生产者队列中。
步骤300:根据所述分布式缓存队列生成所述源文件的映射表。
可以理解的是,通过步骤300中的映射表可以把源文件中的不同位置和不通格式的子文件建立起统一的映射关系。
步骤400:根据所述映射表将所述源文件进行迁移。
具体地,首先计算迁移的次数进而算出系统程序的线程并发数及预期完成时间,将批量文件映射表元数据通过配置文件加载到迁移系统中,按照批次(默认每批一万条文件)加载处理,并通过多线程方式写到redis实现的消费者队列中。
从上述描述可知,本发明实施例提供一种批量文件的迁移方法,首先将源文件存储至关系型数据库中;根据源文件的全局文件数据库ID号及时间戳,将关系型数据库中的文件列表插入至分布式缓存队列中;接着,根据分布式缓存队列生成源文件的映射表;最后根据映射表将源文件进行迁移。本发明克服了现有技术中的稳定性问题、并发性能问题以及断点批量续传问题,充分发挥了基于redis分布式缓存消息队列的高效性和便捷性。
一实施例中,参见图2,步骤200进一步包括:
步骤201:根据所述全局文件数据库ID号及时间戳,将所述关系型数据库中的源文件进行排序;
根据全局文件数据库ID号及时间等参数对所有源文件进行自定义排序
步骤202:将排序后的源文件对应的文件列表进行拆分;
经过排序后,根据批次规格,等配置文件中参数将数据库表中的文件列表进行分段拆分。
步骤203:将拆分后的文件列表插入至分布式缓存redis队列中。
一实施例中,参见图3,步骤300进一步包括:
步骤301:根据所述分布式缓存redis队列,生成所述源文件中多个子文件与所述多个子文件位置之间的映射表。
redis一共支持5种数据类型,每种数据类型对应不同的数据结构,有简单的String类型、压缩串、字典、跳跃表等。跳跃表是比较新型的数据结构,常用于高性能的查找,可以达到log2N的查询速度,而且跳跃表相对于红黑树,在更新时变更的节点较少,更易于实现并发操作。
Redis使用单线程实现,因此这里不会在分布式缓存redis队列中存储太大的内容,否则会阻塞其它请求。
因为缓存操作都是内存操作,只有很少的计算操作,所以在单线程下性能很好。Redis实现的单线程的非阻塞网络I/O模型,适合快速地操作逻辑,有复杂的长逻辑时会影响性能。对于长逻辑应该配置多个实例来提高多核CPU的利用率,也就是说,可以使用单机器多端口来配置多个实例。
一实施例中,参见图4,步骤400进一步包括:
步骤401:根据所述映射表以及所述源文件生成生产者队列;
具体地,通过所述的文件映射器系统扫描并采集出文件列表存储到关系型数据库中,再通过分段算法将数据库中的文件列表分段插入到分布式缓存组件redis队列中,此时队列叫做生产者队列,这样就把不同位置和不通格式的文件建立起统一的映射表,方便后续的分析和传输和处理工作。
步骤402:当生产者队列长度大于0时,以多线程的方式将所述生产者队列写入至消费者队列中。
具体地,整合完redis生产者队列后,定时扫描队列事件会扫描到生产者队列长度是否大于0,如果是,开始接收生产者队列数据,传输分段文件元数据到批量文件传输系统,传输系统由springboot定时任务实现,启动时已加载过配置文件,获取到传输类型(即本次迁移类型,比如服务器到服务器类型,服务器到oss等类型),目标服务器数据后,发送文件元数据到启用的消费者任务队列中,所述的消费者队列是基于线程池实现的任务并发任务队列。
一实施例中,参见图5,批量文件的迁移方法还包括:
步骤500:当发生源文件迁移断点时,根据断点时间以及所述映射表确定发生断点的子文件;
步骤600:删除消费者队列中的发生断点的子文件,并根据所述映射表以及所述源文件进行断点续传。
在步骤500以及步骤600中,如果批量文件迁移期间任何一个迁移文件失败将会被记录到断点文件元数据列表数据库中,并等待批量断点定时扫描事件启动后开始批量断点续传功能,具体地,首先确定源文件中发生断点的子文件,接着根据映射表确定该子文件位置,并删除发生断点的子文件,最后续传源文件。
在一种具体实施方式中,本发明提供批量文件的迁移方法中的具体实施方式。
这里还提供一种批量文件的迁移系统,该系统具体包括:批量文件映射器以及批量文件传输器,具体地:
批量文件映射器:源文件服务器中存储批量待迁移的文件,当所述批量文件被迁移前需要被本发明系统进行磁盘扫描,将文件名称,大小,等文件元数据映射到数据库表中,并同时记录映射时间戳方便后续排序等操作。存储到数据库表后,经过排序,批次规格,等配置文件中参数将数据库表中的文件列表进行分段拆分,并插入到由分布式缓存redis实现的生产者队列中,此过程工作流程即为批量文件映射器。
批量文件传输器:迁移系统首先定时扫描redis生产者队列中长度,如果长度大于0,则开始遍历队列,并将已按照批量规格分段好的文件段列表取出后逐条整理为线程任务并下发到线程池实现的消费者队列中,开始批量迁移文件,迁移过程中根据配置的目标服务器类型参数进行迁移,最终完成文件迁移,此过程流程任务即为批量文件传输器。
参见图6,基于上述批量文件的迁移系统,本具体实施方式所提供的批量文件的迁移方法包括以下步骤:
基于现有技术中的技术缺陷,目前的场景需要一种新的文件迁移方法,既要足稳定性,和容错性又要考虑性能及支持分布式组件的扩展性最重要的是要支持断点批量续传的功能,所以本发明基于这些问题点研究设计了批量文件迁移系统。本发明从文件本身作为元数据出发,无论文件是在服务器磁盘中还是分布式数据库中都支持迁移,通过所述的文件映射器系统扫描并采集出文件列表存储到关系型数据库中,再通过分段算法将数据库中的文件列表分段插入到分布式缓存组件redis队列中,此时队列叫做生产者队列,这样就把不同位置和不通格式的文件建立起统一的映射表,方便后续的分析和传输和处理工作。再通过批量文件传输器对生产者队列进行定时分析,处理,以多线程并发的方式进行文件的迁移任务,大大提高性能,另外所述的整个系统所有框架都基本springboot框架实现,所以支持对分布式组件无缝整合,最终达到解决文件迁移过程中的问题,具体地:
S1:生成源文件对应的映射表。
参见图7,批量文件映射器启动时会加载配置文件,启动后开始扫描源文件并通过文件元数据采集、排序、存储等方法将源文件系统中的所有文件整合成生产者消息队列,此部分方法和程序即为批量文件映射器系统,所述文件映射器和文件传输器都支持可配置功能,即可以设置批量规格等参数,通过批量规格等参数将搜集到的文件列表进行抽离整合到redis队列中,实现方法是:根据全局文件数据库ID号及时间等参数对所有文件进行自定义排序,支持根据批量迁移系统的配置文件进行参数设置,包括批次数量,是否开启断点续传,线程池参数配置,根据配置文件中参数配置自动进行算法计算,得出最终需要迁移的次数进而自动算出系统程序的线程并发数及预期完成时间,将批量文件映射表元数据通过配置文件加载到迁移系统中,按照批次(默认每批一万条文件)加载处理,并通过多线程方式写到redis实现的消费者队列中。
S2:根据映射表将源文件进行迁移。
整合完redis生产者队列后,定时扫描队列事件会扫描到生产者队列长度已大于0,开始接收生产者队列数据,传输分段文件元数据到批量文件传输系统,传输系统由springboot定时任务实现,启动时已加载过配置文件,获取到传输类型(即本次迁移类型,比如服务器到服务器类型,服务器到oss等类型),目标服务器数据后,发送文件元数据到启用的消费者任务队列中,所述的消费者队列是基于线程池实现的任务并发任务队列,默认的线程池参数是核心线程数为10,最大线程数为13,系统中配置文件可以修改所述的参数,消费者任务队列是基于线程池实现,所以可并行执行迁移文件任务工作,实现的思路是每个文件传输的按照传输类型会启动不同的文件传输线程,每个线程负责传输一个文件,此时开始文件迁移任务,如果期间任何一个迁移文件失败将会被记录到断点文件元数据列表数据库中,并等待批量断点定时扫描事件启动后开始批量断点续传功能,批量断点续传的流程和生产者队列和消费者队列的原理是相同的,在此不再赘述,
从上述描述可知,本发明实施例提供一种批量文件的迁移方法,首先将源文件存储至关系型数据库中;根据源文件的全局文件数据库ID号及时间戳,将关系型数据库中的文件列表插入至分布式缓存队列中;接着,根据分布式缓存队列生成源文件的映射表;最后根据映射表将源文件进行迁移。本发明克服了现有技术中的稳定性问题、并发性能问题以及断点批量续传问题,充分发挥了基于redis分布式缓存消息队列的高效性和便捷性。具体地,本发明具有以下有益效果:本发明解决现有技术文件迁移过程中所遇到的文件迁移的并发性,耦合性,扩展性等问题,并支持断点批量续传功能,以及支持分布式组件整合,文件迁移的目标是多样化的,可以迁移到指定服务器的磁盘中,也可以迁移到oss的私有云中,支持的文件类型没有限制,因为是支持分批次的迁移系统,所以部署成本上也是非常灵活,可根据实际预算成本来配置系统的批量规格以及线程池参数。
基于同一发明构思,本申请实施例还提供了一种批量文件的迁移装置,可以用于实现上述实施例所描述的方法,如下面的实施例。由于批量文件的迁移装置解决问题的原理与批量文件的迁移方法相似,因此批量文件的迁移装置的实施可以参见批量文件的迁移方法实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的系统较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本发明的实施例提供一种能够实现批量文件的迁移方法的批量文件的迁移装置的具体实施方式,参见图8,批量文件的迁移装置具体包括如下内容:
源文件存储模块10,用于将源文件存储至关系型数据库中;
文件列表插入模块20,用于根据所述源文件的全局文件数据库ID号及时间戳,将所述关系型数据库中的文件列表插入至分布式缓存队列中;
映射表生成模块30,用于根据所述分布式缓存队列生成所述源文件的映射表;
源文件迁移模块40,用于根据所述映射表将所述源文件进行迁移。
一实施例中,参见图9,所述文件列表插入模块20包括:
源文件排序单元201,用于根据所述全局文件数据库ID号及时间戳,将所述关系型数据库中的源文件进行排序;
文件列表拆分单元202,用于将排序后的源文件对应的文件列表进行拆分;
文件列表插入单元203,用于将拆分后的文件列表插入至分布式缓存redis队列中;
一实施例中,参见图10,所述映射表生成模块30包括:
映射表生成单元301,用于根据所述分布式缓存redis队列,生成所述源文件中多个子文件与所述多个子文件位置之间的映射表。
一实施例中,参见图11,所述源文件迁移模块40包括:
生产者队列生成单元401,用于根据所述映射表以及所述源文件生成生产者队列;
生产者队列写入单元402,用于当生产者队列长度大于0时,以多线程的方式将所述生产者队列写入至消费者队列中;
一实施例中,参见图12,所述的批量文件的迁移装置还包括:
子文件确定模块50,用于当发生源文件迁移断点时,根据断点时间以及所述映射表确定发生断点的子文件;
源文件续传模块60,用于删除消费者队列中的发生断点的子文件,并根据所述映射表以及所述源文件进行断点续传。
从上述描述可知,本发明实施例提供一种批量文件的迁移装置,首先将源文件存储至关系型数据库中;根据源文件的全局文件数据库ID号及时间戳,将关系型数据库中的文件列表插入至分布式缓存队列中;接着,根据分布式缓存队列生成源文件的映射表;最后根据映射表将源文件进行迁移。本发明克服了现有技术中的稳定性问题、并发性能问题以及断点批量续传问题,充分发挥了基于redis分布式缓存消息队列的高效性和便捷性。具体地,本发明具有以下有益效果:本发明解决现有技术文件迁移过程中所遇到的文件迁移的并发性,耦合性,扩展性等问题,并支持断点批量续传功能,以及支持分布式组件整合,文件迁移的目标是多样化的,可以迁移到指定服务器的磁盘中,也可以迁移到oss的私有云中,支持的文件类型没有限制,因为是支持分批次的迁移系统,所以部署成本上也是非常灵活,可根据实际预算成本来配置系统的批量规格以及线程池参数。
本申请的实施例还提供能够实现上述实施例中的批量文件的迁移方法中全部步骤的一种电子设备的具体实施方式,参见图13,电子设备具体包括如下内容:
处理器(processor)1201、存储器(memory)1202、通信接口(CommunicationsInterface)1203和总线1204;
其中,处理器1201、存储器1202、通信接口1203通过总线1204完成相互间的通信;通信接口1203用于实现服务器端设备以及客户端设备等相关设备之间的信息传输;
处理器1201用于调用存储器1202中的计算机程序,处理器执行计算机程序时实现上述实施例中的批量文件的迁移方法中的全部步骤,例如,处理器执行计算机程序时实现下述步骤:
步骤100:将源文件存储至关系型数据库中;
步骤200:根据所述源文件的全局文件数据库ID号及时间戳,将所述关系型数据库中的文件列表插入至分布式缓存队列中;
步骤300:根据所述分布式缓存队列生成所述源文件的映射表;
步骤400:根据所述映射表将所述源文件进行迁移。
本申请的实施例还提供能够实现上述实施例中的批量文件的迁移方法中全部步骤的一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的批量文件的迁移方法的全部步骤,例如,处理器执行计算机程序时实现下述步骤:
步骤100:将源文件存储至关系型数据库中;
步骤200:根据所述源文件的全局文件数据库ID号及时间戳,将所述关系型数据库中的文件列表插入至分布式缓存队列中;
步骤300:根据所述分布式缓存队列生成所述源文件的映射表;
步骤400:根据所述映射表将所述源文件进行迁移。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于硬件+程序类实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
虽然本申请提供了如实施例或流程图的方法操作步骤,但基于常规或者无创造性的劳动可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境)。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书实施例时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
本说明书实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本说明书实施例的实施例而已,并不用于限制本说明书实施例。对于本领域技术人员来说,本说明书实施例可以有各种更改和变化。凡在本说明书实施例的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书实施例的权利要求范围之内。
Claims (10)
1.一种批量文件的迁移方法,其特征在于,包括:
将源文件存储至关系型数据库中;
根据所述源文件的全局文件数据库ID号及时间戳,将所述关系型数据库中的文件列表插入至分布式缓存队列中;
根据所述分布式缓存队列生成所述源文件的映射表;
根据所述映射表将所述源文件进行迁移。
2.如权利要求1所述的批量文件的迁移方法,其特征在于,所述根据所述源文件的全局文件数据库ID号及时间戳,将所述关系型数据库中的文件列表插入至分布式缓存队列中,包括:
根据所述全局文件数据库ID号及时间戳,将所述关系型数据库中的源文件进行排序;
将排序后的源文件对应的文件列表进行拆分;
将拆分后的文件列表插入至分布式缓存redis队列中。
3.如权利要求2所述的批量文件的迁移方法,其特征在于,所述根据所述分布式缓存队列生成所述源文件的映射表包括:
根据所述分布式缓存redis队列,生成所述源文件中多个子文件与所述多个子文件位置之间的映射表。
4.如权利要求3所述的批量文件的迁移方法,其特征在于,所述根据所述映射表将所述源文件进行迁移包括:
根据所述映射表以及所述源文件生成生产者队列;
当生产者队列长度大于0时,以多线程的方式将所述生产者队列写入至消费者队列中。
5.如权利要求4所述的批量文件的迁移方法,其特征在于,还包括:
当发生源文件迁移断点时,根据断点时间以及所述映射表确定发生断点的子文件;
删除消费者队列中的发生断点的子文件,并根据所述映射表以及所述源文件进行断点续传。
6.一种批量文件的迁移装置,其特征在于,包括:
源文件存储模块,用于将源文件存储至关系型数据库中;
文件列表插入模块,用于根据所述源文件的全局文件数据库ID号及时间戳,将所述关系型数据库中的文件列表插入至分布式缓存队列中;
映射表生成模块,用于根据所述分布式缓存队列生成所述源文件的映射表;
源文件迁移模块,用于根据所述映射表将所述源文件进行迁移。
7.如权利要求6所述的批量文件的迁移装置,其特征在于,所述文件列表插入模块包括:
源文件排序单元,用于根据所述全局文件数据库ID号及时间戳,将所述关系型数据库中的源文件进行排序;
文件列表拆分单元,用于将排序后的源文件对应的文件列表进行拆分;
文件列表插入单元,用于将拆分后的文件列表插入至分布式缓存redis队列中;
所述映射表生成模块包括:
映射表生成单元,用于根据所述分布式缓存redis队列,生成所述源文件中多个子文件与所述多个子文件位置之间的映射表。
8.如权利要求7所述的批量文件的迁移装置,其特征在于,所述源文件迁移模块包括:
生产者队列生成单元,用于根据所述映射表以及所述源文件生成生产者队列;
生产者队列写入单元,用于当生产者队列长度大于0时,以多线程的方式将所述生产者队列写入至消费者队列中;
所述的批量文件的迁移装置还包括:
子文件确定模块,用于当发生源文件迁移断点时,根据断点时间以及所述映射表确定发生断点的子文件;
源文件续传模块,用于删除消费者队列中的发生断点的子文件,并根据所述映射表以及所述源文件进行断点续传。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至5任一项所述批量文件的迁移方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至5任一项所述批量文件的迁移方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110954373.2A CN113672556A (zh) | 2021-08-19 | 2021-08-19 | 一种批量文件的迁移方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110954373.2A CN113672556A (zh) | 2021-08-19 | 2021-08-19 | 一种批量文件的迁移方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113672556A true CN113672556A (zh) | 2021-11-19 |
Family
ID=78543933
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110954373.2A Pending CN113672556A (zh) | 2021-08-19 | 2021-08-19 | 一种批量文件的迁移方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113672556A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117194549A (zh) * | 2023-11-07 | 2023-12-08 | 上海柯林布瑞信息技术有限公司 | 基于任务数据配置的数据传输方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105007308A (zh) * | 2015-06-24 | 2015-10-28 | 国家电网公司 | 一种数据库隔离装置环境下的文件传输方法 |
CN109471836A (zh) * | 2018-11-01 | 2019-03-15 | 浪潮电子信息产业股份有限公司 | 一种数据迁移方法、装置和系统 |
CN110688361A (zh) * | 2019-08-16 | 2020-01-14 | 平安普惠企业管理有限公司 | 数据迁移方法、电子装置及计算机设备 |
CN111339041A (zh) * | 2020-03-10 | 2020-06-26 | 中国建设银行股份有限公司 | 文件解析入库、文件生成方法及装置 |
CN112583743A (zh) * | 2020-09-28 | 2021-03-30 | 京信数据科技有限公司 | 一种分布式文件交换方法及装置 |
CN113127444A (zh) * | 2020-01-15 | 2021-07-16 | 中移(苏州)软件技术有限公司 | 一种数据迁移方法、装置、服务器及存储介质 |
-
2021
- 2021-08-19 CN CN202110954373.2A patent/CN113672556A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105007308A (zh) * | 2015-06-24 | 2015-10-28 | 国家电网公司 | 一种数据库隔离装置环境下的文件传输方法 |
CN109471836A (zh) * | 2018-11-01 | 2019-03-15 | 浪潮电子信息产业股份有限公司 | 一种数据迁移方法、装置和系统 |
CN110688361A (zh) * | 2019-08-16 | 2020-01-14 | 平安普惠企业管理有限公司 | 数据迁移方法、电子装置及计算机设备 |
CN113127444A (zh) * | 2020-01-15 | 2021-07-16 | 中移(苏州)软件技术有限公司 | 一种数据迁移方法、装置、服务器及存储介质 |
CN111339041A (zh) * | 2020-03-10 | 2020-06-26 | 中国建设银行股份有限公司 | 文件解析入库、文件生成方法及装置 |
CN112583743A (zh) * | 2020-09-28 | 2021-03-30 | 京信数据科技有限公司 | 一种分布式文件交换方法及装置 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117194549A (zh) * | 2023-11-07 | 2023-12-08 | 上海柯林布瑞信息技术有限公司 | 基于任务数据配置的数据传输方法及装置 |
CN117194549B (zh) * | 2023-11-07 | 2024-01-26 | 上海柯林布瑞信息技术有限公司 | 基于任务数据配置的数据传输方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Bacon et al. | Spanner: Becoming a SQL system | |
US11556396B2 (en) | Structure linked native query database management system and methods | |
US10191932B2 (en) | Dependency-aware transaction batching for data replication | |
CN111324610A (zh) | 一种数据同步的方法及装置 | |
US20130227194A1 (en) | Active non-volatile memory post-processing | |
CN112286941B (zh) | 一种基于Binlog+HBase+Hive的大数据同步方法和装置 | |
Kuznetsov et al. | NoSQL data management systems | |
US20230418811A1 (en) | Transaction processing method and apparatus, computing device, and storage medium | |
Petrov | Database Internals: A deep dive into how distributed data systems work | |
CN111651519B (zh) | 数据同步方法、数据同步装置、电子设备及存储介质 | |
Wang et al. | Distributed storage and index of vector spatial data based on HBase | |
US10013347B2 (en) | Non-blocking parallel memory mechanisms | |
Margara et al. | A model and survey of distributed data-intensive systems | |
CN112965939A (zh) | 一种文件合并方法、装置和设备 | |
CN112000649A (zh) | 一种基于map reduce的增量数据同步的方法和装置 | |
US10558636B2 (en) | Index page with latch-free access | |
CN113672556A (zh) | 一种批量文件的迁移方法及装置 | |
Zhao et al. | Toward efficient and flexible metadata indexing of big data systems | |
CN114661668A (zh) | 文件管理方法及相关装置 | |
CN114579059A (zh) | 一种文件数据迁移方法、装置、设备及存储介质 | |
CN115840786B (zh) | 一种数据湖数据同步方法及装置 | |
Shacham et al. | Taking omid to the clouds: Fast, scalable transactions for real-time cloud analytics | |
CN105022743A (zh) | 一种管理索引的方法及装置 | |
CN109492004A (zh) | 一种数字渔业异构数据存储方法、系统及装置 | |
Cao | Big Data Database for Business |
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 |