CN113641679B - 一种数据转移方法、数据转移系统、计算机设备和介质 - Google Patents

一种数据转移方法、数据转移系统、计算机设备和介质 Download PDF

Info

Publication number
CN113641679B
CN113641679B CN202111014991.5A CN202111014991A CN113641679B CN 113641679 B CN113641679 B CN 113641679B CN 202111014991 A CN202111014991 A CN 202111014991A CN 113641679 B CN113641679 B CN 113641679B
Authority
CN
China
Prior art keywords
data
data transfer
micro
service
task
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
Application number
CN202111014991.5A
Other languages
English (en)
Other versions
CN113641679A (zh
Inventor
曹旭皓
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BOE Technology Group Co Ltd
Original Assignee
BOE Technology Group Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by BOE Technology Group Co Ltd filed Critical BOE Technology Group Co Ltd
Priority to CN202111014991.5A priority Critical patent/CN113641679B/zh
Publication of CN113641679A publication Critical patent/CN113641679A/zh
Application granted granted Critical
Publication of CN113641679B publication Critical patent/CN113641679B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases

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)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种数据转移方法、数据转移系统、计算机设备和介质,其中一实施例的数据转移方法包括:第一微服务响应于用户的第一操作输入的数据建立数据源和数据转移任务,所述数据源包括至少一种数据格式,所述数据格式包括多个不同数据类型的字段;所述第一微服务响应于用户的第二操作发送任务执行指令至第二微服务,所述任务执行指令包括所述数据转移任务,以使得所述第二微服务根据所述数据转移任务启动数据转移程序进行数据转移;所述第一微服务响应于用户的第三操作发送任务结束指令至第二微服务以获取所述数据转移任务的执行结果。本发明提供的实施例能够同时转移不同数据格式的数据,有效提高数据转移效率,具有实际应用价值。

Description

