本文介绍了在CentOS8环境下,如何执行Kettle的KTR脚本,包括上传data-integration到服务器、解压、创建KTR脚本存放目录、上传KTR及JS脚本、运行脚本并解决遇到的MySQL驱动不兼容问题,最终成功执行带有参数的KTR脚本。
摘要生成于
,由 DeepSeek-R1 满血版支持,
环境 centos8,mysql
1.上传data-integration到服务器
准备data-integration压缩包,通过filezilla上传到linux服务器,此处上传到/var/kettle下
unzip pdi-ce-8.3.0.0-371.zip
3.进入data-integration查看解压后文件是否正常
是否含有pan.sh 或 kitchen.sh 文件
Kitchen——作业执行器 ,是一个作业执行引擎,用来执行作业。
Pan——转换执行器 是一个转换执行引擎,用来执行转换。
4.kettle下新建 ktr存放ktr脚本
5.通过filezilla上传windows环境调试好的ktr脚本
此处我需要js对某些字段进行md5计算后赋值,所以将需要的js脚本文件上传
6.运行ktr脚本
sh /data-integration的安装路径/pan.sh -norep -file=/你的ktr的存放路径/mytest.ktr
sh /var/kettle/data-integration/pan.sh -norep -file=/var/kettle/ktr/mytest.ktr
#### 使用“
执行
命令行程序”步骤
为了在
Kettle
中
执行
BAT
脚本
,可以利用 “
执行
命令行程序” 步骤来调用外部批处理文件。此方法允许用户指定要运行的命令及其参数。
```properties
#
kettle
-transformations/batch_execution.
ktr
配置示例
<name>Run Batch Script</name>
<type>ExecProcess</type>
<process>${batch_script_path}</process>
</step>
其中 `${batch_script_path}` 是指向目标 `.bat` 文件的位置变量[^1]。
#### 创建并测试批处理文件
确保创建了一个有效的批处理文件,并且该文件可以在操作系统级别正常工作。例如,在 Windows 上创建名为 `example.bat` 的简单批处理文件:
```batch
@echo off
echo Hello from batch script!
pause
保存上述代码至适当位置(如 `D:\scripts\example.bat`),并通过双击验证其能否按预期运行[^2]。
#### 将批处理集成到转换中
打开 Spoon 并新建或编辑现有转换。添加一个 “
执行
命令行程序 (Exec Process)” 步骤,设置如下属性:
- **Command to execute**: 输入完整的路径名加上批处理文件名称,比如 `"D:\scripts\example.bat"`。
- **Working directory**: 如果适用的话,提供批处理所在的目录作为工作空间。
- **Arguments**: 若有额外参数传递给批处理,则在此处定义它们;对于大多数情况,默认为空即可。
完成这些配置之后,可以通过预览模式查看结果或将整个流程部署为作业的一部分[^4]。
#### 自动化与调度
当希望定期自动触发此类任务时,可考虑将转换打包成 Job,并借助定时器或其他自动化机制来启动它。这通常涉及到编写 Shell 或者 PowerShell
脚本
来调用 Kitchen 工具[^5]。
```bash
#!/bin/bash
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/
export PATH=$JAVA_HOME/bin:$PATH
cd /path/to/
kettle
/directory
./kitchen.sh \
"/file:D:/
kettle
/data/example_job.kjb" \
"-level=Basic"
以上 Bash
脚本
展示了如何在
Linux
环境下调用带有特定日志级别的
Kettle
Job。
SILHOUETTEBOUNDARY.DLL System.ComponentModel.Composition.ni.dll sasdsi.dll sbpid.dll Sano.Person