Kettle学习(1):Kettle使用说明文档

在这里插入图片描述

Kettle使用说明文档

    • Kettle的介绍
    • Kettle下载和安装
    • Kettle连接数据库(一)
    • Kettle连接数据库(二)
    • 数据迁移案例(一)
    • 数据迁移案例(二)

Kettle的介绍

Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,绿色无需安装,数据抽取高效稳定。
Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。
Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。

Kettle下载和安装

  1. 进入Kettle官网 ,选中其中的历史版本7.0开始下载,大小差不多是1000MB左右
    Kettle学习(1):Kettle使用说明文档_第1张图片
    Kettle学习(1):Kettle使用说明文档_第2张图片
  2. 下载好的文件进行解压缩,这时候我们需要另外下载好JDK1.8版本,并配置好环境变量
  3. Kettle是JAVA开源的项目,如果想要连接数据库,那么对应的数据库驱动需要下载好,例如,如果要连接MySQL的数据库,我们需要下载好MySQL的数据库驱动。Oracle驱动下载地址 ; MySQL驱动下载地址 下载好的驱动先解压好,
  4. 将解压好的驱动包放到\pdi-ce-7.0.0.0-25\data-integration\Data Service JDBC Driver 目录下

如果是8.2版本的,记得把这个驱动同样放在lib目录里,否则会出现连接不上的错误

Kettle学习(1):Kettle使用说明文档_第3张图片
6. 进入Kettle解压好的目录下,找到spoon.bat这个文件,双击启动
Kettle学习(1):Kettle使用说明文档_第4张图片
启动画面,可能需要多等一会第一次启动
Kettle学习(1):Kettle使用说明文档_第5张图片
程序界面
Kettle学习(1):Kettle使用说明文档_第6张图片

Kettle连接数据库(一)

  1. 点击文件鼠标右键选择新建
    Kettle学习(1):Kettle使用说明文档_第7张图片
  2. 点击主对象树,选择下面的DB连接,选择新建
    Kettle学习(1):Kettle使用说明文档_第8张图片
    Kettle学习(1):Kettle使用说明文档_第9张图片
    这样的数据库连接可以连接好几个,我们要做的就是从源数据库迁移数据到目标数据库

Kettle连接数据库(二)

  1. 配置数据库连接文件 \data-integration\simple-jndi\jdbc.properties
#########---可以配置多个mysql------#############
opx_test/type=javax.sql.DataSource
opx_test/driver=org.gjt.mm.mysql.Driver
opx_test/url=jdbc:mysql://localhost:3306/guns?
useUnicode=true&characterEncoding=utf-8
opx_test/user=root
opx_test/password=123456
############ 可以配置多个ORACLE ################

ORA/type=javax.sql.DataSource

ORA/driver=oracle.jdbc.driver.OracleDriver

ORA/url=jdbc:oracle:thin:@127.0.0.1:1521:ORCL

ORA/user=system

ORA/password=system
  1. 当选择数据库连接的时候就可以使用JNDI的连接方式了,入图所示
    Kettle学习(1):Kettle使用说明文档_第10张图片

数据迁移案例(一)

目的:A数据库aa表,全量数据迁移到,B库bb表

  1. 选择核心对象,里面会有看到输入输出两个目录,用鼠标找到从表输入从表输出两个对象,并用鼠标可以到右侧的面板上
    Kettle学习(1):Kettle使用说明文档_第11张图片
  2. 鼠标悬浮在表输入上,按住Shift键和鼠标左键,会看到一条线,将这条线连接到表输出上,这两个对象就会形成一个数据的流向
  3. 鼠标悬浮在表输入上,点击鼠标右键,可以看到编辑步骤,点击编辑步骤,可以看到下面的内容
    Kettle学习(1):Kettle使用说明文档_第12张图片
    选择对应的数据库连接,点击获取SQL查询语句可以生成,对应的表的查询语句,其实这里有一个重点,我们可以通过修改这个sql语句,来完成我们想要的数据,从而将这种新的数据输出到新的数据库表中,我们编辑好的sql可以通过预览来查看数据
  4. 接下来相同的想法,我们鼠标右键点击表输出,点击编辑,可以看到更刚刚差不多的界面,这次要写入的就是目标数据库
    Kettle学习(1):Kettle使用说明文档_第13张图片
    这里当你点击sql的时候,如果你的目标数据库没有建立对应的表,那么这时候会根据刚刚在表输入输入的sql,来自动的帮你把对应的字段输出出来,并且写好建表语句,类似如下的
    Kettle学习(1):Kettle使用说明文档_第14张图片
    这里就是刚刚的表输入时候的sql中对应的字段,如果有不满意的可以自己修改,但是一定要字段和表输入中的字段保持一致。
  5. 这时候我们就可以试着运行一下我们的小demo了,点击运行
    Kettle学习(1):Kettle使用说明文档_第15张图片
    执行结果如下图所示,就可以看到我们完成的数据了
    Kettle学习(1):Kettle使用说明文档_第16张图片
    到这里,我们第一关已经完成了,简单的操作。

数据迁移案例(二)

目的:定时每晚凌晨执行,A库数据表aa,迁移到B库数据表bb,数据要求,两表共有的数据,bb表根据aa表更新;bb表没有的数据,进行数据插入

1.新建转换
Kettle学习(1):Kettle使用说明文档_第17张图片
2. 新建作业
Kettle学习(1):Kettle使用说明文档_第18张图片
以上是进行定时作业的设置
以下是进行选择要执行哪个转换
Kettle学习(1):Kettle使用说明文档_第19张图片
开始调度任务执行
Kettle学习(1):Kettle使用说明文档_第20张图片
这样就可以让A库aa表始终会和B库bb表保持一致

你可能感兴趣的:(java)