一种数据转移方法、数据转移系统、计算机设备和介质
技术领域
本发明涉及互联网技术领域,特别是涉及一种数据转移方法、数据转移系统、计算机设备和介质。
背景技术
随着网络服务的发展,企业内部各个系统间互不相通,无法互相提供服务的缺点日益明显。而其中最核心的就是数据库互不相通,由此诞生了数据中台的概念。通过数据转移,企业可以将各个系统的数据全部放到一起,然后将原本零散的数据整合到大数据的hadoop库进行数据的统计并生成报表;或者将需要全文搜索的数据转移到ElasticSearch中以完成高效搜索的任务;然而始终存在数据转移成本高、效率低的问题。
发明内容
为了解决上述问题至少之一,本发明第一个实施例提供一种数据转移方法,包括:
第一微服务响应于用户的第一操作输入的数据建立数据源和数据转移任务,所述数据源包括至少一种数据格式,所述数据格式包括多个不同数据类型的字段;
所述第一微服务响应于用户的第二操作发送任务执行指令至第二微服务,所述任务执行指令包括所述数据转移任务,以使得所述第二微服务根据所述数据转移任务启动数据转移程序进行数据转移;
所述第一微服务响应于用户的第三操作发送任务结束指令至第二微服务以获取所述数据转移任务的执行结果。
例如,在本申请一些实施例提供的数据转移方法中,所述第一微服务响应于用户的第一操作输入的数据建立数据源和数据转移任务进一步包括:
建立第一数据源模板和第二数据源模板,其中,所述第一数据源模板包括源数据库、源数据库地址和源数据库的队列,所述第二数据源模板包括目的数据库和目的数据库信息;
根据所述第一数据源模板建立数据源,所述数据源包括至少一种数据格式,所述数据格式为单层键值对,所述键值对包括具有多个不同数据类型的字段;
根据所述第二数据源模板建立数据目的,所述数据目的包括目的数据库、对应的目的数据库的目的表和写入方式;
根据所述数据源和数据目的建立数据源和数据目的的字段映射关系和数据转移任务。
例如,在本申请一些实施例提供的数据转移方法中,所述第一微服务响应于用户的第二操作发送任务执行指令至第二微服务,所述任务执行指令包括所述数据转移任务,以使得所述第二微服务根据所述数据转移任务启动数据转移程序进行数据转移进一步包括:
所述第一微服务响应于用户的第二操作根据所述数据转移任务获取任务执行信息,所述任务执行信息包括任务执行所需内存和任务执行所需资源;
所述第一微服务根据所述任务执行信息从注册中心选择空闲的第二微服务,并发送所述任务执行指令发送至所述第二微服务;
所述第一微服务控制所述第二微服务根据所述数据转移任务启动数据转移程序进行数据转移。
例如,在本申请一些实施例提供的数据转移方法中,所述第一微服务控制所述第二微服务根据所述数据转移任务启动数据转移程序进行数据转移进一步包括:
所述第二微服务启动数据转移程序并调用数据转移插件根据所述数据源、数据转移端和字段映射关系实时转移数据,其中,所述源数据库为实时接收对应的业务数据。
例如,在本申请一些实施例提供的数据转移方法中,所述数据转移插件包括数据转移读插件和数据转移写插件(Writer插件),所述第二微服务启动数据转移程序并调用数据转移插件根据所述数据源、数据转移端和字段映射关系实时转移数据进一步包括:
所述第二微服务调用数据转移读插件根据所述数据源的数据格式将源数据库的数据转移到管道中;
所述第二微服务调用数据转移写插件根据所述写入方式将所述管道中的数据转移到所述目的数据库的目的表中。
例如,在本申请一些实施例提供的数据转移方法中,所述第一微服务响应于用户的第一操作输入的数据建立数据源和数据转移任务进一步包括:
设置所述数据转移读插件的转移性能,所述转移性能包括所述数据转移读插件的数据获取阈值和数据获取时间间隔阈值。
例如,在本申请一些实施例提供的数据转移方法中,所述第一微服务控制所述第二微服务根据所述数据转移任务启动数据转移程序进行数据转移进一步包括:
所述第一微服务控制所述第二微服务启动数据转移监控程序进行数据转移监控。
例如,在本申请一些实施例提供的数据转移方法中,所述第一微服务响应于用户的第三操作发送任务结束指令至第二微服务以获取所述数据转移任务的执行结果进一步包括:
获取所述数据转移监控程序监控的数据作为所述数据转移任务的执行结果。
本发明第二个实施例提供一种使用第一个实施例所述的数据转移方法的数据转移系统,包括注册中心、在所述注册中心注册的多个第一微服务、多个第二微服务、数据转移插件、源数据库和目的数据库,其中,所述源数据库实时接收对应的业务数据;所述第一微服务配置为:
响应于用户的第一操作输入的数据建立数据源和数据转移任务,所述数据源包括至少一种数据格式,所述数据格式包括多个不同数据类型的字段;
响应于用户的第二操作发送任务执行指令至第二微服务,所述任务执行指令包括所述数据转移任务,以使得所述第二微服务根据所述数据转移任务启动数据转移程序进行数据转移;
响应于用户的第三操作发送任务结束指令至第二微服务以获取所述数据转移任务的执行结果。
本发明第三个实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一个实施例所述的方法。
本发明第四个实施例提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如第一个实施例所述的方法。
本发明的有益效果如下:
本发明针对目前现有的问题,制定一种数据转移方法、数据转移系统、计算机设备和介质,数据转移方法通过第一微服务建立具有多个不同数据类型的字段的数据源、并建立数据转移任务,再响应于用户的操作触发数据转移任务、控制第二微服务启动数据转移程序以进行数据转移,从而实现同时转移不同数据格式的数据,有效提高数据转移效率。
具体的,通过数据转移程序控制调用数据转移读插件和数据转移写插件,将源数据库实时接收的业务数据按照建立的数据源的多个不同数据类型的字段进行数据转移,即同时实现多种不同数据类型的业务数据的数据转移,从而弥补了现有技术中存在的问题,有效提高数据转移效率,能够改善数据传输性能,进而提高数据转移系统的便捷性,降低数据转移系统的维护成本,具有实际应用价值。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本发明的一个实施例所述数据转移方法的流程图;
图2示出本发明的一个实施例所述数据转移系统的结构框图;
图3示出本发明的一个实施例所述建立第一数据源模板的示意图;
图4示出本发明的一个实施例所述建立数据源的示意图;
图5示出本发明的一个实施例所述建立数据目的的示意图;
图6示出本发明的一个实施例所述建立字段映射的示意图;
图7示出本发明的一个实施例所述建立数据转移读插件的速度控制的示意图;
图8示出本发明的另一个实施例所述的一种计算机设备的结构示意图。
具体实施方式
为了更清楚地说明本发明,下面结合优选实施例和附图对本发明做进一步的说明。附图中相似的部件以相同的附图标记进行表示。本领域技术人员应当理解,下面所具体描述的内容是说明性的而非限制性的,不应以此限制本发明的保护范围。
现有技术中,数据中台通常采用两种做法:
第一种是各个业务端开发接口,然后数据中台服务去调用。这种方式的优点是节省了数据存储服务器的资源,缺点是在企业中各个系统由各个部门组成,每个部门需要在自己的主营任务之外再增加额外的数据中台对接接口开发任务,从而增加大量的人力成本和沟通成本。
第二种是由数据中台主动拉取或同步各个业务系统的数据,例如使用基于Exchangis数据转化项目和Kafka消息队列从各业务部门主动拉取或同步数据。这种方式优点是各业务部门几乎不需要额外的开发任务,由数据中台的开发人员通过数据转移,将各个系统的数据转移到数据中台的数据库中;缺点是实现流程复杂、并且需要更多的硬盘来存储数据。
针对上述情况,发明人经过大量研究和试验提出,第二种数据中台的数据转移方式更适合规模较大的集团业务,并且第二种方式存在缺点的原因在于,现有Exchangis数据转化项目通过读取源数据库或其他服务的接口主动获取业务数据,而Kafka消息队列属于被动接收业务数据,二者在使用过程中需要建立复杂的处理流程;同时现有Kafka消息队列将不同数据类型的数据放入不同的topic队列进行处理,从而导致不同数据类型的数据在转移时需要建立不同的任务,每个任务对应一个topic队列从而导致大量重复配置和过多的topic队列,严重影响了Kafka消息队列的传输性能,并占用大量存储空间。
根据上述问题和导致该问题的原因,如图1所示,本发明的一个实施例提供了一种数据转移方法,包括:
第一微服务响应于用户的第一操作输入的数据建立数据源和数据转移任务,所述数据源包括至少一种数据格式,所述数据格式包括多个不同数据类型的字段;
所述第一微服务响应于用户的第二操作发送任务执行指令至第二微服务,所述任务执行指令包括所述数据转移任务,以使得所述第二微服务根据所述数据转移任务启动数据转移程序进行数据转移;
所述第一微服务响应于用户的第三操作发送任务结束指令至第二微服务以获取所述数据转移任务的执行结果。
本实施例提供的数据转移方法通过第一微服务建立具有多个不同数据类型的字段的数据源、并建立数据转移任务,再响应于用户的操作触发数据转移任务、控制第二微服务启动数据转移程序以进行数据转移,从而实现同时转移不同数据格式的数据,有效提高数据转移效率。
如图2所示为数据转移系统的示意图,包括注册中心、在所述注册中心注册的多个第一微服务、多个第二微服务;以及,由第二微服务启动的数据转移程序、由数据转移程序调用的数据转移插件,源数据库和目的数据库。其中,注册中心、第一微服务和第二微服务运行在后端服务器上,其中,注册中心包括用于数据转移的多个微服务,具体的,包括多个注册的第一微服务和多个注册的第二微服务,数据转移插件包括多个读写插件;目的数据库和数据来源为用户指定的已经存在的数据库和中间件,源数据库为存储待转移数据,目的数据库为存储转移的数据,即所述数据转移系统将源数据库的数据转移至目的数据库(参见图2中虚线)。
在本实施例中:第一微服务为Exchangis数据转化项目的Exchang-Service微服务,第二微服务为Exchangis数据转化项目的Exchang-Core微服务,数据转移插件包括数据转移读插件和数据转移写插件,源数据库为Kafaka服务器的一个topic消息队列,各topic消息队列与各业务部门一一对应,并且源数据库实时接收并存储对应的业务部门的业务数据,目的数据库为包括多个表的MySQL数据库。
如图2所示,下面以规模较大的包括多个业务部门的集团中心的数据转移作为应用场景,其中一个业务部门的主营业务为电商,平均每日业务数据的数据量为10万个订单,和300万个用户浏览商品的行为记录。目标是把这些数据放在一张行为分析表里,然后进行大数据分析用户的喜好和转化率。如果采用现有Exchangis数据转化项目的功能进行数据转化,需要建立2个每1小时执行1次的定时任务,其中一个任务会扫描订单表,并把该表数据同步到目标数据库的行为分析表;另一个定时任务会扫描行为记录表,也同步到目标数据库的同一张行为分析表中。按照现有技术,同步完的数据会有1小时的滞后性,且需要建立2个定时任务。而采用本实施例提供的数据转移方式,只需让业务部门将业务数据推送至源数据库、即Kafaka服务器的一个topic消息队列;然后在exchangis中建立一个数据源为kafka服务器的任务,配置源数据库、目的数据库、数据源和字段映射关系;最后手动启动该任务,从而将订单和行为记录的业务数据都同步到行为分析表中,能够解决现有技术存在的滞后性问题和大数据量转移导致的传输效率低、占用空间大的问题。下面以该业务部门的业务数据进行数据转移的具体示例进行描述:
首先,第一微服务响应于用户的第一操作输入的数据建立数据源和数据转移任务,所述数据源包括至少一种数据格式,所述数据格式包括多个不同数据类型的字段。
在本实施例中,第一微服务通过建立具有多个不同数据类型的字段的数据源能够实现同时转移不同数据格式的数据,从而提高数据转移效率。
在一个可选的实施例中,所述第一微服务响应于用户的第一操作输入的数据建立数据源和数据转移任务进一步包括:
第一步,第一微服务响应于用户的第一操作输入的数据建立第一数据源模板和第二数据源模板。
在本实施例中,第一数据源模板为待转移数据的源数据信息。如图3所示为前端用户界面,根据用户输入的数据设置源数据信息,其中,所述第一数据源模板包括数据源类型,本实施例中用户输入“KAFKA”,即源数据库为KAFKA服务器;还包括源数据库地址,即“kafka地址”;进一步还包括KAFKA服务器的消息队列,即“topic”;还包括队列的具体分区数量,即“partition”。值得说明的是,KAFKA服务器包括多个消息队列,不同消息队列接收不同业务部门的业务数据,一个消息队列包括多个分区,根据用户输入的数据建议源数据的数据源模板,以便于根据该数据源模板建立源数据的数据源进行数据转移。
在本实施例中,第二数据源模板为待转移数据的目的数据信息,以目的数据库为MySQL为例,第二数据源模板包括具体的目的数据库名称、目的数据库的IP地址、端口、用户名和密码等信息。
第二步,第一微服务响应于用户的第一操作输入的数据、以及第一数据源模板建立数据源。
在本实施例中,数据源包括多个不同数据类型的字段。如图4所示为前端用户界面,根据用户输入的数据设置源数据信息,其中,所述数据源包括,数据源模板,即前述第一数据源模板;还包括数据格式,本实施例的数据格式为“jason”格式;还包括至少一个格式名称和格式内容,例如格式名称为“数据格式1”,格式内容定义了“姓名name、年龄age、地址address和性别man”等不同数据类型的字段;并且该jason格式的数据格式仅包括一层键值对格式。通过该前端用户界面可以设置至少一个数据格式,例如通过界面的“+”号按键可以新增数据格式,通过界面的“?”号按键可以显示数据格式的示例,以便于开发者建立数据源的数据格式。
第三步,第一微服务响应于用户的第一操作输入的数据、以及第二数据源模板建立数据目的。
在本实施例中,如图5所示为前端用户界面,根据用户输入的数据设置数据目的信息,其中,所述数据目的包括目的数据库为MySQL、目的数据库的数据源为cxhMysqlDest,目的数据库的库名为mysqlDest,对应的目的数据库的表的表名为dest、写入方式replace、以及批量大小为1。
第四步,第一微服务响应于用户的第一操作输入的数据、以及建立的第一数据源模板、第二数据源模板、数据源和数据目的建立数据源和数据目的的字段映射关系和数据转移任务。
在本实施例中,如图6所示为前端用户界面,用于建立数据源和数据目的的字段映射关系,其中格式名称对应于图4的格式名称,即对应于数据源建立的数据格式分别将数据源和数据目的的字段进行映射,例如将数据源定义的类型为INT UNSIGNED的源字段id对应到数据目的的类型为INT UNSIGNED的目标字段id;再例如将数据源定义的类型为VARCHAR的源字段name对应到数据目的的类型为INT VARCHAR的目标字段name。同时,在该前端用户界面中还可以设置校验函数和转换函数,本申请对此不作具体限定,本领域技术人员根据实际应用需求进行设置,在此不再赘述。
同时,第一微服务响应于用户的第一操作输入的数据建立数据转移任务。
在本实施例中,通过上述步骤建立数据转移任务,具体包括对存储在Kafka服务器的消息队列topic的限定,并同时设置任务到任务队列中,响应于用户的启动任务操作触发该数据转移任务。
在本实施例中,第一微服务响应于用户的第一操作输入的数据建立数据转移任务,具体表现为:用于通过前端用户界面按照具体的界面设置输入数据,前端用户界面将输入的数据发送给后端服务器以便于第一微服务Exchang-Service根据输入的数据建立任务,具体的,编辑kafka.tpl文件并添加到Exchangis-service项目的resource\job_templates\datax\readers文件夹中。kafka.tpl文件具体参见以下代码:
在上述代码中,第一微服务根据用户的第一操作输入的数据建立数据转移任务,具体包括将前端用户界面输入的参数数据传输到后端服务器。
进一步的,编写KafkaJobDataConfHandler,具体参见以下代码:
在上述代码中,实现了prePersistReader方法,从前端用户界面传输的参数中读取datasourceId。再用datasourceId从数据库中读取第一数据源模板数据,即读取到用户配置的kafka服务器地址,topic,分区等信息,并将这些信息存入参数中。
进一步的,编写数据源模板校验代码以确保第一数据源模板的配置准确性,具体参见以下代码:
在上述代码中,实现了validate方法,能够校验第一数据源模板参数的有效性。若校验存在问题则进行报错以提示用户修改配置的数据。
进一步的,在原有的TypeEnums类中添加Kafka枚举的相关代码,具体参见以下代码:
在上述代码中,建立定义变量和配置文件的对应关系。
进一步的,针对增加的第一数据源模板,修改columnMaps,具体参见以下代码:
在上述代码中,对JobInfoConfServiceImpl类的buildConfig方法进行修改,将原来的解析JobConfForm.ColumnMap列表改造为解析fomatMapping对象{"formatName":"","mapping":[]}。其中mapping的列表就对应了原来的JobConfForm.ColumnMap列表,即新增了一层formatName的封装,用来表示各个不同格式名称。
其次,所述第一微服务响应于用户的第二操作发送任务执行指令至第二微服务,所述任务执行指令包括所述数据转移任务,以使得所述第二微服务根据所述数据转移任务启动数据转移程序进行数据转移。
在本实施例中,如图2所示,基于Exchangis数据转化项目的处理流程,所述第一微服务Exchang-Service响应于用户的第二操作控制第二微服务Exchang-Core执行本地shell脚本启动数据转移程序以实现源数据库到目的数据库的数据转移。
在一个可选的实施例中,所述第一微服务响应于用户的第二操作发送任务执行指令至第二微服务,所述任务执行指令包括所述数据转移任务,以使得所述第二微服务根据所述数据转移任务启动数据转移程序进行数据转移进一步包括:
第五步,所述第一微服务响应于用户的第二操作根据所述数据转移任务获取任务执行信息,所述任务执行信息包括任务执行所需内存和任务执行所需资源。
在本实施例中,响应于用户的任务执行指令获取前述数据转移任务所需的任务执行信息,所述任务执行信息为执行该数据转移任务所需的硬件资源。
第六步,所述第一微服务根据所述任务执行信息从注册中心选择空闲的第二微服务,并发送所述任务执行指令发送至所述第二微服务。
在Exchangis数据转化项目中,注册中心包括多个执行数据转移任务的第二微服务,各微服务包括不同的硬件资源。在本实施例中,所述第一微服务根据所述任务执行信息从注册中心选择符合所述任务执行信息且空闲的第二微服务执行数据转移任务。本实施例根据所述数据转移任务所需的硬件资源选择适合的第二微服务执行该任务,从而实现硬件资源的灵活配置,有效提高硬件资源的使用效率。
第七步,所述第一微服务控制所述第二微服务根据所述数据转移任务启动数据转移程序进行数据转移。
在本实施例中,根据所述数据转移任务,第二微服务执行本地shell脚本启动数据转移程序,例如启动java应用程序实现源数据库到目的数据库的数据转移。
第八步,所述第二微服务启动数据转移程序并调用数据转移插件根据所述数据源、数据转移端和字段映射关系实时转移数据,其中,所述源数据库为实时接收对应的业务数据。
在本实施例中,由于源数据库为KAFKA服务器包括与不同业务部门一一对应的消息队列,每个消息队列实时接收对应业务部门的业务数据,即本实施例的数据转移系统的源数据库接收业务部门主动推送的业务数据,Exchangis数据转化项目被动接收用户建立任务、以及被动接收用户触发任务后使用第一微服务、第二微服务、数据转移程序和数据转移插件实现源数据库到目的数据库的数据转移。换句话说,本实施例针对规模较大的包括多个业务部门的集团中心,通过设置原数据库Kafka消息队列实时接收各业务部门主动推送的业务数据,再通过Exchangis数据转化项目响应于用户的操作建立任务、启动任务以实现对各业务部门的业务数据的转移。
具体的,数据转移程序从固定目录加载数据转移插件:包括:
加载数据读插件根据所述数据源的数据格式将源数据库的数据转移到管道中,即完成了将待转移数据从源数据库到管道的搬移,由于数据读插件仅用于根据所述数据源的格式从源数据库读取数据,不能写入目的数据库,因此将读取的待转移数据转移到管道中。
加载数据写插件根据所述写入方式将所述管道中的数据转移到所述目的数据库的目的表中,即完成了将待转移数据从管道中取出并写入目的数据库,根据前述的写入方式将待转移数据写入目的数据库的对应表中,从而完成了业务数据的数据转移。
在一个可选的实施例中,考虑到数据读插件的数据处理性能,在建立任务过程中,还包括:设置所述数据转移读插件的转移性能,所述转移性能包括所述数据转移读插件的数据获取阈值和数据获取时间间隔阈值。
在本实施例中,如图7所示,对所述数据读插件的数据处理速度性能进行限定,设置所述数据读插件每次获取的最小数据阈值为1Btye,每次获取的最大数据阈值为4MBtye,即一次性从源数据库kafka服务器获取到本地缓存的最大数据量为4MBtye;同时限定所述数据读插件每次获取的最大时间间隔为500ms,即当源数据库kafka服务器的数据量满足最小数据量或最大时间间隔时所述数据读插件从源数据库kafka服务器拉取数据并缓存到本地。
其中,数据读插件为根据所述数据源的数据格式编写的读插件,具体参见以下代码:
在上述代码中,创建数据读插件KafkaReader,并在数据转移程序的pom.xml文件中添加相应的插件名称。
进一步的,编写plugin.json文件并添加到KafkaReader的resource目录,具体参见以下代码:
在上述代码中,指定了KafkaReader插件的名称和主类等信息。
进一步的,编写plugin_job_template.json文件并添加到KafkaReader的resource目录,具体参见以下代码:
在上述代码中,指定了KafkaReader插件读取的配置参数的数据结构。
进一步的,创建KafkaReader类并继承Reader接口,具体参见以下代码:
在上述代码中,创建KafkaReader的静态内部类Job继承Reader.Job类,其中,job主要负责校验数据格式,多线程并行收集数据配置。
进一步的,创建KafkaReader类并继承Reader接口,具体参见以下代码:
在上述代码中,创建KafkaReader的静态内部类Task类并继承Reader.Task,其中,Task为真正的任务处理类,将接收到的数据传输给管道,再由管道交给Writer插件,最后由Writer插件写入目的数据库。
在上述代码的TaskReader方法中,按照以下步骤进行:
a)首先创建了kafka消费者并配置了关闭自动提交,按照用户的kafka服务器配置,服务器地址,端口,然后设置监听的队列。再按照用户的限流配置,设置每次获取的最大数据量,最大时间间隔,每次获取数据刷入缓存的最小数据量阈值等;接着程序开始自旋,通过阻塞的方式读取kafka数据,最多等待1秒;如果读取到了业务部门发送的业务数据,先解析json数据并读取其中的formatName属性,判断这个属性和任务创建时配置的formatName是否相同,相同时则根据前述建立的字段映射关系,将数据格式映射成用户指定的格式。
b)提交kafka消费的ack表示这个数据已经消费完成。
c)将数据刷入channel并等待Writer插件消费后写入数据库。
从而实现待转移数据的转移。
最后,所述第一微服务响应于用户的第三操作发送任务结束指令至第二微服务以获取所述数据转移任务的执行结果。
具体的,第九步,所述第一微服务响应于用户的第三操作发送任务结束指令至第二微服务以结束所述数据转移任务。
在本实施例中,响应于用户的第三操作,第一微服务控制第二微服务结束所述数据转移程序,即结束使用数据转移读插件从源数据kafka服务器获取源数据并缓存到管道,同时结束使用数据转移写插件从管道获取源数据并写入目的数据库的对应表中。
考虑到本申请基于kafka消息队列的数据转移任务响应于用户操作建立,响应于用户操作执行,并且响应于用户操作结束,在一个可选的实施例中,所述第一微服务控制所述第二微服务根据所述数据转移任务启动数据转移程序进行数据转移进一步包括:所述第一微服务控制所述第二微服务启动数据转移监控程序进行数据转移监控。
在本实施例中,当第一微服务控制所述第二微服务启动数据转移程序进行数据转移后,第一微服务同时控制所述第二微服务启动监控进程,即启动数据转移监控程序对数据转移任务的进程进行监控,例如监控数据转移的log文本。
第十步,所述第一微服务响应于用户的第三操作发送任务结束指令至第二微服务以获取所述数据转移任务的执行结果。
在本实施例中,响应于用户的第三操作,第一微服务控制第二微服务结束所述数据转移程序的同时,结束所述监控进程,并根据监控的log文本向第一微服务上报数据转移任务的执行结果。即将数据转移监控程序监控的数据作为所述数据转移任务的执行结果。
至此,完成该业务部门的业务数据的数据转移,由于该业务部门的业务数据存在异构性和时效性的特点,使用本实施例提供的数据转移方法能够满足该业务部门对业务数据的实时性和异构性要求,有效解决现有技术中存在的问题,同时提高数据传输效率。
具体的,该业务部门将业务数据实时传输至对应的源数据库,即kafka服务器对应的消息队列topic中,所述业务数据包括不同数据类型的数据。
基于该业务部门主动推送的业务数据,Exchangis数据转化项目被动响应于用户的操作:
响应于用户的第一操作和输入的数据建立任务,包括建立第一数据源模板、第二数据源模板、数据源、数据目的、数据源和数据目的的字段映射等;
响应于用户的第二操作启动任务,通过第一微服务控制第二微服务启动数据转移程序,使用数据转移插件完成待转移数据从源数据库到本地管道再到目的数据库的数据转移;
响应于用户的第三操作结束任务,通过第一微服务控制第二微服务关闭数据转移程序,停止数据转移插件进行数据转移;并根据数据转移过程中启动的监控程序监控数据转移的具体进程并作为数据转移结果传输至第一微服务。
值得说明的是,本实施例中的第一操作为用户在前端用户界面按照具体的界面设置输入数据以配置数据转移的参数,从而建立任务;本实施例中的第二操作为用户在前端用户界面启动任务以执行数据转移;本实施例中的第三操作为用户在前端用户界面结束任务以停止数据转移。
与上述实施例提供的数据转移方法相对应,本申请的一个实施例还提供一种使用数据转移方法的数据转移系统,由于本申请实施例提供的数据转移系统与上述几种实施例提供的数据转移方法相对应,因此在前实施方式也适用于本实施例提供的数据转移系统,在本实施例中不再详细描述。
如图2所示,本申请的一个实施例还提供一种使用数据转移方法的数据转移系统,包括注册中心、在所述注册中心注册的多个第一微服务、多个第二微服务、数据转移插件、源数据库和目的数据库,其中,所述源数据库实时接收对应的业务数据;所述第一微服务配置为:
响应于用户的第一操作输入的数据建立数据源和数据转移任务,所述数据源包括至少一种数据格式,所述数据格式包括多个不同数据类型的字段;
响应于用户的第二操作发送任务执行指令至第二微服务,所述任务执行指令包括所述数据转移任务,以使得所述第二微服务根据所述数据转移任务启动数据转移程序进行数据转移;
响应于用户的第三操作发送任务结束指令至第二微服务以获取所述数据转移任务的执行结果。
本实施例提供的数据转移系统,通过第一微服务建立具有多个不同数据类型的字段的数据源、并建立数据转移任务,再响应于用户的操作触发数据转移任务、控制第二微服务启动数据转移程序以进行数据转移,从而实现同时转移不同数据格式的数据,有效提高数据转移效率。
本发明的另一个实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现:第一微服务响应于用户的第一操作输入的数据建立数据源和数据转移任务,所述数据源包括至少一种数据格式,所述数据格式包括多个不同数据类型的字段;所述第一微服务响应于用户的第二操作发送任务执行指令至第二微服务,所述任务执行指令包括所述数据转移任务,以使得所述第二微服务根据所述数据转移任务启动数据转移程序进行数据转移;所述第一微服务响应于用户的第三操作发送任务结束指令至第二微服务以获取所述数据转移任务的执行结果。
在实际应用中,所述计算机可读存储介质可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
如图8所示,本发明的另一个实施例提供的一种计算机设备的结构示意图。图8显示的计算机设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图8所示,计算机设备12以通用计算设备的形式表现。计算机设备12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图8未显示,通常称为“硬盘驱动器”)。尽管图8中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机设备12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机设备12交互的设备通信,和/或与使得该计算机设备12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机设备12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图8所示,网络适配器20通过总线18与计算机设备12的其它模块通信。应当明白,尽管图8中未示出,可以结合计算机设备12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理器单元16通过运行存储在系统存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的一种数据转移方法。
本发明针对目前现有的问题,制定一种数据转移方法、数据转移系统、计算机设备和介质,数据转移方法通过第一微服务建立具有多个不同数据类型的字段的数据源、并建立数据转移任务,再响应于用户的操作触发数据转移任务、控制第二微服务启动数据转移程序以进行数据转移,从而实现同时转移不同数据格式的数据,有效提高数据转移效率。
具体的,通过数据转移程序控制调用数据转移读插件和数据转移写插件,将源数据库实时接收的业务数据按照建立的数据源的多个不同数据类型的字段进行数据转移,即同时实现多种不同数据类型的业务数据的数据转移,从而弥补了现有技术中存在的问题,有效提高数据转移效率,能够改善数据传输性能,进而提高数据转移系统的便捷性,降低数据转移系统的维护成本,具有实际应用价值。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定,对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动,这里无法对所有的实施方式予以穷举,凡是属于本发明的技术方案所引伸出的显而易见的变化或变动仍处于本发明的保护范围之列。

