spoon 不同库实现表连接查询_Kettle 实现mysql数据库不同表之间数据同步——实

本文详细介绍了如何使用 Kettle ETL 工具进行 MySQL 数据库不同表之间的数据同步。通过创建数据源连接、设置表输入步骤和合并记录步骤,实现了旧数据源根据新数据源进行增、删、改操作。测试和优化是关键,以确保高效的数据同步处理。
摘要由CSDN通过智能技术生成

当前位置:

IT大杂烩

>

JavaScript

> Kettle 实现mysql数据库不同表之间数据同步——实

Kettle 实现mysql数据库不同表之间数据同步——实

www.someabcd.com  网友分享于:Jun 8, 2018 9:53:55 AM

下面是试验的主要步骤: 在上一篇文章中LZ已经介绍了,实验的环境和实验目的。 在本篇文章中主要介绍侧重于对Kettle ETL的相应使用方法, 在这里LZ需要说明一下,LZ成为了避免涉及索引和表连接等操作, 在数据库mysql中重新创建一个不带有索引和外键约束的 customers数据库表。 但数据集合不变。 所以在后文中国使用,mysql.customers来代替前篇文章中的test.customers。 下面的截图是使用Spoon工具来整体对这个流程的描述:   (图) 首先需要使用Kettle来建立两个对数据库数据源的连接: 如图所示: 其中我们所使用的:classicmodels.customers(数据库名.表名) 这张表对应的数据源连接名称是: MysqlConn1 创建数据源连接MysqlConn1如下图所示:     而需要与classicmodels.customers做数据同步的表mysql.customers(数据库名.表名) 这个对应的连接是: MysqlConn2。 在Spoon中创建MysqlConn2的截图如下所示:   在创建数据库连接之后,需要在相应的transformation中 拽入表输入这一个step。 因为是关于不同数据库中的数据表做数据同步, 所以数据流的流动方向是, 从mysql.customers表中出来, 一一与classicmodels.customers表中的每个记录进行比较等等操作。 而它们来自于不同的数据源的两张表, 所以需要两个表输入(step), 每一个step对应的是kettle源码中的 不同的类,而你从工具栏中将相应的step拖到工作区间的时候, 实质上是完成了,对类对象的实例化操作。 为了方便记忆,把classicmodels.customers对应的那个表输入命名为 classicmodels.customers; 而把mysql.customers对应的那个表输入step重新命名为mysql.customers(这里命名是随意的,是为了方便记忆, 当然读者还可以根据个人的习惯,比如顺便标志出哪一个是 旧数据源,哪一个是新数据源,等等) 具体的操作如下图所示: 在这里仅选取针对于classicmodels.customers这一个表输出进行讲述(二者的设置过程是一样的): 在这里需要注意的是,首先应该从下拉菜单中选取与之对应的数据源连接, 然后千万不能忘到此仅仅完成的是对数据库的选取, 接下来需要点击“获取SQL查询语句” 一次来选取这个数据源主要是针对数据库的那个表进行抽取数据的。   然后呢,从核心对象工具栏中选择出来,合并记录的Step, 将其拖拽到对应的工作区域,并将俩个表输入step与之相连接 (hop指的是用于连接两个step的矢量连线)。 接下来就是根据实验要求对合并记录进行相应的设定,具体的操作请看截图:         在这里面需要说明的是, 弹出窗口的第一个选项: 旧数据源应该是需要被同步的,就是里面的数据比较陈旧, 需要根据新数据源中的数据进行调整。 而新数据源,在实际的应用中指的是每天或是定期获取的最新数据所对应的数据源。 旧数据源通常是根据新数据源进行相应的增、删、改等一系列操作的。 对于所测试的数据,我是这样想的, 首先应该自己先想好,测试的情况应该大致分为几种情况。 然后根据相应的情况来自己来写一些少量的几条简单的数据集合。 进行测试, 待到得到想要的结果之后,这个时候基本上你的step设计已经完成了, 这样再在这个transformation上面来跑比较大的数据集的话就比较能考到结果了。 跑大的数据集 一个是可以找到一些你自己之前没有考虑到的情况, 二就是可以可以很容易看出来到底数据是在哪一个step的上面 耗费的时间比较长, 可以针对耗时比较长的step作相应的优化处理。 进行step替换或是其他的一些脚本什么的(抱歉,这里LZ暂时也不没有亲自试验验证)预先处理的方法。   其实提高同步数据效率它的主旨就是减少需要处理的数据, 所以在进行同步数据处理之前, 可以调用一些分支step来过滤或是删除一些重复的数据等等。

发布此文章仅为传递网友分享,不代表本站观点,若侵权请联系我们删除,本站将不对此承担任何责任。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值