kettle入門(四) 之kettle取昨天時間&設(shè)置任意時間變量案例

//
kettle入門(四) 之kettle取昨天時間&設(shè)置任意時間變量案例 - xiaohai798的專欄 - 博客頻道 - CSDN.NET
http://blog.csdn.net/xiaohai798/article/details/41867835
在數(shù)據(jù)倉庫項目中 有一類和生產(chǎn)或者外圍系統(tǒng)交互的接口稱為FTP文件接口, 用kettle開發(fā)、實現(xiàn)這種接口 配置腳本時怠褐,經(jīng)常需要用時間變量來取或者上傳FTP里面 固定格式文件名的文本,例如 生產(chǎn)系統(tǒng)定時 每天推送前天的數(shù)據(jù)文本 到某個FTP服務(wù)器
2014-04-28 推送文件名 2015-04-26.txt.gz
2014-04-27 推送文件名 2015-04-25.txt.gz

實現(xiàn):
kettle 版本3.0.4茉帅,如下圖所示:
所需要三個功能組件 1 獲取系統(tǒng)信息 2 Java script value 3 set 變量

下面看第一個組件岸梨,可以自動獲取系統(tǒng)的時間 例如當(dāng)前時間 即下圖的系統(tǒng)日期(變量) 、今天00:00:00等 先取今天的日期
點擊下圖左下角的 類型 下面行 會彈出右側(cè)下腳的 選擇信息類型 再里面點擊 今天00:00:00 然后 寫上名稱即可


下圖看第二個組件 :
主要實現(xiàn)是用js代碼
Format 那一大塊是一個格式化函數(shù) 功能是把時間格式化成 自己需要的時間格式
Format下面那行 new 當(dāng)前時間對象 2代表2天 246060*1000代表1天時間的ms數(shù)--即當(dāng)天減去2天時間ms數(shù) 得到前天的時間

下圖第三個組件:
設(shè)置環(huán)境變量 即把js中的變量名 設(shè)置到系統(tǒng) 或者job可用的變量名中 變量活動類型 有Java虛擬機掘鄙、父Job院究、父父Job洽瞬、根Job。為了便于測試 這里選擇Java虛擬機

下面是點擊運行的測試結(jié)果:
畫紅圈部分可以看到變量設(shè)置成功了业汰!


下圖是一個 使用變量設(shè)置ktr 的kjb
目的就是每天生成2015-04-26 這樣 前天日期的文本 然后用 sftp中的正則表達式匹配 上傳到指定服務(wù)器伙窃, 畫紅圈是filedate_YCL.ktr中設(shè)置的變量名。

附錄 :
組件二里的js腳本:

[javascript] view plain copy

派生到我的代碼片
派生到我的代碼片

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()-22460601000).Format("yyyyMMdd");--new 當(dāng)前時間對象 2代表2天 246060*1000代表2天時間的ms數(shù)
--即當(dāng)天減去2天時間ms數(shù) 得到前天的時間

備注:
new Date(new Date().getTime()-22460601000).Format("yyyyMMdd");
2這個地方 可以任意改 想取多少天前的就寫多少天样漆,減也可以改成加 yyyyMMdd 格式也可以改為 yyyyMM 或者 yyyy-MM-dd 或者 yyyy/MM/dd
取時分秒 yyyy/MM/dd/ hh:mm:ss 很靈活方便
取當(dāng)前季度 yyyy/MM/dd/qq hh:mm:ss qq是季度

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末对供,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子氛濒,更是在濱河造成了極大的恐慌产场,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件舞竿,死亡現(xiàn)場離奇詭異京景,居然都是意外死亡,警方通過查閱死者的電腦和手機骗奖,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進店門确徙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人执桌,你說我怎么就攤上這事鄙皇。” “怎么了仰挣?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵伴逸,是天一觀的道長。 經(jīng)常有香客問我膘壶,道長错蝴,這世上最難降的妖魔是什么洲愤? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮顷锰,結(jié)果婚禮上柬赐,老公的妹妹穿的比我還像新娘。我一直安慰自己官紫,他們只是感情好肛宋,可當(dāng)我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著束世,像睡著了一般酝陈。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上良狈,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天后添,我揣著相機與錄音笨枯,去河邊找鬼薪丁。 笑死,一個胖子當(dāng)著我的面吹牛馅精,可吹牛的內(nèi)容都是我干的严嗜。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼洲敢,長吁一口氣:“原來是場噩夢啊……” “哼漫玄!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起压彭,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤睦优,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后壮不,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體汗盘,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年询一,在試婚紗的時候發(fā)現(xiàn)自己被綠了隐孽。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡健蕊,死狀恐怖菱阵,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情缩功,我是刑警寧澤晴及,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站嫡锌,受9級特大地震影響抗俄,放射性物質(zhì)發(fā)生泄漏脆丁。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一动雹、第九天 我趴在偏房一處隱蔽的房頂上張望槽卫。 院中可真熱鬧,春花似錦胰蝠、人聲如沸歼培。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽躲庄。三九已至,卻和暖如春钾虐,著一層夾襖步出監(jiān)牢的瞬間噪窘,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工效扫, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留倔监,地道東北人。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓菌仁,卻偏偏與公主長得像浩习,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子济丘,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內(nèi)容