一种基于kettle的动态数据库连接和自动化数据同步方法技术

技术编号:30370504 阅读:14 留言:0更新日期:2021-10-16 17:48
本发明专利技术公开一种基于kettle的动态数据库连接和自动化数据同步方法,涉及数据集成技术领域,包括步骤一、为kettle作业新建共享的DB连接信息,步骤二、设计元数据文件,描述数据分层后不同数据源环境与数据库连接信息映射关系,步骤三、数据传递,步骤四、使用Jenkins实现数据流程自动化,可实现使用kettle工具进行ETL数据同步过程中的数据库连接配置动态切换和整个ETL流程的自动化,具有操作简单、准确率高、速度快、可移植性强等特点。可移植性强等特点。可移植性强等特点。

【技术实现步骤摘要】
一种基于kettle的动态数据库连接和自动化数据同步方法


[0001]本专利技术涉及数据集成
,具体涉及一种基于kettle的动态数据库连接和自动化数据同步方法。

技术介绍

[0002]Kettle是一种数据ETL工具,可以把数据从一个数据库系统同步到另外一个数据库系统中,本质上是数据清洗和迁移工具,但是缺乏动态数据库连接和自动化数据同步的手段。

技术实现思路

[0003]本专利技术的目的在于提供一种基于kettle的动态数据库连接和自动化数据同步方法,可实现使用kettle工具进行ETL数据同步过程中的数据库连接配置动态切换和整个ETL流程的自动化,具有操作简单、准确率高、速度快、可移植性强等特点。
[0004]一种基于kettle的动态数据库连接和自动化数据同步方法,包括如下步骤:
[0005]步骤一、为kettle作业新建共享的DB连接信息,
[0006]导入或打开kettle一个作业,在作业的菜单导航栏下,新建抽象的数据源层、数据中间层、数据目标层以及DB连接信息,输入数据库连接属性并使用变量定义,共享该DB连接信息;
[0007]步骤二、设计元数据文件,描述数据分层后不同数据源环境与数据库连接信息映射关系,
[0008]使用Json格式的数据描述数据层、应用环境、数据库连接实例信息之间的层级;
[0009]步骤三、数据传递,
[0010]根据元数据文件描述,将三个参数传递到Python程序,程序将这三个参数按照层级解析后,获取本次ETL数据同步的数据源、数据中间层、数据目标层连信息后,生成连接属性KEY/VALUE并写入<user_home>/.kettle/kettle.properties配置文件,从而完成数据库连接信息的切换步骤;share.xml中定义的变量将根据KEY值从该文件中获取VALUE;
[0011]步骤四、使用Jenkins实现数据流程自动化,
[0012]建立ETL流程JenkinsPipeline,在Pipeline中建立GitcheckoutStage 1,SwitchEnvstage 2,Migration stage 3,在Jenkins中完成作业的数据源动态切换,数据源切换,自动化调度作业。
[0013]优选的,所述步骤一中,所有新建的共享DB连接信息存放在<user_home>/.kettle/share.xml文件中。
[0014]优选的,所述步骤二中,所述层级的关系为:层级一

>层级二

