Kettle的安装配置和使用

一、介绍
ETL是EXTRACT(抽取)、TRANSFORM(转换)、LOAD(加载)的简称,实现数据从多个异构数据源加载到数据库或其他目标地址,是数据仓库建设和维护中的重要一环,也是工作量较大的一块。Kettle是ETL中其中一个开源工具,基于纯Java开发。
kettle有两种脚本transformation(转换)和Job(作业)
Kettle有三个主要组件:Spoon、Kitchen、Pan

  • Spoon:是一个图形化的界面,可以让我们用图形化的方式开发转换和作业。
    windows选择Spoon.bat;Linux选择Spoon.sh启动。
  • Kitchen:利用Kitchen可以使用命令行调用Job
  • Pan:利用Pan可以用命令行的形式调用Trans
  • Carte:Carte是一个轻量级的Web容器,用于建立专用、远程的ETL Server。

二、kettle国内镜像下载
http://mirror.bit.edu.cn/pentaho/Data Integration/

三、解压下载的压缩包“pdi-ce-7.1.0.0-12.zip”

四、由于Kettle基于纯Java开发,启动前需提前安装好JDK(1.6版本以上)

五、Windows系统,选择“Spoon.bat”启动
在这里插入图片描述
六、配置数据库连接
1、点击界面右上角connect。
在这里插入图片描述
2、选择other Repositories
在这里插入图片描述
3.选择Database Repository,然后选择Get Started
在这里插入图片描述
4.填入Display Name(自定义),点击Database Connection时跳转数据库配置页面。
在这里插入图片描述
5.填入自己本机数据库配置,点击“测试”按钮确认是否连接成功。
在这里插入图片描述
6.如点击测试,弹出如下错误,请不要慌,是缺少了Oracle驱动包了。
在这里插入图片描述
报错解决办法:
缺少的Oracle的驱动的jar包的话,可自己去本机安装Oracle目录拷贝一个,最好的办法是
从“app\user\product\11.2.0\dbhome_1\jdbc\lib”下找到“ojdbc6.jar”拷贝至kettle安装目录的lib文件夹下面,
然后关闭再重启kettle测试连接提示成功。
在这里插入图片描述
7.选择“finish”
在这里插入图片描述
8.点击“Connect now”建立连接。
在这里插入图片描述
9.kettle 在创建连接的时候,会默认项数据库中插入默认用户名为admin 密码为admin的帐号
输入后可连接登录成功。

在这里插入图片描述
在这里插入图片描述
七、新建转换和作业
1、新建转换
需求:从Mysql 的A1库的B1表抽取数据,插入更新到OracleA2库的C模式下的B2表中。

Mysql 表创建SQL

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;

-- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS `student`;
CREATE TABLE `student`  (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
  `sex` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL,
  PRIMARY KEY (`id`) USING BTREE,
  INDEX `编号`(`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;

SET FOREIGN_KEY_CHECKS = 1;

Oracle表创建SQL

-- Create table
create table STUDENT
(
  id   INTEGER not null,
  name VARCHAR2(25) not null,
  sex  CHAR(1)
)
tablespace TBS_SLDT_DCP
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 64K
    next 1M
    minextents 1
    maxextents unlimited
  );
-- Create/Recreate primary, unique and foreign key constraints 
alter table STUDENT
  add primary key (ID)
  using index 
  tablespace TBS_SLDT_DCP
  pctfree 10
  initrans 2
  maxtrans 255
  storage
  (
    initial 64K
    next 1M
    minextents 1
    maxextents unlimited
  );

在这里插入图片描述
在“核心对象”tab下找到“表输入”,拖拽至右边设计面板中。
在这里插入图片描述
双击"表输入"区域,在弹出窗口点击“新建”编辑Mysql数据库连接。
在这里插入图片描述
编辑好数据库连接,点击“测试连接”测试数据库是否正常,如报缺少驱动包,则把mysql的驱动包放置kettle安装目录的lib文件夹下面,然后关闭再重启kettle测试连接提示成功。
在这里插入图片描述
注意:如果你连接的是mysql8.0以上 的版本,mysql的驱动jar包放到kettle的lib下面还是报驱动找不到的问题时,就要换JNDI连接方式了。
解决办法:编辑“pdi-ce-7.1.0.0-12\data-integration\simple-jndi\jdbc.properties” 添加下面配置。
其中配置“serverTimezone=UTC”也是不能少的,改完要重启kettle。
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
MYSQL8_DB/type=javax.sql.DataSource
MYSQL8_DB/driver=com.mysql.cj.jdbc.Driver
MYSQL8_DB/url=jdbc:mysql://localhost:3306/数据库?useUnicode=true&characterEncoding=utf-8&disableMariaDbDriver&useSSL=FALSE&serverTimezone=UTC
MYSQL8_DB/user=root
MYSQL8_DB/password=密码
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
原因:而且kettle默认使用的是org.gjt.mm.mysql.Driver,而mysql 8.0以上connector已经不再支持这个包名,所以,会出现明明已经将mysql-connector-java-8.0.xx.jar包拷贝到lib目录下,但还是报错说找不到驱动。
详情https://blog.csdn.net/zougen/article/details/84975410
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
源表Mysql数据:
在这里插入图片描述
目标Oracle表:
在这里插入图片描述
2、新建作业
需求:定时从Mysql 的A1库的B1表抽取数据,插入更新到OracleA2库的C模式下的B2表中。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值