日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数据转换-操作题

發布時間:2023/12/16 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据转换-操作题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

現有一個文本文件personnel_data.txt,包含字段id、name、id_number、household_register和salary,具體內容如下所示:

? ? ? ??

1.對文本文件personnel_data.txt中的數據進行數據粒度的轉換,即將文本文件personnel_data.txt中字段為household_register的數據統一成省份,并輸出到文本文件personnel_data_new.txt中。

(1)打開Kettle工具,新建轉換

? ? ?使用Kettle工具,創建一個轉換personal,并添加文本文件輸入控件、表輸入控件、字段選擇控件、排序記錄控件、記錄集連接控件、表輸出控件以及Hop跳連接線,具體效果如圖1所

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖1?

(2)配置文本文件輸入控件

? ? 雙擊圖1中的“文本文件輸入”控件,進入“文本文件輸入”界面,單擊【瀏覽】按鈕,選擇要抽取personnel_data.txt文件;單擊【增加】按鈕,將要抽取的personnel_data.txt文件添加到personal轉換中,如圖2所示。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖2?

? ? 單擊“內容選項卡,在分隔符處清除默認分隔符,單擊【Insert TAB】按鈕,在分隔符處插入一個制表符;取消勾選頭部復選框?!?/span>內容選項卡的配置具體效果如圖3所示。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖3?

? ? 在圖3中,單擊“字段”選項卡,根據personnel_data.txt文件的內容添加對應的字段名稱,并指定數據類型?!白侄巍边x項卡的配置,如圖4所示。在圖4中,單擊【確定】按鈕,完成“文本文件輸入控件的配置。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖4?

3)配置字段選擇控件

? ? 雙擊圖1中的“字段選擇”控件,進入“選擇/改名值”界面,在“選擇和修改”選項卡處添加字段名稱,具體如圖5所示。在圖5中,單擊【確定】按鈕,完成“字段選擇”控件的配置。

圖5

(4)配置排序記錄控件

? ?雙擊圖1中的“排序記錄”控件,進入“排序記錄”界面,并在“字段”框中添加字段household_register,對其進行排序,具體如圖6所示。在圖6中,單擊【確定】按鈕,完成“排序記錄”控件的配置。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖6?

(5)配置表輸入控件

? ? 雙擊圖1中的“表輸入”控件,進入“表輸入”界面,單擊【新建】按鈕,配置數據庫連接,配置完成后單擊【確認】按鈕。MySQL數據庫連接的配置,具體如圖7所示。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖7?

? ? 在表輸入中的SQL框中編寫SQL語句,用于查詢city數據表中字段city和pid的數據,用于與personnel_data.txt文件中household_register字段進行合并連接,具體如圖8所示。在圖8中,單擊【確定】按鈕,完成“表輸入”控件的配置。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖8?

(6)配置排序記錄2控件

? ? 雙擊圖1中的“排序記錄 2”控件,進入“排序記錄”界面,在“字段”框中添加字段city,并對其進行排序,具體如圖9所示。在圖9中,單擊【確定】按鈕,完成“排序記錄2”控件的配置。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖9?

(7)配置記錄集連接控件

? ? 雙擊圖1中的“記錄集連接”控件,進入“合并排序”界面,“第一個步驟”處的下拉框中選擇“排序記錄”,“第二個步驟”處的下拉框中選擇“排序記錄2”;在“第一個步驟的連接字段”和“第二個步驟的連接字段”處添加連接字段,這里添加的連接字段是household_register和city;在“連接類型”處的下拉框選擇連接類型,這里選擇的LEFT OUTER,即左外連接,具體如圖10所示。在圖10中,單擊【確定】按鈕,完成記錄集連接控件的配置。

圖10

(8)配置字段選擇2控件

? ?雙擊圖1中的“字段選擇2”控件,進入“選擇/改名值”界面,“選擇和修改”選項卡處添加字段名稱,這里添加的是記錄集連接流中的字段household_register和pid,具體如圖11所示。在圖11中,單擊【確定】按鈕,完成“字段選擇2”控件的配置。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖11?

(9)配置排序記錄3控件

