基于Kettle的数据同步方法和系统技术方案

技术编号:16605542 阅读:238 留言:0更新日期:2017-11-22 15:20
本发明专利技术提供了一种基于Kettle的数据同步方法和系统,其中,所述方法包括:通过客户端配置数据源信息及参数信息,并将数据源配置信息及参数配置信息存储在数据库中;通过客户端Kettle图形化界面编辑包括数据流转逻辑的Kettle文件;将所述Kettle文件上传给Kettle执行引擎;动态解析所述Kettle文件;和按照数据流转逻辑及相应的参数配置信息,根据数据源配置信息,将源数据源的相应数据流转到目标数据源。所述系统包括客户端和数据采集平台,客户端用于进行信息配置、编辑和上传Kettle文件;数据采集平台用于接收、动态解析所述Kettle文件,根据数据源配置信息,将源数据源的相应数据流转到目标数据源。本发明专利技术可以任意指定多个数据源之间的数据流转,快速、便捷,系统间的耦合度低。

Data synchronization method and system based on Kettle

The present invention provides a method of data synchronization based on Kettle and system, wherein, the method comprises the following steps: configure data source client information and parameter information, and the data source configuration information and configuration information stored in the database; editing includes data flow logic Kettle file through the client Kettle graphical interface; the the Kettle file upload to Kettle execution engine; dynamic analysis of the Kettle file; and according to the data flow logic and the corresponding parameter configuration information, according to the data source configuration information, the corresponding number of source data source according to flow to the target data source. The system includes a client and data acquisition platform for client information configuration, edit and upload the Kettle file; data acquisition platform for receiving, dynamic analysis of the Kettle file, according to the data source configuration information, the corresponding data source data transfer to the target data source. The invention can arbitrarily specify the data flow between the plurality of data sources, is fast and convenient, and has low coupling between the systems.

