Kettle (1) - 讀取 CSV 文件

Kettle 是一款采用純 Java 實(shí)現(xiàn)的開源 ETL工 具刘离,屬于開源商務(wù)智能軟件 Pentaho 的一個(gè)重要組成部分臼婆。項(xiàng)目在 SourceForge 上的地址為:https://sourceforge.net/projects/pentaho/?source=directory腰根。鑒于 SourceForge 在國內(nèi)不能下載新翎,需要下載請移步到鏡像網(wǎng)站缓醋。軟件本身是免安裝的署鸡,解壓即可用案糙,當(dāng)然操作系統(tǒng)要安裝和配置好 Java 環(huán)境。

Kettle PDI (Penhato Data Integration) 支持用拖拉的方式靴庆,實(shí)現(xiàn)復(fù)雜的 ETL 邏輯时捌。本系列計(jì)劃介紹 Kettle PDI 的主要功能,力求簡明易懂炉抒。使用的 Kettle PDI 版本是 PDI 7.1奢讨,在 Windows 10 下運(yùn)行。

Spoon

Penhato PDI 包含不少的工具箱焰薄,首先需要了解的是 Spoon拿诸,Spoon 是 Kettle 的圖形化界面,在 Penhato 的安裝目錄下可以看到有一個(gè)叫 Spoon.bat 的文件(Linux 下是 Spoon.sh)塞茅,雙擊這個(gè)就可以啟動(dòng)我們的kettle程序亩码。

Kettle 主要的工具有兩個(gè):

  • 轉(zhuǎn)換 (Transformation): 負(fù)責(zé)數(shù)據(jù)的輸入、轉(zhuǎn)換野瘦、校驗(yàn)和輸出等工作描沟。Kettle 中使用轉(zhuǎn)換(transformation)完成數(shù)據(jù) ETL 全部工作。轉(zhuǎn)換由多個(gè)步驟 (step) 組成鞭光,如文本文件輸入啊掏,過濾輸出行,執(zhí)行 SQL 腳本等衰猛。各個(gè)步驟使用 (hop) 來鏈接迟蜜。 跳定義了一個(gè)數(shù)據(jù)流通道,即數(shù)據(jù)由一個(gè)步驟流 (跳) 向下一個(gè)步驟啡省。在 Kettle 中數(shù)據(jù)的最小單位是行(row)娜睛,數(shù)據(jù)流中流動(dòng)其實(shí)是緩存的行集 (RowSet) 髓霞。

  • 作業(yè) (Job),負(fù)責(zé)定義一個(gè)完成整個(gè)工作流的控制畦戒,比如將轉(zhuǎn)換的結(jié)果發(fā)送郵件給相關(guān)人員方库。因?yàn)檗D(zhuǎn)換(transformation)以并行方式執(zhí)行,所以必須存在一個(gè)串行的調(diào)度工具來執(zhí)行轉(zhuǎn)換障斋,這就是 Kettle中的作業(yè)纵潦。

讀取 CSV 文件

假設(shè)我們的目的是讀取 CSV 文件,在 Excel 中輸出垃环。當(dāng)然邀层,這種簡單操作完全不需要 Kettle,Excel 直接就可以打開并轉(zhuǎn)換遂庄。練習(xí)的目的是從易到難寥院,逐步掌握 Kettle 的用法。

CSV 文件是一種常見的文本文件涛目,一般含有表頭和行項(xiàng)目秸谢。大多數(shù)數(shù)據(jù)處理型軟件都含有對(duì) CSV 格式的支持。進(jìn)入 Spoon 的主界面霹肝,通過菜單 [文件] - [新建] - [轉(zhuǎn)換] 新建一個(gè)轉(zhuǎn)換估蹄。

在左邊的核心對(duì)象中,找到輸入文件夾下面的CSV文件輸入沫换,將其拖到右邊的工作區(qū)元媚。雙擊CSV文件輸入圖標(biāo),通過瀏覽按鈕找到 想要讀取的 CSV 文件:

點(diǎn)擊對(duì)話框中的 “獲取字段” 按鈕苗沧,自動(dòng)獲得 CSV 文件各列的表頭刊棕。之所以可以這樣,是因?yàn)?“包含列頭行” 默認(rèn)選中待逞。點(diǎn)擊 “預(yù)覽” 按鈕可以預(yù)覽數(shù)據(jù)甥角。如果是中文,注意文件的編碼识樱。

