目錄
一、txt文本轉換成excel
1、新建、轉換
2、構建流程圖
3、配置數據流圖中的各個組件
3.1、配置文件文本輸入組件
?3.2、 配置Excel輸出組件
4、保存執行
二、excel轉換成mysql
(1)在MySQL數據庫中創建數據庫,這個根據自身情況。我就在現有test庫中測試了。
(2)根據以上步驟,新建轉換。
(3)構建流程圖,選擇excel輸入和表輸出
(4)將兩個組件連接起來
(5)雙擊表輸入,文件選擇源文件的位置,然后點擊增加,在點擊【工作表】,獲取工作表名稱,把標簽移到右邊
(6)點擊「字段」選項卡,點擊「獲取來自頭部數據的字段...」按鈕,Kettle會從Excel中讀取第一行字段名稱。
??(7)將 age 字段的格式設置為#,register_date的格式設置為 yyyy-MM-dd HH:mm:ss。
(8)點擊「預覽記錄」按鈕查看抽取到的數據。如果數據格式有我呢提,在調整格式
(9)點擊「確定」按鈕并保存。
(10)配置MySQL組件,雙擊表輸出組件
(11)輸入目標表的名稱為:user,后續Kettle將在MySQL中創建一張名為 user 的表格。
(12)點擊下方的「SQL」按鈕,可以看到Kettle會自動幫助我們生成MySQL創建表的SQL語句,
(13)保存并執行轉換
(14)查看數據,由于ID 數據過大,需要把屬性換成 bigint
三、 MySQL表之間轉換
1、共享數據庫連接
2、需求:將user表中的數據,轉換到user1表中
3、新建轉換
4、構建kettle流程圖
5、配置Kettle數據流圖中的組件
?四、插入和更新組件
1、需求
2、新建轉換,步驟同上
3、構建kettle流程圖
4、執行轉換
5、結果查詢,目標表數據已經更新和插入
??五、switch/case組件
1、需求
2、構建流程圖
3、配置組件
4、執行
?六、SQL腳本組件
1、需求
2、構建kettle流程圖
3、配置組件,雙擊組件
4、保存執行
一、txt文本轉換成excel
txt文本內容
id,name,age,gender,province,city,region,phone,birthday,hobby,register_date
392456197008193000,張三,20,0,北京市,昌平區,回龍觀,18589407692,1970-8-19,美食;籃球;足球,2018-8-6 9:44
267456198006210000,李四,25,1,河南省,鄭州市,鄭東新區,18681109672,1980-6-21,音樂;閱讀;旅游,2017-4-7 9:14
892456199007203000,王五,24,1,湖北省,武漢市,漢陽區,18798009102,1990-7-20,寫代碼;讀代碼;算法,2016-6-8 7:34
492456198712198000,趙六,26,2,陜西省,西安市,蓮湖區,18189189195,1987-12-19,購物;旅游,2016-1-9 19:15
392456197008193000,張三,20,0,北京市,昌平區,回龍觀,18589407692,1970-8-19,美食;籃球;足球,2018-8-6 9:44
392456197008193000,張三,20,0,北京市,昌平區,回龍觀,18589407692,1970-8-19,美食;籃球;足球,2018-8-6 9:44
1、新建、轉換
然后將需要的轉換方式拖拽到右側面板并運行即可完成轉換
2、構建流程圖
(1)將左邊的核心對象中的輸入文件夾下的文本文件輸入?拖拽到中間空白區域。
?
(2)從輸出文件夾中將Excel輸出 組件拖拽到中間空白區域。
?
(3)按住Shift鍵點擊 文本文件輸入組件,移動鼠標到Excel輸出,然后釋放鼠標,這樣就可以將兩個組件連接到一起。
?
3、配置數據流圖中的各個組件
現在數據流的轉換方式與轉換方向已經確定,接下來要做的就是,配置每個組件,微調參數。
3.1、配置文件文本輸入組件
(1)雙擊文本文件輸入組件,在彈出窗口中點擊「瀏覽」按鈕。選擇要轉換的文本文件。
?(2)點擊「增加」按鈕,將文件加入到要抽取的數據中來。注意:不點添加按鈕,將不會抽取數據。
(3)點擊「內容」選項卡,將分隔符修改為逗號(注意是英文狀態的逗號),將編碼方式修改為:UTF-8。
?
(4)點擊「字段」選項卡,再點擊「獲取字段」按鈕,可以讀取到txt文件中的所有字段。獲取完也可以預覽。點確定保存。
?
?3.2、 配置Excel輸出組件
(1)雙擊 Excel輸出組件,在彈出窗口中點擊「瀏覽」按鈕。我先暫時保存到桌面。然后點擊確定。記得把擴展名刪除
(2)點擊「字段」選項卡,獲取字段,將age的格式設置為0,表示只輸出不帶小數點的數字。然后點擊確定。
?
4、保存執行
(1)點擊工具條上方的保存按鈕,或者按快捷鍵Ctrl + s。
?(2)點擊工具欄上的播放按鈕啟動執行。點擊啟動
?也會有日志輸出
執行結果,如果執行結果表中,長數字有逗號分隔的話,在雙擊表輸出,【字段】 格式那一列,調整格式即可
二、excel轉換成mysql
表格就按照我們剛才轉換的表格來轉換成MySQL數據
(1)在MySQL數據庫中創建數據庫,這個根據自身情況。我就在現有test庫中測試了。
(2)根據以上步驟,新建轉換。
(3)構建流程圖,選擇excel輸入和表輸出
(4)將兩個組件連接起來
(5)雙擊表輸入,文件選擇源文件的位置,然后點擊增加,在點擊【工作表】,獲取工作表名稱,把標簽移到右邊
?
(6)點擊「字段」選項卡,點擊「獲取來自頭部數據的字段...」按鈕,Kettle會從Excel中讀取第一行字段名稱。
?
??(7)將 age 字段的格式設置為#,register_date的格式設置為 yyyy-MM-dd HH:mm:ss。
(8)點擊「預覽記錄」按鈕查看抽取到的數據。如果數據格式有我呢提,在調整格式
?
(9)點擊「確定」按鈕并保存。
(10)配置MySQL組件,雙擊表輸出組件
????????數據庫連接這里 點擊新建連接,配置數據庫連接信息,點擊測試連接,看是否成功,如果報錯,看是否世缺少jdbc的驅動,去MySQL官網下載對應的驅動即可。
?
(11)輸入目標表的名稱為:user,后續Kettle將在MySQL中創建一張名為 user 的表格。
?
(12)點擊下方的「SQL」按鈕,可以看到Kettle會自動幫助我們生成MySQL創建表的SQL語句,
????????我們將age和gender字段的數據類型改為INT類型。并點擊執行按鈕,會自動在MySQL數據庫中創建該表。可以去數據庫驗證下。執行完之后,點擊確定并保存組件信息。
?
(13)保存并執行轉換
(14)查看數據,由于ID 數據過大,需要把屬性換成 bigint
?三、 MySQL表之間轉換
1、共享數據庫連接
????????在后續的Kettle中,我們需要多次用到上面的數據庫連接。在Kettle中,可以將一個數據庫共享,這樣其他的Kettle轉換就都可以復用該數據庫連接了。
(1)在轉換中,點擊「主對象樹」,點擊[DB連接]右鍵新建數據庫連接(如果連接已經存在,則無需創建)
(2)右鍵單擊需要的數據庫連接,選擇「共享」
(3)發現剛剛選擇的數據庫連接已經變成黑體字,說明已經共享成功。
2、需求:將user表中的數據,轉換到user1表中
3、新建轉換
4、構建kettle流程圖
(1)從核心對象的輸入組件中,將「表輸入」、「表輸出」組件拖拽到中間的空白處。
(2)安裝Shift鍵,并鼠標左鍵點擊表輸入組件,并拉動鼠標,移動到表輸出組件,松開鼠標。
5、配置Kettle數據流圖中的組件
(1)雙擊表輸入組件,在彈出對話框中選擇「獲取SQL查詢語句」。選擇要轉換的表。點擊否
?
(2)點擊「預覽」按鈕,查看是否能夠從MySQL讀取數據。
(3)雙擊表輸出組件,在目標表輸入t_user1,點擊SQL按鈕,會自動生成sql創建表語句,然后執行。
(4)保存轉換,并啟動。
(5)查詢數據庫,user表中的數據已經同步過來了。因為我加了篩選條件,所以只有張三的數據被同步了。
?四、插入和更新組件
????????插入/更新組件能夠將Kettle抽取的數據,與某個表的數據進行對比,如果數據存在就更新,不存在就插入。
1、需求
修改 user中的張三這一行數據,修改 age 為 30。如果想插入指定的數據,只能通過表輸出組件
2、新建轉換,步驟同上
3、構建kettle流程圖
????????1、選擇一個表輸入、表輸出組件,將兩個組件連接
????????2、配置流程圖中的表輸入組件,如上2.5.1步驟
????????3、雙擊 插入/更新 組件,在目標表,點擊瀏覽按鈕,找到user1表。
????????4、添加用來查詢的關鍵字,并獲取和更新字段,確定,保存
原表:
?
目標表:
?
4、執行轉換
?
5、結果查詢,目標表數據已經更新和插入
??五、switch/case組件
kettle中提供了一種實現判斷的組件叫做switch/case。
1、需求
從 user 表中讀取所有用戶數據,將性別為男的用戶導出到一個Excel、性別為女的導出到另外一個Excel。
2、構建流程圖
(1)將表輸入組件拖拽到中間的空白區域。
(2)從流程文件夾中將 Switch/case 組件拖拽到中間的空白區域。
(3)再分別拖入兩個Excel輸出組件。
(4)按住shift鍵,將組件按照下圖方式連接起來。
3、配置組件
(1)配置表輸入組件
雙擊表輸入組件,點擊獲取sql查詢。
(2)配置switch/case組件
????????此處要指定,按照性別來判斷輸出到Excel文件。需要設置 Switch字段為gender,在Case值列表中將值分別改為男、女。如果gender是男的話,則將數據裝載到 Excel輸出 - 男,如果gender是女的話,將數據裝載到 Excel輸出 - 女。
?(3)配置Excel輸出組件
雙擊Excel輸出組件,分別指定輸出到指定的文件夾中。兩個輸出組件操作相同。
?
?
(4)配置完成之后,保存,
4、執行
執行結果就能看出來,已經轉換到表中
?六、SQL腳本組件
執行SQL腳本組件,可以讓Kettle執行一段SQL腳本。我們可以利用它來自動執行某些操作。
1、需求
使用Kettle執行SQL腳本,將 user1 表中的數據清空。
2、構建kettle流程圖
我們在核心對象中,將腳本文件夾下的【執行SQL腳本】拖拽到右側的空白中,如圖所示:
3、配置組件,雙擊組件
我們要將 t_user1 表中的數據清空,所以腳本中要執行的語句如下:
TRUNCATE TABLE t_user1;
4、保存執行
?