Kettle的使用分享~动态参数~JS脚本~多文本文件输入

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");

在这里插入图片描述

根据参数值获取文件名

在这里插入图片描述

文本文件输入

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值