CN115168487A - 基于kettle的数据同步方法、组件、设备及介质 - Google Patents
基于kettle的数据同步方法、组件、设备及介质 Download PDFInfo
- Publication number
- CN115168487A CN115168487A CN202210681974.5A CN202210681974A CN115168487A CN 115168487 A CN115168487 A CN 115168487A CN 202210681974 A CN202210681974 A CN 202210681974A CN 115168487 A CN115168487 A CN 115168487A
- Authority
- CN
- China
- Prior art keywords
- synchronization
- task
- synchronous
- configuration information
- date
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
-
- 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/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2315—Optimistic concurrency control
- G06F16/2322—Optimistic concurrency control using timestamps
-
- 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/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种基于kettle的数据同步方法、组件、设备及介质,其中方法包括:确定同步频率和配置信息;基于同步频率,应用配置信息,确定并初始化同步频率对应的同步任务;基于同步任务中的同步类型,及配置信息中与同步频率对应的同步日期,执行同步任务对应的转换作业,得到同步任务的执行结果,并将执行结果写入日志中;同步任务全部执行成功后,基于所述同步频率,更新所述配置信息中的同步日期,该方法实现了多同步频率和多场景的数据同步,并且只需要在kettle平台下设计好转换作业后,只需配置包含有各映射关系的配置信息,简化了同步配置,降低了配置技术门槛,进而提升了用户体验。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种基于kettle的数据同步方法、组件、设备及介质。
背景技术
现有的数据同步方法,如基于DataX的数据同步,仅支持单纯的数据同步,不支持流程定义,配置复杂不直观,以及配置技术门槛高。基于kettle的数据同步,也仅仅是针对简单的同步场景,例如:单一两个数据库或者数据源的数据同步,以及简单的流程控制,例如:数据同步全量和增量的判断等。
但现有的数据同步方法,均无法满足多业务场景和多同步频率的任务需求,导致目前数据仓库和数据分析类系统架构内的数据同步困难,进而影响用户体验。
发明内容
本发明提供一种基于kettle的数据同步方法、组件、设备及介质,用以解决现有技术中数据同步配置复杂且无法应对多场景多频率的同步任务的缺陷。
本发明提供一种基于kettle的数据同步方法,包括:
确定同步频率和配置信息;
基于所述同步频率,应用所述配置信息,确定并初始化所述同步频率对应的同步任务;
基于所述同步任务中的同步类型,在所述配置信息中与所述同步频率对应的同步日期,执行所述同步任务对应的转换作业,得到所述同步任务的执行结果,并将所述执行结果写入日志中;
所述同步任务全部执行成功后,基于所述同步频率,更新所述配置信息中的同步日期。
根据本发明提供的一种基于kettle的数据同步方法,所述配置信息包括同步系统表、同步周期表和同步系统表清单表;所述同步系统表用于存放待同步业务系统信息,所述系统信息包括数据库类型、数据源配置信息和同步频率;所述同步周期表用于存放同步周期信息,所述同步周期信息包括同步日期和同步频率;所述同步系统表清单表用于存放所述同步系统表中各系统对应的表配置信息,所述表配置信息包括源系统名、源系统表名、源系统表增量表达式、目标系统名、目标系统表名、目标系统表增量表达式、和同步类型;所述同步类型包括增量或全量;
所述基于所述同步频率,应用所述配置信息,确定并初始化所述同步频率对应的同步任务,包括:
基于所述同步频率,应用所述同步系统表,确定同步系统信息;
基于所述同步系统信息,应用所述同步系统表清单表,确定所述同步系统信息对应的表配置信息;
基于所述同步系统信息对应的表配置信息,初始化所述同步任务。
根据本发明提供的一种基于kettle的数据同步方法,所述配置信息还包括:数据源配置文件和同步作业程序表;所述数据源配置文件用于存放数据源连接信息;所述同步作业程序表用于存放所述同步系统表清单表中各表配置信息对应的转换作业名;
所述基于所述同步任务中的同步类型,在所述配置信息中与所述同步频率对应的同步日期,执行所述同步任务对应的转换作业,得到所述同步任务的执行结果,包括:
基于所述同步频率,应用所述同步周期表,确定所述同步日期;
基于所述同步系统表中存放的数据源配置信息和所述数据源配置文件中的数据源连接信息之间的映射关系,确定所述同步系统信息对应的数据源连接信息;
基于所述同步系统信息对应的表配置信息,应用所述同步作业程序表,确定所述同步任务对应的转换作业名;
基于所述同步任务中的同步类型,应用所述同步系统信息对应的数据源连接信息,在所述同步日期,执行所述转换作业名对应转换作业,得到所述执行结果。
根据本发明提供的一种基于kettle的数据同步方法,所述配置信息还包括:假日表,所述假日表用于存放日期和日期对应的属性标签,所述属性标签包括工作日和节假日;
基于所述同步频率和当前日期,确定下一次的临时同步日期;
基于所述临时同步日期,应用所述假日表中的日期信息,确定下一次的实际同步日期,并将所述同步周期表中所述同步频率对应的同步日期更新为所述实际同步日期。
根据本发明提供的一种基于kettle的数据同步方法,所述配置信息还包括:同步计划结果表,用于存放任务计划、任务状态和任务结果;所述任务状态包括初始状态、成功状态和失败状态;
所述初始化所述同步任务,包括:
若所述同步计划结果表中未记录包括所述同步任务及所述配置信息中与所述同步频率对应的同步日期的同步计划,则将所述同步任务、所述同步日期以及所述初始状态作为新同步计划,写入所述同步计划结果表中;
所述基于所述同步任务中的同步类型,在所述配置信息中与所述同步频率对应的同步日期,执行所述同步任务对应的转换作业,得到所述同步任务的执行结果,并将所述执行结果写入日志中之后,还包括:
将所述同步计划结果表中所述同步任务对应的任务状态更新为所述执行结果对应的任务状态。
根据本发明提供的一种基于kettle的数据同步方法,所述基于所述同步任务中的同步类型,在所述配置信息中与所述同步频率对应的同步日期,执行所述同步任务对应的转换作业,得到所述同步任务的执行结果,包括:
基于所述同步计划结果表和所述同步任务,得到所述同步任务的任务状态;并将所述同步任务中任务状态为初始状态的任务作为待执行任务;
基于所述待执行任务中的同步类型,在所述配置信息中与所述同步频率对应的同步日期,执行所述待执行任务对应的转换作业,得到所述待执行任务的执行结果。
根据本发明提供的一种基于kettle的数据同步方法,所述配置信息还包括:日志表,所述日志表用于记录所述同步任务的执行日志;
将所述执行结果写入日志中,包括:
若所述同步任务的执行结果为成功,则将执行结果写入日志表中,否则将所述执行结果和失败信息写入日志表中。
本发明还提供一种基于kettle的数据同步组件,包括:
确定模块,用于确定同步频率和配置信息;
初始化模块,用于基于所述同步频率,应用所述配置信息,确定并初始化所述同步频率对应的同步任务;
同步模块,用于基于所述同步任务中的同步类型,在所述配置信息中与所述同步频率对应的同步日期,执行所述同步任务对应的转换作业,得到所述同步任务的执行结果,并将所述执行结果写入日志中;
数据日期切换模块,用于所述同步任务全部执行成功后,基于所述同步频率,更新所述配置信息中的同步日期。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述基于kettle的数据同步方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述基于kettle的数据同步方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述基于kettle的数据同步方法。
本发明提供的基于kettle的数据同步方法、组件、设备及介质,通过使用同步频率在配置信息中查到对应的同步任务,并且根据配置中同步任务对应的同步类型,实现了多同步频率和多场景的数据同步,并且只需要在kettle平台下设计好转换作业后,只需配置包含有各映射关系的配置信息,即可以开始同步任务,简化了同步配置,降低了配置技术门槛,进而提供了用户体验。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的基于kettle的数据同步方法的流程示意图之一;
图2是本发明提供的同步任务初始化方法的流程示意图;
图3是本发明提供的同步任务执行方法的流程示意图之一;
图4是本发明提供的数据日期切换方法的流程示意图;
图5是本发明提供的同步任务执行方法的流程示意图之二;
图6是本发明提供的基于kettle的数据同步方法的流程示意图之二;
图7本发明提供的基于kettle的数据同步组件的结构示意图;
图8是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
目前数据仓库和数据分析类系统架构中,一般会涉及集中式数据库、分布式数据库、SQL-On-Hadoop组件。业务系统的数据通常存储在传统的集中式数据库中;数据加工、数据分析和数据查询一般使用分布式数据库和SQL-On-Hadoop组件。
但目前的数据同步方法,均是针对单场景单频率,无法满足目前数据仓库和数据分析类系统架构等运行场景。
因此,如何在数据仓库、数据分析类系统架构中的各数据源之间多场景和多同步频率的同步数据且同步配置简单,是本领域技术人员亟待解决的技术问题。
针对于上述技术问题,本发明实施例提供了一种基于kettle的数据同步方法。图1是本发明提供的基于kettle的数据同步方法的流程示意图。如图1所示,该方法包括:
步骤110,确定同步频率和配置信息;
需要说明的是,同步频率是输入参数,基于输入的同步频率创建该同步频率对应的同步任务,同步频率可以是以天、周、月或季度等为单位,本发明实施例对此不作限制。配置信息至少包括同步频率对应的下一次数据同步的同步日期,一个或多个同步任务与同步频率之间的映射关系,以及同步任务与转换作业名之间的映射关系,其中,同步任务中至少包括同步类型,转换作业名为kettle中转换作业的文件名,映射关系可以表示两者直接的对应关系,还可以表示两者通过第三方建立间接的对应关系,本发明实施例对此不作限制。配置信息可以以JSON编写的文件存储,也可以以数据库表的形式存储,本发明实施例对此不作限制。kettle转换作业是预先由运维人员在kettle的图形化窗口中设计得到,主要包括输入表和输出表,输入表为源数据库中提供同步数据的表,输出表为目标数据库中接收同步数据的表。
步骤120,基于同步频率,应用配置信息,确定并初始化同步频率对应的同步任务;
具体地,根据输入的同步频率,在配置信息中查找使用该同步频率进行数据同步的同步任务,并初始化同步任务。
需要说明的是,同步任务的初始化可以包括参数的初始化,参数至少包括源数据源和目标数据源信息的初始化,以及对应的数据源的连接信息的初始化,还可以包括判断同步任务的任务状态等。其中,同步任务可以有多个,本发明实施例对此不作限制。
步骤130,基于同步任务中的同步类型,在配置信息中与同步频率对应的同步日期,执行同步任务对应的转换作业,得到同步任务的执行结果,并将执行结果写入日志中;
步骤140,同步任务全部执行成功后,基于同步频率,更新配置信息中的同步日期。
考虑到本发明实施例提供的基于kettle的数据同步方法由操作系统定时执行,为了能根据同步频率执行相应的同步任务,需要根据同步频率更新配置信息中的同步日期,以便根据配置信息中的同步日期执行同步任务,同时考虑到本发明实施例提供的基于kettle的数据同步方法在执行的过程中是自动运行的,因此引入日志用于记录同步任务的执行日志。
具体地,根据同步任务中的同步类型,在配置文件中查找步骤110的同步频率对应的同步日期,并在同步日期当天,执行同步任务对应的转换作业,并得到同步任务的执行结果。判断同步任务的执行结果,如果执行结果为成功,则将该执行结果写入到日志中,然后根据同步频率和当前的同步日期,确定下一次的同步日期,并将下一次的同步日期更新到配置信息中。
需要说明的是,同步类型可以是全量类型、增量类型或者特殊增量类型,全量类型则表示同步任务中会删除掉输出表中的全部数据,然后再将输入表中的全部数据写入到输出表中,增量类型则表示同步任务中会删除掉输出表中在同步日期的增量数据,然后再将输入表中在同步日期的增量数据写入到输出表中,特殊增量则表示同步任务中会删除掉输出表中的特殊增量数据,然后再将输入表中特殊增量数据写入到输出表中。其中,特殊增量类型的同步任务可以通过预先设定的特殊增量数据的查询条件的进行特殊增量数据的同步,也可以是特殊增量类型对应其特定的转换作业进行特殊增量数据的同步,本发明实施例对此不作限制。日志可以是日志文件也可以是数据库中用于记录日志的表,本发明实施例对此不作限制。
此外,当同步任务有多个时,会循环执行每一个同步任务,并且每一个同步任务的执行结果都将写入到日志中,在所有同步任务执行成功后,再根据步骤110的同步频率和当前的同步日期,确定下一次的同步日期,并将下一次的同步日期更新到配置信息中。需要说明的是,若当次同步任务中有任务没有同步成功,需要接收用户对失败的同步任务的处理操作后再次执行同步任务,直到同步任务中的全部任务均执行成功,再进行配置信息中的同步日期更新。下一次的同步日期可以直接根据同步频率和当前的同步日期计算得到,还可以根据同步频率、当前的同步日期并结合节假日的日期计算得到,本发明该实施例对此不作限制。其中,同步任务中的转换作业中源数据源和目标数据源的数据源信息可以预先设置在kettle用于存放JDBC信息的配置文件,用于记录两个及两个以上数据源信息。数据源信息可以包括:数据源连接信息别名、数据源类型、数据源URL、数据源用户名和数据源密码等,转换作业可以通过JDBC的连接方式应用配置文件中的JDBC信息进行连接,也可以使用JNDI的连接方式应用配置文件中的JDBC信息进行连接,本发明实施例对此不作限制。
本发明实施例提供的基于kettle的数据同步方法,通过使用同步频率在配置信息中查到对应的同步任务,并且根据配置中同步任务对应的同步类型,实现了多同步频率和多场景的数据同步,并且只需要在kettle平台下设计好转换作业后,只需配置包含有各映射关系的配置信息,即可以开始同步任务,简化了同步配置,降低了配置技术门槛,进而提供了用户体验。
基于上述实施例,图2是本发明提供的同步任务初始化方法的流程示意图。如图2所示,步骤120,包括:
步骤121,基于同步频率,应用同步系统表,确定同步系统信息;
步骤122,基于同步系统信息,应用同步系统表清单表,确定同步系统信息对应的表配置信息;
步骤123,基于同步系统信息对应的表配置信息,初始化同步任务。
考虑到如果配置信息使用JSON格式的文件进行记录,那么会导致后续的配置信息维护修改时容易出错且也不太简便。因此,本发明实施例的配置信息以数据库表的形式进行记录。
具体地,配置信息包括同步系统表、同步周期表和同步系统表清单表;同步系统表用于存放待同步业务系统信息,系统信息包括数据库类型、数据源配置信息和同步频率;同步周期表用于存放同步周期信息,同步周期信息包括同步日期和同步频率;同步系统表清单表用于存放同步系统表中各系统对应的表配置信息,表配置信息包括源系统名、源系统表名、源系统表增量表达式、目标系统名、目标系统表名、目标系统表增量表达式、和同步类型;同步类型包括增量类型或全量类型;
通过同步频率,在同步系统表中查询与存放有该同步频率的同步系统信息,并通过得到的同步系统信息在同步系统表清单表中进行查询,得到同步系统信息对应的表配置信息,然后根据表配置信息初始化同步任务。
需要说明的是,同步系统表中的信息和同步系统表清单表中的同步任务之间的对应关系为一对多的关系,即同步系统表中的一条系统信息可以对用同步系统表清单表中多条同步任务,两者可以通过同步系统表中的系统信息的标签(例如:GUID)形成对应关系。当同步频率在同步系统表中查询得到的同步系统信息为多个时,会在同步系统表清单表中查询所有同步系统信息对应的同步任务。系统信息还可以包括源系统信息和目标系统信息,本发明实施例对此不作限制。
此外,根据表配置信息初始化同步任务可以是根据表配置信息对同步任务的参数进行初始化,即将表配置信息中的源系统名、源系统表名、源系统表增量表达式、目标系统名、目标系统表名、目标系统表增量表达式、和同步类型信息初始化到同步任务对应的参数,同时初始化同步任务还可以包括判断同步任务的任务状态等操作。其中,同步任务可以有多个,本发明实施例对此不作限制。
本发明实施例提供的基于kettle的数据同步方法,通过以数据库表的形式记录配置信息,实现了配置信息以表的形式进行配置和管理,直观地知道配置信息之间的关系,在简化配置操作的同时,提高了配置信息的准确性。
基于上述实施例,图3是本发明提供的同步任务执行方法的流程示意图。如图3所示,步骤130,包括:
步骤131,基于同步频率,应用同步周期表,确定同步日期;
步骤132,基于同步系统表中存放的数据源配置信息和数据源配置文件中的数据源连接信息之间的映射关系,确定同步系统信息对应的数据源连接信息;
步骤133,基于同步系统信息对应的表配置信息,应用同步作业程序表,确定同步任务对应的转换作业名;
步骤134,基于同步任务中的同步类型,应用同步系统信息对应的数据源连接信息,在同步日期,执行转换作业名对应转换作业,得到执行结果。
具体地,配置信息中还包括数据源配置文件和同步作业程序表;数据源配置文件用于存放数据源连接信息;同步作业程序表用于存放同步系统表清单表中各表配置信息对应的转换作业名。其中,数据源连接信息至少包括数据源连接信息别名、数据源类型、数据源URL、数据源用户名和数据源密码。
根据同步频率,在同步周期表中查询得到该同步频率对应的同步日期,再根据同步系统表中存放的数据源配置信息和数据源配置文件中的数据源连接信息之间的映射关系,得到同步系统信息对应的数据源连接信息,然后根据同步系统信息对应的表配置信息在同步作业程序表中进行查询,得到以同步系统信息对应的表配置信息初始化的同步任务所对应的转换作业名,在同步日期的当天,转换作业名对应kettle转换根据同步系统对应的数据源连接信息连接数据源,并依据同步任务中的同步类型完成同步任务,并得到执行结果。
需要说明的是,同步系统表中存放的数据源配置信息和数据源配置文件中的数据源连接信息之间的映射关系为同步系统表中的数据源配置信息存放的是数据源配置文件中的数据源连接信息别名,则可以通过同步系统表中的数据源配置信息直接查到数据源配置文件中数据源连接信息别名所在的数据源连接信息。
基于上述实施例,图4是本发明提供的数据日期切换方法的流程示意图。如图4所示,步骤140,包括:
步骤141,基于同步频率和当前日期,确定下一次的临时同步日期;
步骤142,基于临时同步日期,应用假日表中的日期信息,确定下一次的实际同步日期,并将同步周期表中同步频率对应的同步日期更新为实际同步日期。
具体地,将该同步任务、同步日期和执行结果写入日志表中。
通过同步频率和当前日期,计算得到下一次的临时同步日期;在通过假日表中的日期信息,确定临时同步日期及临时同步日期之后的第一个工作日的日期作为实际同步日期,并将同步周期表中同步频率对应的同步日期更新为实际同步日期。
需要说明的是,下一次的临时同步日期是根据当天日期加上同步频率对应的天数得到,同步频率为天时,对应的天数为1;同步频率为周时,对应的天数为7;同步率为月时,对应的天数为30,本发明实施例对此不作限制。临时同步日期及临时同步日期之后的第一个工作日的日期作为实际同步日期表示若临时同步日期不在假日表中,则将临时同步日期作为实际同步日期,若存在假日表中,则在假日表中查询在临时同步日期之后第一个工作日的日期。
基于上述实施例,步骤120之后,还包括:
若同步计划结果表中未记录包括同步任务和同步日期的同步计划,则将同步任务、同步日期以及初始状态作为新同步计划,写入同步计划结果表中。
步骤130之后,还包括:
将同步计划结果表中同步任务对应的任务状态更新为成功状态。
考虑到方便运维人员查看同步计划的执行情况以及执行结果,以及查看同步计划是否正在被执行,或者重新执行失败的同步任务,本发明实施例引入同步计划结果表,用于记录同步任务当次同步时间对应的任务状态和执行结果。
具体地,配置信息还包括:同步计划结果表,用于存放任务计划、任务状态和任务结果;任务状态包括初始状态、成功状态和失败状态;
在步骤120完成同步任务初始化后,判断同步计划结果表中是否包含当前的同步任务和同步时间的同步计划,如果不存在,则将同步任务、同步日期以及初始状态作为新同步计划,写入同步计划结果表中。
在步骤130完成执行同步任务后,将同步计划结果表中的该同步任务对应的任务状态更新为该同步任务执行结果对应的任务状态。
需要说明的是,步骤120完成同步任务初始化后,如果同步计划存在,则直接执行步骤130。执行结果对应的任务状态可以是执行结果成功则对应成功状态、执行结果失败则对应失败状态。
基于上述实施例,图5是本发明提供的同步任务执行方法的流程示意图之二。如图5所示,步骤130,包括:
步骤510,基于同步计划结果表和同步任务,得到同步任务的任务状态;并将同步任务中任务状态为初始状态的任务作为待执行任务;
步骤520,基于待执行任务中的同步类型,在配置信息中与同步频率对应的同步日期,执行待执行任务对应的转换作业,得到待执行任务的执行结果。
考虑到如果不对任务状态进行判断,直接执行同步任务执行数据同步,会出现较大的重复性的数据同步操作,影响系统数据同步的效率。因此,本发明实施例在对所有同步任务执行转换作业之前,对同步任务的状态进行检查,以此过滤到不需要同步的同步任务,提高了系统数据同步的效率。
具体地,根据步骤120得到的当次同步任务,在同步计划结果表中查询同步任务中各任务的任务状态,将任务状态为初始状态的任务作为待执行任务。然后待执行任务根据其任务中的同步类型,在配置信息中记录的与同步频率对应的同步日期当天,执行待执行任务对应的转换作业,得到待执行任务的执行结果。
基于上述实施例,步骤130中,将执行结果写入日志中,包括:
若同步任务的执行结果为成功,则将执行结果写入日志表中,否则将执行结果和失败信息写入日志表中。
为了在同步任务执行失败的情况下,快速定位了失败原因,因此,本发明实施例在同步任务执行失败时会将失败的信息一同记录到日志表中。特别地,日志表可以包括:作业日志表和转换日志表,其中,作业日志表用于记录同步任务的日志,转换日志表用于存放同步任务对应的转换作业中各执行步骤的日志。
图6是本发明提供的基于kettle的数据同步方法的流程示意图之二。如图6所示,该方法包括:
步骤610,基于kettle配置完成各数据源JDBC配置信息,设计完成各同步系统中各同步任务对应的转换作业,以及配置完成假日表、同步周期表、同步系统表、同步作业程序表、作业日志表、同步计划结果表和转换日志表的信息。
步骤620,确定传入的同步频率sync_frequency(同步频率D:天;M表示月),初始化同步系统表中与同步频率相同的各同步任务,确定各同步任务对应的源数据源名和目标数据源名:
1)判断同步频率对应的同步系统中的各同步任务是否已经存在。
2)若不存在,则在同步计划结果表中生成该同步频率的任务,状态为初始状态(INI),包括所有同步类型:全量、增量和特殊增量。
3)若存在,则不再执行后续操作。
步骤630,接收620得到各同步任务对应的源数据源名和目标数据源名,确定源数据源名和目标数据源名对应的同步系统信息中任务状态为初始状态的同步任务,并遍历执行这些任务状态为初始状态的同步任务对应转换作业,其中,转换作业的执行流程为:
判断同步任务的同步类型,若为全量,则删除目标表中的全部数据,然后将源表中的全部数据同步到目标表中,若失败则将失败信息和失败结果生成错误日志写入转换日志表中,并将该同步任务和其对应的执行结果写入作业日志表中,若为增量,则删除目标表中删除同步日期的增量数据,然后将源表中的同步日期的增量数据同步到目标表中,若失败则将失败信息和失败结果生成错误日志写入转换日志表中,并将该同步任务和其对应的执行结果写入作业日志表中。
步骤640,根据同步频率,对同步周期表中该同步频率对应的同步时间进行更新,具体流程为:
1)若同步频率为天,则当同步任务全部执行成功后,计算下一个同步日期,并将同步周期表中该同步频率对应的同步时间更新为下一个同步日期,并记录到run_date.txt文件中(该文件可以用于在初始化时进一步验证同步时间是否一致,以保证后续执行转换作业的准确性),若同步任务中存在失败的任务,则需接收用户根据错误日志输入的改正内容后,再一次同步直到同步任务全部执行成功。
2)若同步频率为月,则当同步任务全部执行成功后,计算下一个同步日期,并将同步周期表中该同步频率对应的同步时间更新为下一个同步日期,若同步任务中存在失败的任务,则需接收用户根据错误日志输入的改正内容后,再一次同步直到同步任务全部执行成功。
下面对本发明提供的基于kettle的数据同步组件进行描述,下文描述的基于kettle的数据同步组件与上文描述的基于kettle的数据同步方法可相互对应参照。
图7本发明提供的基于kettle的数据同步组件的结构示意图。如图7所示,该组件包括:确定模块710、初始化模块720、同步模块730和数据日期切换模块740。
其中,
确定模块710,用于确定同步频率和配置信息;
初始化模块720,用于基于同步频率,应用配置信息,确定并初始化同步频率对应的同步任务;
同步模块730,用于基于同步任务中的同步类型,在配置信息中与同步频率对应的同步日期,执行同步任务对应的转换作业,得到同步任务的执行结果,并将执行结果写入日志中;
数据日期切换模块740,用于同步任务全部执行成功后,基于同步频率,更新配置信息中的同步日期。
在本发明实施例中,通过确定模块,用于确定同步频率和配置信息;初始化模块,用于基于同步频率,应用配置信息,确定并初始化同步频率对应的同步任务;同步模块,用于基于同步任务中的同步类型,在配置信息中与同步频率对应的同步日期,执行同步任务对应的转换作业,得到同步任务的执行结果,并将执行结果写入日志中;数据日期切换模块,用于同步任务全部执行成功后,基于同步频率,更新配置信息中的同步日期,实现了配置信息以表的形式进行配置和管理,直观地知道配置信息之间的关系,在简化配置操作的同时,提高了配置信息的准确性。
基于上述任一实施例,初始化模块720,包括:
同步系统确定子模块,用于基于同步频率,应用同步系统表,确定同步系统信息;
同步任务确定子模块,用于基于同步系统信息,应用同步系统表清单表,确定同步任务;
初始化任务子模块,用于初始化同步任务。
基于上述任一实施例,同步模块730,包括:
同步日期确定子模块,用于基于同步频率,应用同步周期表,确定同步日期;
数据源信息确定子模块,用于基于同步系统表中存放的数据源配置信息和数据源配置文件中的数据源连接信息之间的映射关系,确定同步系统信息对应的数据源连接信息;
转换作业名确定子模块,用于基于同步系统信息对应的表配置信息,应用同步作业程序表,确定同步任务对应的转换作业名;
同步执行子模块,用于基于同步任务中的同步类型,应用同步系统信息对应的数据源连接信息,在同步日期,执行转换作业名对应转换作业,得到执行结果。
基于上述任一实施例,数据日期切换模块740,包括:
临时同步日期确定子模块,用于基于同步频率和当前日期,确定下一次的临时同步日期;
实际同步日期确定子模块,用于基于临时同步日期,应用假日表中的日期信息,确定下一次的实际同步日期,并将同步周期表中同步频率对应的同步日期更新为实际同步日期。
基于上述任一实施例,该基于kettle的数据同步组件,还包括:
同步计划结果创建子模块,用于若同步计划结果表中未记录包括同步任务和同步日期的同步计划,则将同步任务、同步日期以及初始状态作为新同步计划,写入同步计划结果表中;
同步计划结果更新子模块,用于将同步计划结果表中同步任务对应的任务状态更新为成功状态。
基于上述任一实施例,同步模块730,还包括:
待执行任务确定子模块,用于基于同步计划结果表和同步任务,得到同步任务的任务状态;并将同步任务中任务状态为初始状态的任务作为待执行任务;
同步执行子模块,用于基于待执行任务中的同步类型,在配置信息中与同步频率对应的同步日期,执行待执行任务对应的转换作业,得到待执行任务的执行结果。
基于上述任一实施例,同步模块730,还包括:
日志子模块,用于若同步任务的执行结果为成功,则将执行结果写入日志表中,否则将执行结果和失败信息写入日志表中。
图8示例了一种电子设备的实体结构示意图,如图8所示,该电子设备可以包括:处理器(processor)810、通信接口(Communications Interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行基于kettle的数据同步方法,该方法包括:确定同步频率和配置信息;基于同步频率,应用配置信息,确定并初始化同步频率对应的同步任务;基于同步任务中的同步类型,在配置信息中与同步频率对应的同步日期,执行同步任务对应的转换作业,得到同步任务的执行结果,并将执行结果写入日志中;同步任务全部执行成功后,基于同步频率,更新配置信息中的同步日期。
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的基于kettle的数据同步方法,该方法包括:确定同步频率和配置信息;基于同步频率,应用配置信息,确定并初始化同步频率对应的同步任务;基于同步任务中的同步类型,在配置信息中与同步频率对应的同步日期,执行同步任务对应的转换作业,得到同步任务的执行结果,并将执行结果写入日志中;同步任务全部执行成功后,基于所述同步频率,更新所述配置信息中的同步日期。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的基于kettle的数据同步方法,该方法包括:确定同步频率和配置信息;基于同步频率,应用配置信息,确定并初始化同步频率对应的同步任务;基于同步任务中的同步类型,在配置信息中与同步频率对应的同步日期,执行同步任务对应的转换作业,得到同步任务的执行结果,并将执行结果写入日志中;同步任务全部执行成功后,基于所述同步频率,更新所述配置信息中的同步日期。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种基于kettle的数据同步方法,其特征在于,包括:
确定同步频率和配置信息;
基于所述同步频率,应用所述配置信息,确定并初始化所述同步频率对应的同步任务;
基于所述同步任务中的同步类型,在所述配置信息中与所述同步频率对应的同步日期,执行所述同步任务对应的转换作业,得到所述同步任务的执行结果,并将所述执行结果写入日志中;
所述同步任务全部执行成功后,基于所述同步频率,更新所述配置信息中的同步日期。
2.根据权利要求1所述的基于kettle的数据同步方法,其特征在于,所述配置信息包括同步系统表、同步周期表和同步系统表清单表;所述同步系统表用于存放待同步业务系统信息,所述系统信息包括数据库类型、数据源配置信息和同步频率;所述同步周期表用于存放同步周期信息,所述同步周期信息包括同步日期和同步频率;所述同步系统表清单表用于存放所述同步系统表中各系统对应的表配置信息,所述表配置信息包括源系统名、源系统表名、源系统表增量表达式、目标系统名、目标系统表名、目标系统表增量表达式、和同步类型;所述同步类型包括增量类型或全量类型;
所述基于所述同步频率,应用所述配置信息,确定并初始化所述同步频率对应的同步任务,包括:
基于所述同步频率,应用所述同步系统表,确定同步系统信息;
基于所述同步系统信息,应用所述同步系统表清单表,确定所述同步系统信息对应的表配置信息;
基于所述同步系统信息对应的表配置信息,初始化所述同步任务。
3.根据权利要求2所述的基于kettle的数据同步方法,其特征在于,所述配置信息还包括:数据源配置文件和同步作业程序表;所述数据源配置文件用于存放数据源连接信息;所述同步作业程序表用于存放所述同步系统表清单表中各表配置信息对应的转换作业名;
所述基于所述同步任务中的同步类型,在所述配置信息中与所述同步频率对应的同步日期,执行所述同步任务对应的转换作业,得到所述同步任务的执行结果,包括:
基于所述同步频率,应用所述同步周期表,确定所述同步日期;
基于所述同步系统表中存放的数据源配置信息和所述数据源配置文件中的数据源连接信息之间的映射关系,确定所述同步系统信息对应的数据源连接信息;
基于所述同步系统信息对应的表配置信息,应用所述同步作业程序表,确定所述同步任务对应的转换作业名;
基于所述同步任务中的同步类型,应用所述同步系统信息对应的数据源连接信息,在所述同步日期,执行所述转换作业名对应转换作业,得到所述执行结果。
4.根据权利要求3所述的基于kettle的数据同步方法,其特征在于,所述配置信息还包括:假日表,所述假日表用于存放日期和日期对应的属性标签,所述属性标签包括工作日和节假日;
基于所述同步频率和当前日期,确定下一次的临时同步日期;
基于所述临时同步日期,应用所述假日表中的日期信息,确定下一次的实际同步日期,并将所述同步周期表中所述同步频率对应的同步日期更新为所述实际同步日期。
5.根据权利要求2所述的基于kettle的数据同步方法,其特征在于,所述配置信息还包括:同步计划结果表,用于存放任务计划、任务状态和任务结果;所述任务状态包括初始状态、成功状态和失败状态;
所述初始化所述同步任务,包括:
若所述同步计划结果表中未记录包括所述同步任务及所述配置信息中与所述同步频率对应的同步日期的同步计划,则将所述同步任务、所述同步日期以及所述初始状态作为新同步计划,写入所述同步计划结果表中;
所述基于所述同步任务中的同步类型,在所述配置信息中与所述同步频率对应的同步日期,执行所述同步任务对应的转换作业,得到所述同步任务的执行结果,并将所述执行结果写入日志中之后,还包括:
将所述同步计划结果表中所述同步任务对应的任务状态更新为所述执行结果对应的任务状态。
6.根据权利要求5所述的基于kettle的数据同步方法,其特征在于,所述基于所述同步任务中的同步类型,在所述配置信息中与所述同步频率对应的同步日期,执行所述同步任务对应的转换作业,得到所述同步任务的执行结果,包括:
基于所述同步计划结果表和所述同步任务,得到所述同步任务的任务状态;并将所述同步任务中任务状态为初始状态的任务作为待执行任务;
基于所述待执行任务中的同步类型,在所述配置信息中与所述同步频率对应的同步日期,执行所述待执行任务对应的转换作业,得到所述待执行任务的执行结果。
7.根据权利要求6所述的基于kettle的数据同步方法,其特征在于,所述配置信息还包括:日志表,所述日志表用于记录所述同步任务的执行日志;
将所述执行结果写入日志中,包括:
若所述同步任务的执行结果为成功,则将执行结果写入日志表中,否则将所述执行结果和失败信息写入日志表中。
8.一种基于kettle的数据同步组件,其特征在于,包括:
确定模块,用于确定同步频率和配置信息;
初始化模块,用于基于所述同步频率,应用所述配置信息,确定并初始化所述同步频率对应的同步任务;
同步模块,用于基于所述同步任务中的同步类型,在所述配置信息中与所述同步频率对应的同步日期,执行所述同步任务对应的转换作业,得到所述同步任务的执行结果,并将所述执行结果写入日志中;
数据日期切换模块,用于所述同步任务全部执行成功后,基于所述同步频率,更新所述配置信息中的同步日期。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述基于kettle的数据同步方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述基于kettle的数据同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210681974.5A CN115168487A (zh) | 2022-06-15 | 2022-06-15 | 基于kettle的数据同步方法、组件、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210681974.5A CN115168487A (zh) | 2022-06-15 | 2022-06-15 | 基于kettle的数据同步方法、组件、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115168487A true CN115168487A (zh) | 2022-10-11 |
Family
ID=83485320
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210681974.5A Pending CN115168487A (zh) | 2022-06-15 | 2022-06-15 | 基于kettle的数据同步方法、组件、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115168487A (zh) |
-
2022
- 2022-06-15 CN CN202210681974.5A patent/CN115168487A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6910053B1 (en) | Method for data maintenance in a network of partially replicated database systems | |
US8015151B2 (en) | Method and system for managing and modifying time dependent data structures | |
EP3049968B1 (en) | Master schema shared across multiple tenants with dynamic update | |
CN111401029B (zh) | 一种基于文档分区和协同编辑的文档版本更新系统和方法 | |
US20030037114A1 (en) | System, method and apparatus for updating electronic mail recipient lists | |
US8266104B2 (en) | Method and system for cascading a middleware to a data orchestration engine | |
CN111143470A (zh) | 跨平台数据库数据同步比对方法及装置 | |
CN113204598A (zh) | 一种数据同步方法、系统及存储介质 | |
CN116303516A (zh) | 一种更新知识图谱的方法、装置及相关设备 | |
CN116069859A (zh) | 数据库的增量数据同步方法、存储介质与计算机设备 | |
CN115168487A (zh) | 基于kettle的数据同步方法、组件、设备及介质 | |
CN107168822B (zh) | Oracle streams的异常修复系统及方法 | |
US10728323B2 (en) | Method and apparatus for operating infrastructure layer in cloud computing architecture | |
CN104732341A (zh) | 模拟业务流程及业务流程运行的控制方法和控制系统 | |
CN114819631A (zh) | 一种多任务的可视化方法、装置、计算机设备及存储介质 | |
CN114547060A (zh) | 一种政务事项数据交换方法及系统 | |
CN113537954B (zh) | 一种项目里程碑的处理方法、装置、存储介质及电子设备 | |
CN116521652B (zh) | 一种基于DataX实现分布式异构数据库迁移方法、系统和介质 | |
CN117348916B (zh) | 脚本生成方法、装置、设备及存储介质 | |
CN112115303B (zh) | 数据处理方法及装置 | |
CN111796862B (zh) | 基于镜像标签和元数据选定云服务器创建使用镜像的方法 | |
CN116661899A (zh) | 一种数据变更方法、装置、设备及存储介质 | |
CN116628060A (zh) | 基于kettle实现web的数据交换方法 | |
US20130218875A1 (en) | Table-driven enterprise-wide data integration | |
CN116150268A (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 |