? ?雙擊圖1中的“排序記錄 3”控件,進入“排序記錄”界面,在“字段”框中添加字段pid,并對其進行排序,具體如圖12所示。在圖12中,單擊【確定】按鈕,完成排序記錄3控件的配置。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖12?

(10)配置表輸入2控件

? ? 雙擊圖1中的“表輸入2”控件,進入“表輸入2”界面,單擊【新建】按鈕,配置數據庫連接,配置完成后單擊【確認】按鈕。MySQL數據庫連接的配置,具體如圖13所示。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖13?

? ? 在表輸入2中的SQL框中編寫SQL語句,用于查詢provincial數據表中字段Provincial和pid的數據,用于與household_register字段進行合并連接,具體如圖14所示。在圖14中,單擊【確定】按鈕,完成“表輸入2”控件的配置。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖14?

(11)配置排序記錄4控件

? ? 雙擊圖1中的“排序記錄 4”控件,進入“排序記錄”界面,在“字段”框中添加字段pid,并對其進行排序,具體如圖15所示。在圖15中,單擊【確定】按鈕,完成“排序記錄4”控件的配置。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖15?

(12)配置記錄集連接2控件

? ? 雙擊圖1中的“記錄集連接2”控件,進入“合并排序”界面,“第一個步驟”處的下拉框中選擇“排序記錄3”,“第二個步驟”處的下拉框中選擇“排序記錄4”;在“第一個步驟的連接字段”和“第二個步驟的連接字段”處添加連接字段,這里添加的連接字段是pid;在“連接類型”處的下拉框選擇連接類型,這里選擇的LEFT OUTER,即左外連接,具體如圖16所示。在圖16中,單擊【確定】按鈕,完成“記錄集連接2”控件的配置。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖16?

(13)配置字段選擇3控件

? ? 雙擊圖1中的“字段選擇3”控件,進入“選擇/改名值”界面,“選擇和修改”選項卡處添加字段名稱,這里添加的是記錄集連接2流中的字段household_registerProvincial,具體如圖17所示。在圖17中,單擊【確定】按鈕,完成“字段選擇3”控件的配置。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖17?

(14)配置表輸出控件

? ? 雙擊圖1中的“表輸出”控件,進入“表輸出”配置界面,單擊【新建】按鈕,配置數據庫連接,配置完成后單擊【確認】按鈕。MySQL數據庫連接的配置,具體如圖18所示。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖18?

? ?在表輸出中,單擊目標表右側的【瀏覽】按鈕,選擇輸出的目標表,即臨時數據表personnel;勾選“指定數據庫字段”的復選框,單擊【輸入字段映射】按鈕,彈出“映射匹配”對話框,依次選中“源字段”選項框的字段和“目標字段”選項框的字段,再單擊【Add】按鈕,將一對映射字段添加至“映射”選項框中,若“源字段”選項框的字段和“目標字段”選項框的字段相同,則可以單擊【猜一猜】按鈕,讓Kettle自動實現映射,最后單擊映射匹配對話框的【確定】按鈕,“表輸出”界面最終顯示的效果如圖19所示,單擊【確定】按鈕,完成“表輸出”控件的配置。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖19?

(15)打開Kettle工具,新建轉換

? ? 使用Kettle工具,創建一個轉換generalization_merge,并添加表輸入控件、字段選擇控件、排序記錄控件、記錄集連接控件、文本文件輸出控件以及Hop跳連接線,具體效果如圖20。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖20?

(16)配置表輸入控件

? ? 雙擊圖20中的“表輸入”控件,進入“表輸入”界面,單擊【新建】按鈕,配置數據庫連接,配置完成后單擊【確認】按鈕。MySQL數據庫連接的配置,具體如圖21所示。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖21?

? ?在表輸入中的SQL框中編寫SQL語句,用于查詢數據表personnel中的數據,具體如圖6-28所示。在圖22中,單擊【確定】按鈕,完成“表輸入”控件的配置。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖22?

(17)配置字段選擇控件

? ? 雙擊圖20中的“字段選擇”控件,進入“選擇/改名值”界面,在“選擇和修改”選項卡處添加字段名稱,具體如圖23所示。在圖23中,單擊【確定】按鈕,完成“字段選擇”控件的配置。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖23?

