下面是试验的主要步骤:
在上一篇文章中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(这里命名是随意的,是为了方便记忆,
当然读者还可以根据个人的习惯,比如顺便标志出哪一个是 旧数据源,哪一个是新数据源,等等)