CN114741375A - 一种多源异构数据库快速自动数据迁移系统及方法 - Google Patents
一种多源异构数据库快速自动数据迁移系统及方法 Download PDFInfo
- Publication number
- CN114741375A CN114741375A CN202210541924.7A CN202210541924A CN114741375A CN 114741375 A CN114741375 A CN 114741375A CN 202210541924 A CN202210541924 A CN 202210541924A CN 114741375 A CN114741375 A CN 114741375A
- Authority
- CN
- China
- Prior art keywords
- task
- database
- data migration
- information
- 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.)
- Pending
Links
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- 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/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/252—Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- 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)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种多源异构数据库快速自动数据迁移系统及方法,通过集成数据迁移工具和任务调度平台,将数据迁移任务进行快速自动生成并自动调度执行,执行结果支持自动检查,对失败的任务通过邮件或即时通讯方式进行自动告警提醒。本发明可以支持多种不同类型的数据库进行转换,并且支持扩展新增数据库。本发明在异构数据库之间大量数据表迁移场景下,能够令开发人员采用低代码方式即可快速实现数据迁移,降低了开发人员的技术门槛,提高了数据迁移的效率,节省了研发人力成本,并增强了数据迁移的可靠性和可维护性。
Description
技术领域
本发明属于数据处理技术领域,涉及一种多源异构数据库快速自动数据迁移系统及方法。
背景技术
为了尽可能多地获取企业信用数据,需要从各数据源单位采集企业信用数据。在采集过程中,往往会遇到部分数据源单位的数据库存储选型与目的端不一致的问题,需要手动根据源数据类型的表结构转换为目的数据库类型的表结构,特别是遇到转换表的数据量较多时,这种异构数据库之间的结构转换和数据迁移工作变得复杂和繁琐。并且在数据治理过程中,数据仓库中的治理后数据同步到业务应用数据库时,也会遇到类似异构数据库之间的数据迁移问题。另外,在数据库热备份场景中,也需要在异构数据库之间快速迁移,从而达到快速进行数据备份的效果。
目前,异构数据库之间的数据迁移,可以采用主流的ETL工具来进行数据迁移,但是迁移任务配置文件还是需要自行开发。当迁移任务数量较多时,需要投入较多的开发人力资源,花费大量的时间,并且人工开发,增加了出错的可能性,后期还要花费较多的调试工作量。且单纯使用数据迁移工具,无法对迁移任务进行定时调度和任务执行监控,一旦执行失败,无法及时感知。
发明内容
为解决上述问题,本发明提供了一种多源异构数据库快速自动数据迁移系统及方法,通过构建数据迁移Pipeline任务流,对源数据库表进行自动转换为目的数据库表,并集成数据迁移工具和任务调度工具,将数据迁移任务进行快速自动生成并自动调度执行,执行结果支持自动检查,对失败的任务通过邮件或即时通讯方式进行自动告警提醒。能够支持多种类型的数据库之间进行快速自动数据迁移,节省开发人力成本,提高数据迁移效率。
为达到上述目的,本发明的技术方案如下:
一种多源异构数据库快速自动数据迁移系统,包括前端和服务端;
所述前端包含sync-web模块,用于用户登录系统,提交数据库连接信息,提交关键字映射关系信息,提交自动生成摸板文件信息,以及提交自动生成数据迁移Pipeline任务流信息;该任务流包含目的库表自动生成任务、数据迁移配置自动生成任务、任务调度工作流配置自动生成任务以及数据迁移自动执行及检查任务,并能够进行任务串联编排,任务流执行完成后,能够展示任务流及子任务的执行结果状态供查看;
所述服务端包含sync-api接口模块、sync-server服务模块以及sync-utils服务模块;所述sync-api接口模块用于抽象出需要提供的RESTful api接口,并定义服务端需要接收的信息对象的实体类,通过该接口模块对前端提交的请求进行传递和响应;所述sync-server服务模块包括系统管理服务子模块、数据源管理服务子模块、关键字映射管理服务子模块、模板管理服务子模块以及自动任务管理服务子模块;所述系统管理服务子模块用于实现用户登录请求处理、用户管理、组织管理、角色管理;所述数据源管理服务子模块用于将数据库连接信息保存到系统数据库中以及从数据库中查询数据库连接信息;所述关键字映射管理服务子模块用于将源数据库和目的数据库之间转换涉及的关键字映射关系信息保存到系统数据库中,提供给目的库表自动生成任务执行时进行查询;所述模板管理服务子模块用于将自动生成数据迁移相关结果文件的模板信息保存到系统数据库中,提供给数据迁移配置自动生成任务和任务调度工作流配置自动生成任务执行时查询;所述自动任务管理服务子模块用于将自动生成数据迁移Pipeline任务流信息保存到系统数据库中,以及实现任务流执行请求,并在任务流执行完成后,将任务流及子任务的执行结果保存到系统数据库中,提供给前端进行查询;所述Pipeline任务流首先执行目的库表自动生成任务,将源数据库的待转换表根据关键字映射关系自动转换为目的数据库的表DDL,并保存到系统数据库中;随后执行数据迁移配置自动生成任务,将根据前述提交的模板信息,以及源数据库表和目的数据库表信息,自动生成数据迁移配置文件;随后执行任务调度工作流配置自动生成任务,将根据前述定义提交的模板信息,结合上一步生成的数据迁移配置文件,自动生成任务调度工作流配置文件;随后执行数据迁移自动任务,连接目的数据库,将前述自动生成的目的表进行自动创建,并通过sync-utils服务模块,与外部的任务调度平台进行交互,将前述生成的任务调度工作流配置文件通过API接口方式自动导入,并通过接口自动触发工作流执行,拉起数据迁移任务,将源数据库的数据迁移到目的数据库中。
进一步的,所述目的库表自动生成任务处理流程包括如下步骤:
首先选择源数据库类型,如果需要连接源数据库,则输入源数据库连接信息;
服务端连接源数据库后,将表信息返回给前端,选择待转换的数据表,如果由于开发阶段,源数据库信息由于安全考虑不能直接获取,则上传源数据库表的DDL文件;
选择目的数据库类型和目的数据库连接信息;
提交目的表自动生成任务请求给服务端,服务端接收请求后,根据请求报文内容,获取源数据库表的DDL信息;如果是直接连接源数据库,则根据选择的表,使用show createtable,获取每个表的DDL信息后再进行整合;如果是从提交的DDL文件中获取,则调用FileReader类解析文件内容后获取DDL信息;
获取到原数据所有待转换表的DDL内容后,将获取的DDL信息保存到系统数据库中;
根据目的数据库类型,生成目的表、表字段、字段类型、字段注释以及索引等信息,封装成TableInfo类对象,并对每一个表信息分别封装对应的Map数据,结合目的库表自动生成模板,采用模板引擎技术,生成所有目的表的DDL文件内容;
首次生成的结果,返回给前端,支持用户对内容进行编辑修改,并确认保存,最终将保存的结果写入系统数据库,自动生成的目的表DDL文件内容异步写入对象存储中。
进一步的,所述数据迁移配置自动生成任务支持全量同步和增量同步。
进一步的,所述数据迁移配置自动生成任务包括如下流程:
选择需要生成的同步类型,提交数据迁移配置自动生成任务请求给服务端;
服务端接收请求后,获取同步类型和上一步任务的Pipeline唯一主键p_id;
根据p_id从系统数据库中查询获取源数据库和目的数据库连接信息,以及源数据库表名和字段信息、目的数据库表名和字段信息,根据不同的同步类型值,构造封装成不同的Map数据;
如果同步类型是全量,则构造源数据库表的全量字段封装到Map数据对象中;如果同步类型是增量,则构造增量数据查询内容封装到Map数据对象中;
加载指定的数据迁移配置自动生成模板,使用上述Map数据,采用模板引擎技术,渲染生成最终的数据迁移配置Manifest文件;
根据同步类型值不同,生成不同的数据迁移配置Manifest文件;
最终将保存的结果写入系统数据库,文件内容异步写入对象存储中。
进一步的,所述任务调度工作流配置自动生成任务包括如下流程:
配置任务调度工作流所属的项目名称和工作流名称参数,提交任务调度工作流配置自动生成请求给服务端;
服务端接收请求后,获取上述的项目名称和工作流名称参数,以及上一步任务的Pipeline唯一主键p_id;
根据p_id从系统数据库中查询获取数据迁移配置自动生成任务的Manifest内容和目的表名,并对Manifest内容进行转义处理;将转义后的Manifest内容、目的表名和随机生成的taskid值构造对象Map数据;
读取任务调度工作流定义自动生成模板,使用上述Map数据,采用模板引擎技术,渲染生成任务调度工作流定义Manifest内容,对该Manifest内容再进行转义处理;
根据目的表名和taskid,构造位置对象内容并进行转义处理;
读取任务调度工作流配置自动生成模板,将前述转义后的Manifest内容、项目名称和工作流名称,构造对象Map数据;使用该Map数据结合模板,采用模板引擎技术,渲染生成任务调度工作流配置Manifest文件;
最终将结果保存写入系统数据库,文件内容异步写入对象存储中。
进一步的,所述数据迁移自动执行及检查任务包括如下流程:
配置任务调度平台访问地址、用户名和密码参数,随后提交数据迁移自动执行及检查任务请求给服务端;
服务端接收请求后,获取上述的请求参数,以及上一步任务的Pipeline唯一主键p_id;
根据p_id从系统数据库中查询获取目的库连接信息和目的表DDL内容,连接目的库,使用目的表DDL自动创建目的表;
通过sync-utils服务模块,与外部的任务调度平台进行交互,发送API接口请求,使用用户名和密码,调用登录接口,获取权限令牌信息;
根据p_id从系统数据库中查询获取任务调度工作流配置Manifest文件存储的fileid,使用该fileid从对象存储中获取该Manifest文件;
根据所述权限令牌信息,调用工作流导入接口,自动导入任务调度工作流;
从返回报文中获取工作流唯一标识processid,并分别调用工作流上线接口和工作流实例执行接口;
循环调用任务实例查询接口,检查任务执行状态,根据任务状态进行相应的处理。
进一步的,所述根据任务状态进行相应的处理的过程具体如下:
如果任务执行状态为“正在执行”,则等待一定时间后再查询执行状态;如果任务执行状态为“正在失败”,则发送任务失败告警提醒;如果任务执行状态为“成功”,则调用日志详情接口,检查任务执行日志,获取“读写失败总数”的值,如果失败值大于0,则进行任务失败告警提醒。
进一步的,所述异构数据库包括RDBMS关系型数据库、NoSQL数据存储和时间序列数据库。
本发明还提供了一种多源异构数据库快速自动数据迁移方法,包括如下步骤:
步骤一:创建待数据迁移的源数据库和目的数据库连接信息,连接信息最终存储到系统数据库的数据源连接信息表中;
步骤二:创建需要用到的关键字映射关系,将这些不同数据库的关键字映射关系提前维护完成,关键字映射关系信息最终存储到系统数据库的关键字映射表中;
步骤三:创建目的库表自动生成模板、数据迁移配置自动生成模板、任务调度工作流定义自动生成模板以及任务调度工作流配置自动生成模板,模板信息最终存储到系统数据库的模板信息表中;
步骤四:创建自动数据迁移Pipeline任务流,并创建目的库表自动生成任务、数据迁移配置自动生成任务、任务调度工作流配置自动生成任务以及数据迁移自动执行及检查任务,最后将这些任务串联编排到Pipeline任务流中;
步骤五:任务调度工作流配置自动生成任务根据上一步的生成结果以及任务调度工作流的2个模板,最终生成任务调度工作流配置Manifest文件;
步骤六:执行该Pipeline任务流,即可自动完成数据迁移。
本发明的有益效果为:
1.本发明提供了一种基于多源异构数据库快速自动数据迁移的系统,可以支持多种不同类型的数据库进行转换,并且支持扩展新增数据库。
2.本发明通过集成数据迁移工具和任务调度平台,将数据迁移任务进行快速自动生成并自动调度执行,执行结果支持自动检查,对失败的任务通过邮件或即时通讯方式进行自动告警提醒。
3.本发明提供了一种基于模板引擎技术,动态渲染生成目的库表文件、数据迁移配置文件以及任务调度工作流配置Manifest文件,并且可以支持业界主流的多种模板引擎技术。
4.本发明提供的数据自动迁移的方法,在异构数据库之间大量数据表迁移场景下,能够令开发人员采用低代码方式即可快速实现数据迁移,降低了开发人员的技术门槛,提高了数据迁移的效率,节省了研发人力成本,并增强了数据迁移的可靠性和可维护性。
附图说明
图1为本发明提供的多源异构数据库快速自动数据迁移系统结构示意图。
图2为Pipeline任务流执行流程示意图。
图3为系统数据库使用的数据模型。
图4为目的库表自动生成任务处理流程图。
图5为数据迁移配置自动生成任务处理流程图。
图6为任务调度工作流配置自动生成任务处理流程图。
图7为数据迁移自动执行及检查任务处理流程图。
图8为源数据库和目的数据库关键字映射关系示意图。
具体实施方式
以下将结合具体实施例对本发明提供的技术方案进行详细说明,应理解下述具体实施方式仅用于说明本发明而不用于限制本发明的范围。另外,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本发明提供了一种多源异构数据库快速自动数据迁移系统,如图1所示,采用前后端分离架构,包括前端和服务端。前端用于用户登录系统、提交数据库连接信息、提交关键字映射关系信息、提交自动生成摸板文件信息以及提交自动生成数据迁移Pipeline任务流信息;服务端用于接收所述前端提交的请求,并完成处理后,将请求结果返回前端。
前端包含sync-web模块,提供了简单易用的操作界面。支持系统的用户账号新增、删除、修改和查询的配置。支持配置数据库连接信息,通过测试连接功能测试连接信息是否可用。数据库连接信息包含IP地址、用户名、密码、实例名。本发明支持的异构数据库类型既包含主流的RDBMS关系型数据库,也包含NoSQL数据存储和时间序列数据库。支持对异构数据库之间关键字映射关系信息进行配置维护。支持自动生成摸板文件信息配置维护。支持自动生成数据迁移Pipeline任务流信息配置维护,可新建自动生成数据迁移Pipeline任务流信息,该任务流可包含目的库表自动生成任务、数据迁移配置自动生成任务、任务调度工作流配置自动生成任务以及数据迁移自动执行及检查任务,并支持任务串联编排,任务流执行完成后,可以查看任务流及子任务的执行结果状态。
服务端主要包含sync-api接口模块、sync-server服务模块以及sync-utils服务模块。sync-api接口模块用于抽象出需要提供的RESTful api接口,并定义服务端需要接收的信息对象的实体类,通过该接口模块对前端提交的请求进行传递和响应。sync-server服务模块用于实现系统管理功能、数据源管理功能、关键字映射管理功能、模板管理功能以及自动任务管理功能,具体包括系统管理服务子模块、数据源管理服务子模块、关键字映射管理服务子模块、模板管理服务子模块以及自动任务管理服务子模块。系统管理服务子模块实现用户登录请求处理、用户管理、组织管理、角色管理。数据源管理服务子模块用于实现将数据库连接信息保存到系统数据库中以及从数据库中查询数据库连接信息。关键字映射管理服务子模块用于实现将源数据库和目的数据库之间转换涉及的关键字映射关系信息保存到系统数据库中,提供给目的库表自动生成任务执行时进行查询。模板管理服务子模块用于实现将自动生成数据迁移相关结果文件的模板信息保存到系统数据库中,提供给目的库表自动生产任务、数据迁移配置自动生成任务和任务调度工作流配置自动生成任务执行时查询。自动任务管理服务子模块用于实现自动生成数据迁移Pipeline任务流信息保存到系统数据库中,以及实现任务流执行请求。任务流执行完成后,将任务流及子任务的执行结果保存到系统数据库中,提供给前端进行查询。如图2所示,Pipeline任务流首先执行目的库表自动生成任务,该任务将源数据库的待转换表根据关键字映射关系自动转换为目的数据库的表DDL,并保存到系统数据库中。系统数据库使用的数据模型如图3所示。随后Pipeline任务流进一步执行数据数据迁移配置自动生成任务,该任务将根据前述提交的模板信息,以及源数据库表和目的数据库表信息,自动生成数据迁移配置文件;再执行任务调度工作流配置自动生成任务,该任务将根据前述定义提交的模板信息,结合上一步生成的数据迁移配置文件,自动生成调度工作流配置文件;最后执行数据迁移自动执行及检查任务,该任务会连接目的数据库,将前述自动生成的目的数据库的表DDL进行自动创建,并通过sync-utils服务模块,与外部的任务调度平台进行交互,将前述生成的任务调度工作流配置文件通过API接口方式自动导入,并通过与外部系统的交互接口自动触发任务调度工作流执行,会自动拉起数据迁移任务,将源数据库的数据迁移到目的数据库中。
服务端的用户管理包含用户创建、用户修改、用户查询、用户删除以及用户角色配置功能;组织管理包含组织创建、组织修改、组织查询以及组织删除功能;角色管理包含角色创建、角色修改、角色查询、角色删除以及角色权限配置功能。
前述的目的库表自动生成任务处理流程如图4所示。首先选择源数据库类型,如果需要连接源数据库,那么输入源数据库连接信息(可以提前在数据源管理中进行配置后直接引用),服务端连接源数据库后,将表信息返回给前端,选择待转换的数据表(任务自动执行前,由用户预先配置对哪些源表进行转换)。如果由于开发阶段,源数据库信息由于安全考虑不能直接获取,可以上传源数据库表的DDL文件。随后,选择目的数据库类型和目的数据库连接信息(可以提前在数据源管理中进行配置后直接引用)。随后,提交目的表自动生成任务请求给服务端,服务端接收请求后,根据请求报文内容,获取源数据库表的DDL信息。其中,如果是直接连接源数据库,则根据选择的表,使用show create table,获取每个表的DDL信息后再进行整合。如果是从提交的DDL文件中获取,则调用FileReader类解析文件内容后获取DDL信息。获取到原数据所有待转换表的DDL内容后,将获取的DDL信息保存到系统数据库中。根据目的数据库类型,生成目的表、表字段、字段类型、字段注释以及索引等信息,封装成TableInfo类对象,并对每一个表信息分别封装对应的Map数据(key为table,value为TableInfo类对象),结合目的库表自动生成模板文件,采用模板引擎技术(模板引擎采用插件化架构,可扩展支持业界主流的多种模板引擎技术),渲染生成所有目的表的DDL文件内容。首次生成的结果,返回给前端,支持用户对内容(包括字段名、字段注释、字段类型和字段范围等)进行编辑修改,并确认保存。最终将保存的结果写入系统数据库,自动生成的目的表DDL文件内容异步写入对象存储中。文件下载可以直接从对象存储中获取。
数据迁移配置自动生成任务支持2种同步类型,包含全量同步和增量同步。其处理流程如图5所示。当选择源数据库和目的数据库之后,选择需要生成的同步类型,提交数据迁移配置自动生成任务请求给服务端。服务端接收请求后,获取同步类型和上一步任务的Pipeline唯一主键p_id。根据p_id从系统数据库中查询获取源数据库和目的数据库连接信息,以及源数据库表名和字段信息、目的数据库表名和字段信息,根据不同的同步类型值,构造封装成不同的Map数据。如果同步类型是全量,则构造源数据库表的全量字段封装到Map数据对象中;如果同步类型是增量,则构造增量数据查询内容封装到Map数据对象中。加载指定的数据迁移配置自动生成模板,使用上述Map数据,采用模板引擎技术,渲染生成最终的数据迁移配置Manifest文件。同步类型值不同,会生成不同的数据迁移配置Manifest文件。最终将保存的结果写入系统数据库,文件内容异步写入对象存储中。
任务调度工作流配置自动生成任务处理流程如图6所示。首先配置任务调度工作流所属的项目名称和工作流名称参数,随后提交任务调度工作流配置自动生成请求给服务端。服务端接收请求后,获取上述的项目名称和工作流名称参数,以及上一步任务的Pipeline唯一主键p_id。根据p_id从系统数据库中查询获取数据迁移配置自动生成任务的Manifest内容和目的表名,并对Manifest内容进行转义处理。将转义后的Manifest内容、目的表名和随机生成的taskid值构造对象Map数据。读取任务调度工作流定义自动生成模板,使用上述Map数据,采用模板引擎技术,渲染生成任务调度工作流定义Manifest内容,对该Manifest内容再进行转义处理。根据目的表名和taskid,构造位置对象内容并进行转义处理。读取任务调度工作流配置自动生成模板,将前述转义后的Manifest内容、项目名称和工作流名称,构造对象Map数据。使用该Map数据结合模板,采用模板引擎技术,渲染生成任务调度工作流配置Manifest文件。最终将结果保存写入系统数据库,文件内容异步写入对象存储中。
数据迁移自动执行及检查任务处理流程如图7所示。首先配置任务调度平台访问地址、用户名和密码参数,随后提交数据迁移自动执行及检查任务请求给服务端。服务端接收请求后,获取上述的请求参数,以及上一步任务的Pipeline唯一主键p_id。根据p_id从系统数据库中查询获取目的库连接信息和目的表DDL内容,连接目的库,使用目的表DDL自动创建目的表。通过sync-utils服务模块,与外部的任务调度平台进行交互,发送API接口请求,使用用户名和密码,调用登录接口,获取权限令牌令牌信息。根据p_id从系统数据库中查询获取任务调度工作流配置Manifest文件存储的fileid,使用该fileid从对象存储中获取该Manifest文件。根据上述的权限令牌信息,调用工作流导入接口,自动导入任务调度工作流。从返回报文中获取工作流唯一标识processid,并分别调用工作流上线接口和工作流实例执行接口。循环调用任务实例查询接口,检查任务执行状态,如果任务执行状态为“正在执行”,则等待一定时间后再查询执行状态;如果任务执行状态为“正在失败”,则通过邮件或者即时通讯方式发送任务失败告警提醒,告警的方式可进行扩展,支持如短信、微信、钉钉等;如果任务执行状态为“成功”,则调用日志详情接口,检查任务执行日志,获取“读写失败总数”的值,如果失败值大于0,则进行任务失败告警提醒。
本发明实施例还提供了一种基于多源异构数据库之间进行快速自动数据迁移方法,该方法包括如下步骤:
步骤一:创建待数据迁移的源数据库s_db和目的数据库d_db的连接信息,连接信息最终存储到系统数据库的数据源连接信息表中。
步骤二:创建需要用到的关键字映射关系,例如源数据库s_db的关键字s_key1映射为目的数据库d_db的关键字d_key1,关键字s_key2映射为关键字d_key2,如图8所示。将这些不同数据库的关键字映射关系提前维护完成,关键字映射关系信息最终存储到系统数据库的关键字映射表中。
步骤三:创建目的库表自动生成模板、数据迁移配置自动生成模板、任务调度工作流定义自动生成模板以及任务调度工作流配置自动生成模板,这里目的库表自动生成模板用于根据目的表表名、字段名、字段注释等内容,采用模板引擎技术,自动生成目的表DDL内容。数据迁移配置自动生成模板用于根据源数据库连接信息、目的库连接信息、源表和目的表字段信息等内容,采用模板引擎技术,自动生成数据迁移配置Manifest内容。任务调度工作流定义自动生成模板用于根据前述生成的数据迁移配置Manifest内容、目的表名和随机任务标识taskid,采用模板引擎技术,自动生成任务调度工作流定义Manifest内容。任务调度工作流配置自动生成模板用于根据前述自动生成的任务调度工作流定义Manifest、工作流定义的位置对象Manifest、工作流名称和项目名称等内容,采用模板引擎技术,自动生成任务调度工作流配置Manifest内容。其中,工作流名称和项目名称在创建任务调度工作流配置自动生成时进行配置,工作流定义的位置对象Manifest内容由任务调度工作流配置自动生成任务处理过程中自动生成。创建的模板信息最终存储到系统数据库的模板信息表中。
步骤四:创建自动数据迁移Pipeline任务流,并创建目的库表自动生成任务、数据迁移配置自动生成任务、任务调度工作流配置自动生成任务以及数据迁移自动执行及检查任务,最后将这些任务串联编排到Pipeline任务流中。其中,目的库表自动生成任务,选择源数据库s_db的t_source表,选择目的数据库d_db的t_target表,这里源数据库的表也支持以DDL文件形式进行导入。其中,数据迁移配置自动生成任务选择上述源数据库s_db的t_source表和目的数据库d_db的t_target表。
步骤五:任务调度工作流配置自动生成任务根据上一步的任务生成的结果以及任务调度工作流的2个模板,最终生成任务调度工作流配置Manifest文件。
步骤六:执行该Pipeline任务流,即可自动完成数据迁移。具体的,Pipeline任务流的具体执行过程参见前述图2所示。其中,目的库表自动在目的数据库d_db中创建,任务调度工作流配置文件自动导入到任务调度平台中。自动生成任务信息最终存储到系统数据库的自动迁移任务表中。通过sync-utils服务模块,与外部的任务调度平台进行交互,获取任务执行状态及日志信息,并检查执行状态和日志信息,对失败任务使用邮件或即时通讯方式进行自动告警提醒。
需要说明的是,以上内容仅仅说明了本发明的技术思想,不能以此限定本发明的保护范围,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰均落入本发明权利要求书的保护范围之内。
Claims (9)
1.一种多源异构数据库快速自动数据迁移系统,其特征在于,包括前端和服务端;
所述前端包含sync-web模块,用于用户登录系统,提交数据库连接信息,提交关键字映射关系信息,提交自动生成摸板文件信息,以及提交自动生成数据迁移Pipeline任务流信息;该任务流包含目的库表自动生成任务、数据迁移配置自动生成任务、任务调度工作流配置自动生成任务以及数据迁移自动执行及检查任务,并能够进行任务串联编排,任务流执行完成后,能够展示任务流及子任务的执行结果状态供查看;
所述服务端包含sync-api接口模块、sync-server服务模块以及sync-utils服务模块;所述sync-api接口模块用于抽象出需要提供的RESTful api接口,并定义服务端需要接收的信息对象的实体类,通过该接口模块对前端提交的请求进行传递和响应;所述sync-server服务模块包括系统管理服务子模块、数据源管理服务子模块、关键字映射管理服务子模块、模板管理服务子模块以及自动任务管理服务子模块;所述系统管理服务子模块用于实现用户登录请求处理、用户管理、组织管理、角色管理;所述数据源管理服务子模块用于将数据库连接信息保存到系统数据库中以及从数据库中查询数据库连接信息;所述关键字映射管理服务子模块用于将源数据库和目的数据库之间转换涉及的关键字映射关系信息保存到系统数据库中,提供给目的库表自动生成任务执行时进行查询;所述模板管理服务子模块用于将自动生成数据迁移相关结果文件的模板信息保存到系统数据库中,提供给数据迁移配置自动生成任务和任务调度工作流配置自动生成任务执行时查询;所述自动任务管理服务子模块用于将自动生成数据迁移Pipeline任务流信息保存到系统数据库中,以及实现任务流执行请求,并在任务流执行完成后,将任务流及子任务的执行结果保存到系统数据库中,提供给前端进行查询;所述Pipeline任务流首先执行目的库表自动生成任务,将源数据库的待转换表根据关键字映射关系自动转换为目的数据库的表DDL,并保存到系统数据库中;随后执行数据迁移配置自动生成任务,将根据前述提交的模板信息,以及源数据库表和目的数据库表信息,自动生成数据迁移配置文件;随后执行任务调度工作流配置自动生成任务,将根据前述定义提交的模板信息,结合上一步生成的数据迁移配置文件,自动生成任务调度工作流配置文件;随后执行数据迁移自动任务,连接目的数据库,将前述自动生成的目的表进行自动创建,并通过sync-utils服务模块,与外部的任务调度平台进行交互,将前述生成的任务调度工作流配置文件通过API接口方式自动导入,并通过接口自动触发工作流执行,拉起数据迁移任务,将源数据库的数据迁移到目的数据库中。
2.根据权利要求1所述的多源异构数据库快速自动数据迁移系统,其特征在于,所述目的库表自动生成任务处理流程包括如下步骤:
首先选择源数据库类型,如果需要连接源数据库,则输入源数据库连接信息;
服务端连接源数据库后,将表信息返回给前端,选择待转换的数据表,如果由于开发阶段,源数据库信息由于安全考虑不能直接获取,则上传源数据库表的DDL文件;
选择目的数据库类型和目的数据库连接信息;
提交目的表自动生成任务请求给服务端,服务端接收请求后,根据请求报文内容,获取源数据库表的DDL信息;如果是直接连接源数据库,则根据选择的表,使用show createtable,获取每个表的DDL信息后再进行整合;如果是从提交的DDL文件中获取,则调用FileReader类解析文件内容后获取DDL信息;
获取到原数据所有待转换表的DDL内容后,将获取的DDL信息保存到系统数据库中;
根据目的数据库类型,生成目的表、表字段、字段类型、字段注释以及索引等信息,封装成TableInfo类对象,并对每一个表信息分别封装对应的Map数据,结合目的库表自动生成模板,采用模板引擎技术,生成所有目的表的DDL文件内容;
首次生成的结果,返回给前端,支持用户对内容进行编辑修改,并确认保存,最终将保存的结果写入系统数据库,自动生成的目的表DDL文件内容异步写入对象存储中。
3.根据权利要求1所述的多源异构数据库快速自动数据迁移系统,其特征在于,所述数据迁移配置自动生成任务支持全量同步和增量同步。
4.根据权利要求1所述的多源异构数据库快速自动数据迁移系统,其特征在于,所述数据迁移配置自动生成任务包括如下流程:
选择需要生成的同步类型,提交数据迁移配置自动生成任务请求给服务端;
服务端接收请求后,获取同步类型和上一步任务的Pipeline唯一主键p_id;
根据p_id从系统数据库中查询获取源数据库和目的数据库连接信息,以及源数据库表名和字段信息、目的数据库表名和字段信息,根据不同的同步类型值,构造封装成不同的Map数据;
如果同步类型是全量,则构造源数据库表的全量字段封装到Map数据对象中;如果同步类型是增量,则构造增量数据查询内容封装到Map数据对象中;
加载指定的数据迁移配置自动生成模板,使用上述Map数据,采用模板引擎技术,渲染生成最终的数据迁移配置Manifest文件;
根据同步类型值不同,生成不同的数据迁移配置Manifest文件;
最终将保存的结果写入系统数据库,文件内容异步写入对象存储中。
5.根据权利要求1所述的多源异构数据库快速自动数据迁移系统,其特征在于,所述任务调度工作流配置自动生成任务包括如下流程:
配置任务调度工作流所属的项目名称和工作流名称参数,提交任务调度工作流配置自动生成请求给服务端;
服务端接收请求后,获取上述的项目名称和工作流名称参数,以及上一步任务的Pipeline唯一主键p_id;
根据p_id从系统数据库中查询获取数据迁移配置自动生成任务的Manifest内容和目的表名,并对Manifest内容进行转义处理;将转义后的Manifest内容、目的表名和随机生成的taskid值构造对象Map数据;
读取任务调度工作流定义自动生成模板,使用上述Map数据,采用模板引擎技术,渲染生成任务调度工作流定义Manifest内容,对该Manifest内容再进行转义处理;
根据目的表名和taskid,构造位置对象内容并进行转义处理;
读取任务调度工作流配置自动生成模板,将前述转义后的Manifest内容、项目名称和工作流名称,构造对象Map数据;使用该Map数据结合模板,采用模板引擎技术,渲染生成任务调度工作流配置Manifest文件;
最终将结果保存写入系统数据库,文件内容异步写入对象存储中。
6.根据权利要求1所述的多源异构数据库快速自动数据迁移系统,其特征在于,所述数据迁移自动执行及检查任务包括如下流程:
配置任务调度平台访问地址、用户名和密码参数,随后提交数据迁移自动执行及检查任务请求给服务端;
服务端接收请求后,获取上述的请求参数,以及上一步任务的Pipeline唯一主键p_id;
根据p_id从系统数据库中查询获取目的库连接信息和目的表DDL内容,连接目的库,使用目的表DDL自动创建目的表;
通过sync-utils服务模块,与外部的任务调度平台进行交互,发送API接口请求,使用用户名和密码,调用登录接口,获取权限令牌信息;
根据p_id从系统数据库中查询获取任务调度工作流配置Manifest文件存储的fileid,使用该fileid从对象存储中获取该Manifest文件;
根据所述权限令牌信息,调用工作流导入接口,自动导入任务调度工作流;
从返回报文中获取工作流唯一标识processid,并分别调用工作流上线接口和工作流实例执行接口;
循环调用任务实例查询接口,检查任务执行状态,根据任务状态进行相应的处理。
7.根据权利要求6所述的多源异构数据库快速自动数据迁移系统,其特征在于,所述根据任务状态进行相应的处理的过程具体如下:
如果任务执行状态为“正在执行”,则等待一定时间后再查询执行状态;如果任务执行状态为“正在失败”,则发送任务失败告警提醒;如果任务执行状态为“成功”,则调用日志详情接口,检查任务执行日志,获取“读写失败总数”的值,如果失败值大于0,则进行任务失败告警提醒。
8.根据权利要求1所述的多源异构数据库快速自动数据迁移系统,其特征在于,所述异构数据库包括RDBMS关系型数据库、NoSQL数据存储和时间序列数据库。
9.一种多源异构数据库快速自动数据迁移方法,其特征在于,包括如下步骤:
步骤一:创建待数据迁移的源数据库和目的数据库连接信息,连接信息最终存储到系统数据库的数据源连接信息表中;
步骤二:创建需要用到的关键字映射关系,将这些不同数据库的关键字映射关系提前维护完成,关键字映射关系信息最终存储到系统数据库的关键字映射表中;
步骤三:创建目的库表自动生成模板、数据迁移配置自动生成模板、任务调度工作流定义自动生成模板以及任务调度工作流配置自动生成模板,模板信息最终存储到系统数据库的模板信息表中;
步骤四:创建自动数据迁移Pipeline任务流,并创建目的库表自动生成任务、数据迁移配置自动生成任务、任务调度工作流配置自动生成任务以及数据迁移自动执行及检查任务,最后将这些任务串联编排到Pipeline任务流中;
步骤五:任务调度工作流配置自动生成任务根据上一步的生成结果以及任务调度工作流的2个模板,最终生成任务调度工作流配置Manifest文件;
步骤六:执行该Pipeline任务流,即可自动完成数据迁移。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210541924.7A CN114741375A (zh) | 2022-05-18 | 2022-05-18 | 一种多源异构数据库快速自动数据迁移系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210541924.7A CN114741375A (zh) | 2022-05-18 | 2022-05-18 | 一种多源异构数据库快速自动数据迁移系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114741375A true CN114741375A (zh) | 2022-07-12 |
Family
ID=82287896
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210541924.7A Pending CN114741375A (zh) | 2022-05-18 | 2022-05-18 | 一种多源异构数据库快速自动数据迁移系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114741375A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115422168A (zh) * | 2022-11-02 | 2022-12-02 | 北京滴普科技有限公司 | 一种轻量级数据迁移装置及方法 |
CN115470207A (zh) * | 2022-11-02 | 2022-12-13 | 深圳联友科技有限公司 | 一种基于消息队列和计算框架的数据接入系统及方法 |
CN115934681A (zh) * | 2022-12-24 | 2023-04-07 | 北京新数科技有限公司 | 一种异构关系数据库快速迁移方法及装置 |
CN116303729A (zh) * | 2023-05-17 | 2023-06-23 | 北京煜象软件技术有限公司 | 一种信息获取方法、装置、设备及介质 |
CN117520606A (zh) * | 2024-01-04 | 2024-02-06 | 浙江大学 | 一种异构数据源导入图数据库的方法及装置 |
-
2022
- 2022-05-18 CN CN202210541924.7A patent/CN114741375A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115422168A (zh) * | 2022-11-02 | 2022-12-02 | 北京滴普科技有限公司 | 一种轻量级数据迁移装置及方法 |
CN115470207A (zh) * | 2022-11-02 | 2022-12-13 | 深圳联友科技有限公司 | 一种基于消息队列和计算框架的数据接入系统及方法 |
CN115934681A (zh) * | 2022-12-24 | 2023-04-07 | 北京新数科技有限公司 | 一种异构关系数据库快速迁移方法及装置 |
CN116303729A (zh) * | 2023-05-17 | 2023-06-23 | 北京煜象软件技术有限公司 | 一种信息获取方法、装置、设备及介质 |
CN117520606A (zh) * | 2024-01-04 | 2024-02-06 | 浙江大学 | 一种异构数据源导入图数据库的方法及装置 |
CN117520606B (zh) * | 2024-01-04 | 2024-04-09 | 浙江大学 | 一种异构数据源导入图数据库的方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114741375A (zh) | 一种多源异构数据库快速自动数据迁移系统及方法 | |
CN107370786B (zh) | 一种基于微服务架构的通用信息管理系统 | |
CN107368503B (zh) | 基于Kettle的数据同步方法和系统 | |
CN111367886A (zh) | 数据库中数据迁移的方法及装置 | |
EP2110781A1 (en) | Method and system for automatic tracing of a computerized process using a relationship model | |
CN114925045B (zh) | 大数据集成和管理的PaaS平台 | |
CN111324610A (zh) | 一种数据同步的方法及装置 | |
CN103514223A (zh) | 一种数据仓库数据同步方法和系统 | |
US10296505B2 (en) | Framework for joining datasets | |
CN112148788A (zh) | 异构数据源的数据同步方法及系统 | |
CN115934680A (zh) | 一站式大数据分析处理系统 | |
CN112181852A (zh) | 一种接口自动化测试方法、装置、计算机设备及存储介质 | |
CN112700083A (zh) | 构建资源综合利用和服务指数指标体系场景的方法及装置 | |
CN114035925A (zh) | 一种工作流调度方法、装置、设备及可读存储介质 | |
CN113641651A (zh) | 一种业务数据管理方法、系统及计算机存储介质 | |
CN114238463A (zh) | 一种用于分布式指标计算的计算引擎控制方法和装置 | |
CN114461596A (zh) | 一种基于Spark平台的多源数据同步方法、装置及系统 | |
US20170270163A1 (en) | Data Information Framework | |
CN116737113B (zh) | 面向海量科学数据的元数据目录管理系统及方法 | |
CN117312270A (zh) | 一种数据库自动化构建和部署的变更管理方法 | |
CN116627609A (zh) | 基于Hive批处理的调度方法及装置 | |
CN115730022A (zh) | 采用事件触发和流程编排的数据处理构建方法及平台系统 | |
CN115495527A (zh) | 一种数据同步管理系统和方法 | |
US8630976B2 (en) | Fast search replication synchronization processes | |
CN116521652B (zh) | 一种基于DataX实现分布式异构数据库迁移方法、系统和介质 |
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 |