(18)配置排序記錄控件

? ?雙擊圖20中的“排序記錄”控件,進入“排序記錄”界面,并在“字段”框中添加字段id,對其進行排序,具體如圖24所示。在圖24中,單擊【確定】按鈕,完成“排序記錄”控件的配置。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖24?

(19)配置文本文件輸入控件

? ? 雙擊圖20中的“文本文件輸入”控件,進入“文本文件輸入”界面,單擊【瀏覽】按鈕,選擇要抽取personnel_data.txt文件;單擊【增加】按鈕,將要抽取的personnel_data.txt文件添加到generalization_merge轉換中,如圖25所示。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖25?

? ?在文本文件輸入中,單擊內容選項卡,在分隔符處清除默認分隔符,單擊【Insert TAB】按鈕,在分隔符處插入一個制表符;取消勾選頭部復選框。單擊“字段”選項卡,根據文本文件personnel_data.txt的內容添加對應的字段名稱,并指定數據類型。“字段”選項卡的配置,如圖26所示。在圖26中,單擊【確定】按鈕,完成“文本文件輸入控件的配置。

?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖26?

(20)配置字段選擇2控件

? ? 雙擊圖20中的“字段選擇2”控件,進入“選擇/改名值”界面,在“選擇和修改”選項卡處添加字段名稱,具體如圖27所示。在圖27中,單擊【確定】按鈕,完成“字段選擇”控件的配置。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖27?

(21)配置排序記錄2控件

? ? 雙擊圖20中的“排序記錄”控件,進入“排序記錄”界面,并在“字段”框中添加字段id,對其進行排序,具體如圖28所示。在圖28中,單擊【確定】按鈕,完成“排序記錄2”控件的配置。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖28?

(22)配置記錄集連接控件

? ? 雙擊圖20中的“記錄集連接”控件,進入“合并排序”界面,“第一個步驟”處的下拉框中選擇“排序記錄”,“第二個步驟”處的下拉框中選擇“排序記錄2”;在“第一個步驟的連接字段”和“第二個步驟的連接字段”處添加連接字段,這里添加的連接字段是id;在“連接類型”處的下拉框選擇連接類型,這里選擇的LEFT OUTER,即左外連接,具體如圖29所示。在圖29中,單擊【確定】按鈕,完成“記錄集連接”控件的配置。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖29?

(23)配置字段選擇3控件

? ? ?雙擊圖20中的“字段選擇3”控件,進入“字段選擇”界面,在“選擇和修改”選項卡處添加字段名稱,并將字段household_register_new改為household_register,具體如圖30所示。在圖30中,單擊【確定】按鈕,完成“字段選擇3”控件的配置。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖30?

(24)配置文本文件輸出控件

? ? ?雙擊圖20中的“文本文件輸出”控件,進入“文本文件輸出”界面,單擊“文件名稱”右側的【瀏覽】按鈕,選擇輸出文件,即文本文件personnel_data_new,單擊“內容”選項卡,進入“內容”界面,清除分隔符處的默認分隔符,單擊【插入Tab】按鈕,插入Tab分隔符。并在編碼處的下拉框選擇“UTF-8”編碼,單擊“字段”選項卡,進入“字段”界面,添加要輸出的字段,如圖31和32所示。在圖31中,單擊【確定】按鈕,完成“文本文件輸出”控件的配置。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖31?

?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖32

(25)打開Kettle工具,新建作業

? ? 使用Kettle工具,創建一個作業personal,并添加Start控件、轉換控件、成功控件以及Hop作業項連接線,具體效果如圖33所示。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??圖33

(26)配置轉換控件

? ?雙擊圖33中的“轉換”控件,進入“轉換”界面,單擊Transformations處的【瀏覽】按鈕,選擇添加轉換personal,具體如圖34所示。在圖34中,單擊【確定】按鈕,完成轉換控件的配置。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖34

(27)配置轉換2控件

? ? 雙擊圖33中的“轉換2”控件,進入“轉換”界面,單擊Transformations處的【瀏覽】按鈕,選擇添加轉換generalization_merge,具體如圖35所示。在圖35中,單擊【確定】按鈕,完成轉換2控件的配置。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖35?

