1. 程式人生 > >定時任務之kettle設計器使用之一(quartz)

定時任務之kettle設計器使用之一(quartz)

今天在寫定時任務job的問題,涉及到了kettle 就是所謂的資料設計器 幫助我們進行資料轉換,資料清洗。

話不多說 簡要上一個教程 教大家使用kettle

我這個是我們公司自己設計的

設計器是一款ETL工具,純java編寫,可以在Windows、Linux、Unix上執行,資料抽取高效、穩定、便捷。龍雲設計器這個ETL工具集,它允許你管理來自不同資料庫的不同資料,通過提供一個圖形化的使用者環境來描述你想做什麼。設計器中有兩種指令碼:transformation和job,transformation完成針對資料的基礎轉換(生成轉換會在目錄下生成一個字尾名為ktr的轉換檔案),job則完成對整個工作流的控制(生成job會在目錄下生成一個字尾名為kjb的作業檔案)。

kettle基本都一樣的

1.1連線資源倉庫步驟:

注:紅體字為設計器部分按鈕,資料庫連線時一定注意填寫資料編碼格式為utf-8,即圖2.0.5操作

1.1.1選擇選單欄    工具     下拉選擇 資源庫      點選右側 連線資源庫 選項(或快捷鍵CTRL+R)看到如下圖2.0.1

圖2.0.1

1.1.2新建一個資源庫連線,點選號可看到如圖2.0.2,有兩種建立的資源倉庫型別,分別為資料庫型別和檔案型別,本文選擇資料庫型別,開啟如圖2.0.3所示介面,開始新建資料庫連線 點選 新建 彈出資料庫資訊介面圖2.0.4 進行逐項填寫(就是連線資料庫的操作)本文連線的為本機的MySql資料庫

      

               圖2.0.2                                            圖2.0.3

圖2.0.4

本步驟資料庫連線值得注意的是 防止中文亂碼問題 需手動設定一下統一為utf-8編碼格式 點選 選項 輸入如圖2.0.5所示

圖2.0.5

輸入完畢後點擊 測試 如圖2.0.6,測試連線正常點選 確認 即成功連線資料庫 回到如圖2.0.7填寫資源庫其他資訊

圖2.0.6

圖2.0.7

    

                 圖2.0.8

點選建立或更新後顯示如圖2.0.8則表示建立設計庫成功,點選完此對話方塊的確定

按鈕後還需點選圖2.0.7的確定按鈕,不然你之前的一系列操作就枉費了,成功建立完設計庫,選擇我們剛建立好的設計庫 填寫資源庫的使用者名稱和密碼(此使用者名稱和密碼向負責人請求即可)如圖2.0.9

圖2.0.9

圖2.1.0

填寫完畢點選確定按鈕看到如圖2.1.0所示即表示連線資源庫成功了

2.1設計設計器基本作業和轉換案例及說明

2.1.1

簡易案例一之新增轉換將Excel檔案­­­­的資料插入到資料庫(Transformation):

轉換要求:

a.準備Excel表資料如圖3.0.0所示(Sheet1表)

b.準備資料庫的接收表圖3.0.1所示(本文使用mysql,具體根據你的需求進行選擇性使用)

圖3.0.0

圖3.0.1

轉換步驟a選擇輸入的檔案:

點選如圖2.1.0所示的新增轉換(藍體字)建立新的轉換 開啟左側的核心物件狀態列,雙擊輸入目錄裡的控制元件Excel輸入,可看到控制元件移入右邊的主選單中(也可對控制元件進行拖拽,這樣方便你將控制元件放置在選單中合適的位置上,本文就使用拖拽控制元件)如圖3.0.2所示,雙擊已經移入右邊主選單的Excel輸入控制元件 可編輯此控制元件的屬性資訊如圖3.0.3所示:

圖3.0.2

圖3.0.3

按照圖片提示進行選擇 檔案      選擇工作表(圖3.0.4)     選擇內容(圖3.0.5)       選擇欄位(圖3.0.6)

圖3.0.4

圖3.0.5

圖3.0.6

轉換步驟b:選擇輸出的表

選擇核心物件目錄       輸出        表輸出控制元件拖拽至右側主選單中,雙擊表輸出控制元件編輯其屬性如圖3.0.7所示

圖3.0.7

編輯完主選項後如圖3.0.7所示後,開始編輯資料庫欄位設定如圖3.0.8所示

圖3.0.8

然後我們按住Shift鍵拖拽剪頭從Excel輸入表輸出,這裡我們就完成了一個簡單轉換 可是遇到問題了,我們的輸入資料中存在重複的資料(圖3.0.9),那麼我們不做處理,輸出也會存在,可是這不是我們想要的最終結果 那我們便要對資料進行一系列處理

圖3.0.9

轉換步驟c:增加資料處理轉換

選擇核心物件目錄      轉換      排序記錄控制元件拖拽至右側主選單編輯其屬性如圖3.1.0

(注:有人提疑問為什麼直接不選擇去除重複記錄控制元件,注意一下 去除重複記錄控制元件的處理前提是相鄰記錄行,所以我們要先對資料排序)

圖3.1.0

完成後點選確定,再選擇去除重複記錄控制元件 編輯其屬性如圖3.1.1

圖3.1.1

編輯結束過後按照順序進行流程連線如圖3.1.2所示

圖3.1.2

再執行轉換前要先儲存哦!到此一個從檔案到庫的轉換成功完成,讓我們看看資料庫test表是否已經是我們需要的資料瞭如圖3.1.3所示

圖3.1.3

2.1.2

簡易案列二之新增轉換將資料庫的資料匯入至檔案中(Transformation)

轉換要求:

a:準備一個輸入表資料如圖3.2.0所示

圖3.2.0

b:準備要接收資料的檔案目錄(不需要建立檔案,只需要路徑即可,系統會自動建立檔案的)我們這裡就確定目錄為下:

\E:\longclound\longcloud-DTDesigner\Folder\file.txt

轉換步驟a:

選擇核心物件      輸入      表輸入控制元件拖拽至右側選單編輯控制元件屬性如圖3.2.1所示

圖3.2.1

編輯完畢 點選確定

轉換步驟b:將蔬菜的單價和數量相乘獲取總價

選擇核心物件       轉換         計算器控制元件編輯如圖3.2.2所示

編輯完點選確定按鈕

再選擇核心物件      輸出     文字檔案輸出控制元件如圖3.2.2所示

圖3.2.2

檔案路徑個副檔名選擇完畢後選擇內容如圖3.2.3所示

圖3.2.3

內容編輯完點選確定選擇欄位按鈕進行編輯如圖3.2.4所示

圖3.2.4

編輯完畢點選確定開始進行流程連線如圖所3.2.5所示,儲存轉換進行除錯執行,

成功後即可看見檔案如圖3.2.6所示

圖3.2.6

那麼到此從庫到檔案的簡單輸出轉換就完成了

簡單轉換案列到此結束

好了 ,陸續後期上難的資料轉換和作業!!!