zoukankan      html  css  js  c++  java
  • kettle入门(四) 之kettle取昨天时间&设置任意时间变量案例

    https://blog.csdn.net/xiaohai798/article/details/41867835


    实现:
    kettle 版本3.0.4,如下图所示:

    所需要三个功能组件 1 获取系统信息 2 java script value 3 set 变量


    下面看第一个组件,可以自动获取系统的时间 例如当前时间 即下图的系统日期(变量) 、今天00:00:00等 先取今天的日期

    点击下图左下角的 类型 下面行 会弹出右侧下脚的 选择信息类型 再里面点击 今天00:00:00 然后 写上名称即可

    下图看第二个组件 :

    主要实现是用js代码
    Format 那一大块是一个格式化函数 功能是把时间格式化成 自己需要的时间格式

    Format下面那行 new 当前时间对象 2代表2天 24*60*60*1000代表1天时间的ms数
    --即当天减去2天时间ms数 得到前天的时间


    下图第三个组件:

    设置环境变量 即把js中的变量名 设置到系统 或者job可用的变量名中 变量活动类型 有Java虚拟机、父Job、父父Job、根Job。为了便于测试 这里选择Java虚拟机

    下面是点击运行的测试结果:

    画红圈部分可以看到变量设置成功了!

    下图是一个 使用变量设置ktr 的kjb

    目的就是每天生成2015-04-26 这样 前天日期的文本 然后用 sftp中的正则表达式匹配 上传到指定服务器, 画红圈是filedate_YCL.ktr中设置的变量名。


    附录 :
    组件二里的js脚本:
    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 dtNew=new Date(new Date().getTime()-2*24*60*60*1000).Format("yyyyMMdd");--new 当前时间对象 2代表2天 24*60*60*1000代表2天时间的ms数
    --即当天减去2天时间ms数 得到前天的时间
    备注:
    new Date(new Date().getTime()-2*24*60*60*1000).Format("yyyyMMdd");

    2这个地方 可以任意改 想取多少天前的就写多少天,减也可以改成加 yyyyMMdd 格式也可以改为 yyyyMM 或者 yyyy-MM-dd 或者 yyyy/MM/dd
    取时分秒 yyyy/MM/dd/ hh:mm:ss 很灵活方便

    取当前季度 yyyy/MM/dd/qq hh:mm:ss qq是季度


     

  • 相关阅读:
    HomeBrew安装MongoDB如何启动
    Express + Mongoose 极简入门
    Express + Mongoose 极简入门
    浅谈 PHP 与手机 APP 开发(API 接口开发)
    浅谈 PHP 与手机 APP 开发(API 接口开发)
    统计与分布之伯努利分布与二项分布
    统计分布之泊松分布
    统计与分布之高斯分布
    Python 2 和 3 的区别及兼容技巧
    组合与排列
  • 原文地址:https://www.cnblogs.com/gina11/p/15021312.html
Copyright © 2011-2022 走看看