Kettle 工具的简单使用

概述

Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,数据抽取高效稳定。Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。


使用示例

  • 环境说明:windows 10 x64、jdk1.7.0_79、Kettle版本6.1。
  • 以数据同步功能作为范例。
创建转换
  • 左上方工具栏->文件->新建->转换 (或者使用CTRL+N快捷键)


    Kettle 工具的简单使用_第1张图片
    创建转换文件.png
  • 左上方选择->主对象树-> DB连接右键->新建


    Kettle 工具的简单使用_第2张图片
    新建数据源.png
  • 配置来源数据库和目标数据库数据源

目标数据源"target"配置同下,配置完后可点击下方的测试按钮进行数据库连接可用性检查。

Kettle 工具的简单使用_第3张图片
来源数据源配置
Kettle 工具的简单使用_第4张图片
来源和目标数据源连接
全量同步

先删除后插入,清除目标表所有旧数据,再重新插入最新的数据,适合数据量较少的数据。

  • 左上方核心对象-> 脚本->执行SQL脚本,拖动到右边空白处,鼠标悬浮出现编辑按钮:


    Kettle 工具的简单使用_第5张图片
    编辑脚本任务
Kettle 工具的简单使用_第6张图片
清空目标表旧数据
  • 左上方核心对象-> 输入->表输入,同样拖动至右边点击编辑按钮:


    Kettle 工具的简单使用_第7张图片
    来源数据定义
  • 左上方核心对象-> 输出->表输出,同样拖动至右边点击编辑按钮:


    Kettle 工具的简单使用_第8张图片
    数据目标定义
  • 将 "执行SQL脚本->表输入->表输出" 用步骤线连接起来


    Kettle 工具的简单使用_第9张图片
    定义执行顺序
  • 执行转换


    Kettle 工具的简单使用_第10张图片
    启动转换任务

    Kettle 工具的简单使用_第11张图片
    执行成功结果
按时间戳同步

需要分表创建以下两个转换:
1、根据记录的删除日志表,删除废弃数据。
2、选定时间戳字段(比如最后修改时间),比较时间戳,判断进行操作:插入新增数据、更新修改数据。

1、删除废弃数据
  • 定义获取已删除过的最大流水号表输入
Kettle 工具的简单使用_第12张图片
获取已删除的最大流水号
  • 定义获取待删除数据标识表输入
Kettle 工具的简单使用_第13张图片
获取待删除数据标识
  • 定义删除步骤


    Kettle 工具的简单使用_第14张图片
    删除步骤定义
  • 连接表输入和删除步骤


    Kettle 工具的简单使用_第15张图片
    删除旧数据
2、根据时间戳同步数据
  • 获取同步的时间戳


    Kettle 工具的简单使用_第16张图片
    获取同步的时间戳
  • 定义待同步数据的表输入


    Kettle 工具的简单使用_第17张图片
    待同步数据
  • 定义插入/更新步骤


    Kettle 工具的简单使用_第18张图片
    插入/更新
  • 连接步骤


    Kettle 工具的简单使用_第19张图片
    根据时间戳同步数据
数据同步

根据比较来源和目标数据字段(来源和目标表结构及字段名一致),判断进行操作:删除不存在的旧数据、插入新增数据、更新修改数据,用于数据量不大的情况。
注意:用于合并的两个数据输入流,必须按照相同的主键按照相同的方向进行排序,否则合并出来的数据标志字段的取值是错误的。

  • 定义来源数据输入


    Kettle 工具的简单使用_第20张图片
    来源数据
  • 定义目标数据输入


    Kettle 工具的简单使用_第21张图片
    目标数据
  • 定义数据合并步骤


    Kettle 工具的简单使用_第22张图片
    数据合并
  • 定义数据同步步骤
Kettle 工具的简单使用_第23张图片
数据同步-1
Kettle 工具的简单使用_第24张图片
数据同步-2
  • 连接步骤


    Kettle 工具的简单使用_第25张图片
    数据同步

你可能感兴趣的:(Kettle 工具的简单使用)