(28)運行作業generalization

? ? 單擊作業工作區頂部的按鈕,運行作業personal實現將文本文件personnel_data.txt中字段為household_register的數據統一成省份,并輸出到文本文件personnel_data_new.txt中。運行作業generalization的效果如圖36所示。從圖36中的執行結果來看,即每個控件的右上角均有“√”,則說明作業generalization執行成功。

? 圖36?

(29)查看文本文件personnel_data_new.txt中的數據

? ? ?通過文本編輯器工具,查看文本文件personnel_data_new.txt中的數據,查看結果如圖37所示。從圖37可以看出,文本文件personnel_data_new.txt中字段為household_register的數據均統一成省份。

?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖37?

2.對文本文件personnel_data_new.txt中字段為salary的數據進行商務規則計算,即計算每個人的月薪(以22天工作日計算),最終輸出到文本文件personnel_data_monthly_salary.txt中。

(1)打開Kettle工具,新建轉換

? ? 使用Kettle工具,創建一個轉換monthly_salary,并添加文本文件輸入控件、增加常量控件、計算器控件、文本文件輸出控件以及Hop跳連接線,具體效果如圖38所示。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖38?

(2)配置文本文件輸入控件

? ? 雙擊圖38中的“文本文件輸入”控件,進入“文本文件輸入”界面,單擊【瀏覽】按鈕,選擇要抽取personnel_data_new.txt文件;單擊【增加】按鈕,將要抽取的personnel_data_new.txt文件添加到轉換monthly_salary中,如圖39所示

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖39?

? ?在文本文件輸入中,單擊內容選項卡,在分隔符處清除默認分隔符,單擊【Insert TAB】按鈕,在分隔符處插入一個制表符。單擊“字段”選項卡,根據personnel_data_new.txt文件的內容添加對應的字段名稱,并指定數據類型?!白侄巍边x項卡的配置,如圖40所示。在圖40中,單擊【確定】按鈕,完成“文本文件輸入控件的配置。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖40?

(3)配置增加常量控件

? ? 雙擊圖38中的“增加常量”控件,進入“增加常量”界面,在字段框中添加一個字段days,并給定一個值22。增加常量控件的配置,如圖41所示。在圖41中,單擊【確定】按鈕,完成“增加常量”控件的配置。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖41?

(4)配置計算器控件

? ? 雙擊圖33中的“計算器”控件,進入“計算器”界面,在字段框中添加一個字段monthly_salary,用于存儲月薪,該字段是由字段days和salary進行相乘所得。計算器控件的配置,如圖42所示。在圖42中,單擊【確定】按鈕,完成“計算器”控件的配置。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖42?

(5)配置文本文件輸出控件

? ? 雙擊圖33中的“文本文件輸出”控件,進入“文本文件輸出”界面,單擊“文件名稱”右側的【瀏覽】按鈕,選擇輸出文件,即文本文件personnel_data_monthly_salary,如圖43所示;單擊“內容”選項卡,進入“內容”界面,清除分隔符處的默認分隔符,單擊【插入Tab】按鈕,插入Tab分隔符,并在編碼處的下拉框選擇“UTF-8”編碼,如圖44所示;單擊“字段”選項卡,進入“字段”界面,添加要輸出的字段,如圖45所示。在圖45中,單擊【確定】按鈕,完成“文本文件輸出”控件的配置。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖43?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖44?

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?圖45?

(6)運行轉換monthly_salary

? ?單擊轉換工作區頂部的按鈕,運行轉換monthly_salary,實現將文本文件personnel_data_new.txt中字段為salary的數據進行商務規則計算,即計算每個人的月薪(以22天工作日計算),最終輸出到文本文件personnel_data_monthly_salary.txt中。

(7)查看文本文件personnel_data_monthly_salary.txt中的數據

? ? 通過文本編輯器工具,查看文本文件personnel_data_monthly_salary.txt中的數據,查看結果如圖46所示。從圖46可以看出,文本文件personnel_data_monthly_salary.txt中字段為monthly_salary存儲著月薪。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖46?

?

總結

以上是生活随笔為你收集整理的数据转换-操作题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。