【技术实现步骤摘要】
基于Kettle的数据同步方法和系统
本专利技术涉及数据处理
,具体地说,涉及一种基于Kettle的数据同步方法和系统。
技术介绍
目前,在大部分企业中,随着企业业务的不断扩大,企业系统在不断的增加、迭代更新,系统之间也会有很多的关联,就像蜘蛛网一样,错综复杂。当已有系统已经不能满足公司业务需求时,不得不重新对系统进行设计开发。然而这必然会面临一个非常艰难的事情:如何做到新老数据的一致性。通常的方案是:在进行新系统的设计时,会兼容老系统的设计,做成Worker定时将老系统数据同步到新系统。这种方案当然可行,但是同步数据消耗的时间非常多。如果公司有成千上万个系统,每升级一个新系统,都要重新同步数据。将花费太多的时间。因此,除了在设计新系统时考虑与老系统的兼容性的同时,还需要寻找完成系统之间的数据同步的方案。目前,使用较多的方案有采用Sql语句数据同步、应用程序之间的定时同步、通过系统间RPC调用,例如:WebService、RMI、或者企业内部的RPC框架,还有采用一些Etl工具在本地做数据转换。在错综复杂的企业系统中,进行数据采集,然后采用Sql语句导入,工作量比较大。如果采用应用程序之间的定时同步,会限制企业内部中各应用之间的扩展。如果采用远程的RPC调用,必然会因为远程调用而对相应的应用服务器带来很大的压力,并且集成相对较复杂。采用Etl工具做数据转换,由于是对线上数据库直接操作,必然会有权限限制和安全问题,并且这种做法通常也不符合企业流程的规范。在Etl工具中,有一种名为Kettle的开源的Etl工具,由纯Java编写,在数据抽取上具有高效、稳定的特点。它允许管理不同数据源的数据,通过提供一个图形化的界面来实现用户想完成的功能。
技术实现思路
本专利技术要解决的技术问题在于,针对现有技术的不足,提供一种基于Kettle的数据同步方法和系统,用于实现系统之间的快速数据同步。为了解决上述技术问题,根据本专利技术的一个方面,本专利技术提供了一种基于Kettle的数据同步方法,其中,包括:通过客户端配置数据源及参数,并将数据源配置信息及参数配置信息存储在数据库中;通过客户端Kettle图形化界面编辑包括数据流转逻辑的Kettle文件;将所述Kettle文件上传给Kettle执行引擎;动态解析所述Kettle文件;和按照数据流转逻辑及相应的参数配置信息,根据数据源配置信息,将源数据源的相应数据流转到目标数据源。优选地,所述数据源配置信息包括数据源标识、数据源类型、数据源的IP或URL链接地址;和/或,所述参数包括数据流转时所需的动态参数。优选地,所述动态解析所述Kettle文件的步骤包括:动态加载所述Kettle文件,生成相应的转换对象;根据所述数据源配置信息和参数配置信息,对所述转换对象进行数据源信息和参数信息的赋值。优选地,所述转换对象包括数据源属性信息、参数属性信息和节点属性信息;所述对所述转换对象进行数据源信息的赋值的步骤包括:根据所述数据源属性信息中的数据源标识,在所述数据源配置信息中获取对应的源数据源信息和目标数据源信息;根据所述源数据源信息和目标数据源信息修改所述数据源属性信息;所述对所述转换对象进行参数信息的赋值的步骤包括:根据所述参数属性信息中需要赋值的参数查找所述参数配置信息,根据查找到的具体参数,修改所述参数属性信息。优选地,所述数据源配置信息记录在数据源配置表中;和/或,所述参数配置信息记录在参数表中。优选地,所述数据源类型包括Oralce、MySql、SQLServer、WebService和SAP多种类型。优选地,在将所述Kettle文件上传给Kettle执行引擎之前,在本地对所述Kettle文件执行测试,并校验获取数据的完成性和准确性。优选地,在将源数据源的相应数据流转到目标数据源之后,还包括向客户端返回执行信息的步骤。为了解决上述技术问题,根据本专利技术的另一个方面,本专利技术提供了一种基于Kettle的数据同步系统,包括:客户端,用于进行信息配置、编辑和上传Kettle文件,其中,并将数据源配置信息及相关参数配置信息存储在数据库中;和数据采集平台,用于接收、动态解析所述Kettle文件,按照数据流转逻辑及相应的参数信息,根据数据源信息,将源数据源的相应数据流转到目标数据源。优选地,所述客户端包括:配置模块,用于配置数据源信息和参数信息,并将数据源配置信息及相关参数配置信息存储在数据库中;和编辑模块,通过提供Kettle图形化界面,用于编辑包括数据流转逻辑的Kettle文件。优选地,所述数据采集平台包括:Kettle执行引擎,用于动态地解析所述Kettle文件,并完成数据的流转;多种API,用于供所述Kettle执行引擎调用完成所述Kettle文件的解析和数据的流转;和数据库,用于提供所述Kettle解析过程中需要的数据源配置信息及相关参数配置信息。优选地,所述Kettle执行引擎包括:转换对象创建模块,用于根据上传来的Kettle文件创建相应的转换对象;信息解析模块,用于从所述转换对象获取数据库属性信息和参数属性信息;赋值模块,用于根据数据库属性信息和参数属性信息,查询所述数据源配置信息及参数配置信息,根据查询到的匹配的数据库信息修改所述转换对象的数据库属性信息,根据查询到的匹配的参数信息修改所述转换对象的参数属性信息;和调度模块,与多个API相连接,调用相应的API初始化解析Kettle文件的资源环境、完成对转换对象的赋值和执行所述已赋值的转换对象,从而完成数据的流转。根据本专利技术提供的方案,可以任意指定多个数据源之间的数据流转,即数据同步,快速、便捷,不需要对每次的数据同步过程写负责的Sql语句,也不需要在应用中做定时任务的RPC远程的调用。Kettle文件在执行中,支持热部署,上传即生效,系统间的耦合度低。附图说明通过参照以下附图对本专利技术实施例的描述,本专利技术的上述以及其它目的、特征和优点将更为清楚,在附图中:图1为本专利技术的实现数据同步的总体设计模块;图2为本专利技术所述数据流转逻辑的原理示意图;图3为本专利技术所述基于Kettle的数据同步系统的原理结构框图;图4为本专利技术所述Kettle引擎执行的原理结构框图;图5为本专利技术基于Kettle的数据同步方法的流程示意图;和图6为本专利技术动态解析Kettle文件的流程示意图。具体实施方式以下基于实施例对本专利技术进行描述,但是本专利技术并不仅仅限于这些实施例。在下文对本专利技术的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本专利技术。为了避免混淆本专利技术的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。附图中的流程图、框图图示了本专利技术实施例的系统、方法、装置的可能的体系框架、功能和操作,流程图和框图上的方框可以代表一个模块、程序段或仅仅是一段代码,所述模块、程序段和代码都是用来实现规定逻辑功能的可执行指令。也应当注意,所述实现规定逻辑功能的可执行指令可以重新组合,从而生成新的模块和程序段。因此附图的方框以及方框顺序只是用来更好的图示实施例的过程和步骤,而不应以此作为对专利技术本身的限制。本专利技术提供了一种基于Kettle的数据同步系统和方法,如图1所示,为了实现数据同步,本本文档来自技高网
...
基于Kettle的数据同步方法和系统

