C# 调用kettle的转换transaction和Job

本文介绍了如何在Windows环境下通过批处理文件运行Kettle的Job和Transformation,包括设置KETTLE_HOME环境变量,以及详细的操作步骤。同时,提供了C#代码示例来调用批处理文件执行Kettle任务,以及直接通过CMD命令行执行。最后,提到了通过HTTP请求调用Carte服务执行Job或转换的可能性。
摘要由CSDN通过智能技术生成

1、windows :编写bat文件

```bash
@echo off
rem 选择自己安装的kettle目录,示例为D:\kettle\data-integration
D:
cd D:\kettle\data-integration
rem 默认读取的是C盘用户目录下的.kettle文件夹中的repositories.xml
rem 若上述的.kettle目录做过处理,需先设置环境变量[set KETTLE_HOME=.kettle目录路径];若没有动过则无需变化
job调用方法:Kitchen.bat -rep=资源库名称 -user=资源库的用户名 -pass=资源库的密码 -dir=要执行的作业所在资源库的目录(/ETL/) -job=执行作业的名称(不用带后缀) -level=basic>D:\kettle\job.log(如何过要写日志,首先要有这个log文件)
transformation调用:pan.bat -rep=ETL_OA -user=admin -pass=admin 
-dir=/ETL/REPORT/FOLDNAME -trans=转换名字
exit

2、C#代码调用:

//bat文件路径
                string path = "E:\\aa\\a.bat";
                Process pro = new Process();
                FileInfo file = new FileInfo(path);
                pro.StartInfo.WorkingDirectory = file.Directory.FullName;
                pro.StartInfo.FileName = path;
                pro.StartInfo.CreateNoWindow = false;
                pro.Start();
                pro.WaitForExit();
                //MessageBox.Show("bat文件执行成功!");

3、或者直接写CMD命令

//创建一个进程
                Process p = new Process();
                p.StartInfo.FileName = "cmd.exe";
                p.StartInfo.UseShellExecute = false;//是否使用操作系统shell启动
                p.StartInfo.RedirectStandardInput = true;//接受来自调用程序的输入信息
                p.StartInfo.RedirectStandardOutput = true;//由调用程序获取输出信息
                p.StartInfo.RedirectStandardError = true;//重定向标准错误输出
                p.StartInfo.CreateNoWindow = true;//不显示程序窗口
                p.Start();//启动程序
 
                string strCMD = @"D:
                								cd D:\kettle-manager\data-integration
                								pan.bat -rep=ETL_OA -user=admin -pass=admin 
													-dir=/ETL/REPORT/FOLDNAME -trans=转换名字";
                //向cmd窗口发送输入信息
                p.StandardInput.WriteLine(strCMD + "&exit");
 
                p.StandardInput.AutoFlush = true;
 
                //获取cmd窗口的输出信息
                string output = p.StandardOutput.ReadToEnd();
                //等待程序执行完退出进程
                p.WaitForExit();
                p.Close();
 
 
                MessageBox.Show(output);
                Console.WriteLine(output);

发送http请求调用carte服务执行job或者转换
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Tony-甲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值