Claims (11)

1.一种数据转移方法,其特征在于,包括:
第一微服务响应于用户的第一操作输入的数据建立数据源和数据转移任务,所述数据源包括至少一种数据格式,所述数据格式包括多个不同数据类型的字段;
所述第一微服务响应于用户的第二操作发送任务执行指令至第二微服务,所述任务执行指令包括所述数据转移任务,以使得所述第二微服务根据所述数据转移任务启动数据转移程序进行数据转移;
所述第一微服务响应于用户的第三操作发送任务结束指令至第二微服务以获取所述数据转移任务的执行结果。
2.根据权利要求1所述的数据转移方法,其特征在于,所述第一微服务响应于用户的第一操作输入的数据建立数据源和数据转移任务进一步包括:
建立第一数据源模板和第二数据源模板,其中,所述第一数据源模板包括源数据库、源数据库地址和源数据库的队列,所述第二数据源模板包括目的数据库和目的数据库信息;
根据所述第一数据源模板建立数据源,所述数据源包括至少一种数据格式,所述数据格式为单层键值对,所述键值对包括具有多个不同数据类型的字段;
根据所述第二数据源模板建立数据目的,所述数据目的包括目的数据库、对应的目的数据库的目的表和写入方式;
根据所述数据源和数据目的建立数据源和数据目的的字段映射关系和数据转移任务。
3.根据权利要求2所述的数据转移方法,其特征在于,所述第一微服务响应于用户的第二操作发送任务执行指令至第二微服务,所述任务执行指令包括所述数据转移任务,以使得所述第二微服务根据所述数据转移任务启动数据转移程序进行数据转移进一步包括:
所述第一微服务响应于用户的第二操作根据所述数据转移任务获取任务执行信息,所述任务执行信息包括任务执行所需内存和任务执行所需资源;
所述第一微服务根据所述任务执行信息从注册中心选择空闲的第二微服务,并发送所述任务执行指令发送至所述第二微服务;
所述第一微服务控制所述第二微服务根据所述数据转移任务启动数据转移程序进行数据转移。
4.根据权利要求3所述的数据转移方法,其特征在于,所述第一微服务控制所述第二微服务根据所述数据转移任务启动数据转移程序进行数据转移进一步包括:
所述第二微服务启动数据转移程序并调用数据转移插件根据所述数据源、数据转移端和字段映射关系实时转移数据,其中,所述源数据库为实时接收对应的业务数据。
5.根据权利要求4所述的数据转移方法,其特征在于,所述数据转移插件包括数据转移读插件和数据转移写插件,所述第二微服务启动数据转移程序并调用数据转移插件根据所述数据源、数据转移端和字段映射关系实时转移数据进一步包括:
所述第二微服务调用数据转移读插件根据所述数据源的数据格式将源数据库的数据转移到管道中;
所述第二微服务调用数据转移写插件根据所述写入方式将所述管道中的数据转移到所述目的数据库的目的表中。
6.根据权利要求5所述的数据转移方法,其特征在于,所述第一微服务响应于用户的第一操作输入的数据建立数据源和数据转移任务进一步包括:
设置所述数据转移读插件的转移性能,所述转移性能包括所述数据转移读插件的数据获取阈值和数据获取时间间隔阈值。
7.根据权利要求3所述的数据转移方法,其特征在于,所述第一微服务控制所述第二微服务根据所述数据转移任务启动数据转移程序进行数据转移进一步包括:
所述第一微服务控制所述第二微服务启动数据转移监控程序进行数据转移监控。
8.根据权利要求7所述的数据转移方法,其特征在于,所述第一微服务响应于用户的第三操作发送任务结束指令至第二微服务以获取所述数据转移任务的执行结果进一步包括:
获取所述数据转移监控程序监控的数据作为所述数据转移任务的执行结果。
9.一种使用如权利要求1到8中任一项所述的数据转移方法的数据转移系统,其特征在于,包括注册中心、在所述注册中心注册的多个第一微服务、多个第二微服务、数据转移插件、源数据库和目的数据库,其中,所述源数据库实时接收对应的业务数据;所述第一微服务配置为:
响应于用户的第一操作输入的数据建立数据源和数据转移任务,所述数据源包括至少一种数据格式,所述数据格式包括多个不同数据类型的字段;
响应于用户的第二操作发送任务执行指令至第二微服务,所述任务执行指令包括所述数据转移任务,以使得所述第二微服务根据所述数据转移任务启动数据转移程序进行数据转移;
响应于用户的第三操作发送任务结束指令至第二微服务以获取所述数据转移任务的执行结果。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-8中任一项所述的方法。
11.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-8中任一项所述的方法。
CN202111014991.5A 2021-08-31 2021-08-31 一种数据转移方法、数据转移系统、计算机设备和介质 Active CN113641679B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111014991.5A CN113641679B (zh) 2021-08-31 2021-08-31 一种数据转移方法、数据转移系统、计算机设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111014991.5A CN113641679B (zh) 2021-08-31 2021-08-31 一种数据转移方法、数据转移系统、计算机设备和介质