【技术保护点】
一种基于Kettle的数据同步方法,其中,包括:通过客户端配置数据源及相关参数,并将数据源配置信息及参数配置信息存储在数据库中;通过客户端Kettle图形化界面编辑包括数据流转逻辑的Kettle文件;将所述Kettle文件上传给Kettle执行引擎;动态解析所述Kettle文件;和按照数据流转逻辑及相应的参数配置信息,根据数据源配置信息,将源数据源的相应数据流转到目标数据源。

【技术特征摘要】
1.一种基于Kettle的数据同步方法,其中,包括:通过客户端配置数据源及相关参数,并将数据源配置信息及参数配置信息存储在数据库中;通过客户端Kettle图形化界面编辑包括数据流转逻辑的Kettle文件;将所述Kettle文件上传给Kettle执行引擎;动态解析所述Kettle文件;和按照数据流转逻辑及相应的参数配置信息,根据数据源配置信息,将源数据源的相应数据流转到目标数据源。2.如权利要求1所述的基于Kettle的数据同步方法,其中,所述数据源配置信息包括数据源标识、数据源类型、数据源的IP或URL链接地址;和/或,所述参数包括数据流转时所需的动态参数。3.如权利要求2所述的基于Kettle的数据同步方法,其中,所述动态解析所述Kettle文件的步骤包括:动态加载所述Kettle文件,生成相应的转换对象;根据所述数据源配置信息和参数配置信息,对所述转换对象进行数据源和参数的赋值。4.如权利要求3所述的基于Kettle的数据同步方法,其中,所述转换对象包括数据源属性信息和参数属性信息;所述对所述转换对象进行数据源赋值的步骤包括:根据所述数据源属性信息中的数据源标识,在所述数据源配置信息中获取对应的源数据源信息和目标数据源信息;根据所述源数据源信息和目标数据源信息修改所述数据源属性信息;所述对所述转换对象进行参数赋值的步骤包括:根据所述参数属性信息中需要赋值的参数查找所述参数配置信息,根据查找到的具体参数,修改所述参数属性信息。5.如权利要求3或4所述的基于Kettle的数据同步方法,其中,所述数据源配置信息记录在数据源配置表中;和/或,所述参数配置信息记录在参数表中。6.如权利要求2所述的基于Kettle的数据同步方法,其中,所述数据源类型包括Oralce、MySql、SQLServer、WebService或SAP中的一种或任意几种类型的组合。7.如权利要求1所述的基于Kettle的数据同步方法,其中,在将所述Kettle文件上传...

【专利技术属性】
技术研发人员:李飞
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1