Java-动态传参调用kettle转换和作业
来源:互联网 发布:微信广告植入系统源码 编辑:程序博客网 时间:2024/06/05 09:30
结合网上的资料参考。转换没有达到我想要的结果自己总结下实现了。
注:需要的包kettle lib 下面都有kettle 打头的基本都要.
Kettle6.0下测试的
调用转换传参 不传参的话直接传null
Stringpath =application.getRealPath("/kettle/voucher.ktr");
SimpleDateFormatdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String[]params = {"1","15"};
String paramurl = "file:///E:/kettle/Aaa";
Map<String,String>para = new HashMap<String,String>();
para.put("strurl",paramurl);
try{
KettleEnvironment.init(); //初始化
//EnvUtil.environmentInit(); 不使用
TransMeta transMeta = new TransMeta(path);
Trans trans = new Trans(transMeta); //创建转换
for(Map.Entry<String,String>entry: para.entrySet() )
{
//设置命名参数
trans.setParameterValue(entry.getKey(),entry.getValue());
}
trans.execute(params); //执行转换设置 命令行参数
trans.waitUntilFinished(); //等待转换执行结束
if(trans.getErrors() >0)
{
throw new Exception("转换过程中发生异常!");
}
}catch(Exception e){
e.printStackTrace();
}
不知道怎么上图片。 说明下好了
转换文件
第一步
名称 类型
id1 命令行参数1
id2 命令行参数2
第二步
变量已 ? 如 where id > ? and id < ? /按顺序 id1 id2
下面要选择替换SQL 语句变量。
从步骤插入数据 就是 第一步的 获取系统信息
第三步
文本文件输出 文件名称 变量 ${strurl}
注意 这个命名变量必须双击空白处转换属性添加一个命名参数 strurl
调用作业传参 不传参的话直接传null
Stringpathjob =application.getRealPath("/kettle/jobone.kjb");
Stringstrpath = request.getRealPath("") +"/kettle";
System.out.println(strpath);
SimpleDateFormatdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String[] params = {"1","15"};
try{
KettleEnvironment.init(); //初始化
JobMeta jobMeta = new JobMeta(pathjob,null);
Job job = new Job(null,jobMeta);
//向JOB 脚步传递参数
job.setVariable("strurl","vouone.ktr");
job.setVariable("id1","1");
job.setVariable("id2","15");
job.start();
job.waitUntilFinished();
if(job.getErrors() >0)
{
throw new Exception("作业过程中发生异常!");
}
}catch (Exception e){
e.printStackTrace();
}
作业文件
这里只需要看第二步 直接${} 就能接受参数无需设置全局命名变量
然后转换文件的话
就是 where id > ${id1} and id < ${id2}
- Java-动态传参调用kettle转换和作业
- kettle生成主键UUID和调用转换作业
- kettle生成主键UUID和调用转换作业
- java中调用kettle转换文件
- java中调用kettle转换文件
- Java调用Kettle执行任务或转换
- Java项目中调用Kettle转换
- java中调用kettle转换文件
- java 整合Web调用kettle本地转换
- java调用kettle向job(任务)和transformation(转换)传递参数实例
- java调用kettle向job(任务)和transformation(转换)传递参数实例
- java调用kettle中的job和trans
- 使用Java程序调用本地转换盒作业,资源库中的转换和作业(kettle4.2)
- BI:Java调用Kettle执行任务或转换
- Kettle java调用
- java调用Kettle总结
- Kettle java调用
- BI: Kettle获取命令行参数和Java调用Kettle传递参数
- Hibernate使用过程中,当修改数据后,提示成功,但并没有写入数据库,即使修改成功后多次访问数据库都得到不同的结果的解决方案
- 访问assets中文件各种文件的方法
- 数据格式化函数
- 韩文歌曲音译
- 升级win10后 MarkdownPad 2 无法实时渲染HTML页面问题
- Java-动态传参调用kettle转换和作业
- spoj7258:Lexicographical Substring Search 后缀自动机
- 使用ObjectMapper 序列化Json
- 第4周项目1-求最大公约数
- 行测材料分析公式总结
- 线程与进程区别
- 蓝桥杯 第七届 C/C++ B 省赛 凑算式
- 第四周 项目二 太乐了
- “Unable to install breakpoint due to missing line number attributes,Modify compiler options togenera