数据迁移装置及方法与流程

文档序号:33478846发布日期:2023-03-15 11:23阅读:45来源:国知局
数据迁移装置及方法与流程

1.本发明涉及数据处理技术领域,尤其涉及一种数据迁移装置及方法。


背景技术:

2.在证券、基金等金融公司的数据平台项目建设过程中,会根据不同业务配置相当多的数据采集、数据开发任务以及作业流程,也会涉及到不同环境下这些任务、流程的备份和迁移问题,比如在开发或测试环境经过测试验证配置好的这些任务和流程,希望能快速准确的迁移部署到生产环境。
3.现有技术中实现任务和流程在不同环境下的迁移,最简单的就是在新环境下重新配置一遍,但是这种方式耗时费力、操作步骤多、容易出错且灵活性差。
4.上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。


技术实现要素:

5.本发明的主要目的在于提供一种数据迁移装置及方法,旨在解决现有技术中现有技术中数据迁移人工操作步骤多、容易出错、灵活性差的技术问题。
6.为实现上述目的,本发明提供了一种数据迁移装置,所述数据迁移装置包括:后端导入模块和前端模块;
7.所述后端导入模块,用于获取导入数据文件包中的导入映射信息,并读取所述导入映射信息中的导入数据源信息;
8.所述后端导入模块,还用于查询出当前环境下所有的数据源,并将查询到的数据源信息和所述导入数据源信息发送至前端模块进行可视化展示;
9.所述后端导入模块,还用于获取用户基于可视化展示页面选取的当前数据源,根据所述导入数据源信息和所述当前数据源生成数据源映射信息;
10.所述后端导入模块,还用于获取所述导入数据文件包中的导入作业文件数据,根据所述导入作业生成作业对象;
11.所述后端导入模块,还用于根据所述数据源映射信息对所述作业对象进行信息转换,并在转换完成时,将所述作业对象存入当前环境的数据库中。
12.可选地,所述装置还包括:后端导出模块;
13.所述前端模块,用于在导出作业数据时,对可导出作业的作业列表进行可视化展示,并根据用户选择的需导出作业向所述后端导出模块发起导出请求;
14.所述后端导出模块,用于根据所述导出请求获取所述需导出数据文件的作业信息;
15.所述后端导出模块,还用于根据所述作业信息生成导出映射文件;
16.所述后端导出模块,还用于将所述需导出作业和所述导出映射文件转换为预设格式对象,并将所述预设格式对象分别存储至对应的存储目录;
17.所述后端导出模块,还用于在所述需导出数据文件全部转换完成并存储至对应的存储目录时,对所述存储目录进行压缩处理,生成预设结构的导出数据文件包。
18.可选地,所述导入数据文件包还包括:导入资源文件;
19.所述导入映射信息还包括:导入元数据信息;
20.所述后端导入模块,还用于根据所述当前数据源信息和所述导入数据源信息确定当前元数据,并根据所述导入元数据信息和所述当前元数据生成元数据映射信息;
21.所述后端导入模块,还用于根据所述导入资源文件生成当前资源文件,根据所述当前资源文件和所述导入资源文件生成资源文件映射信息;
22.相应的,所述后端导入模块,还用于执行根据所述数据源映射信息、所述元数据映射信息和所述资源文件映射信息对所述作业对象进行信息转换的操作。
23.可选地,所述需导出数据文件的文件类型包含流程类文件和任务类文件;
24.所述作业信息包括第一配置信息或第二配置信息;
25.所述后端导出模块,还用于在所述需导出数据文件的文件类型为任务类文件时,获取所述需导出数据文件的第一配置信息;
26.所述后端导出模块,还用于在所述需导出数据文件的文件类型为流程类文件时,获取所述需导出数据文件的流程配置信息,根据所述流程配置信息递归查询所述需导出数据文件依赖的任务的第二配置信息。
27.可选地,所述装置还包括:日志模块;
28.所述日志模块,用于在所述后端导出模块或所述后端导入模块运行时,生成运行日志,并将所述运行日志发送至所述前端模块;
29.所述前端模块,还用于根据所述运行日志对所述后端导出模块或所述后端导入模块的执行进度进行可视化展示。
30.此外,本发明还提供了一种数据迁移方法,所述方法包括:
31.获取导入数据文件包中的导入映射信息,并读取所述导入映射信息中的导入数据源信息;
32.查询出当前环境下所有的数据源,并对查询到的数据源信息和所述导入数据源信息进行可视化展示;
33.获取用户基于可视化展示页面选取的当前数据源,根据所述导入数据源信息和所述当前数据源生成数据源映射信息;
34.获取所述导入数据文件包中的导入作业文件数据,根据所述导入作业生成作业对象;
35.根据所述数据源映射信息对所述作业对象进行信息转换,并在转换完成时,将所述作业对象存入当前环境的数据库中。
36.可选地,所述方法还包括:
37.在导出作业数据时,对可导出作业的作业列表进行可视化展示,并根据用户选择的需导出作业向所述后端导出模块发起导出请求;
38.根据所述导出请求获取所述需导出数据文件的作业信息;
39.根据所述作业信息生成导出映射文件;
40.将所述需导出数据文件和所述导出映射文件转换为预设格式对象,并将所述预设
格式对象分别存储至对应的存储目录;
41.在所述需导出数据文件全部转换完成并存储至对应的存储目录时,对所述存储目录进行压缩处理,生成预设结构的导出数据文件包。
42.可选地,所述导入数据文件包还包括:导入资源文件;
43.所述导入映射信息还包括:导入元数据信息;
44.所述获取用户基于可视化展示页面选取的当前数据源,根据所述导入数据源信息和所述当前数据源生成数据源映射信息的步骤之后,还包括:
45.根据所述当前数据源信息和所述导入数据源信息确定当前元数据,并根据所述导入元数据信息和所述当前元数据生成元数据映射信息;
46.根据所述导入资源文件生成当前资源文件,根据所述当前资源文件和所述导入资源文件生成资源文件映射信息;
47.相应的,根据所述数据源映射信息对所述作业对象进行信息转换的步骤还包括:
48.根据所述数据源映射信息、所述元数据映射信息和所述资源文件映射信息对所述作业对象进行信息转换。
49.可选地,所述需导出数据文件的文件类型包含流程类文件和任务类文件;
50.所述作业信息包括第一配置信息或第二配置信息;
51.所述根据用户选择的需导出数据文件获取所述需导出数据文件的作业信息的步骤,包括:
52.在所述需导出数据文件的文件类型为任务类文件时,获取所述需导出数据文件的第一配置信息;
53.在所述需导出数据文件的文件类型为流程类文件时,获取所述需导出数据文件的流程配置信息,根据所述流程配置信息递归查询所述需导出数据文件依赖的任务的第二配置信息。
54.可选地,所述方法还包括:
55.在进行数据文件导入或导出时,生成运行日志;
56.根据所述运行日志进行可视化展示。
57.本发明通过后端导入模块获取导入数据文件包中的导入映射信息,并将从导入映射信息中读取导入数据源信息发送至前端模块进行可视化展示;再获取用户基于可视化展示页面选取的当前数据源,并根据当前数据源和数据源映射信息生成数据源映射而信息;根据从导入数据文件包中获取的导入作业文件数据生成作业对象;根据数据源映射信息对作业对象进行信息转换,在信息转换完成时将作业对象存入当前环境的数据库中以完成数据迁移。通过后端导入模块将数据文件导入并对导入文件中的数据映射关系进行映射替换,用户仅需将导入数据文件包上传,在后端导入模块解析并将导入数据源信息和当前环境中的所有数据源信息发送至前端模块的可视化界面后进行当前环境中数据源的选择,即可完成文件的导入以及导入文件中数据映射信息的替换,通过程序自动进行文件的导入和映射信息的替换,完成了数据文件在测试环境与生产环境中的迁移,从而部署快速灵活,减少了人工操作的步骤,提高了导入文件的准确性。
附图说明
58.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
59.图1为本发明实施例提出的数据迁移装置第一实施例的结构示意图;
60.图2为本发明数据迁移装置的后端导入模块核心逻辑处理流程图;
61.图3为本发明数据迁移装置的后端导出模块核心逻辑处理流程图;
62.图4为本发明数据迁移装置的一个应用场景示意图;
63.图5为本发明数据迁移方法的第一实施例的流程示意图;
64.图6为本发明数据迁移方法的第二实施例的流程示意图。
65.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
66.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
67.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
68.另外,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当人认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
69.本发明提供了实施例一种数据迁移装置,该数据迁移装置可以应用于数据平台相关项目,对平台上配置各类数据任务和数据作业流程的配置的数据进行批量化、自动化数据迁移。数据平台通常采用大数据技术,提供数据采集、数据开发、数据标准、数据质量、数据资产、数据安全等功能,可以满足金融机构大数据平台、大批量数据处理、实时/准实时计算、金融数仓等业务场景。
70.参照图1,图1为本发明实施例提出的数据迁移装置第一实施例的结构示意图;
71.基于图1,提出本发明数据迁移装置的第一实施例。
72.本实施例中,所述数据迁移装置用于对不同环境中数据文件的迁移和映射信息的修改,所述数据迁移装置包括:后端导入模块和前端模块;
73.所述后端导入模块,用于获取导入数据文件包中的导入映射信息,并读取所述导入映射信息中的导入数据源信息;
74.所述后端导入模块,还用于查询出当前环境下所有的数据源,并将查询到的数据源信息和所述导入数据源信息发送至前端模块进行可视化展示;
75.可以理解的是,数据迁移需要对待迁移数据进行导出与导入的操作,将待迁移数
据从旧的环境中导出,生成可以导入到新环境中的导入数据文件包;容易理解,导入数据文件包可以包括原环境中的全部或部分信息,导入的文件可以是用户根据需求在旧环境中选择的文件,本实施例对此不加以限制。
76.需要说明的是,上述前端模块可以具备可视化展示界面,界面上可以设置有导入数据文件包选择、导入进度日志的动态刷新页面、导入确认按钮等可供用户进行操作的按钮或可供用户进行查看的页面。用户可以通过选择导入数据文件包或者直接将导入数据文件包拖拽至前端模块,以开始文件导入。
77.可以理解的是,用户可以通过前端模块上传导入数据文件包,在前端模块接收到用户选择的导入数据文件包时,可以将该导入数据文件包发送至后端导入模块,以开始文件导入。
78.需要说明的是,上述导入数据文件包中可以包括导入资源文件和导入映射信息,导入映射信息存储在导入数据文件包的mapping目录下,包含有导入资源文件中数据的映射信息,在后端导入模块获取到该映射信息时,可以根据映射信息进行映射替换或者生成新的映射信息。
79.需要解释的是,上述导入资源文件存储在导入数据文件包的package目录下,可以包括依赖文件、脚本文件等,本实施例对此不加以限制。
80.可以理解的是,数据源为可以进行数据存储的数据库或文件系统,例如各个业务系统中的元数据库或文件、数据平台自身存储数据的底层存储(rdbms/hdfs/mpp/olap/mq等),本实施例对此不加以限制。导入数据源信息可以是包括数据源的id、数据源的名称等与数据源有关的信息。
81.需要说明的是,在后端导入模块将导入数据源信息发送至前端模块的同时,也会将当前环境中的所有数据源信息返回至前端模块,并通过可视化界面进行展示,用户可以根据导入数据源信息和当前环境中的数据源信息选择在当前环境中所要使用的数据源。
82.在具体实现中,后端导入模块可以获取导入数据文件包中的导入映射信息,并将从导入映射信息中读取导入数据源信息发送至前端模块进行可视化展示。
83.所述后端导入模块,还用于获取用户基于可视化展示页面选取的当前数据源,根据所述导入数据源信息和所述当前数据源生成数据源映射信息;
84.可以理解的是,上述当前数据源为用户根据导入数据源信息选择的当前环境中的数据源。
85.需要说明的是,上述当前数据源映射信息为根据导入数据源信息和当前数据源确定的映射信息。
86.在具体实现中,后端导入模块获取用户基于可视化展示页面选取的当前数据源,并根据当前数据源和导入数据源信息生成数据源映射信息。
87.所述后端导入模块,还用于获取所述导入数据文件包中的导入作业文件数据,根据所述导入作业生成作业对象;
88.可以理解的是,在导入数据文件包发送至后端导入模块时,后端导入模块可以将导入数据文件包中的文件下载到当前环境中,生成本地文件,还可以可以获取导入数据文件包中的导入作业文件数据,根据导入作业文件数据生成作业对象,上述作业对象的属性可以包括数据源、元数据、资源文件的数据映射。
89.需要解释的是,上述导入作业文件数据的作业类型可以包括流程类文件和任务类文件,上述作业对象可以包括流程作业对象和任务作业对象。
90.需要说明的是,上述流程类文件存储在导入数据文件包的flow目录下,任务类文件存储在导入数据文件包的task目录下,一个流程类作业中可以包含有多个任务类作业。在导入作业文件数据的作业类型为流程类文件时,可以读取导入作业文件数据中的json字符串,并通过json转换工具将json字符串转换为流程作业的java对象,再读取task目录下的任务文件判断关联的映射信息;在导入作业文件数据的作业类型为任务类文件时,可以读取导入作业文件数据中的json字符串,并通过json转换工具将json字符串转换为任务作业的java对象,通过对流程作业对象或者任务作业对象映射信息的处理,可以将本地文件数据的映射信息与本地文件的实际信息进行对应,上述json字符串可以是包含导入作业文件数据中映射关系的字符串。
91.在具体实现中,后端导入模块可以获取导入数据文件包中的导入作业文件数据,根据导入作业文件数据生成作业对象。
92.所述后端导入模块,还用于根据所述数据源映射信息对所述作业对象进行信息转换,并在转换完成时,将所述作业对象存入当前环境的数据库中。
93.需要说明的是,根据导入映射信息和当前数据源可以生成当前映射信息,当前映射信息可以包括数据源映射信息、元数据映射信息、资源文件映射信息等,本实施例对此不加以限制。
94.可以理解的是,在导入映射信息中,包含了导入文件数据的映射信息,例如导入文件对应的数据源id、名称等,在当前映射信息中,包含了当前环境中新文件和导入数据文件包中的导入文件之间的映射信息,例如新文件的名字与导入文件名字之间的映射关系。在本地文件下载至当前环境时,并未对本地文件中的映射信息进行修改操作,导致本地文件中的映射信息与导入映射信息中包含的映射信息相同,可以根据当前映射信息可以对作业对象对应的映射信息进行映射转换,从而将本地文件数据的映射信息与本地文件的实际信息进行对应。
95.应当理解的是,在导入数据文件包中的导入文件全部转换完成时,可以将作业对象存入当前环境的数据库中以完成整个数据迁移的流程,存入数据库的方式可以是调用相应的dao操作,本实施例对此不加以限制。
96.在具体实现中,后端导入模块根据当前映射信息对作业对象进行信息转换,在信息转换完成时将作业对象存入当前环境的数据库中以完成数据迁移。
97.本实施例通过后端导入模块获取导入数据文件包中的导入映射信息,并将从导入映射信息中读取导入数据源信息发送至前端模块进行可视化展示;再获取用户基于可视化展示页面选取的当前数据源,并根据当前数据源和导入映射信息生成当前映射信息;根据从导入数据文件包中获取的导入作业文件数据生成作业对象;根据当前映射信息对作业对象进行信息转换,在信息转换完成时将作业对象存入当前环境的数据库中以完成数据迁移。通过后端导入模块将文件导入并对导入文件中的数据映射关系进行映射替换,用户仅需将导入数据文件包上传,在后端导入模块解析并将导入数据源信息发送至前端模块的可视化界面后进行当前环境中数据源的选择,即可完成文件的导入以及导入文件中数据映射信息的替换,通过程序自动进行文件的导入和映射信息的替换,部署快速灵活,减少了人工
操作的步骤,提高了导入文件的准确性。
98.进一步地,为了使映射信息的生成更为准确,所述导入数据文件包还包括:导入资源文件;所述导入映射信息还包括:导入元数据信息;
99.需要说明的是,导入映射信息可以包括导入数据源信息、导入元数据信息;上述导入资源文件可以为能够用于直接或间接实现上述导入作业文件数据所执行的功能的文件。
100.需要解释的是,上述导入资源文件可以包括sql文件(structured query language,结构化查询语言)、可执行脚本、jar文件(java archive,java归档)、依赖包等可以用于帮助实现完成作业文件所实现的功能的文件。
101.所述后端导入模块,还用于根据所述当前数据源信息和所述导入数据源信息确定当前元数据,并根据所述导入元数据信息和所述当前元数据生成元数据映射信息;所述后端导入模块,还用于根据所述导入资源文件生成当前资源文件,根据所述当前资源文件和所述导入资源文件生成资源文件映射信息;相应的,所述后端导入模块,还用于执行根据所述数据源映射信息、所述元数据映射信息和所述资源文件映射信息对所述作业对象进行信息转换的操作。
102.需要说明的是,在导入文件时,可以读取导入数据文件包中的导入映射信息,导入映射信息中包含有导入数据源信息、导入元数据信息和导入资源文件信息,根据映射文件中的导入数据源信息和当前数据源生成数据源映射信息。
103.可以理解的是,数据源映射信息可以表示导入数据源和当前数据源之间的映射关系,上述数据源信息可以包括数据源id、数据源名称等。
104.需要解释的是,元数据是数据平台管理数据的基本单元,对应于数据库的表、消息中心的主题等,元数据可以用于描述数据的结构构成,包括字段、类型、精度等属性。导入元数据信息即为导入数据的元数据信息,可以根据当前数据源id和导入映射信息中的导入元数据信息在当前环境中查询当前元数据信息,根据当前元数据信息和导入信息生成元数据映射信息。
105.可以理解的是,元数据映射信息可以表示导入元数据和当前元数据之间的映射关系,上述元数据信息可以包括元数据名称、元数据id等。
106.所述后端导入模块,还用于根据所述导入资源文件生成当前资源文件,根据所述当前资源文件和所述导入资源文件生成资源文件映射信息。
107.需要说明的是,在后端导入模块接收到导入数据文件包时,可以将导入数据文件包中的导入资源文件下载至当前环境,上述当前资源文件即为从导入数据文件包中下载到本地的资源文件,可以根据导入资源文件信息和当前资源文件信息生成资源文件映射信息。
108.可以解释的是,上述资源文件映射信息可以表示当前资源文件与导入资源文件之间的映射关系,资源文件信息可以包括资源文件的code、资源文件名等。
109.在具体实现中,后端导入模块根据当前数据源和导入数据源信息生成元数据映射信息;根据当前数据源信息和导入数据源信息确定当前元数据,根据导入元数据信息和当前元数据信息生成元数据映射信息生成元数据映射信息;根据导入资源文件生成当前资源文件,根据当前资源文件和导入资源文件生成资源文件信息。
110.本实施例通过后端导入模块根据当前数据源和导入数据源信息生成元数据映射
信息;根据当前数据源信息和导入数据源信息确定当前元数据,根据导入元数据信息和当前元数据信息生成元数据映射信息生成元数据映射信息;根据导入资源文件生成当前资源文件,根据当前资源文件和导入资源文件生成资源文件信息,根据数据源映射信息、元数据映射信息和资源文件映射信息对作业对象对应的映射信息进行映射转换,从而使本地文件数据的映射信息与本地文件的实际信息对应,减少了人工操作的步骤的同时保障了导入信息的准确性。
111.如图2所示,图2为本发明数据迁移装置的后端导入模块核心逻辑处理流程图;
112.可以理解的是,在导入之前,用户需要在其他环境中进行文件导出,导出文件的压缩包即为导出数据文件包,即相当于上述实施例所述的当前环境中的导入数据文件包。
113.需要说明的是,后端导入模块接收上传的导出数据文件包并解压,可以获得映射文件和资源文件,映射文件中包括有元数据信息、数据源信息和资源文件信息。
114.进一步地,后端导入模块可以读取映射文件,返回数据源信息给前端模块。前端模块可以展示当前环境下的数据源信息和映射文件中的数据源信息以供用户选择新的数据源,得到新、旧数据源映射信息。
115.进一步地,后端导入模块可以根据新的数据源id和元数据名称查询得到新、旧元数据映射信息。
116.进一步地,后端导入模块可以读取package目录下的资源文件并上传得到新、旧资源文件映射信息。
117.进一步地,后端导入模块可以读取flow目录下的流程文件转换为实体对象,读取task目录下的任务文件,并替换配置中的id或code映射信息。
118.进一步地,后端导入模块调用任务或流程的dao操作保存任务和流程信息。
119.进一步地,在导入过程中,后端导入模块还会通过日志模块记录导入进度日志,并将导入进度日志发送至前端模块以展示导入进度。
120.本发明的数据迁移装置通过后端导入模块自动对导出数据文件包进行解压并替换映射信息,整个导入过程仅需用户进行上传和选择数据源操作,极大较少了人工的操作步骤,提高了导入的准确性和导入效率。
121.基于上述数据迁移装置的第一实施例,提出本发明数据迁移装置的第二实施例。
122.为了将当前环境中的作业文件导出,所述装置还包括:后端导出模块;
123.所述前端模块,用于在导出作业数据时,对可导出作业的作业列表进行可视化展示,并根据用户选择的需导出作业向所述后端导出模块发起导出请求;
124.可以理解的是,前端模块可以包括可视化展示界面、导出按钮、导出确认按钮等功能按钮,前端模块可以通过可视化展示界面展示当前环境中可导出文件的文件列表,用户可以基于可视化界面选择需要导出的数据文件,在用户选择完成时,前端模块可以根据用户选择的需导出数据文件向后端模块发起导出请求。
125.在具体实现中,前端模块根据用户选择的需导出数据文件向后端模块发起导出请求。
126.所述后端导出模块,用于根据所述导出请求获取所述需导出数据文件的作业信息;
127.需要说明的是,上述作业信息可以包括用户选择的需导出数据文件的导出文件信
息及以依赖文件信息。
128.进一步地,为了便于对文件进行管理,所述需导出数据文件的文件类型包含流程类文件和任务类文件;所述作业信息包括第一配置信息或第二配置信息;
129.所述后端导出模块,还用于在所述需导出数据文件的文件类型为任务类文件时,获取所述需导出数据文件的第一配置信息;
130.所述后端导出模块,还用于在所述需导出数据文件的文件类型为流程类文件时,获取所述需导出数据文件的流程配置信息,根据所述流程配置信息递归查询所述需导出数据文件依赖的任务的第二配置信息。
131.需要解释的是,导出的文件类型包括任务类文件,任务类文件可以是执行数据采集任务的文件,也可以执行数据开发任务的文件。数据采集任务专注于对原始数据的采集和集成,对应着对单个或多个的表或文件的采集配置,包括采集来源的数据源和元数据、转换规则、目标的数据源和元数据等;数据开发任务专注于对数据的加工和业务开发,对应一些sql、shell、python、jar包等资源文件,支持离线批处理和实时计算。
132.还需要解释的是,流程作业可以是通过对多个数据采集或数据开发任务按串行或并行的编排组合的作业,形成在业务逻辑上紧密关联的数据处理的作业流程,支持拖拉拽的可视化操作,支持子流程、依赖节点的嵌套,支持条件节点的分支处理。流程类文件即为完成流程作业相关的文件。
133.需要说明的是,后端导出模块在接收到导出请求时,判断需导出数据文件的文件类型,来生成的不同类型的导出数据文件包,判断的方式可以是根据导出文件的属性判断,也可以是前端模块读取需导出数据文件生成的或者用户通过前端模块选择的类型,本实施例对此不加以限制。若需导出数据文件为任务文件,则可以根据任务id或其他识别码查询上述任务的详细配置信息,该信息即为第一配置信息;若需导出数据文件为流程文件,可以根据流程id或其他识别码查询上述流程的详细配置信息,根据流程关联的多个任务id递归查询上述任务的详细信息,该信息即为第二配置信息。
134.在具体实现中,通过判断需导出数据文件的文件类型查询需导出数据文件的作业信息。
135.所述后端导出模块,还用于根据所述作业信息生成导出映射文件;
136.需要说明的是,上述作业信息可以包括数据源信息、元数据信息和资源文件信息。
137.可以理解的是,导出映射文件为根据数据源信息、元数据信息和资源文件信息等信息生成的映射文件,在导出映射文件生成后可以将该文件存储在mapping目录下。
138.在具体实现中,根据需导出数据文件的作业信息生成导出映射文件。
139.所述后端导出模块,还用于将所述需导出作业和所述导出映射文件转换为预设格式对象,并将所述预设格式对象分别存储至对应的存储目录;
140.需要说明的是,预设格式对象可以是通过json转换工具转换得到的json文件,也可以是其他格式的文件,可以根据实际需求进行格式转换,本实施例对此不加以限制。
141.需要解释的是,上述存储目录可以包括flow目录、task目录、package目录和mapping目录,将流程文件转换为预设格式对象,并按照流程id进行命名存放至flow目录中;将任务文件转换为预设格式对象,并按照任务id命名存放至task目录中;将资源文件转换为预设格式对象,并按照文件code命名存放至package目录中;将导出映射文件存放至
mapping目录中。需要说明的是,上述目录名称仅代表目录需要存放的文件类型,而不对存放目录的名称造成限定。
142.在具体实现中,后端导出模块将需导出数据文件和导出映射文件转换为预设格式对象,再将预设格式对象存储至对应目录。
143.所述后端导出模块,还用于在所述需导出数据文件全部转换完成并存储至对应的存储目录时,对所述存储目录进行压缩处理,生成预设结构的导出数据文件包。
144.需要说明的是,导出数据文件包的命名规范可以是dida_export_编号_类型,其中编号自增,类型分为:task-任务、flow-流程。以下以预设格式对象为json格式为例的导出数据文件包示例,导出数据文件包dida_export_0000000001_flow.zip文档的预设结构如下:
145.flow
146.|
‑‑
流程id.json
147.task
148.|
‑‑
任务id.json
149.package
150.|
‑‑
文件code
151.mapping
152.|
‑‑
mapping.json
153.在具体实现中,在需导出数据文件全部转换完成并存储至对应目录时,压缩存储目录并生成预设结构的导出数据文件包。
154.本实施例通过前端模块根据用户选择的需导出数据文件向后端模块发起导出请求;后端导出模块通过判断需导出数据文件的文件类型查询需导出数据文件的作业信息;根据需导出数据文件的作业信息生成导出映射文件;再将需导出数据文件和导出映射文件转换为预设格式对象,再将预设格式对象存储至对应目录;在需导出数据文件全部转换完成并存储至对应目录时,压缩存储目录并生成预设结构的导出数据文件包。用户仅需选择需导出数据文件即可通过前端模块和后端模块对需导出的文件进行打包处理,同时生成相应的映射信息以使导出数据文件包进行导入时可以根据映射信息和导入环境中的配置信息进行映射替换从而实现数据迁移,减少人工操作的步骤,提高了导出的准确率和导出效率。
155.如图3所示,图3为本发明数据迁移装置的后端导出模块核心逻辑处理流程图;
156.可以理解的是,前端模块接收到用户基于可视化界面选择的需导出数据文件时,可以向后端导出模块发出导出请求。
157.进一步地,后段模块在接收导出请求时并根据type参数判断要导出的类型。通过判断需导出数据文件为任务或流程来查询不同的配置信息(图中表示为任务or流程)。
158.进一步地,在需导出数据文件为任务文件时,查询所有任务信息;在需导出数据文件为流程文件时,查询所有流程信息,并根据流程关联的任务递归查询以来的任务信息。
159.可以理解的是,任务信息中包含有数据源id、元数据id、资源文件code等信息。后端导出模块根据数据源id查询数据源信息,根据元数据id查询元数据信息,根据资源文件code查询并下载资源文件信息。再根据元数据信息、数据源信息、资源文件信息组织映射信
息,根据映射信息和需导出数据文件生成导出文件,压缩并打包下载。
160.进一步地,在导出过程中,后端导出模块还会通过日志模块记录导出进度日志,并将导出进度日志发送至前端模块以展示导出进度。
161.在具体实现中,后端导出模块可以接收前端模块发起的导出请求,并根据导出文件的type参数判断要导出的类型,通过查询文件的配置信息及其他信息组织生成映射信息,从而生成导出文件并压缩打包,整个导出过程仅需用户选择需导出数据文件,自动完成映射信息的生成和文件压缩,极大地较少了人工的操作步骤,提高了导出的准确性和导出效率。
162.进一步地,为了使导入导出的进度更为直观,所述装置还包括:日志模块;所述日志模块,用于在所述后端导出模块或所述后端导入模块运行时,生成运行日志,并将所述运行日志发送至所述前端模块;所述前端模块,还用于根据所述运行日志对所述后端导出模块或所述后端导入模块的执行进度进行可视化展示。
163.可以理解的是,日志模块可以对后端导入模块和后端导出模块的工作进度进行监听,并生成相应的进度日志发送至前端模块,前端模块则可以对导出进度或者导入进度进行显示,以使用户可以直观的看出导出进度。
164.需要说明的是,前端模块还可以根据导出或导入进度与全部的需导出数据文件或需导入文件以及目前用时进行判断,得出完成导出或导入任务的剩余用时,并将剩余用时显示在可视化展示界面上。
165.本实施例通过日志模块生成后端导入模块或后端导出模块的运行日志,并将运行日志发送至前端模块,从而实现对导出/导入进度的可视化展示。
166.参照图4,图4为本发明数据迁移装置的一个应用场景示意图;
167.如图4所示,可以通过安装在a环境中的数据迁移装置进行数据导出,通过安装在b环境中的数据迁移装置进行数据导入,以下将对导出导入总体流程进行说明。
168.可以理解的是,在导出开始时,用户选择人物或作业流程并点击导出,通过后端导出模块查询任务流程信息导出数据文件包,导出流程详见导出模块(即上述实施例所述的后端导出模块),在此不加以赘述。
169.进一步地,用户可以将在a环境中生成的导出数据文件包上传至b环境,点击导入后即可上传导出数据文件包解析映射信息,导入流程详见导入模块(即上述实施例所述的后端导入模块),在此不加以赘述。
170.进一步地,在解析映射信息后将数据源信息发送至前端模块进行展示,用户可以基于前端模块选择新的数据源,后端导入模块通过对新数据源和导入数据文件包的数据修改映射信息并保存任务流程信息(详见导入模块),在任务信息或流程信息上传至数据库时,说明文件导入完成并结束此次导入。
171.通过数据迁移装置,用户仅需“一次交互、两次点击”即可完成数据迁移,一次交互是指导入时仅做一次数据源的选择确认;两次点击是指导出时点击一次按钮,导入时点击一次按钮。不管任务和流程有多少,通过在页面上进行简单的操作,即可将复杂繁琐的配置修改和资源文件需要手工上传后再关联转换为全部通过程序自动完成,从而做到灵活快速的将任务流程信息在任意环境下进行迁移部署,极大程度的减少了人工操作,提高了数据迁移的准确性与便利性。
172.本发明实施例还提供了一种数据迁移方法,参照图5图5图5为本发明数据迁移方法的第一实施例的流程示意图。
173.本实施例中,所述数据迁移方法包括以下步骤:
174.s10:获取导入数据文件包中的导入映射信息,并读取所述导入映射信息中的导入数据源信息;
175.s20:查询出当前环境下所有的数据源,并将查询到的数据源信息和所述导入数据源信息发送至前端模块进行可视化展示;
176.需要说明的是,本实施例方法的执行主体可以是具有数据处理、界面显示公共能的终端设备,例如个人电脑,也可以是具有相同或相似功能的电子设备,例如装有上文所述的数据迁移装置的设备,简称数据迁移设备。以下以数据迁移设备为例对本实施例及下述各实施例进行说明。
177.可以理解的是,数据迁移需要对待迁移数据进行导出与导入的操作,将待迁移数据从旧的环境中导出,生成可以导入到新环境中的导入数据文件包;容易理解,导入数据文件包可以包括原环境中的全部或部分信息,导入的文件可以是用户根据需求在旧环境中选择的文件,本实施例对此不加以限制。
178.需要说明的是,上述导入数据文件包中可以包括导入资源文件和导入映射信息,导入映射信息存储在导入数据文件包的mapping目录下,包含有导入资源文件中数据的映射信息,在后端导入模块获取到该映射信息时,可以根据映射信息进行映射替换或者生成新的映射信息。
179.需要解释的是,上述导入资源文件存储在导入数据文件包的package目录下,可以包括依赖文件、脚本文件等,本实施例对此不加以限制。
180.需要说明的是,数据迁移设备可以对导入数据源信息和当前环境中存在的数据源信息进行展示,以使用户选择所需要的使用的数据源。
181.在具体实现中,数据迁移设备可以获取导入数据文件包中的导入映射信息,并对从导入映射信息中读取的导入数据源信息进行可视化展示。
182.s30:获取用户基于可视化展示页面选取的当前数据源,根据所述导入数据源和所述当前数据源生成数据源映射信息;
183.可以理解的是,上述当前数据源为用户根据导入数据源信息选择的当前环境中的数据源。
184.需要说明的是,上述数据源映射信息为根据导入数据源信息和当前数据源确定的映射信息。
185.在具体实现中,数据迁移确定获取用户基于可视化展示界面选取的当前数据源,根据导入数据源和当前数据源生成数据源映射信息映射信息。
186.s40:获取所述导入数据文件包中的导入作业文件数据,根据所述导入作业生成作业对象;
187.可以理解的是,在数据迁移设备可以将导入数据文件包中的文件下载到当前环境中,生成本地文件,还可以可以获取导入数据文件包中的导入作业文件数据,根据导入作业文件数据生成作业对象,上述作业对象的属性包括数据源、元数据、资源文件的数据映射。
188.需要解释的是,上述导入作业文件数据的作业类型可以包括流程类文件和任务类
文件,上述作业对象可以包括流程作业对象和任务作业对象。
189.需要说明的是,上述流程类文件存储在导入数据文件包的flow目录下,任务类文件存储在导入数据文件包的task目录下,一个流程类作业中可以包含有多个任务类作业。在导入作业文件数据的作业类型为流程类文件时,可以读取导入作业文件数据中的json字符串,并通过json转换工具将json字符串转换为流程作业的java对象,再读取task目录下的任务文件判断关联的映射信息;在导入作业文件数据的作业类型为任务类文件时,可以读取导入作业文件数据中的json字符串,并通过json转换工具将json字符串转换为任务作业的java对象,通过对流程作业对象或者任务作业对象映射信息的处理,可以将本地文件数据的映射信息与本地文件的实际信息进行对应,上述json字符串可以是包含导入作业文件数据中映射关系的字符串。
190.在具体实现中,数据迁移设备可以根据从导入数据文件包中获取的导入作业文件数据生成作业对象。
191.s50:根据所述数据源映射信息对所述作业对象进行信息转换,并在转换完成时,将所述作业对象存入当前环境的数据库中;
192.需要说明的是,根据导入映射信息和当前数据源可以生成当前映射信息,当前映射信息可以包括数据源映射信息、元数据映射信息、资源文件映射信息等,本实施例对此不加以限制。
193.可以理解的是,在导入映射信息中,包含了导入文件数据的映射信息,例如导入文件对应的数据源id、名称等,在当前映射信息中,包含了当前环境中新文件和导入数据文件包中的导入文件之间的映射信息,例如新文件的名字与导入文件名字之间的映射关系。在本地文件下载至当前环境时,并未对本地文件中的映射信息进行修改操作,导致本地文件中的映射信息与导入映射信息中包含的映射信息相同,可以根据当前映射信息可以对作业对象对应的映射信息进行映射转换,从而将本地文件数据的映射信息与本地文件的实际信息进行对应。
194.应当理解的是,在导入数据文件包中的导入文件全部转换完成时,可以将作业对象存入当前环境的数据库中以完成整个数据迁移的流程,存入数据库的方式可以是调用相应的dao操作,本实施例对此不加以限制。
195.在具体实现中,数据迁移设备根据当前映射信息对作业对象进行信息转换,在信息转换完成时将作业对象存入当前环境的数据库中以完成数据迁移。
196.本实施例设局迁移设备通过获取导入数据文件包中的导入映射信息,并对从导入映射信息中读取导入数据源信息进行可视化展示;再获取用户基于可视化展示页面选取的当前数据源,并根据当前数据源和导入映射信息生成当前映射信息;根据从导入数据文件包中获取的导入作业文件数据生成作业对象;根据当前映射信息对作业对象进行信息转换,在信息转换完成时将作业对象存入当前环境的数据库中以完成数据迁移。通过对文件中的数据映射关系进行映射替换,用户仅需将导入数据文件包上传和对当前数据源进行选择,即可完成文件的导入以及导入文件中数据映射信息的替换,通过程序自动进行文件的导入和映射信息的替换,部署快速灵活,减少了人工操作的步骤,提高了导入文件的准确性。
197.进一步地,为了使映射信息的生成更为准确,所述导入数据文件包还包括:导入资
源文件;所述导入映射信息还包括:导入元数据信息;
198.需要说明的是,导入映射信息可以包括导入数据源信息、导入元数据信息;上述导入资源文件可以为能够用于直接或间接实现上述导入作业文件数据所执行的功能的文件。
199.需要解释的是,上述导入资源文件可以包括sql文件(structured query language,结构化查询语言)、执行脚本、jar文件、依赖包等可以用于帮助实现完成作业文件所实现的功能的文件。
200.所述获取用户基于可视化展示页面选取的当前数据源,根据所述导入数据源信息和所述当前数据源生成数据源映射信息的步骤之后,还包括:根据所述当前数据源信息和所述导入数据源信息确定当前元数据,并根据所述导入元数据信息和所述当前元数据生成元数据映射信息;根据所述导入资源文件生成当前资源文件,根据所述当前资源文件和所述导入资源文件生成资源文件映射信息;相应的,根据所述数据源映射信息对所述作业对象进行信息转换的步骤还包括:根据所述数据源映射信息、所述元数据映射信息和所述资源文件映射信息对所述作业对象进行信息转换。
201.需要说明的是,导入映射信息可以包括导入数据源信息、导入元数据信息;上述导入资源文件可以为能够用于直接或间接实现上述导入作业文件数据所执行的功能的文件。
202.需要解释的是,上述导入资源文件可以包括sql文件(structured query language,结构化查询语言)、执行脚本、jar文件、依赖包等可以用于帮助实现完成作业文件所实现的功能的文件。
203.需要说明的是,在导入文件时,可以读取导入数据文件包中的导入映射信息,导入映射信息中包含有导入数据源信息、导入元数据信息和导入资源文件信息,根据映射文件中的导入数据源信息和当前数据源生成数据源映射信息。
204.可以理解的是,数据源映射信息可以表示导入数据源和当前数据源之间的映射关系,上述数据源信息可以包括数据源id、数据源名称等。
205.需要解释的是,元数据是数据平台管理数据的基本单元,对应于数据库的表、消息中心的主题等,元数据可以用于描述数据的结构构成,包括字段、类型、精度等属性。可以根据当前数据源id和导入映射信息中的导入元数据信息在当前环境中查询当前元数据信息,根据当前元数据信息和导入信息生成元数据映射信息。
206.可以理解的是,元数据映射信息可以表示导入元数据和当前元数据之间的映射关系,上述元数据信息可以包括元数据名称、元数据id等。
207.需要说明的是,在数据迁移设备接收到导入数据文件包时,可以将导入数据文件包中的导入资源文件下载至当前环境,上述当前资源文件即为从导入数据文件包中下载到本地的资源文件,可以根据导入资源文件信息和当前资源文件信息生成资源文件映射信息。
208.可以解释的是,上述资源文件映射信息可以表示当前资源文件与导入资源文件之间的映射关系,资源文件信息可以包括资源文件的code、资源文件名等。
209.在具体实现中,数据迁移设备根据当前数据源和导入数据源信息生成元数据映射信息;根据当前数据源信息和导入数据源信息确定当前元数据,根据导入元数据信息和当前元数据信息生成元数据映射信息生成元数据映射信息;根据导入资源文件生成当前资源文件,根据当前资源文件和导入资源文件生成资源文件信息。
210.本实施例数据迁移设备根据当前数据源和导入数据源信息生成元数据映射信息;根据当前数据源信息和导入数据源信息确定当前元数据,根据导入元数据信息和当前元数据信息生成元数据映射信息生成元数据映射信息;根据导入资源文件生成当前资源文件,根据当前资源文件和导入资源文件生成资源文件信息,根据数据源映射信息、元数据映射信息和资源文件映射信息对作业对象对应的映射信息进行映射转换,从而使本地文件数据的映射信息与本地文件的实际信息对应,减少了人工操作的步骤的同时保障了导入信息的准确性。
211.基于上述数据迁移方法的第一实施例,提出本发明数据迁移方法的第二实施例,参照图6,图6为本发明数据迁移方法的第二实施例的流程示意图。
212.为了将当前环境中的作业文件导出,所述方法还包括:
213.s100:在导出作业数据时,对可导出作业的作业列表进行可视化展示,并根据用户选择的需导出数据文件向所述后端导出模块发起导出请求;
214.s200:根据所述导出请求获取所述需导出数据文件的作业信息;
215.可以理解的是,用户可以根据数据迁移迁移设备的可视化展示界面展示的可导出文件列表选择需导出数据文件,在用户选择完成时获取需导出数据文件的作业信息。
216.需要说明的是,上述作业信息为用户选择的需导出数据文件的导出文件信息及以依赖文件信息。
217.为了便于对文件进行管理,所述需导出数据文件的文件类型包含流程类文件和任务类文件;所述作业信息包括第一配置信息或第二配置信息;所述根据用户选择的需导出数据文件获取所述需导出数据文件的作业信息的步骤,包括:
218.s201:在所述需导出数据文件的文件类型为任务类文件时,获取所述需导出数据文件的第一配置信息;
219.s202:在所述需导出数据文件的文件类型为流程类文件时,获取所述需导出数据文件的流程配置信息,根据所述流程配置信息递归查询所述需导出数据文件依赖的任务的第二配置信息。
220.需要说明的是,数据迁移设备可以判断需导出数据文件的文件类型来生成不同的导出数据文件包,若需导出数据文件为任务文件,则可以根据任务id或其他识别码查询上述任务的详细配置信息,该信息即为第一配置信息;若需导出数据文件为流程文件,可以根据流程id或其他识别码查询上述流程的详细配置信息,根据流程关联的多个任务id递归查询上述任务的详细信息,该信息即为第二配置信息。
221.在具体实现中,通过判断需导出数据文件的文件类型查询需导出数据文件的作业信息。
222.s300:根据所述作业信息生成导出映射文件;
223.需要说明的是,上述作业信息可以包括数据源信息、元数据信息和资源文件信息。
224.可以理解的是,导出映射文件为根据数据源信息、元数据信息和资源文件信息等信息生成的映射文件,存储在mapping目录下。
225.在具体实现中,根据需导出数据文件的作业信息生成导出映射文件。
226.s400:将所述需导出数据文件和所述导出映射文件转换为预设格式对象,并将所述预设格式对象分别存储至对应的存储目录;
227.需要说明的是,预设格式对象可以是通过json转换工具转换得到的json文件,也可以是其他格式的文件,可以根据实际需求进行格式转换,本实施例对此不加以限制。
228.需要解释的是,上述存储目录可以包括flow目录、task目录、package目录和mapping目录,将流程文件转换为预设格式对象,并按照流程id进行命名存放至flow目录中;将任务文件转换为预设格式对象,并按照任务id命名存放至task目录中;将资源文件转换为预设格式对象,并按照文件code命名存放至package目录中;将导出映射文件存放至mapping目录中。需要说明的是,上述目录名称仅代表目录需要存放的文件类型,而不对存放目录的名称造成限定。
229.在具体实现中,数据迁移设备将需导出数据文件和导出映射文件转换为预设格式对象,再将预设格式对象存储至对应目录。
230.s500:在所述需导出数据文件全部转换完成并存储至对应的存储目录时,对所述存储目录进行压缩处理,生成预设结构的导出数据文件包。
231.需要说明的是,导出数据文件包的命名规范可以是dida_export_编号_类型,其中其中编号自增,类型分为:task-任务、flow-流程。以下以预设格式对象为json格式为例的导出数据文件包示例,导出数据文件包dida_export_0000000001_flow.zip文档的预设结构如下:
232.flow
233.|
‑‑
流程id.json
234.task
235.|
‑‑
任务id.json
236.package
237.|
‑‑
文件code
238.mapping
239.|
‑‑
mapping.json
240.在具体实现中,在需导出数据文件全部转换完成并存储至对应目录时,压缩存储目录并生成预设结构的导出数据文件包。
241.本实施例数据迁移设备通过判断需导出数据文件的文件类型查询需导出数据文件的作业信息;再根据需导出数据文件的作业信息生成导出映射文件;然后将需导出数据文件和导出映射文件转换为预设格式对象,再将预设格式对象存储至对应目录;在所述需导出数据文件全部转换完成并存储至对应目录时,对所述预设格式对象的存储目录进行压缩处理,生成预设结构的导出数据文件包。用户仅需选择需导出数据文件即可自动对需导出的文件进行打包处理,同时生成相应的映射信息以使导出数据文件包进行导入时可以根据映射信息和导入环境中的配置信息进行映射替换从而实现数据迁移,减少人工操作的步骤,提高了导出的准确率和导出效率。
242.进一步地,为了使导入导出的进度更为直观,所述方法还包括:在进行数据文件导入或导出时,生成运行日志;根据所述运行日志进行可视化展示。
243.可以理解的是,在进行导入或导出工作时,可以生成相应的运行日志,并通过可视化展示界面对执行进度进行展示,使得用户可以更为直观的得到数据迁移完成进度。
244.本实施例数据迁移设备可以基于记录数据迁移的工作进度生成运行日志,根据运
行日志通过可视化展示界面对数据迁移的执行情况进行可视化展示,使得用户可以更为直观的得到数据迁移完成进度。
245.需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
246.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
247.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
248.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1