kettle基本使用:把数据从一个数据库的一张表抽取到另一个数据库的另一张表

您所在的位置:网站首页 怎么把一个数据库的表复制到另一个数据库中 kettle基本使用:把数据从一个数据库的一张表抽取到另一个数据库的另一张表

kettle基本使用:把数据从一个数据库的一张表抽取到另一个数据库的另一张表

2024-07-17 07:03| 来源: 网络整理| 查看: 265

0、准备两个数据库实例(最好位于两台不同的数据库服务器),每个实例中创建好源表和目标表

源表

CREATE TABLE `test_0`.`stu_info` ( `stuNum` VARCHAR(128) NOT NULL COMMENT '学号', `stuName` VARCHAR(45) NOT NULL COMMENT ' 姓名', `stuAge` VARCHAR(45) NOT NULL COMMENT '年龄', `regTime` VARCHAR(45) NOT NULL COMMENT '注册时间', PRIMARY KEY (`stuNum`));

分析表

CREATE TABLE `stu_info_analysis` ( `stu_num` varchar(128) NOT NULL, `stu_name` varchar(45) NOT NULL, `stu_age` int(4) NOT NULL, `reg_time` timestamp NOT NULL, PRIMARY KEY (`stu_num`) ) 1、创建job

File --> New --> Job,在新建的Job上,ctrl+s,命名为stu_etl,保存到文件

2、创建数据连接

File --> New --> Database connection...

把这个流程中需要用到的数据库连接全部创建起来,本例中就两个

先测试一下数据源的连通性,如果提示找不到驱动,上Mysql官网下载驱动包:

https://dev.mysql.com/downloads/connector/j/ Select Operating System: Platform Independent

由于在mysql-connector-java-5.1.48以后的版本中,用com.mysql.jdbc.Driver替代了org.gjt.mm.mysql.Driver,所以只能下载mysql-connector-java-5.1.48版本的jar包

下载完成之后,解压,把驱动jar包放在data-integration/lib下

创建的数据库连接在

可以看到,然后在建好的数据源上,右键,Share,这样整个工程就都可以用这两个数据源了

3、创建起始点

添加Start元素到Job stu_etl中

4、新建transformation。从目标表中取出上次抽取的最大学号,保存到变量中,作为本次抽取的起点

File --> New --> Transformation,在新建的Transformation上,ctrl+s,命名为get_start_stunum,保存到文件

将Transformation get_start_stunum添加到Job stu_etl中

转到get_start_stunum

添加Input/Table Input

接着添加Job/Set variable

并把Table Input getMaxStuNum连向这个Set variable

注意,variable scope type需要选择valid the patent job,即父级job可见,这样才能在job中从当前transformation流向下一个transformation

注意,一定要写default value,因为初始的时候,通过Table Input getMaxStuNum拿到的数据肯定是空的,因为分析表里在初始状态下是没有数据的。

5、创建transformation,在上次抽取的基础上接着抽

同样在创建Transformation data_from_src_to_anay,添加到job中,并将Transformation get_start_stunum连向Transformation data_from_src_to_anay

在Transformation data_from_src_to_anay上设置传入变量

然后在Transformation data_from_src_to_anay中添加

input/table input从源表中获取数据,由于学生年龄和注册时间两个字段类型不匹配,所以需要必要的转换

注意,由于需要用到Transformation get_start_stunum传过来的变量,所以这里必选勾选Replace variable in script

在input和output中间添加两表的映射关系Transform/select values

output/table output将数据存到分析表中

6、创建结束点(Success)

这是必须的,否则etl进程所持有的数据库连接等资源将得不到释放

运行,成功!!!



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3