05-PDI(Kettle)脚本执行
文章目录
05-PDI(Kettle)脚本执行
pan和kitchen实验背景
作业和转换可以在图形化界面里执行,但这只是在开发、测试和调试阶段。在开发完成后,需要部署到实际运行环境,在部署阶段,Spoon就很少用到了。
在部署阶段,一般需要通过命令行执行。需要将命令行输入到执行脚本中,并定时调度这个脚本。Kitchen和Pan 在概念和用法上都非常接近,这两个命令的参数也基本一样。唯一不同的是Kitchen用于执行作业,而Pan用于执行转换。
pan命令演示
pan用于在终端执行转换,可以通过定时调度任务调度,一般可通过spoon开发完ETL过程,然后通过工作流调度pan实现定时执行。 切换到pdi的安装目录:
C:\WINDOWS\system32>cd /d E:\pdi-ce-8.2.0.0-342\data-integration
执行Pan.bat命令,会提示支持的相关参数:
E:\pdi-ce-8.2.0.0-342\data-integration>Pan.bat
返回参数如下。
- -version 显示版本信息
- -file=filename 运行的文件
- -param:key=value 指定命名参数
- -log=logging filename 设置日志文件
- -level=logging level 设置日志级别
创建脚本文件:transschdule.bat
cd /d E:\pdi-ce-8.2.0.0-342\data-integration
call pan /file="C:\Users\DELL\Desktop\kettle\Transformation 1param.ktr" /level=Detailed /log=D:\1.log0
pause
需要注意,如果路径含有空格,要用双引号引起来 在bat文件中,建议使用 call调用命令,然后添加pause暂停终端关闭 双击ransschdule.bat即可执行。
kitchen命令演示
实验原理 kitchen是一个作业执行引擎,用来执行作业。这是一个命令行执行工具 在Windows系统下,Kitchen通过执行kitchen.bat来执行,Pan通过pan.bat来执行;在类UNIX系统下,Kitchen通过执行kitchen.sh来执行,Pan通过pan.sh来执行。相关详细参数
参数名 | 参数值 | 作用 |
---|---|---|
rep | 资源库名称 | 要连接的资源库的名称 |
user | 资源库用户名 | 要连接的资源库的用户名 |
pass | 资源库用户密码 | 要连接的资源库的用户密码 |
listrep | 显示所有的可用资源库 | |
dir | 资源库里的路径 | 指定资源库路径 |
listdir | 列出资源库的所有路径 | |
file | 文件名 | 指定作业或转换所在的文件名 |
level | Error|Nothing| Basic|Detailed| Debug|Rowlevel| | 指定日志级别 |
logfile | 日志文件名 | 指定要写入的日志文件名 |
version | 显示Kettle的版本号、build日期 |
实验步骤
1、切换到kettle文件所在目录 右键点击桌面的spoon图标,打开PDI的安装位置,打开安装目录 E:\pdi-ce-8.2.0.0-342\data-integration 2、运行Kitchen.sh文件
kitchen.bat
可以查看到命令运行结果,并且可以看到相关的命令行提示信息
相关参数设置及运行作业
运行之前的作业,查看运行结果
- job文件位于本地文件系统中:
kitchen.bat -file=D:\kettle-repository-file/chapter05-1-03作业监控.kjb >> D:\kettle-repository-file\log.txt
- job文件位于资源库中
kitchen.bat -rep=kettle_desk -user=admin -pass=admin -job=chapter05-1-03作业监控 -dir=/ -logfile=D:\kettle-repository-data\log-chapter05-1-04\log.txt
定时任务中
将Pan和Kitchen命令写到批处理文件或脚本中后,可以通过定时任务完成脚本的定时调度。 在Window中的过程大致为:控制面板–管理工具–任务计划程序–创建基本任务。 在Ubuntu中的过程为通过crontab命令完成调度。可参考https://www.cnblogs.com/yezigege/p/13503795.html 也可通过专用的资源调度器完成脚本的调度任务。
本文介绍到这里,如果有什么需要更新的,请留言,看到及时更新!!
相关文章
- pycharm如何执行高级撤销操作回到历史[通俗易懂]
- SpringBoot @Scheduled注解使用: 同步/异步同一任务及多任务并发执行
- python chmod_使Python脚本可执行chmod755?
- Flask 学习-59.解决celery 在windows 上接收任务不执行的问题
- promise执行顺序面试题令我头秃,你能作对几道
- idea里maven执行时控制台乱码
- 相同执行计划,为何有执行快慢的差别
- 【IntelliJ IDEA】使用 exe4j 生成 jre + jar 可执行文件并在 Windows 上执行 ( 不安装 jre 执行 java 程序 )
- shell 执行脚本命令
- Select count(*)、Count(1)和Count(列)的区别及执行方式
- Redis执行Lua脚本的好处与示例代码
- java中执行python脚本工具类详解编程语言
- 速度MySQL 执行速度优化:一步一步提升效率(mysql执行)
- 脚本Linux脚本执行:一步搞定(linux.执行)
- 使用 Linux 执行远程脚本的简单方法(linux执行远程脚本)
- shell脚本Linux系统中如何执行Shell脚本(linux如何执行)
- 借助派生源表,使用merge对目标表执行update和insert操作
- Linux脚本轻松实现自动化任务执行(linux脚本自动执行)
- 批量操作促使MSSQL脚本实现最佳效果(批处理执行mssql脚本)
- 脚本快速学习执行Linux Shell脚本的技巧(linux 执行shell)
- 查询在命令行执行Oracle数据库查询(cmd中执行oracle)
- 警惕Redis谨慎操作以确保安全性(redis谨慎执行)
- PHP执行系统外部命令system()exec()passthru()
- Html中JS脚本执行顺序简单举例说明
- PHP中使用微秒计算脚本执行时间例子