Kettle设置参数
通过js脚本设置参数变量并进行赋值,让参数变得可动态变化,便于后期定时任务的执行
生成记录
添加一个"输入->生成记录"对象,用于变量的声明
javascript代码
添加一个"脚本->Javascript脚本"对象,用于动态设置变量值(这里的例子我写的是动态获取日期参数,你可以根据你的需求进行定义和赋值,照葫芦画瓢就行)
Date.prototype.Format = function(fmt) { //author: meizz
var o = {
"M+": this.getMonth() + 1,
//月份
"d+": this.getDate(),
//日
"h+": this.getHours(),
//小时
"m+": this.getMinutes(),
//分
"s+": this.getSeconds(),
//秒
"q+": Math.floor((this.getMonth() + 3) / 3),
//季度
"S": this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr
(("" + o[k]).length)));
return fmt;
}
//设置文件目录
var dirStr = "E:\\code\\foresee\\kt\\bszs1129";
setVariable("dirStr",dirStr,"s");
//获取前一天文件名
var today = new Date();
today.setTime(new Date().getTime()-24*60*60*1000);
//获取前一天文件名的字符串
var todayStr = today.Format("yyyy-MM-dd");
setVariable("todayStr",todayStr,"s");
//设置后面sql查询所需要的参数
var todaySqlStr = "%"+todayStr+"%";
setVariable("todaySqlStr",todaySqlStr,"s");
//var dateStr = "bszs24[8-9]-2018-[0-3][0-9]-[0-3][0-9].log";
//设置后面文件正则匹配的字符串
var dateStr = "bszs24[8-9]-"+todayStr+".log";
setVariable("dateStr",dateStr,"s");