ETL工具:kettle安装及简单使用

一. 概述

ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。
kettle, 最受欢迎的ETL工具之一, 本文将从安转到简单使用过一遍

二. kettle安转

2.1 环境准备

  • jdk8 下载地址

    image.png

  • kettle 下载地址

    image.png

2.2 配置修改

1. 下载kettle后解压进入文件夹/data-integration

image.png
  • spoon.sh : macos/linux的启动脚本
  • Spoon.bat : win系统启动脚本

2. mac系统修改文件spoon.sh,配置启动脚本jdk路径

# 设置java home 绝对路径
export _PENTAHO_JAVA_HOME=/Library/Java/JavaVirtualMachines/1.8.0_211.jdk/Contents/Home
export _PENTAHO_JAVA=$_PENTAHO_JAVA_HOME/bin/java
image.png

3. win系统修改文件Spoon.bat,配置启动脚本jdk路径

set JAVA_HOME=/Library/Java/JavaVirtualMachines/1.8.0_211.jdk/Contents/Home
set PENTAHO_JAVA_HOME=%JAVA_HOME%
image.png

2.3 启动kettle

执行脚本sh spoon.sh

image.png

image.png

三. 示例DEMO

本demo简单实现两个数据库间的数据同步

3.1 新建作业

1. 新建

image.png

2. 拖拉流程节点到右边

image.png

image.png

3. 按住[shift]键用鼠标拉动连接流程

image.png

3.2 新建转换

1. 新建

image.png

2. 新增数据库连接, 连接两个需要同步的数据库

image.png

image.png
image.png

注意,在选项设一下字符编码,避免同步数据出现问号, characterEncoding=utf8
同样操作连接两个数据库

3. 配置表输入

image.png
image.png

4. 配置插入/更新

image.png
image.png

3.3 把作业和转换连接

image.png
image.png
image.png

3.4 配置作业执行计划

设置每15s同步一次

image.png
设置每15s同步一次

3.5 执行

1. 直接执行转换

image.png

image.png

2. 直接执行作业

image.png

image.png

四. 脚本直接启动作业

image.png
  • kettle可以通过脚本kitchen.shKitchen.bat执行作业, mac/linux用kitchen.sh, win用Kitchen.bat
  • Kitchen命令参数说明:
    -rep:Repository name 任务包所在存储名
    -user:Repository username 执行人
    -pass:Repository password 执行人密码
    -job:The name of the job to launch 任务包名称
    -dir:The directory (don''t forget the leading / or )
    -file:The filename (Job XML) to launch
    -level:The logging level (Basic, Detailed, Debug, Rowlevel, Error, Nothing) 指定日志级别
    -log:The logging file to write to 指定日志文件
    -listdir:List the directories in the repository 列出指定存储中的目录结构。
    -listjobs:List the jobs in the specified directory 列出指定目录下的所有任务
    -listrep:List the defined repositories 列出所有的存储
    -norep:Don''t log into the repository 不写日志

4.1 mac/linux示例脚本

demo.sh

# kitchen.sh做在的绝对路径
~/data-integration/kitchen.sh \
# 作业做在的绝对路径
-file=~/demo.kjb \
# 日志输出文件绝对路径
-log=~/demo.log

4.2 win示例脚本

demo.bat

:: Kitchen.bat所在路径盘符
d:  
:: Kitchen.bat所在目录
cd D:\data-integration 
:: 作业(job)文件路径和日志文件路径
:: 执行kitchen执行job,并写入日志
kitchen -file=D:\demo.kjb -log=D:\demo.log

你可能感兴趣的:(ETL工具:kettle安装及简单使用)