在左邊導(dǎo)航區(qū)的 “輸出” 文件夾下嗤无,將 “Excel輸出” 步驟拖放到右邊的工作區(qū)。選中步驟 “CSV文件輸入”怜庸,通過 shift+鼠標(biāo)拖動(dòng)当犯,連接兩個(gè)步驟,此時(shí)界面如下:

雙擊 “Excel輸出”割疾,設(shè)置文件名和擴(kuò)展名:

切換到 “字段” 頁簽嚎卫,點(diǎn)擊 “獲取字段” 按鈕,獲取需要輸出的字段宏榕,可以刪除不想要的字段拓诸,然后點(diǎn)擊 “確定” 按鈕:

運(yùn)行之前保存侵佃,轉(zhuǎn)換被保存為擴(kuò)展名為 ktr 的文件,這個(gè)文件是 xml 格式的文本文件奠支,可以用 spoon 打開馋辈。然后點(diǎn)擊 “運(yùn)行”,即可以將 CSV 文件轉(zhuǎn)換成 Excel 文件倍谜。

多個(gè)文件輸入

在導(dǎo)航區(qū) “核心對(duì)象” 中迈螟,找到 “輸入” 文件夾下 “獲取文件名”,拖到工作區(qū)尔崔。設(shè)置如下:

點(diǎn)擊 “預(yù)覽記錄” 按鈕答毫,查看包含的文件,兩個(gè)文件都被讀取到您旁。filename 是在下一步要使用的文件路徑烙常,屬于輸出的變量轴捎。

將 “獲取文件名” 步驟連接至 “CSV文件輸入” 步驟鹤盒。此時(shí),“CSV文件輸入” 步驟的界面中侦副,文件名字段為數(shù)據(jù)來源于前一步驟侦锯,選擇 filename。其他相同秦驯。

image.png

運(yùn)行尺碰,可以把兩個(gè) CSV 文件中的數(shù)據(jù)加載并輸出到 Excel 文件中。輸入的文件格式译隘,比如文本文件亲桥、Excel 文件大體類似。

參考

Kettle下載
Kettle源碼
Kettle初識(shí)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末固耘,一起剝皮案震驚了整個(gè)濱河市题篷,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌厅目,老刑警劉巖番枚,帶你破解...
    沈念sama閱讀 219,539評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異损敷,居然都是意外死亡葫笼,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門拗馒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來路星,“玉大人,你說我怎么就攤上這事诱桂“露睿” “怎么了苫幢?”我有些...
    開封第一講書人閱讀 165,871評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長垫挨。 經(jīng)常有香客問我韩肝,道長,這世上最難降的妖魔是什么九榔? 我笑而不...
    開封第一講書人閱讀 58,963評(píng)論 1 295
  • 正文 為了忘掉前任哀峻,我火速辦了婚禮,結(jié)果婚禮上哲泊,老公的妹妹穿的比我還像新娘剩蟀。我一直安慰自己,他們只是感情好切威,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,984評(píng)論 6 393
  • 文/花漫 我一把揭開白布育特。 她就那樣靜靜地躺著,像睡著了一般先朦。 火紅的嫁衣襯著肌膚如雪缰冤。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,763評(píng)論 1 307
  • 那天喳魏,我揣著相機(jī)與錄音棉浸,去河邊找鬼。 笑死刺彩,一個(gè)胖子當(dāng)著我的面吹牛迷郑,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播创倔,決...
    沈念sama閱讀 40,468評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼嗡害,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了畦攘?” 一聲冷哼從身側(cè)響起霸妹,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎念搬,沒想到半個(gè)月后抑堡,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,850評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡朗徊,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,002評(píng)論 3 338
  • 正文 我和宋清朗相戀三年首妖,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片爷恳。...
    茶點(diǎn)故事閱讀 40,144評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡有缆,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情棚壁,我是刑警寧澤杯矩,帶...
    沈念sama閱讀 35,823評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站袖外,受9級(jí)特大地震影響史隆,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜曼验,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,483評(píng)論 3 331
  • 文/蒙蒙 一泌射、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鬓照,春花似錦熔酷、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至臭猜,卻和暖如春躺酒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背获讳。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評(píng)論 1 272
  • 我被黑心中介騙來泰國打工阴颖, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留活喊,地道東北人丐膝。 一個(gè)月前我還...
    沈念sama閱讀 48,415評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像钾菊,于是被迫代替她去往敵國和親帅矗。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,092評(píng)論 2 355