Publications (2)

Publication Number Publication Date
CN113641679A CN113641679A (zh) 2021-11-12
CN113641679B true CN113641679B (zh) 2024-08-09

Family

ID=78424645

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111014991.5A Active CN113641679B (zh) 2021-08-31 2021-08-31 一种数据转移方法、数据转移系统、计算机设备和介质

Country Status (1)

Country Link
CN (1) CN113641679B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109086409A (zh) * 2018-08-02 2018-12-25 泰康保险集团股份有限公司 微服务数据处理方法、装置、电子设备及计算机可读介质
CN110008045A (zh) * 2019-04-12 2019-07-12 深圳乐信软件技术有限公司 微服务的聚合方法、装置、设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10642606B2 (en) * 2017-09-28 2020-05-05 International Business Machines Corporation Re-use of code
CN110543462A (zh) * 2019-09-04 2019-12-06 陕西丝路云启智能科技有限公司 微服务可靠性预测方法、预测装置、电子设备及存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109086409A (zh) * 2018-08-02 2018-12-25 泰康保险集团股份有限公司 微服务数据处理方法、装置、电子设备及计算机可读介质
CN110008045A (zh) * 2019-04-12 2019-07-12 深圳乐信软件技术有限公司 微服务的聚合方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN113641679A (zh) 2021-11-12