>层级三,其中层级一为数据层名称,层级二为本层下的应用环境,层级三为数据库连接实例信息。
[0015]优选的,所述步骤三中,share.xml中定义的变量将根据KEY值从该文件中获取VALUE。
[0016]优选的,所述步骤四中,具体操作如下:
[0017]Stage 1:获取最新的ETLJOB作业和Python脚本源程序;
[0018]Stage 2:执行Python程序,根据参数解析元数据描述文件,向kettle.properties配置文件写入本次同步的环境信息;
[0019]Stage 3:调用kitchen脚本文件(.bat/.sh),执行kettle作业文件。
[0020]优选的,所述数据层有数据来源层、数据清洗层和数据目标层,数据来源层、数据清洗层和数据目标层都含有多个数据库连接环境。
[0021]本专利技术的优点在于:
[0022]1、kettle中数据库连接配置动态切换技术面向数据开发者,工具操作简单,对于专业性要求不高,ETL数据同步业务场景发生变化后,源数据库和目标数据库的环境可以通过脚本快速切换同步环境配置,快捷方便,并可避免误操作
[0023]2.整个数据同步ETL过程完全由pipeline控制任务节点,完全自动化,可节约人工人本,提高效率。
附图说明
[0024]图1为本专利技术数据同步自动化设计流程图;
[0025]图2为本专利技术配置数据库连接信息界面图;
[0026]图3为本专利技术装置中元数据描述文件示意图;
[0027]图4为本专利技术装置中kettle.properties内容界面图;
具体实施方式
[0028]为使本专利技术实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体实施方式,进一步阐述本专利技术。
[0029]如图1至图4所示,首先为kettle作业新建共享的DB连接信息导入或打开kettle一个作业,在作业的菜单导航栏下,新建抽象的数据源层,数据中间层,数据目标层DB连接信息,输入数据库连接属性并使用变量定义,共享该DB连接信息,此时所有新建的共享DB连接信息存放在<user_home>/.kettle/share.xml文件中。
[0030]设计元数据文件,描述数据分层后不同数据源环境与数据库连接信息映射关系,
[0031]使用Json格式的数据描述数据层、应用环境、数据库连接实例信息之间的层级,关系为:层级一

>层级二

>层级三,层级一:数据层名称,层级二:本层下的应用环境,层级三:数据库连接实例信息,
[0032]数据传递,根据元数据文件描述,将三个参数传递到Python程序,程序将这三个参数按照层级解析后,获取本次ETL数据同步的数据源、数据中间层、数据目标层连信息后,生成连接属性KEY/VALUE并写入<user_home>/.kettle/kettle.properties配置文件,从而完成数据库连接信息的切换步骤,share.xml中定义的变量将根据KEY从该文件中获取VALUE。
[0033]使用Jenkins实现数据流程自动化,建立ETL流程JenkinsPipeline,在Pipeline中建立GitcheckoutStage 1,SwitchEnvstage 2,Migration stage 3,在Jenkins中完成作业的数据源动态切换,数据源切换,自动化调度作业:
[0034]Stage 1:获取最新的ETLJOB作业和Python脚本源程序,
[0035]Stage 2:执行Python程序,根据参数解析元数据描述文件,向kettle.properties配置文件写入本次同步的环境信息,
[0036]Stage 3:调用kitchen脚本文件(.bat/.sh),执行kettle作业文件。
[0037]具体实施方式及原理:
[0038](1)为kettle作业新建共享的DB连接信息
[0039]导入或打开kettle一个作业,在作业的菜单导航栏下,新建抽象的数据源层,数据中间层,数据目标层DB连本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于kettle的动态数据库连接和自动化数据同步方法,其特征在于,包括如下步骤:步骤一、为kettle作业新建共享的DB连接信息,导入或打开kettle一个作业,在作业的菜单导航栏下,新建抽象的数据源层、数据中间层、数据目标层以及DB连接信息,输入数据库连接属性并使用变量定义,共享该DB连接信息;步骤二、设计元数据文件,描述数据分层后不同数据源环境与数据库连接信息映射关系,使用Json格式的数据描述数据层、应用环境、数据库连接实例信息之间的层级;步骤三、数据传递,根据元数据文件描述,将三个参数传递到Python程序,程序将这三个参数按照层级解析后,获取本次ETL数据同步的数据源、数据中间层、数据目标层连信息后,生成连接属性KEY/VALUE并写入<user_home>/.kettle/kettle.properties配置文件,从而完成数据库连接信息的切换步骤;share.xml中定义的变量将根据KEY值从该文件中获取VALUE;步骤四、使用Jenkins实现数据流程自动化,建立ETL流程JenkinsPipeline,在Pipeline中建立GitcheckoutStage 1,SwitchEnvstage 2,Migration stage 3,在Jenkins中完成作业的数据源动态切换,数据源切换,自动化调度作业。2.根据权利要求1所述的一种基于kettle的动态数据库连接和自动化数据同步方法,其特征在于...

【专利技术属性】
技术研发人员:曹培林永意李淼淼
申请(专利权)人:南京工业职业技术大学
类型:发明
国别省市:

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

1