欢迎来到天天文库
浏览记录
ID:5984217
大小:29.00 KB
页数:7页
时间:2017-12-30
《kettle 3.1 数据同步探究》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、Kettle3.1数据同步探究 摘要:随着信息化的发展,各应用系统之间共用数据越来越普遍。Kettle就像水壶一样,各种数据流入壶里,然后以一种指定的格式流出,这就使得完成数据同步工作变得高效稳定、安全可靠。关键词:Kettle;触发器;数据同步中图分类号:TP391文献标识码:A文章编号:1672-7800(2013)006-0098-02作者简介:邢晨(1983-),男,中国人民解放军军事经济学院助理工程师,研究方向为网络技术、数据库开发。0引言随着信息技术的日益的发展,各应用系统间的数据同步问题也凸现出来。目前,众多系统和应用都对数据的完整性和安全
2、性要求很高,同时又不能降低系统的灵活性,为此数据库层面的数据同步技术被广泛应用。数据同步的方法有很多,而借助Kettle工具来完成数据库之间的数据同步工作是一个非常正确的选择。Kettle是一款国外开源的ETL工具,纯Java编写,可以在Window、Linux、Unix等多个系统平台上运行,绿色无需安装,数据抽取高效稳定。Kettle是“KettleE.T.T.L.7Envirnonment”首字母的缩写,这就意味着它被设计用来帮助实现用户的ETTL需要:抽取、转换、装入和加载数据。Kettle的中文意思为水壶,该项目的主程序员Matt希望把各种数据放到
3、一个壶里,然后以一种指定的格式流出,这就是Kettle名字的由来。1技术理论概述利用Kettle作为中间软件来实现数据同步的方法有很多,其中比较常用的有以下5种方法:触发器法、日志法、时间戳法、数据比较法以及全表拷贝法。本文主要介绍的是利用Kettle通过触发器法同步不同数据源之间的数据。触发器法的原理及流程:为源数据库相应的表建立新增、修改、删除3个触发器,和一个与源表相对应的临时表。每当源数据库有数据变化时,相应的触发器就会被触发,触发器会将变更的数据保存在临时表中,然后再利用Kettle同步数据到目标数据库相应的表中,这样就完成了不同数据库中相应表的
4、数据同步。其流程如图1所示。2运行环境和准备工作本文主要针对Oracle10G进行研究测试,两台数据库服务器安装的操作系统是Windows2003企业版。准备工作如下:2.1JDK的安装安装JDK1.6或以上版本。2.2JAVA环境配置编辑用户变量:JAVA_HOMEC:Javajdk1.6.0_29;7编辑系统变量:PathC:Javajdk1.6.0_29bin。2.3新建测试表和触发器(1)源数据库。创建源表,表名为TAB1,源表为提取同步数据的表,其创建SQL语句如下:createtableTAB1(XHVARCHAR2(20),AAVARCHAR
5、2(20),BBVARCHAR2(20));创建临时表,表名为TAB2,临时表为记录源表发生数据新增、修改或删除操作动作的表,其创建SQL语句如下:createtableTAB2(OPTVARCHAR2(20),OLDXHVARCHAR2(20),XHNUMBER(10),AAVARCHAR2(20),BBVARCHAR2(20));创建新增触发器,触发器名为Ins_TAB1,源表发生新增数据操作时,此触发器被触发,其创建SQL语句如下:createorreplacetriggerIns_TAB1afterinsertonTAB1ForeachRowbeg
6、inInsertIntoTAB2(OPT,XH,AA,BB)values(‘I’,:new.XH,:new.AA,:new.BB);end;创建修改触发器,触发器名为Upd_TAB1,源表发生修改数据操作时,此触发器被触发,其创建SQL语句如下:createorreplacetriggerUpd_TAB1afterupdateonTAB1ForeachRowbeginInsertIntoTAB2(OPT,OLDXH,XH,AA,BB)values7(’U’,:old.XH,:new.XH,:new.AA,:new.BB);end;创建删除触发器,触发器名为
7、Del_TAB1,源表发生删除数据操作时,此触发器被触发,其创建SQL语句如下:createorreplacetriggerDel_TAB1afterdeleteonTAB1ForeachRowbeginInsertIntoTAB2(OPT,OLDXH)values(’D’,:old.XH);end;(2)目标数据库。创建目标表,表名为TAB3,目标表为需要同步数据的表,其创建SQL语句如下:createtableTAB3(XHVARCHAR2(20),AAVARCHAR2(20),BBVARCHAR2(20));3Kettle同步数据我们将每个需要同步的
8、数据表叫做一个数据接口,每个接口都给定一个接口编号,设计一个配置表
此文档下载收益归作者所有