CN117407362B - 一种异构文件系统间文件迁移的方法与装置 - Google Patents
一种异构文件系统间文件迁移的方法与装置 Download PDFInfo
- Publication number
- CN117407362B CN117407362B CN202311723420.8A CN202311723420A CN117407362B CN 117407362 B CN117407362 B CN 117407362B CN 202311723420 A CN202311723420 A CN 202311723420A CN 117407362 B CN117407362 B CN 117407362B
- Authority
- CN
- China
- Prior art keywords
- file
- migration
- configuration information
- source
- target
- 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.)
- Active
Links
- 238000013508 migration Methods 0.000 title claims abstract description 200
- 230000005012 migration Effects 0.000 title claims abstract description 200
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000001914 filtration Methods 0.000 claims description 16
- 230000002159 abnormal effect Effects 0.000 claims description 9
- 230000000737 periodic effect Effects 0.000 claims description 8
- 238000004806 packaging method and process Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 abstract description 21
- 238000004904 shortening Methods 0.000 abstract 1
- 238000013461 design Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000087 stabilizing effect Effects 0.000 description 1
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/14—Details of searching files based on file metadata
- G06F16/148—File search 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/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to 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
-
- 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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Library & Information Science (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种异构文件系统间文件迁移的方法与装置,通过根据接收到的任务配置信息从关系型数据表中获取迁移文件的文件地址列表;根据所述文件地址列表在源端文件系统中获取所述迁移文件,并将所述迁移文件以字节数组的形式存入Channel通道中;从所述Channel通道中读取所述字节数组,并根据所述任务配置信息在目标端文件系统的对应位置生成所述迁移文件,实现了对各种异构文件系统之间的文件进行自动化迁移,无需人工干预,缩短了迁移过程耗时,显著提升文件迁移效率。
Description
技术领域
本申请涉及数据同步技术领域,具体涉及一种异构文件系统间文件迁移的方法与装置。
背景技术
在企业或机构中,随着发展会产生大量的数据,这些数据一部分是存储在关系型数据库中的结构化数据,还有一部分是非结构化文件,包括音频、视频、文档、图片等不同格式的文件,分别存储在各个不同类型的文件系统中。随着业务的发展以及数据治理的需要,需要频繁进行各种文件的迁移及汇集工作。
对于结构化数据的迁移已经有很多成熟的技术手段,而对于非结构化文件的迁移,由于文件往往存储在不同类型的文件系统中,在以往,要想实现非结构化文件的迁移,一般需要手动将文件从源端的文件系统下载后,再上传至目标端的文件系统,这种操作存在需要人工干预、操作繁琐,耗时长等问题。
因此,如何自动高效的对不同类型的文件系统中的非结构化文件进行迁移是有待解决的技术问题。
发明内容
本申请提供一种异构文件系统间文件迁移的方法与装置,可以解决现有技术中对不同类型的文件系统的文件进行迁移需要人工干预、操作繁琐且耗时长的技术问题。
第一方面,本申请实施例提供异构文件系统间文件迁移的方法,所述异构文件系统间文件迁移的方法包括:
根据接收到的任务配置信息从关系型数据表中获取迁移文件的文件地址列表;
根据所述文件地址列表在源端文件系统中获取所述迁移文件,并将所述迁移文件以字节数组的形式存入Channel通道中;
从所述Channel通道中读取所述字节数组,并根据所述任务配置信息在目标端文件系统的对应位置生成所述迁移文件。
结合第一方面,在一种实施方式中,所述任务配置信息包括:源端文件数据源配置信息、文件数据表配置信息、目标端文件数据源配置信息和调度策略配置信息;
所述源端文件数据源配置信息包括:源端数据源类型、源端数据源和源端数据桶;
所述文件数据表配置信息包括:数据库类型、数据库、关系型数据表、所述迁移文件的URL地址的储存字段以及文件过滤条件;
所述目标端文件数据源配置信息包括:目标端数据源类型、目标端数据源、目标端数据桶和文件储存路径;
所述调度策略配置信息包括:立即执行调度、单次调度或周期调度。
在一种实施例中,根据接收到的任务配置信息从关系型数据表中获取迁移文件的文件地址列表,包括:
根据所述文件数据表配置信息中的所述数据库类型加载对应的数据库驱动,以与对应的数据库进行连接;
根据所述文件数据表配置信息中的所述关系型数据表、所述迁移文件的URL地址的储存字段和所述文件过滤条件生成数据库SQL查询语句;
在连接的数据库中执行所述SQL查询语句获取所述迁移文件的文件地址列表。
在一种实施例中,根据所述文件地址列表在源端文件系统中获取所述迁移文件,并将所述迁移文件以字节数组的形式存入Channel通道中,包括:
根据所述源端文件数据源配置信息中的所述源端数据源与所述源端文件系统进行连接;
根据所述文件地址列表在所述源端文件系统中获取所述迁移文件,并将获取的所述迁移文件以输入流的形式读取到本地内存中;
将所述输入流转换为所述字节数组,并将所述迁移文件的文件名称、文件地址和所述字节数组封装为FileColumn对象,存入对应的Channel通道中。
在一种实施例中,在将所述迁移文件以字节数组的形式存入Channel通道中之前,还包括:
根据所述文件地址列表的索引对Channel通道的数量进行取模运算得到各个所述迁移文件对应的Channel通道的编号。
在一种实施例中,该方法还包括:
根据所述文件地址列表在所述源端文件系统中获取所述迁移文件时,若与所述源端文件系统的连接异常,则向所述源端文件系统发起M次重试连接。
在一种实施例中,从所述Channel通道中读取所述字节数组,并根据所述任务配置信息在目标端文件系统的对应位置生成所述迁移文件,包括:
从所述Channel通道获取所述FileColumn对象,从所述FileColumn对象中获取所述迁移文件的文件名称、文件地址和所述字节数组;
将所述字节数组以输出流的形式,生成对应的本地文件;
在读取到所述FileColumn对象中的文件末尾标识后,将所述本地文件上传至所述目标端文件系统的所述文件储存路径下。
在一种实施例中,在根据所述任务配置信息在目标端文件系统的对应位置生成所述迁移文件之前,还包括:
判断所述目标端文件系统中是否包括所述目标端文件数据源配置信息中的所述文件储存路径;
若不包括,则在所述目标端文件系统中创建所述文件储存路径。
在一种实施例中,在根据所述任务配置信息在目标端文件系统的对应位置生成所述迁移文件之后,还包括:
根据所述迁移文件在目标端文件系统中的文件地址和在源端文件系统中的文件地址生成SQL更新语句;
根据所述SQL更新语句在所述关系型数据表中对迁移文件的文件地址进行更新。
第二方面,本申请实施例提供了一种异构文件系统间文件迁移的装置,所述异构文件系统间文件迁移的装置包括:
文件读取模块,其用于根据接收到的任务配置信息从关系型数据表中获取迁移文件的文件地址列表;根据所述文件地址列表在源端文件系统中获取所述迁移文件,并将所述迁移文件以字节数组的形式存入Channel通道中;
文件写入模块,其用于从所述Channel通道中读取所述字节数组,并根据所述任务配置信息在目标端文件系统的对应位置生成所述迁移文件。
本申请实施例提供的技术方案带来的有益效果包括:能够自动化实现各种异构文件系统之间文件迁移的需求;可以在文件迁移至目标端之后,同步更新关系型数据表中的文件地址;该文件迁移过程自动化实现,无需人工干预,缩短了迁移过程耗时,显著提升文件迁移效率;在进行大量文件迁移过程中,系统崩溃或者网络中断等异常因素导致迁移中断,不影响后续文件的迁移;可以设置并行度,提高文件迁移的效率。
本申请实施例提供了一种异构文件系统间文件迁移的方法与装置,通过根据接收到的任务配置信息从关系型数据表中获取迁移文件的文件地址列表;根据所述文件地址列表在源端文件系统中获取所述迁移文件,并将所述迁移文件以字节数组的形式存入Channel通道中;从所述Channel通道中读取所述字节数组,并根据所述任务配置信息在目标端文件系统的对应位置生成所述迁移文件,解决了相关技术中存在的文件迁移方式需要人工干预、操作繁琐且耗时长的技术问题,实现了对各种异构文件系统之间的文件进行自动化迁移,无需人工干预,缩短了迁移过程耗时,显著提升文件迁移效率。
附图说明
图1为本申请实施例提供的一种异构文件系统间文件迁移的方法的流程示意图;
图2为本申请异构文件系统间文件迁移的方法的原理示意图;
图3为本申请实施例提供稳定一种异构文件系统间文件迁移的装置的结构示意性框图;
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
首先,对本申请中的部分技术术语进行解释说明,以便于本领域技术人员理解本申请。
Channel通道是用来传递数据的一个数据结构。
FileColumn对象是用来表示文件或者目录的抽象,使用时可以通过FileColumn对象对文件创建新文件,删除文件以及获取文件路径等。
SQL(Structured Query Language)是具有数据操纵和数据定义等多种功能的数据库语言。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
第一方面,本申请实施例提供一种异构文件系统间文件迁移的方法。
一实施例中,参照图1,图1为本申请异构文件系统间文件迁移的方法第一实施例的流程示意图。如图1所示,异构文件系统间文件迁移的方法包括:
步骤S101、根据接收到的任务配置信息从关系型数据表中获取迁移文件的文件地址列表。
步骤S102、根据所述文件地址列表在源端文件系统中获取所述迁移文件,并将所述迁移文件以字节数组的形式存入Channel通道中。
步骤S103、从所述Channel通道中读取所述字节数组,并根据所述任务配置信息在目标端文件系统的对应位置生成所述迁移文件。
值得说明的是,本申请的异构文件系统间文件迁移的方法基于开源数据同步框架,将源端文件的读取抽象成为读插件,将目标端文件的写入抽象成为写插件,以实现异构文件系统间文件的迁移。
本申请同时提供一种异构文件系统间文件迁移的装置,下面结合异构文件系统间文件迁移的装置对异构文件系统间文件迁移的方法进详细说明。
异构文件系统间文件迁移的装置中包括任务配置模块、文件读取模块和文件写入模块。
值得说明的是,在进行步骤S101之前,还包括通过任务配置模块接收任务配置信息。任务配置模块的作用是提供可视化的界面,可视化界面中包括各个任务配置信息的输入文本框,可以在文本框中输入对应的信息,从而实现文件迁移作业的任务配置信息输入。
具体的,任务配置模块用于配置源端文件数据源、配置文件数据表、配置目标端文件数据源以及配置调度策略。
配置源端文件数据源即为配置需要迁移的文件在迁移前所在的源端文件系统的源端文件数据源配置信息,包括:源端数据源类型、源端数据源和源端数据桶。其中,源端数据源类型可以为Minio、HDFS、FTP、SFTP等文件系统。
配置文件数据表就是配置存储迁移文件地址的关系型数据表的文件数据表相关信息,包括数据库类型、数据库、关系型数据表、迁移文件的URL地址的储存字段以及文件过滤条件。
其中,在可视化的界面进行信息配置时,数据库类型可以选择Mysql或者Oracle等常用的关系型数据库;关系型数据表就是存储迁移文件地址的关系型数据表名;迁移文件的URL地址的储存字段就是关系型数据表中用来存储迁移文件地址的字段;设置文件过滤条件是为了方便对待迁移的文件进行筛选,可以设置关系型数据表的过滤条件,在进行文件迁移时,会按照设置的过滤条件,来筛选出需要进行迁移的文件列表。
值得说明的是,非结构化文件的存储位置,通常是以字符串URL地址的形式被记录在关系型数据表的某个字段中,各个应用可以通过该字符串URL地址访问到非结构化的文件。对于有些文件系统,如FTP等文件系统,可能需要对该字符串URL的地址经过一定的处理才能进行访问。
配置目标端文件数据源,就是配置文件将要迁移到的目标端文件数据源配置信息,包括目标端数据源类型、目标端数据源、目标端数据桶和文件储存路径。
其中,数据源类型可以选择Minio、HDFS、FTP、SFTP等文件系统。文件存储路径,是用来设置文件迁移后存放的位置,这里可以选择目标端文件系统中已经存在的储存路径,也可以输入不存在的储存路径。当路径不存在时,在进行文件迁移时,会按照输入的文件储存路径,先在目标端进行路径的创建。
配置调度策略是用来配置文件迁移作业的调度策略配置信息,包括:立即执行调度、单次调度或周期调度。
其中,立即执行指的是在任务配置信息配置完成后,立即开始文件迁移作业;单次调度指的是在任务配置信息配置完成后,会按照配置的单次作业时间,进行一次作业;周期调度指的是在任务配置信息配置完成后,按照配置的周期作业时间进行周期性的运行。
示范性的,本实施例中数据源配置信息如表1所示。
表1 数据源配置信息表
源端文件数据源类型 | Minio |
文件数据表类型 | Oracle |
目标端文件数据源类型 | Minio |
进一步的,步骤S101中根据接收到的任务配置信息从关系型数据表中获取迁移文件的文件地址列表,包括:根据所述文件数据表配置信息中的所述数据库类型加载对应的数据库驱动,以与对应的数据库进行连接;根据所述文件数据表配置信息中的所述关系型数据表、所述迁移文件的URL地址的储存字段和所述文件过滤条件生成数据库SQL查询语句;在连接的数据库中执行所述SQL查询语句获取所述迁移文件的文件地址列表。
值得说明的是,本实施例中通过文件读取模块获取迁移文件地址列表。文件读取模块是基于数据同步框架而开发的文件读取插件,这样有利于源端文件系统的扩展。
示范性的,如图2所示,文件读取模块在获取到任务配置模块保存的任务配置信息后,需要根据文件数据表配置信息的中的数据库类型来使用不同的数据库驱动,用来获取对应的数据库连接本例中,文件数据表的类型为Oracle数据源,因此程序会相应加载Oracle的数据库驱动,用来获取对应的数据库连接。如果文件数据表的类型为其它类型,则程序会相应加载其它的数据库驱动。
在与数据库连接后,程序会依据获取文件数据表配置信息中设置的文件过滤条件,拼接SQL查询语句,执行并获取到查询结果。本实施例中的文件数据表配置信息如表2所示:
表2 文件数据表配置信息表
数据库类型 | Oracle |
关系型数据表 | COM_FILE |
URL地址的储存字段 | URL |
文件过滤条件 | “CTIME”>“2023-10-10” |
其中,Oracle为文件数据表的数据库类型,COM_FILE为存储迁移文件地址的关系型数据表的表名,URL为文件数据表中具体存储文件地址的字段名,“CTIME”>“2023-10-10”为设置的文件过滤条件。
程序依据上述表格中的任务配置信息拼接的SQL查询语句为:
Select “URL” from “COM_FILE” where “CTIME”>“2023-10-10”;
通过获取的数据库连接来执行该SQL查询语句,可以得到如表3所示的查询结果,就是本次迁移作业需要迁移文件的文件地址列表。
表3 文件地址列表
作为一种优选的实施方式,步骤S102中在将所述迁移文件以字节数组的形式存入Channel通道中之前,还包括:根据所述文件地址列表的索引对Channel通道的数量进行取模运算得到各个所述迁移文件对应的Channel通道的编号。
值得说明的是,Channel通道是该数据同步框架中读插件Reader和写插件Writer的通信组件,Reader和Writer是一一对应的关系:Reader向Channel写入数据,Writer从Channel读取数据。
为了提高文件迁移的效率,本申请采用设置并发度来提高文件迁移的效率,在这里Channel通道的数量就代表并发度,每个Channel通道可以处理多个文件,通过合理增加Channel通道的数量,可以提高同时处理文件的数量。
示范性的,这里以Channel通道个数设置为3个举例说明。
当我们获取到文件地址列表后,可以通过文件地址列表的索引对3进行取模,得到每个迁移文件预分配的Channel通道的编号。
假设迁移文件数量为10,Channel通道的数量为3,那么进行取模分组,各个Channel通道预分配的迁移文件如表4所示:
表4 Channel通道分配迁移文件示例表
通道编号 | 分配的文件 |
Channel 1 | File1、File4、File7、File10 |
Channel 2 | File2、File5、File8 |
Channel 3 | File3、File6、File9 |
通过以上的分配,每个Channel通道可以同时处理多个文件,而多个Channel通道同时配合工作,这样可以显著提升处理文件的效率。
进一步的,步骤S102中根据所述文件地址列表在源端文件系统中获取所述迁移文件,并将所述迁移文件以字节数组的形式存入Channel通道中,包括:根据所述源端文件数据源配置信息中的所述源端数据源与所述源端文件系统进行连接;根据所述文件地址列表在所述源端文件系统中获取所述迁移文件,并将获取的所述迁移文件以输入流的形式读取到本地内存中;将所述输入流转换为所述字节数组,并将所述迁移文件的文件名称、文件地址和所述字节数组封装为FileColumn对象,存入对应的Channel通道中。
值得说明的是,在获取到迁移文件的文件地址后,文件读取模块的程序会获取到源端文件数据源配置信息,在使用文件操作的客户端连接上存储迁移文件的源端文件系统后,通过文件地址列表去获取对应的迁移文件。需要说明的是,对于不同的文件系统,文件操作的客户端不同。在本例中的文件系统为Minio,则采用的文件操作客户端为MinioClient工具,对于其它类型的文件系统,都有相应的客户端操作工具。在这一步中,如果正常获取到迁移文件,则将迁移文件以输入流的形式读取到本地内存中;如果获取不到文件,则直接跳过。
在本步骤中,迁移文件以输入流的形式被读取到内存中,程序获取到文件的输入流,转为一个一个的字节数组,每个字节数组长度为1024,并将文件名称、文件地址和字节数组等信息封装为FileColumn对象,存入Channel通道中。
值得说明的是,在进行大量文件迁移的过程中,使用文件操作客户端连接源端文件系统,由于网络不稳定等原因,在读取文件的过程中,很容易出现连接异常的情况,因此为了提高程序的容错性和稳定性,本发明设计了连接异常重试机制:在程序根据文件地址列表在源端文件系统中获取迁移文件时,当客户端与源端文件系统的连接出现异常时,程序会自动进行M次的重试连接。本实施例中设置的重试连接次数为3次,通过这种机制,大大提高了文件迁移过程的稳定性和可靠性。
进一步的,步骤S103中从所述Channel通道中读取所述字节数组,并根据所述任务配置信息在目标端文件系统的对应位置生成所述迁移文件,包括:从所述Channel通道获取所述FileColumn对象,从所述FileColumn对象中获取所述迁移文件的文件名称、文件地址和所述字节数组;将所述字节数组以输出流的形式,生成对应的本地文件;在读取到所述FileColumn对象中的文件末尾标识后,将所述本地文件上传至所述目标端文件系统的所述文件储存路径下。
值得说明的是,在根据所述任务配置信息在目标端文件系统的对应位置生成所述迁移文件之前,还包括:判断所述目标端文件系统中是否包括所述目标端文件数据源配置信息中的所述文件储存路径;若目标端文件系统包括该文件储存路径,则忽略;若不包括,则通过文件客户端工具在所述目标端文件系统中创建所述文件储存路径,为后续的文件生成做准备。
示范性的,在文件生成环节有两个步骤:文件生成到本地和文件上传到目标端文件系统。由于待迁移文件数量可能较多,为了防止将大量文件流保存到内存中而造成程序内存溢出的情况,在本发明中,设计为:先将文件生成到程序所在服务器本地,再进行服务器本地文件上传至目标端文件系统。
第一步,迁移文件生成到本地。文件写入模块会从Channel通道中获取到FileColumn对象,从FileColumn对象中分别获取到文件名称、文件地址和字节数组,然后通过文件输出流的形式,在程序所在服务器的指定位置生成本地文件。
第二步,迁移文件上传到目标端文件系统。判断FileColumn对象中的是否到达文件末尾标识,当程序判断此时获取到的FileColumn对象中,该标识已经到达文件末尾时,并且已经通过文件输出流将这部分的字节数据写入完成,也就是意味着程序所在服务器上的本地文件生成后,便会开始进行本地文件上传至目标端文件系统的操作。在这一步骤中,会以文件输入流的形式读取程序所在服务器上的本地文件,然后使用文件操作的客户端,将文件输入流中的文件上传至目标端文件系统中指定的文件储存路径下,从而实现从源端文件系统到目标端文件系统的文件迁移。
需要理解的是,文件的存储位置通常是需要被记录在关系型数据表中,业务系统可以通过访问存储在关系型数据表中的文件地址来使用文件,在非结构化文件完成迁移后,文件的存储位置也发生了改变,因此需要将关系型数据表中存储文件位置的字段更新为迁移后文件的最新位置。
本实施例通过在根据所述任务配置信息在目标端文件系统的对应位置生成所述迁移文件之后,根据所述迁移文件在目标端文件系统中的文件地址和在源端文件系统中的文件地址生成SQL更新语句;根据所述SQL更新语句在所述关系型数据表中对迁移文件的文件地址进行更新,实现了在文件迁移至目标端之后,同步更新关系型数据表中的文件地址。
示范性的,本实施例中拼接的SQL更新语句,其形式如下:
Update “COM_FILE” set “URL” = ‘new_path’ where “URL” = ‘old_path’;
其中,new_path是迁移文件在目标端文件系统中的文件地址,old_path是迁移文件在源端文件系统中的文件地址。
优选的,本申请实施还包括失败重跑机制。本申请的方案需要先从关系型数据表中获取文件地址,再通过文件地址去源端的文件系统中读取对应的文件。对于已经迁移成功的文件,程序会将关系型数据表中的文件地址更新为目标端的文件地址。在大量文件迁移过程中,当出现系统崩溃或者网络中断等异常因素导致迁移工作中断后,对于已经迁移成功的文件是没有影响的,因为此时的关系型数据表中的文件地址已经更新,程序不会再去源端文件系统中重复读取该文件。通过这种方式,降低了文件迁移工作的风险,任务失败重跑后,不会影响已经迁移成功的文件,也同时缩短了重跑作业的耗时,提高了文件迁移效率。
本实施例提供的异构文件系统间文件迁移的方法能够自动化实现各种异构文件系统之间文件迁移的需求。可以在文件迁移至目标端之后,同步更新关系型数据表中的文件地址。该文件迁移过程自动化实现,无需人工干预,缩短了迁移过程耗时,显著提升文件迁移效率。在进行大量文件迁移过程中,系统崩溃或者网络中断等异常因素导致迁移中断,不影响后续文件的迁移。可以设置并行度,提高文件迁移的效率。
第二方面,本申请实施例还提供一种异构文件系统间文件迁移的装置。
一实施例中,参照图3,图3为本申请异构文件系统间文件迁移的装置一实施例的功能模块示意图。如图3所示,异构文件系统间文件迁移的装置包括:
文件读取模块,其用于根据接收到的任务配置信息从关系型数据表中获取迁移文件的文件地址列表;根据所述文件地址列表在源端文件系统中获取所述迁移文件,并将所述迁移文件以字节数组的形式存入Channel通道中;
文件写入模块,其用于从所述Channel通道中读取所述字节数组,并根据所述任务配置信息在目标端文件系统的对应位置生成所述迁移文件。
进一步地,一实施例中,所述异构文件系统间文件迁移的装置还包括:
任务配置模块,其用于接收输入的任务配置信息。
进一步地,一实施例中,所述任务配置信息包括:源端文件数据源配置信息、文件数据表配置信息、目标端文件数据源配置信息和调度策略配置信息;
所述源端文件数据源配置信息包括:源端数据源类型、源端数据源和源端数据桶;
所述文件数据表配置信息包括:数据库类型、数据库、关系型数据表、所述迁移文件的URL地址的储存字段以及文件过滤条件;
所述目标端文件数据源配置信息包括:目标端数据源类型、目标端数据源、目标端数据桶和文件储存路径;
所述调度策略配置信息包括:立即执行调度、单次调度或周期调度。
进一步地,一实施例中,所述文件读取模块还用于:
根据所述文件数据表配置信息中的所述数据库类型加载对应的数据库驱动,以与对应的数据库进行连接;
根据所述文件数据表配置信息中的所述关系型数据表、所述迁移文件的URL地址的储存字段和所述文件过滤条件生成数据库SQL查询语句;
在连接的数据库中执行所述SQL查询语句获取所述迁移文件的文件地址列表。
进一步地,一实施例中,所述文件读取模块还用于:
根据所述源端文件数据源配置信息中的所述源端数据源与所述源端文件系统进行连接;
根据所述文件地址列表在所述源端文件系统中获取所述迁移文件,并将获取的所述迁移文件以输入流的形式读取到本地内存中;
将所述输入流转换为所述字节数组,并将所述迁移文件的文件名称、文件地址和所述字节数组封装为FileColumn对象,存入对应的Channel通道中。
进一步地,一实施例中,所述文件读取模块还用于:
根据所述文件地址列表的索引对Channel通道的数量进行取模运算得到各个所述迁移文件对应的Channel通道的编号。
进一步地,一实施例中,所述文件读取模块还用于:
根据所述文件地址列表在所述源端文件系统中获取所述迁移文件时,若与所述源端文件系统的连接异常,则向所述源端文件系统发起M次重试连接。
进一步地,一实施例中,所述文件写入模块还用于:
从所述Channel通道获取所述FileColumn对象,从所述FileColumn对象中获取所述迁移文件的文件名称、文件地址和所述字节数组;
将所述字节数组以输出流的形式,生成对应的本地文件;
在读取到所述FileColumn对象中的文件末尾标识后,将所述本地文件上传至所述目标端文件系统的所述文件储存路径下。
进一步地,一实施例中,所述文件写入模块还用于:
判断所述目标端文件系统中是否包括所述目标端文件数据源配置信息中的所述文件储存路径;
若不包括,则在所述目标端文件系统中创建所述文件储存路径。
进一步地,一实施例中,所述文件写入模块还用于:
在根据所述任务配置信息在目标端文件系统的对应位置生成所述迁移文件之后,根据所述迁移文件在目标端文件系统中的文件地址和在源端文件系统中的文件地址生成SQL更新语句;
根据所述SQL更新语句在所述关系型数据表中对迁移文件的文件地址进行更新。
其中,上述异构文件系统间文件迁移的装置中各个模块的功能实现与上述异构文件系统间文件迁移的方法实施例中各步骤相对应,其功能和实现过程在此处不再一一赘述。
需要说明的是,上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备执行本申请各个实施例所述的方法。
本申请的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。术语“第一”、“第二”和“第三”等描述,是用于区分不同的对象等,其不代表先后顺序,也不限定“第一”、“第二”和“第三”是不同的类型。
在本申请实施例的描述中,“示例性的”、“例如”或者“举例来说”等用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”、“例如”或者“举例来说”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”、“例如”或者“举例来说”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
在本申请实施例描述的一些流程中,包含了按照特定顺序出现的多个操作或步骤,但是应该理解,这些操作或步骤可以不按照其在本申请实施例中出现的顺序来执行或并行执行,操作的序号仅用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作或步骤可以按顺序执行或并行执行,并且这些操作或步骤可以进行组合。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (6)
1.一种异构文件系统间文件迁移的方法,其特征在于,所述异构文件系统间文件迁移的方法包括:
根据接收到的任务配置信息从关系型数据表中获取迁移文件的文件地址列表;
根据所述文件地址列表在源端文件系统中获取所述迁移文件,并将所述迁移文件以字节数组的形式存入Channel通道中;
从所述Channel通道中读取所述字节数组,并根据所述任务配置信息在目标端文件系统的对应位置生成所述迁移文件;
其中,在根据所述任务配置信息在目标端文件系统的对应位置生成所述迁移文件之后,还包括:
根据所述迁移文件在目标端文件系统中的文件地址和在源端文件系统中的文件地址生成SQL更新语句;
根据所述SQL更新语句在所述关系型数据表中对迁移文件的文件地址进行更新;
其中,所述迁移文件为非结构化文件;
其中,所述任务配置信息包括:源端文件数据源配置信息、文件数据表配置信息、目标端文件数据源配置信息和调度策略配置信息;
所述源端文件数据源配置信息包括:源端数据源类型、源端数据源和源端数据桶;
所述文件数据表配置信息包括:数据库类型、数据库、关系型数据表、所述迁移文件的URL地址的储存字段以及文件过滤条件;
所述目标端文件数据源配置信息包括:目标端数据源类型、目标端数据源、目标端数据桶和文件储存路径;
所述调度策略配置信息包括:立即执行调度、单次调度或周期调度;
其中,根据接收到的任务配置信息从关系型数据表中获取迁移文件的文件地址列表,包括:
根据所述文件数据表配置信息中的所述数据库类型加载对应的数据库驱动,以与对应的数据库进行连接;
根据所述文件数据表配置信息中的所述关系型数据表、所述迁移文件的URL地址的储存字段和所述文件过滤条件生成数据库SQL查询语句;
在连接的数据库中执行所述SQL查询语句获取所述迁移文件的文件地址列表;
其中,根据所述文件地址列表在源端文件系统中获取所述迁移文件,并将所述迁移文件以字节数组的形式存入Channel通道中,包括:
根据所述源端文件数据源配置信息中的所述源端数据源与所述源端文件系统进行连接;
根据所述文件地址列表在所述源端文件系统中获取所述迁移文件,并将获取的所述迁移文件以输入流的形式读取到本地内存中;
将所述输入流转换为所述字节数组,并将所述迁移文件的文件名称、文件地址和所述字节数组封装为FileColumn对象,存入对应的Channel通道中。
2.如权利要求1所述的异构文件系统间文件迁移的方法,其特征在于,在将所述迁移文件以字节数组的形式存入Channel通道中之前,还包括:
根据所述文件地址列表的索引对Channel通道的数量进行取模运算得到各个所述迁移文件对应的Channel通道的编号。
3.如权利要求1所述的异构文件系统间文件迁移的方法,其特征在于,还包括:
根据所述文件地址列表在所述源端文件系统中获取所述迁移文件时,若与所述源端文件系统的连接异常,则向所述源端文件系统发起M次重试连接。
4.如权利要求1所述的异构文件系统间文件迁移的方法,其特征在于,从所述Channel通道中读取所述字节数组,并根据所述任务配置信息在目标端文件系统的对应位置生成所述迁移文件,包括:
从所述Channel通道获取所述FileColumn对象,从所述FileColumn对象中获取所述迁移文件的文件名称、文件地址和所述字节数组;
将所述字节数组以输出流的形式,生成对应的本地文件;
在读取到所述FileColumn对象中的文件末尾标识后,将所述本地文件上传至所述目标端文件系统的所述文件储存路径下。
5.如权利要求4所述的异构文件系统间文件迁移的方法,其特征在于,在根据所述任务配置信息在目标端文件系统的对应位置生成所述迁移文件之前,还包括:
判断所述目标端文件系统中是否包括所述目标端文件数据源配置信息中的所述文件储存路径;
若不包括,则在所述目标端文件系统中创建所述文件储存路径。
6.一种异构文件系统间文件迁移的装置,其特征在于,所述异构文件系统间文件迁移的装置包括:
文件读取模块,其用于根据接收到的任务配置信息从关系型数据表中获取迁移文件的文件地址列表;根据所述文件地址列表在源端文件系统中获取所述迁移文件,并将所述迁移文件以字节数组的形式存入Channel通道中;
文件写入模块,其用于从所述Channel通道中读取所述字节数组,并根据所述任务配置信息在目标端文件系统的对应位置生成所述迁移文件;
其中,所述文件写入模块还用于:
在根据所述任务配置信息在目标端文件系统的对应位置生成所述迁移文件之后,根据所述迁移文件在目标端文件系统中的文件地址和在源端文件系统中的文件地址生成SQL更新语句;
根据所述SQL更新语句在所述关系型数据表中对迁移文件的文件地址进行更新;
其中,所述迁移文件为非结构化文件;
其中,其中,所述任务配置信息包括:源端文件数据源配置信息、文件数据表配置信息、目标端文件数据源配置信息和调度策略配置信息;
所述源端文件数据源配置信息包括:源端数据源类型、源端数据源和源端数据桶;
所述文件数据表配置信息包括:数据库类型、数据库、关系型数据表、所述迁移文件的URL地址的储存字段以及文件过滤条件;
所述目标端文件数据源配置信息包括:目标端数据源类型、目标端数据源、目标端数据桶和文件储存路径;
所述调度策略配置信息包括:立即执行调度、单次调度或周期调度;
其中,所述文件读取模块还用于:
根据所述文件数据表配置信息中的所述数据库类型加载对应的数据库驱动,以与对应的数据库进行连接;
根据所述文件数据表配置信息中的所述关系型数据表、所述迁移文件的URL地址的储存字段和所述文件过滤条件生成数据库SQL查询语句;
在连接的数据库中执行所述SQL查询语句获取所述迁移文件的文件地址列表;
其中,所述文件读取模块还用于:
根据所述源端文件数据源配置信息中的所述源端数据源与所述源端文件系统进行连接;
根据所述文件地址列表在所述源端文件系统中获取所述迁移文件,并将获取的所述迁移文件以输入流的形式读取到本地内存中;
将所述输入流转换为所述字节数组,并将所述迁移文件的文件名称、文件地址和所述字节数组封装为FileColumn对象,存入对应的Channel通道中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311723420.8A CN117407362B (zh) | 2023-12-15 | 2023-12-15 | 一种异构文件系统间文件迁移的方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311723420.8A CN117407362B (zh) | 2023-12-15 | 2023-12-15 | 一种异构文件系统间文件迁移的方法与装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117407362A CN117407362A (zh) | 2024-01-16 |
CN117407362B true CN117407362B (zh) | 2024-04-16 |
Family
ID=89494833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311723420.8A Active CN117407362B (zh) | 2023-12-15 | 2023-12-15 | 一种异构文件系统间文件迁移的方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117407362B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999537A (zh) * | 2011-09-19 | 2013-03-27 | 阿里巴巴集团控股有限公司 | 一种数据迁移系统和方法 |
CN103475682A (zh) * | 2012-06-07 | 2013-12-25 | 华为技术有限公司 | 文件迁移方法及设备 |
US8843448B1 (en) * | 2012-12-11 | 2014-09-23 | Emc Corporation | Method and system for renamed directory handling for incremental file migration |
CN106874389A (zh) * | 2017-01-11 | 2017-06-20 | 腾讯科技(深圳)有限公司 | 数据的迁移方法和装置 |
CN112632038A (zh) * | 2020-12-31 | 2021-04-09 | 中国平安人寿保险股份有限公司 | 数据库迁移方法、装置、终端及存储介质 |
CN115309700A (zh) * | 2022-07-26 | 2022-11-08 | 浪潮软件股份有限公司 | 一种针对异构文件服务的通用架构实现方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5331555B2 (ja) * | 2009-04-23 | 2013-10-30 | 株式会社日立製作所 | データ移行システムおよびデータ移行方法 |
WO2013065084A1 (en) * | 2011-11-01 | 2013-05-10 | Hitachi, Ltd. | Information system and method for managing data |
-
2023
- 2023-12-15 CN CN202311723420.8A patent/CN117407362B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102999537A (zh) * | 2011-09-19 | 2013-03-27 | 阿里巴巴集团控股有限公司 | 一种数据迁移系统和方法 |
CN103475682A (zh) * | 2012-06-07 | 2013-12-25 | 华为技术有限公司 | 文件迁移方法及设备 |
US8843448B1 (en) * | 2012-12-11 | 2014-09-23 | Emc Corporation | Method and system for renamed directory handling for incremental file migration |
CN106874389A (zh) * | 2017-01-11 | 2017-06-20 | 腾讯科技(深圳)有限公司 | 数据的迁移方法和装置 |
WO2018130066A1 (zh) * | 2017-01-11 | 2018-07-19 | 腾讯科技(深圳)有限公司 | 数据的迁移方法、计算机设备和存储介质 |
CN112632038A (zh) * | 2020-12-31 | 2021-04-09 | 中国平安人寿保险股份有限公司 | 数据库迁移方法、装置、终端及存储介质 |
CN115309700A (zh) * | 2022-07-26 | 2022-11-08 | 浪潮软件股份有限公司 | 一种针对异构文件服务的通用架构实现方法 |
Non-Patent Citations (4)
Title |
---|
异构存储系统中基于能量模型的文件迁移策略;黄河清等;北京航空航天大学学报;20070915;第1107-1111页 * |
潘宁.现代数据库原理与索引设计优化.北京华文出版社,2022,第126-140页. * |
肖艳秋等.CAD/CAM技术及应用.华中科技大学出版社,2022,第52-55页. * |
郑春燕等.地理信息系统原理、应用与工程.武汉大学出版社,2005,第283-285页. * |
Also Published As
Publication number | Publication date |
---|---|
CN117407362A (zh) | 2024-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210263948A1 (en) | Content transfer | |
US10558615B2 (en) | Atomic incremental load for map-reduce systems on append-only file systems | |
US8065323B2 (en) | Offline validation of data in a database system for foreign key constraints | |
US20030105843A1 (en) | Input/output device information management system for multi-computer system | |
US20080028007A1 (en) | Backup control apparatus and method eliminating duplication of information resources | |
CN111324610A (zh) | 一种数据同步的方法及装置 | |
US20050216486A1 (en) | Methods and systems for software release management | |
CN102193841B (zh) | 一种Subversion配置库的备份方法及装置 | |
CN105550342B (zh) | 一种全透明的分布式数据库的数据处理方法 | |
CN112445519B (zh) | 文件变更控制方法、装置、设备及存储介质 | |
CN103778176A (zh) | Mes系统中数据的长期归档 | |
CN117407362B (zh) | 一种异构文件系统间文件迁移的方法与装置 | |
CN113468143A (zh) | 数据迁移方法、系统、计算设备及存储介质 | |
CN111782619A (zh) | 一种服务端间文档增量同步方法、同步装置及存储介质 | |
CN116049142A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN113792026A (zh) | 数据库脚本的部署方法、装置及计算机可读存储介质 | |
CN111400396A (zh) | 数据同步脚本的生成方法、装置及计算机可读存储介质 | |
CN111142791A (zh) | 数据迁移方法和装置 | |
JPH1091405A (ja) | ソフトウェア保守方法 | |
CN112148710B (zh) | 微服务分库方法、系统和介质 | |
CN114928604B (zh) | 文件分发方法和装置 | |
JPH0934771A (ja) | 分散システムのサブファイル転送方式 | |
JPH0256666A (ja) | ジョブネットワーク一元管理システム生成情報動的更新方式 | |
JP2004334325A (ja) | ファイル変換システムおよび方法 | |
CN115374090A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |