JavaScript 轉換步驟

PDI發表於2008-06-13
Kettle 裡的 JavaScript步驟 是一個非常重要的轉換步驟,一般來說其他步驟搞不定的事情,都可以由它來解決。

JavaScript步驟裡使用的指令碼是 Mozilla 的 Rhino,Rhino 是一個很流行的指令碼語言。正因為它的出色,所以被 JDK 1.6 收編了,換了一身行頭變成 javax.script 包了。不過 Mozilla 還一直在開發Rhino ,最近的一個 Realease1.7 是 08年3月份釋出的。Rhino 作為一種指令碼語言要遵守指令碼語言的標準,對 Rhino 或指令碼語言不熟悉的朋友可以參考下面的幾個連線

Rhino介紹
javaScript 介紹



我們來看看 Kettle 裡的 JavaScript 步驟怎麼使用。
[@more@]例子. 假設使用者有一個Excel 檔案,包括2列,格式如下:
地區名稱 銷售額
xx省xx市 xx萬元


另外使用者在資料庫中有一個事實表和一個字典表

事實表結構:
地區程式碼 銷售額
12345 xx萬元

字典表結構:
地區程式碼 省名 市名
12345 xx省 xx市

使用者想將 EXCEL 中的資料匯入到事實表中。要完成這個工作,需要將Excel 中的地區名稱列按照省、市拆分。這時就只能使用 javaScript 步驟了。拆分後,根據獲得的省名和市名再使用 Kettle 裡的“資料庫查詢”步驟就可以獲得對應的地區程式碼,最後將構造好的資料插入到事實表中。
從上面分析看出,完成這個工作要4個步驟:

1. Excel 輸入步驟
2. javaScript 步驟
3. 資料庫查詢步驟
4. 表輸出步驟

我們主要看看 javaScript 步驟裡的 java 指令碼如何寫

================================= begin ============

var str = 地區名稱.getString();
var begin = str.indexOf('省');
var end = str.indexOf('市');
var pName = str.substr(begin,end);
var cName = str.subsgr(end+1,str.length);

================================= end ============

指令碼里的 pName 和 cName 可以作為欄位, 再透過 "資料庫查詢步驟" 去匹配字典表裡的 省名 和 市名
來獲得 地區程式碼。

整個設計過程並不複雜,在實際應用中一般還會有更多的要求。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14366449/viewspace-1005642/,如需轉載,請註明出處,否則將追究法律責任。

相關文章