kettle部署保姆级教程
环境:W10
程序:JDK1.8
程序:kettle 9.2.0.290
简介:
目前市面的ETL工具很多,例如flink 等等。但如果实际的业务中如果用不到那些高大上的工具的话,还是推荐使用kettle吧,毕竟他是开源的,配置来说也是比较简单的。
另数据要先做全量后做增量!!!
工具获取地址:
链接:百度网盘 请输入提取码
提取码:opjg
一、JDK1.8安装(jdk和jre要分成两个安装目录,不能放在一起。)
1.下载好了安装包后,双击进入安装向导。
2.安装jdk
3.安装jre
4.完成安装
5.配置环境变量
右键属性
6.点击高级系统设置
7.点击~环境变量
8.新建变量
变量名:JAVA_HOME ,变量值为 jdk 的安装路径。
新建变量名:CLASSPATH ,变量值: .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
(注意:变量值开头是英文句号)
9.找到Path变量,双击编辑 Path变量。
10.点击新建,变量值为%JAVA_HOME%\bin ,并将它移到最前端,然后点击确定。
11.按键盘win+R,打开运行,输入cmd 指令,点击确定进入命令行窗口。
12.输入java -version获取当前安装的 jdk 的版本信息(注意:java后面有个空格)
13.检验java.exe命令。
二、进入主要环节了,对于kettle来说,主要是有两点,需要注意的。一个是转换一个作业。
在正常的业务来说,一个转换只弄单数据,但一个作业我可以包含多个转换。
1.找到Spoon.bat文件,进行启动
2.打开kettle
主要一个是表的输入,另一个是表的插入和更新
3.数据库连接新建(一般在这里,都有会有报错的,如果到时候新建完成之后点击测试不跳过,一般是驱动不对,可以根据你的数据库版本去下载对应的驱动)
注:然后在表输入这边,写入对应的SQL,查出你想要的查的数据先.
4.shit+alt 加鼠标左按键,将两个模块关联起来。(不然两者无法进行数据互通)
5.插入/更新
注:查询的关键字,一般只是关联一个。当然如果为了数据更加准确,可以关联多个
注:获取和更新字段(正常连线是成功(绿色的),都可以将两个数据库的字眼进行默认关联)
注:更新的字眼:Y表示更新,N表示不更新。如果是增量更新的话,可以找一个主健的字段设置为N。
6.运行同步数据
到这一步,转换是已经完成了。
7.作业
新建作业,在转换里面,将之前做好的转换,放进去即可。
8.定时任务
当然在生产环境中,还是需要用到定时任务的,不然这个软件崩溃了。就很尴尬
脚本如下:
注意:设置日志文件名、目标目录、运行kettle 要根据实际需要进行修改。
@echo off
setlocal EnableDelayedExpansion
:: 设置日志文件名
for /f "usebackq delims=" %%a in (`powershell -Command "(Get-Date).ToString('yyyyMMdd_HHmmss')"`) do set "timestamp=%%a"
set "logfile=tcc_!timestamp!.log"
:: 检查当前用户是否具有管理员权限
net session >nul 2>&1
if %errorlevel% neq 0 (
echo Requesting administrative privileges...
powershell -Command "Start-Process -FilePath '%0' -Verb RunAs"
exit /b
)
:: 切换到目标目录
pushd "C:\pdi-ce-9.2.0.0-290\data-integration" || (
echo Failed to change directory to C:\pdi-ce-9.2.0.0-290\data-integration.
exit /b 1
)
:: 运行 kitchen.bat
echo Running kitchen.bat with the provided .ktr file...
kitchen.bat /norep -file="C:\Users\Administrator\Desktop\交通中心停车场.ktr" /logfile="C:\Users\Administrator\Desktop\!logfile!"
if !errorlevel! neq 0 (
echo Failed to run kitchen.bat. See the log file for details.
exit /b !errorlevel!
)
:: 清理并退出
popd
echo Successfully finished running kitchen.bat. See the log file for details.
exit /b 0