CN111258742B - 一种数据同步的方法、***、计算设备及存储介质 - Google Patents
一种数据同步的方法、***、计算设备及存储介质 Download PDFInfo
- Publication number
- CN111258742B CN111258742B CN202010095675.4A CN202010095675A CN111258742B CN 111258742 B CN111258742 B CN 111258742B CN 202010095675 A CN202010095675 A CN 202010095675A CN 111258742 B CN111258742 B CN 111258742B
- Authority
- CN
- China
- Prior art keywords
- data
- synchronization
- task
- information
- kubernetes
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据同步的方法,包括以下步骤:在Azkaban中封装自定义任务类型;配置数据的同步信息,同步信息包括原始数据源、数据名称、目标数据源;根据同步信息和自定义任务类型生成调度任务;执行调度任务完成数据同步。本发明公开的数据同步的方法,可实现数据同步的分布式计算、高效稳定,适用于高吞吐、大并发的数据场景。本发明还提供了一种数据同步的的***、计算设备及存储介质。
Description
技术领域
本发明涉及大数据处理领域,特别涉及一种数据同步的方法、***、计算设备及存储介质。
背景技术
目前,在大数据时代,数据具有海量、高增长、多样化等特点,在实际的大数据处理中,常常需要将一个***中的数据变化及时的同步到另一个***,或将一个数据库的数据变化同步到另一个数据库,即进行数据同步。现有的数据同步的方法,如使用DataX进行数据同步时,往往存在单机内存不足、CPU处理性能不足以及网络吞吐能力不足等问题,从而无法有效应用于高吞吐、大并发的数据场景。
因此,急需一种能实现分布式计算、高效稳定,适用于高吞吐、大并发的数据场景中的数据同步的方法。
发明内容
本发明的目的在于提供一种数据同步的方法,以解决现有技术中数据同步时网络吞吐能力不足的问题。
为解决上述技术问题,本发明的实施方式公开了一种数据同步的方法,包括以下步骤:在Azkaban中封装自定义任务类型;配置数据的同步信息,同步信息包括原始数据源、数据名称、目标数据源;根据同步信息和自定义任务类型生成调度任务;执行调度任务完成数据同步。
采用上述技术方案,可实现数据同步的分布式计算、高效稳定,适用于高吞吐、大并发的数据场景。
可选地,自定义任务类型为Kubernetes任务,数据同步的方法还包括以下步骤:在Kubernetes中封装同步容器。
可选地,执行调度任务完成数据同步的步骤,包括:调用Kubernetes,生成对应于调度任务的Kubernetes Job任务;执行Kubernetes Job任务完成数据同步。
可选地,同步容器为DataX同步容器,执行Kubernetes Job任务完成数据同步的步骤,包括:根据同步信息获取原始数据表及对应于原始数据表的元信息;根据原始数据表和元信息生成配置信息;调用DataX读取配置信息完成数据同步。
可选地,同步信息还包括限速信息。
可选地,数据同步的方法还包括以下步骤:当调度任务执行失败时,重试调度任务。
本发明的实施方式还公开了一种数据同步的***,包括:配置模块,用于配置数据的同步信息,同步信息包括原始数据源、数据名称、目标数据源;Azkaban模块,Azkaban模块包括第一封装单元、调度单元和执行单元,第一封装单元用于封装自定义任务类型,调度单元用于生成调度任务,执行单元用于执行调度任务;对应于自定义任务类型的自定义模块,自定义模块用于被执行单元调用以执行调度任务。
采用上述技术方案的数据同步的***,可实现数据同步的分布式计算、高效稳定,适用于高吞吐、大并发的数据场景。
可选地,还包括DataX模块,自定义模块为Kubernetes模块,自定义任务类型为Kubernetes任务,执行单元包括Kubernetes接口,Kubernetes接口用于调用Kubernetes模块生成Kubernetes Job任务,Kubernetes模块包括第二封装单元,第二封装单元用于封装DataX同步容器,DataX模块用于被Kubernetes模块调用以完成数据同步。
可选地,同步信息还包括限速信息。
可选地,Azkaban模块还包括监测单元,监测单元用于监测调度任务的完成情况,并发送信号给执行单元。
本发明的实施方式还公开了一种计算设备,包括:处理器,适于实现各种指令;存储器,适于存储多条指令,指令适于由处理器加载并前述的任一数据同步的方法。
采用上述技术方案的计算设备,使用时可实现数据同步的分布式计算、高效稳定,适用于高吞吐、大并发的数据场景。
本发明的实施方式还公开了一种存储介质,存储介质存储有多条指令,指令适于由处理器加载并执行前述的任一数据同步的方法。
采用上述技术方案的存储介质,应用时可实现数据同步的分布式计算、高效稳定,适用于高吞吐、大并发的数据场景。
附图说明
图1示出本发明一实施例的数据同步的方法的流程图;
图2示出本发明又一实施例的数据同步的方法的流程图;
图3示出本发明一实施例中步骤S4的流程图;
图4示出本发明一实施例中步骤S42的流程图;
图5示出本发明另一实施例的数据同步的方法的流程图;
图6示出本发明一实施例的数据同步的***的示意框图;
图7示出本发明又一实施例的数据同步的***的示意框图;
图8示出本发明一实施例的Azkaban模块的示意框图。
具体实施方式
以下由特定的具体实施例说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其他优点及功效。虽然本发明的描述将结合较佳实施例一起介绍,但这并不代表此发明的特征仅限于该实施方式。恰恰相反,结合实施方式作发明介绍的目的是为了覆盖基于本发明的权利要求而有可能延伸出的其它选择或改造。为了提供对本发明的深度了解,以下描述中将包含许多具体的细节。本发明也可以不使用这些细节实施。此外,为了避免混乱或模糊本发明的重点,有些具体细节将在描述中被省略。需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
应注意的是,在本说明书中,相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。
参照图1所示,本发明的实施方式公开了一种数据同步的方法,包括以下步骤,S1:在Azkaban中封装自定义任务类型;S2:配置数据的同步信息,同步信息包括原始数据源、数据名称、目标数据源;S3:根据同步信息和自定义任务类型生成调度任务;S4:执行调度任务完成数据同步。
在S1中,因为Azkaban具有很强的兼容性,因此用户可根据数据同步的需求,例如原始数据源、使用软件等信息的不同,在Azkaban上封装自定义任务类型。例如,当用户侧多使用Hadoop***时,可在Azkaban封装对应Hadoop的自定义任务类型,则在后续的数据同步过程中,在选择自定义任务类型为Hadoop任务时,可调用Hadoop进行数据同步。又例如,当用户侧多使用Kubernetes时,可在Azkaban封装对应的Kubernetes任务,则在后续的数据同步过程中,在选择自定义任务类型为Kubernetes任务时,可调用Kubernetes进行数据同步。本发明不对自定义任务类型的数量和具体内容进行限制,可根据实际需要进行选择,只要可实现在Azkaban中使用对应的接口,调用对应的模块即可。可以理解的是,S1并非在每次数据同步过程中都需进行,即完成一次封装之后,在后续的多次数据同步过程中均能进行调用,当有需要时,可对应增加、删除或修改的自定义任务类型。
在S2中,用户可根据数据同步的需要,通过Web端的UI界面配置相应的同步信息。例如,需要同步的原始数据源、数据名称、目标数据源、同步时间、同步速度、自定义任务类型等。同步信息至少需要包括原始数据源、数据名称、目标数据源,可以通过输入的方式进行配置,也可以通过勾选的方式进行选择,本发明对此不作限制。可以理解的是,根据选择的“原始数据源”、“目标数据源”可以得到对应数据源的元信息,如JDBC(Java数据库连接)信息等,便于后续生成调度任务。可以理解的是,在数据同步过程中,常存在多个数据源,一个数据源可包含一个或多个数据库,一个数据库可包含多个数据表,数据名称既可以是数据表的名称,也可以是数据库的名称。例如,当应用在医疗大数据场景下时,需要把“核医学”里的一张数据表tableA同步到“电子病历”里时,此处的原始数据源是“核医学”,数据名称代表该数据表的名称,为“tableA”,目标数据源为“电子病历”,其他设置可根据需要进行选择。可以理解的是,每个原始数据源和目标数据源都有其对应的类型信息,例如MySQL、Oracle、SqlServer等。当Azkaban中封装了多个自定义任务类型时,同步信息还可以包括自定义任务类型,方便用户根据需要进行选择。配置完成后通过UI界面提交到Azkaban,以便进行后续的数据同步过程。区别于Sqoop和DataX仅仅提供命令行接口,Azkaban支持了完整的Web界面,辅助用户完成任务的定义和提交,并可以直接跳转到任务执行界面查看任务状态和执行日志,便于操作,使用体验更加友好。
在S3中,Azkaban根据同步信息和自定义任务类型生成对应的调度任务。例如,当存在多个数据同步任务时,可根据每个任务配置的同步信息获得任务之间的依赖关系,在依赖关系的基础上,配置对应的调度任务。当封装的自定义任务类型唯一时,Azkaban可根据该自定义任务类型生成对应的,包含该自定义任务类型的调度任务,当存在多个封装的自定义任务类型时,Azkaban可通过用户配置的同步信息中选择的自定义任务类型生成对应的调度任务。
在S4中,Azkaban执行S3中生成的调度任务完成数据同步。Azkaban可以根据调度任务生成对应于自定义任务类型的Job任务,并执行所有的Job任务,在执行的过程中,调用对应于自定义任务类型的自定义模块,使用自定义模块完成数据同步。因为Azkaban有三种模式可供选择:单一服务器的试用模式,生产环境的双服务器模式以及分布式多执行器模式,可以根据用户侧规模的不同,需同步的任务数量的多少来进行不同的模式部署,灵活性强,且Azkaban具有优秀的调度管理能力,且能够并发地执行任务。因此,根据数据的同步信息和自定义任务类型,使用Azkaban能够实现数据同步的分布式计算、高效稳定,适用于高吞吐、大并发的数据场景。
采用上述技术方案,可实现数据同步的分布式计算、高效稳定,适用于高吞吐、大并发的数据场景。
在本发明的另一实施例中,自定义任务类型为Kubernetes任务,数据同步的方法还包括以下步骤,S5:在Kubernetes中封装同步容器。Kubernetes已经成为了容器编排***的事实标准。越来越多的企业开始拥抱容器,通过容器编排***形成集群,最大程度发挥容器的良好隔离、资源分配与编排管理的优势。Kubernetes可应用在在线微服务环境,离线计算等大数据场景下,便于搭建大数据技术栈。在Kubernetes中,可根据数据同步的不同需要封装不同的同步容器,例如DataX、Sqoop、Kettle等,实现Azkaban的Executor的分布式(集群)部署,从而克服了Azkaban任务只能运行在固定Executor上以致Executor成为性能瓶颈的问题。
在本发明的又一实施例中,执行调度任务完成数据同步的步骤S4,包括,S41:调用Kubernetes,生成对应于调度任务的Kubernetes Job任务;S42:执行Kubernetes Job任务完成数据同步。当数据同步中使用的自定义任务类型为Kubernetes任务时,可以理解的是,在S3中,生成的调度任务包含自定义任务类型为Kubernetes任务的信息。因此,Azkaban在执行调度任务的过程中,能够根据事先的封装,使用Kubernetes接口,调用Kubernetes,生成对应的Kubernetes Job任务。接着,执行Kubernetes Job任务,调用Kubernetes中封装的同步容器完成数据同步。使用Kubernetes封装同步容器完成数据同步,能够最大程度发挥容器的良好隔离、资源分配与编排管理的优势,提升分布式数据同步的兼容性和效率。
在本发明的另一实施例中,同步容器为DataX同步容器,执行Kubernetes Job任务完成数据同步的步骤S42,包括,S421:根据同步信息获取原始数据表及对应于原始数据表的元信息;S422:根据原始数据表和元信息生成配置信息;S423:调用DataX读取配置信息完成数据同步。可以理解的是,在S2中,数据名称既可以是数据库的名称,也可以是数据表的名称,而在具体的数据同步过程中,是以数据表作为基本的同步单位,当数据名称代表数据库名称时,则获取该数据库内的所有原始数据表和元信息进行数据同步,当数据名称代表数据表时,则获取该表名对应的原始数据表和元信息进行数据同步。例如,原始数据源为SqlServer类型的“核医学”,数据名称为tableA,目标数据源为Oracle类型的“电子病历”。即需要把“核医学”里的一张数据表tableA同步到“电子病历”里生成对应的tableB时,首先可以根据同步信息中的原始数据源和数据名称确定对应的数据表tableA,并获取该原始数据表tableA和对应的元信息,元信息包括了tableA的结构信息、类型信息、JDBC信息等,结合同步信息以及目标数据源“电子病历”对应的结构信息、类型信息、JDBC信息生成对应的配置信息。配置信息包括了两侧原始数据源的JDBC信息,需要同步的字段以及两侧原始数据源相应的类型等。然后调用DataX根据tableA和配置信息进行tableA的表结构的获取和识别、结构和类型的映射和转换、并在目标数据源“电子病历”进行建表操作,并存储到Oracle上,完成数据的同步。本发明以同步一张数据表为例,但可以理解的是,在实际应用过程中可同步多张数据表或数据库,本发明对此不作限制。DataX完全基于Java实现了一个基于JVM的同步核心,能够以插件的形式支持了包括MySQL、Oracle、SqlServer、Postgre、HDFS、Hive、ADS、HBase等各种异构原始数据源之间高效的数据同步功能,并支持ORC、Textfile等多种存储格式,上层业务只需要非常简单的JDBC配置即可完成***的接入和使用。因此使用DataX作为同步容器,具有良好的兼容性,配置简单,提升了多种异构原始数据源之间的数据同步的效率。
在本发明的又一实施例中,同步信息还包括限速信息。限速信息可以在S2中,当配置同步信息时一并进行输入或选择,则在S4进行数据同步的过程中,配置信息也包含相应的限速信息。限速信息是指在后续执行调度任务进行数据同步的过程中数据同步的速度的阈值,通常为最高阈值,以每秒同步的数据量来计量,单位为每秒兆字节。例如,当限速信息设定为50MB/s时,则后续数据同步的速度不高于50MB/s。通过设定限速信息能够限定数据同步的速度。具体的限速信息可根据硬件的情况进行不同的设定,如果原始数据源所在数据库服务器的硬件性能较低,则推荐降低最高阈值,本发明对此不作限制。可选地,限速信息为50MB/s到300MB/s,在此区间内既能够保证数据同步的速度,提升数据同步的效率,又能防止速度过快对设备硬件造成损坏,当限速信息为50MB/s时可以使得在面对硬件水准较差的原始数据源时,运行依然稳定和顺畅。可选地,同步信息还可以包括同步时间,此时Azkaban可以根据设定的时间点,定时进行数据同步,便于更好地进行任务的调度。可选地,原始数据源的信息为可编辑的,例如,当S2中选择的原始数据源为“核医学”时,则对应的原始数据源为“核医学”,数据库类型可以是“SqlServer”,以及对应的数据库的端口号等信息,方便用户进行管理,还可以包括用户名、用户密码等信息进行鉴权,防止数据泄露,提高数据保密性。
在本发明的另一实施例中,数据同步的方法还包括以下步骤,S6:当调度任务执行失败时,重试调度任务。本发明优化和丰富了对错误情况的判断和容灾恢复机制,并对各种错误情况增加了相应的处理逻辑,使得当监测到调度任务执行失败时,通知Azkaban进行重试,再次执行对应的调度任务。例如,可以根据是否生成调度任务对应的目标表来判断调度任务是否执行成功,当监测到未生成时,通知Azkaban进行重试,如果重试之后仍未生成,可以继续重试,也可以通过UI界面跳出相应的错误提示,便于用户处理。通过重试失败的调度任务,可以提升数据同步的成功率。
参照图6所示,本发明的实施方式还公开了一种数据同步的***1,包括:配置模块11,用于配置数据的同步信息,同步信息包括原始数据源、数据名称、目标数据源;Azkaban模块12,Azkaban模块12包括第一封装单元121、调度单元122和执行单元123,第一封装单元121用于封装自定义任务类型,调度单元122用于生成调度任务,执行单元123用于执行调度任务;对应于自定义任务类型的自定义模块13,自定义模块13用于被执行单元123调用以执行调度任务。
本发明所公开的数据同步的***1,可参照前述实施方式中的数据同步的方法,由Azkaban模块12的第一封装单元121事先进行自定义任务类型的封装,由配置模块11完成数据的同步信息的配置,并将信息提交至Azkaban的调度单元122,调度单元122根据同步信息和对应的自定义任务类型生成相应的调度任务,执行单元123调用对应于自定义任务类型的自定义模块13,执行所有的调度任务,完成数据同步。实现了数据同步的分布式计算、高效稳定,适用于高吞吐、大并发的数据场景。
参照图7所示,在本发明的另一实施例中,数据同步的***1还包括DataX模块14,自定义模块13为Kubernetes模块,自定义任务类型为Kubernetes任务,执行单元123包括Kubernetes接口,Kubernetes接口用于调用Kubernetes模块生成Kubernetes Job任务,Kubernetes模块包括第二封装单元131,第二封装单元131用于封装DataX同步容器,DataX模块14用于被Kubernetes模块调用以完成数据同步。参照前述实施方式中的数据同步的方法,使用Kubernetes封装DataX同步容器完成数据同步,能够最大程度发挥容器的良好隔离、资源分配与编排管理的优势,提升分布式数据同步的兼容性和效率,克服了Azkaban任务只能运行在固定Executor上以致Executor成为性能瓶颈的问题,具有良好的兼容性,配置简单,提升了多种异构原始数据源之间的数据同步的效率。
在本发明的又一实施例中,同步信息还包括限速信息。参照前述实施方式中的数据同步的方法,通过设定限速信息能够保证数据同步的速度,提升数据同步的效率,又能防止因速度过快对设备硬件造成损坏,在面对硬件水准较差的原始数据源时,运行依然稳定和顺畅。
在本发明的另一实施例中,Azkaban模块12还包括监测单元124,监测单元124用于监测调度任务的完成情况,并发送信号给执行单元123。参照前述实施方式中的数据同步的方法,例如,监测单元124可以根据是否生成调度任务对应的目标表来判断调度任务是否执行成功,当监测到未生成时,监测单元124可发送失败信号给执行单元123,执行单元123接收到失败信号后重试失败的调度任务,如果重试之后仍未生成,可以继续重试,也可以通过UI界面跳出相应的错误提示,便于用户处理。通过重试失败的调度任务,可以提升数据同步的成功率。当生成对应的目标表时,则代表任务成功完成,此时监测单元124发送成功信号给执行单元123,执行单元123继续执行其它待执行的调度任务,优化了任务的调度管理,提升了数据同步的效率。又例如,可以设定完成一个调度任务后,自动生成一个完成信号,监测单元124根据是否监测到对应的完成信号来监测任务的完成情况,本发明对具体的监测方法不作限制,只要能实现监测调度任务是否成功完成即可。
本发明的实施方式还公开了一种计算设备,包括:处理器,适于实现各种指令;存储器,适于存储多条指令,指令适于由处理器加载并前述实施方式中的任一数据同步的方法。
采用上述技术方案的计算设备,使用时可实现数据同步的分布式计算、高效稳定,适用于高吞吐、大并发的数据场景。
本发明的实施方式还公开了一种存储介质,存储介质存储有多条指令,指令适于由处理器加载并执行前述实施方式中的任一数据同步的方法。
采用上述技术方案的存储介质,应用时可实现数据同步的分布式计算、高效稳定,适用于高吞吐、大并发的数据场景。
本申请公开的各实施方式可以被实现在硬件、软件、固件或这些实现方法的组合中。本申请的实施例可实现为在可编程***上执行的计算机程序或程序代码,该可编程***包括至少一个处理器、存储***(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。可将程序代码应用于输入指令,以执行本申请描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理***包括具有诸如例如数字信号处理器(DSP)、微控制器、专用集成电路(ASIC)或微处理器之类的处理器的任何***。
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理***通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本申请中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
在一些情况下,所公开的实施方式可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、只读存储器(CD-ROMs)、磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
需要说明的是,本申请各设备实施例中提到的各模块/单元都是逻辑模块/单元,在物理上,一个逻辑模块/单元可以是一个物理模块/单元,也可以是一个物理模块/单元的一部分,还可以以多个物理模块/单元的组合实现,这些逻辑模块/单元本身的物理实现方式并不是最重要的,这些逻辑模块/单元所实现的功能的组合才是解决本申请所提出的技术问题的关键。此外,为了突出本申请的创新部分,本申请上述各设备实施例并没有将与解决本申请所提出的技术问题关系不太密切的模块/单元引入,这并不表明上述设备实施例并不存在其它的模块/单元。
虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。本领域技术人员可以在形式上和细节上对其作各种改变,包括做出若干简单推演或替换,而不偏离本发明的精神和范围。
Claims (12)
1.一种数据同步的方法,其特征在于,包括以下步骤:
在Azkaban中封装自定义任务类型;
配置数据的同步信息,所述同步信息包括原始数据源、数据名称、目标数据源;
根据所述同步信息和所述自定义任务类型生成调度任务;
执行所述调度任务完成数据同步。
2.如权利要求1所述的数据同步的方法,其特征在于,所述自定义任务类型为Kubernetes任务,所述数据同步的方法还包括以下步骤:
在Kubernetes中封装同步容器。
3.如权利要求2所述的数据同步的方法,其特征在于,所述执行所述调度任务完成数据同步的步骤,包括:
调用所述Kubernetes,生成对应于所述调度任务的Kubernetes Job任务;
执行所述Kubernetes Job任务完成数据同步。
4.如权利要求3所述的数据同步的方法,其特征在于,所述同步容器为DataX同步容器,所述执行所述Kubernetes Job任务完成数据同步的步骤,包括:
根据所述同步信息获取原始数据表及对应于所述原始数据表的元信息;
根据所述原始数据表和所述元信息生成配置信息;
调用DataX读取所述配置信息完成数据同步。
5.如权利要求4所述的数据同步的方法,其特征在于,所述同步信息还包括限速信息。
6.如权利要求1所述的数据同步的方法,还包括以下步骤:
当所述调度任务执行失败时,重试所述调度任务。
7.一种数据同步的***,其特征在于,包括:
配置模块,用于配置数据的同步信息,所述同步信息包括原始数据源、数据名称、目标数据源;
Azkaban模块,所述Azkaban模块包括第一封装单元、调度单元和执行单元,所述第一封装单元用于封装自定义任务类型,所述调度单元用于生成调度任务,所述执行单元用于执行调度任务;
对应于所述自定义任务类型的自定义模块,所述自定义模块用于被所述执行单元调用以执行所述调度任务。
8.如权利要求7所述的数据同步的***,其特征在于,还包括DataX模块,所述自定义模块为Kubernetes模块,所述自定义任务类型为Kubernetes任务,所述执行单元包括Kubernetes接口,所述Kubernetes接口用于调用所述Kubernetes模块生成Kubernetes Job任务,所述Kubernetes模块包括第二封装单元,所述第二封装单元用于封装DataX同步容器,所述DataX模块用于被所述Kubernetes模块调用以完成数据同步。
9.如权利要求8所述的数据同步的***,其特征在于,所述同步信息还包括限速信息。
10.如权利要求8所述的数据同步的***,其特征在于,所述Azkaban模块还包括监测单元,所述监测单元用于监测所述调度任务的完成情况,并发送信号给所述执行单元。
11.一种计算设备,其特征在于,包括:
处理器,适于实现各种指令;
存储器,适于存储多条指令,所述指令适于由所述处理器加载并执行权利要求1-6中任一项所述的数据同步的方法。
12.一种存储介质,其特征在于,所述存储介质存储有多条指令,所述指令适于由处理器加载并执行权利要求1-6中任一项所述的数据同步的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010095675.4A CN111258742B (zh) | 2020-02-17 | 2020-02-17 | 一种数据同步的方法、***、计算设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010095675.4A CN111258742B (zh) | 2020-02-17 | 2020-02-17 | 一种数据同步的方法、***、计算设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111258742A CN111258742A (zh) | 2020-06-09 |
CN111258742B true CN111258742B (zh) | 2023-08-04 |
Family
ID=70949324
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010095675.4A Active CN111258742B (zh) | 2020-02-17 | 2020-02-17 | 一种数据同步的方法、***、计算设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111258742B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111930466A (zh) * | 2020-05-28 | 2020-11-13 | 武汉达梦数据库有限公司 | 一种基于Kubernetes的数据同步环境部署方法和装置 |
CN111708659B (zh) * | 2020-06-10 | 2023-07-14 | 中国—东盟信息港股份有限公司 | 一种基于kubernetes构建云原生容灾架构的方法 |
CN113407629A (zh) * | 2021-06-18 | 2021-09-17 | 湖南快乐阳光互动娱乐传媒有限公司 | 数据同步的方法、装置、电子设备及存储介质 |
CN116032856A (zh) * | 2022-12-29 | 2023-04-28 | 广州趣丸网络科技有限公司 | 一种基于云原生的数据传输方法和*** |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101398857A (zh) * | 2008-11-12 | 2009-04-01 | 北京星网锐捷网络技术有限公司 | 嵌入式分布式***中数据同步的方法及嵌入式分布式*** |
CN103023809A (zh) * | 2012-12-28 | 2013-04-03 | 中国船舶重工集团公司第七0九研究所 | 一种采用二次缓冲技术的信息***数据同步处理方法 |
CN105095327A (zh) * | 2014-05-23 | 2015-11-25 | 深圳市珍爱网信息技术有限公司 | 一种分布式etl***及调度方法 |
CN105162878A (zh) * | 2015-09-24 | 2015-12-16 | 网宿科技股份有限公司 | 基于分布式存储的文件分发***及方法 |
CN107766132A (zh) * | 2017-06-25 | 2018-03-06 | 平安科技(深圳)有限公司 | 多任务调度方法、应用服务器及计算机可读存储介质 |
CN108874524A (zh) * | 2018-06-21 | 2018-11-23 | 山东浪潮商用***有限公司 | 大数据分布式任务调度*** |
CN108958729A (zh) * | 2017-05-19 | 2018-12-07 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置及存储介质 |
WO2019000629A1 (zh) * | 2017-06-25 | 2019-01-03 | 平安科技(深圳)有限公司 | 多数据源数据同步方法、***、应用服务器及计算机可读存储介质 |
CN110069334A (zh) * | 2019-05-05 | 2019-07-30 | 重庆天蓬网络有限公司 | 一种基于包管理的分布式数据作业调度的方法和*** |
CN110602253A (zh) * | 2019-09-30 | 2019-12-20 | 新华三大数据技术有限公司 | 一种任务调度方法、装置及*** |
CN110704458A (zh) * | 2019-08-15 | 2020-01-17 | 平安科技(深圳)有限公司 | 数据同步方法、装置、计算机设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8700750B2 (en) * | 2009-01-16 | 2014-04-15 | Microsoft Corporation | Web deployment functions and interfaces |
-
2020
- 2020-02-17 CN CN202010095675.4A patent/CN111258742B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101398857A (zh) * | 2008-11-12 | 2009-04-01 | 北京星网锐捷网络技术有限公司 | 嵌入式分布式***中数据同步的方法及嵌入式分布式*** |
CN103023809A (zh) * | 2012-12-28 | 2013-04-03 | 中国船舶重工集团公司第七0九研究所 | 一种采用二次缓冲技术的信息***数据同步处理方法 |
CN105095327A (zh) * | 2014-05-23 | 2015-11-25 | 深圳市珍爱网信息技术有限公司 | 一种分布式etl***及调度方法 |
CN105162878A (zh) * | 2015-09-24 | 2015-12-16 | 网宿科技股份有限公司 | 基于分布式存储的文件分发***及方法 |
CN108958729A (zh) * | 2017-05-19 | 2018-12-07 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置及存储介质 |
CN107766132A (zh) * | 2017-06-25 | 2018-03-06 | 平安科技(深圳)有限公司 | 多任务调度方法、应用服务器及计算机可读存储介质 |
WO2019000629A1 (zh) * | 2017-06-25 | 2019-01-03 | 平安科技(深圳)有限公司 | 多数据源数据同步方法、***、应用服务器及计算机可读存储介质 |
CN108874524A (zh) * | 2018-06-21 | 2018-11-23 | 山东浪潮商用***有限公司 | 大数据分布式任务调度*** |
CN110069334A (zh) * | 2019-05-05 | 2019-07-30 | 重庆天蓬网络有限公司 | 一种基于包管理的分布式数据作业调度的方法和*** |
CN110704458A (zh) * | 2019-08-15 | 2020-01-17 | 平安科技(深圳)有限公司 | 数据同步方法、装置、计算机设备及存储介质 |
CN110602253A (zh) * | 2019-09-30 | 2019-12-20 | 新华三大数据技术有限公司 | 一种任务调度方法、装置及*** |
Non-Patent Citations (1)
Title |
---|
游戏大数据平台工作流引擎研究与实践;陈杰等;《电信科学》(第02期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111258742A (zh) | 2020-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111258742B (zh) | 一种数据同步的方法、***、计算设备及存储介质 | |
US11403152B2 (en) | Task orchestration method and system | |
CN107451147B (zh) | 一种kafka集群动态切换的方法和装置 | |
US11948014B2 (en) | Multi-tenant control plane management on computing platform | |
CN111897633A (zh) | 一种任务处理的方法和装置 | |
CN111124589B (zh) | 一种服务发现***、方法、装置及设备 | |
US11456914B2 (en) | Implementing affinity and anti-affinity with KUBERNETES | |
CN111831757B (zh) | 分布式全局唯一标识信息的生成和管理方法及装置 | |
US11271895B1 (en) | Implementing advanced networking capabilities using helm charts | |
CN111258726B (zh) | 任务调度方法和装置 | |
CN107977260B (zh) | 任务提交方法及装置 | |
CN112738181B (zh) | 集群外部ip接入的方法、装置及服务器 | |
CN109032753B (zh) | 一种异构虚拟机硬盘托管方法、***、存储介质及Nova平台 | |
CN114691445A (zh) | 集群故障处理方法、装置、电子设备及可读存储介质 | |
CN110968406B (zh) | 处理任务的方法、装置、存储介质和处理器 | |
CN115934292A (zh) | 微服务应用的调用方法、装置及设备 | |
CN115563226A (zh) | 基于数据库的数据消费方法、控制装置及可读存储介质 | |
CN109165021A (zh) | 接口隔离管理方法、装置、设备和存储介质 | |
CN115499493A (zh) | 异步事务处理方法、装置、存储介质及计算机设备 | |
CN112130900B (zh) | 一种bmc的用户信息管理方法、***、设备以及介质 | |
CN113835889A (zh) | 获取输入事件的方法和相关装置 | |
CN113835625A (zh) | 一种基于子路径的数据存储方法、装置、设备及存储介质 | |
CN106844056B (zh) | Hadoop大数据平台多租户作业管理方法及其*** | |
CN112579145A (zh) | 应用部署方法及装置 | |
CN111124931B (zh) | 一种Java代码合规性检查方法和装置 |
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 |