Similar Documents

Publication Publication Date Title
US7624116B2 (en) System and method for managing objects according to the common information model
CN111709527A (zh) 运维知识图谱库的建立方法、装置、设备及存储介质
CN114925084B (zh) 分布式事务处理方法、系统、设备及可读存储介质
US8799861B2 (en) Performance-testing a system with functional-test software and a transformation-accelerator
CN109951553B (zh) 数据处理方法、系统、电子设备以及计算机可读存储介质
US20170212930A1 (en) Hybrid architecture for processing graph-based queries
CN111694866A (zh) 数据搜索及存储方法、数据搜索系统、装置、设备及介质
CN113962597A (zh) 一种数据分析方法、装置、电子设备及存储介质
CN116360735A (zh) 一种表单生成方法、装置、设备和介质
CN111475388A (zh) 数据推送的测试方法、装置、计算机设备及存储介质
CN113495498B (zh) 用于硬件设备的模拟方法、模拟器、设备和介质
CN111913922A (zh) 二进制结构化日志的生成方法、装置、设备及存储介质
CN114398179A (zh) 一种跟踪标识的获取方法、装置、服务器及存储介质
CN110717992B (zh) 调度模型的方法、装置、计算机系统和可读存储介质
CN113282850A (zh) 资源标签管理方法、装置、电子设备、系统及存储介质
WO2024001240A1 (zh) 多种技术栈的任务集成方法及装置
US8406401B2 (en) Interactive voice response system to business application interface
CN113641679B (zh) 一种数据转移方法、数据转移系统、计算机设备和介质
US10831590B2 (en) Error handling
US20220122038A1 (en) Process Version Control for Business Process Management
CN114217790A (zh) 接口编排调度方法、装置、电子设备及介质
US12001408B2 (en) Techniques for efficient migration of key-value data
CN116467156A (zh) 联调测试方法、装置、存储介质及电子设备
US20170293599A1 (en) Checklist Contexts and Completion
CN110399296B (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