《數(shù)據(jù)采集與處理技術(shù)》課件-第7章 ETL工具Kettle_第1頁
《數(shù)據(jù)采集與處理技術(shù)》課件-第7章 ETL工具Kettle_第2頁
《數(shù)據(jù)采集與處理技術(shù)》課件-第7章 ETL工具Kettle_第3頁
《數(shù)據(jù)采集與處理技術(shù)》課件-第7章 ETL工具Kettle_第4頁
《數(shù)據(jù)采集與處理技術(shù)》課件-第7章 ETL工具Kettle_第5頁
已閱讀5頁,還剩69頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第7章ETL工具Kettle目

錄7.1Kettle的基本概念7.2Kettle的基本功能7.3安裝Kettle7.4數(shù)據(jù)抽取7.5數(shù)據(jù)清洗與轉(zhuǎn)換7.6數(shù)據(jù)加載7.1Kettle的基本概念7.1Kettle的基本概念一個數(shù)據(jù)抽取過程(如圖7-1所示)主要包括創(chuàng)建一個作業(yè)(Job),每個作業(yè)由一個或多個作業(yè)項(JobEntry)和連接作業(yè)項的作業(yè)跳(JobHop)組成。每個作業(yè)項可以是一個轉(zhuǎn)換(Transformation)或是另一個作業(yè)。一個轉(zhuǎn)換由一個或多個步驟(Step)和連接步驟的跳(Hop)組成。圖7-1一個數(shù)據(jù)抽取過程的構(gòu)成要素7.1Kettle的基本概念轉(zhuǎn)換主要用于數(shù)據(jù)的抽取(Extraction)、轉(zhuǎn)換(Transformation)以及加載(Load),比如讀取文件、過濾輸出行、數(shù)據(jù)清洗或加載到數(shù)據(jù)庫等步驟。一個轉(zhuǎn)換包含一個或多個步驟,每個步驟都是單獨的線程,當(dāng)啟動轉(zhuǎn)換時,所有步驟的線程幾乎并行執(zhí)行。步驟之間的數(shù)據(jù)以數(shù)據(jù)流方式傳遞。所有的步驟都會從它們的輸入跳中讀取數(shù)據(jù),并把處理過的數(shù)據(jù)寫到輸出跳,直到輸入跳里不再有數(shù)據(jù)就終止步驟的運(yùn)行;當(dāng)所有步驟都終止了,整個轉(zhuǎn)換就終止了。由于轉(zhuǎn)換里的步驟依賴前一個步驟獲取數(shù)據(jù),因此轉(zhuǎn)換里不能有循環(huán)。7.1Kettle的基本概念相較于轉(zhuǎn)換,作業(yè)是更加高級的操作。作業(yè)由一個或多個作業(yè)項(作業(yè)或轉(zhuǎn)換)組成。所有的作業(yè)項是以某種自定義的順序串行執(zhí)行的。作業(yè)項之間可以傳遞一個包含了數(shù)據(jù)行的結(jié)果對象。當(dāng)一個作業(yè)項執(zhí)行完成后,再傳遞結(jié)果對象給下一個作業(yè)項。作業(yè)里可以有循環(huán)。跳是步驟之間帶箭頭的連接線,它定義了一個單向通道,用于連接兩個步驟,實現(xiàn)將數(shù)據(jù)從一個步驟(寫入數(shù)據(jù)到行集)流向另一個步驟(從行集中讀取數(shù)據(jù))。跳是兩個步驟之間的被稱為“行集”(RowSet)的數(shù)據(jù)行緩存(可以在轉(zhuǎn)換設(shè)置中定義行集大?。H粜屑瘽M了,則向行集寫數(shù)據(jù)的步驟將停止寫入,直到行集里又有空間。若行集空了,則從行集讀取數(shù)據(jù)的步驟就會停止讀取,直到行集里又有可讀取的數(shù)據(jù)行。跳對于向行集寫入數(shù)據(jù)的步驟來說是輸出跳,一個步驟可以擁有多個輸出跳;跳對于從行集中讀取數(shù)據(jù)的步驟來說是輸入跳。作業(yè)跳是作業(yè)項之間帶箭頭的連接線,它定義了作業(yè)的執(zhí)行路徑。7.2Kettle的基本功能7.2Kettle的基本功能Kettle的基本功能包括轉(zhuǎn)換管理和作業(yè)管理。轉(zhuǎn)換管理主要包括輸入、輸出、轉(zhuǎn)換、應(yīng)用、流程、腳本、查詢、檢驗、作業(yè)、映射和批量加載等功能(表7-1給出了常用的轉(zhuǎn)換控件及其相關(guān)說明)。作業(yè)管理主要包括通用、郵件、文件管理、條件、腳本、批量加載等功能(表7-2給出了常用的作業(yè)控件及其相關(guān)說明)。轉(zhuǎn)換類別步驟/控件相關(guān)說明輸入CSV文件輸入從本地的CSV文件中輸入數(shù)據(jù)

文本文件輸入從本地的文本文件中輸入數(shù)據(jù)

表輸入從數(shù)據(jù)庫的數(shù)據(jù)表中輸入數(shù)據(jù)

獲取系統(tǒng)信息讀取系統(tǒng)信息輸入數(shù)據(jù)輸出文本文件輸出將處理后的結(jié)果輸出到文本文件中

表輸出將處理后的結(jié)果輸出到數(shù)據(jù)庫的數(shù)據(jù)表中

插入/更新根據(jù)處理后的結(jié)果對數(shù)據(jù)庫中的數(shù)據(jù)表進(jìn)行插入更新。根據(jù)查詢條件中的字段判斷數(shù)據(jù)表中是否存在相關(guān)記錄,若存在,則進(jìn)行更新,否則進(jìn)行插入表7-1常用的轉(zhuǎn)換控件及其相關(guān)說明7.2Kettle的基本功能轉(zhuǎn)換

值映射數(shù)據(jù)的映射列轉(zhuǎn)行將數(shù)據(jù)表的列轉(zhuǎn)換成數(shù)據(jù)表的行去除重復(fù)記錄從輸入流中去除重復(fù)的數(shù)據(jù),需要注意的是輸入流中的數(shù)據(jù)必須是已排序的唯一行(哈希值)從輸入流中去除重復(fù)的數(shù)據(jù),不需要對輸入流中的數(shù)據(jù)進(jìn)行排序字段選擇選擇需要的字段,過濾掉不要的字段,也可與數(shù)據(jù)庫字段對應(yīng)拆分字段將一個字段拆分成多個字段排序記錄基于某個字段值將數(shù)據(jù)進(jìn)行升序或降序處理行轉(zhuǎn)列將數(shù)據(jù)表的行轉(zhuǎn)成數(shù)據(jù)表的列增加常量增加需要的常量字段7.2Kettle的基本功能應(yīng)用

替換NULL值若某個字符串的值為NULL,則指定某個字符串的值進(jìn)行替換設(shè)置值為NULL若某個字符串的值等于指定的值,則將這個字符串的值設(shè)置為NULL流程空操作不做任何操作,一般充當(dāng)一個占位符

過濾記錄根據(jù)條件對數(shù)據(jù)進(jìn)行過濾分類腳本Java代碼轉(zhuǎn)換的擴(kuò)展功能,編寫Java腳本,對數(shù)據(jù)進(jìn)行相應(yīng)的處理

JavaScript代碼轉(zhuǎn)換的擴(kuò)展功能,編寫JavaScript腳本,對數(shù)據(jù)進(jìn)行相應(yīng)的處理

執(zhí)行SQL腳本執(zhí)行SQL腳本,對數(shù)據(jù)進(jìn)行相應(yīng)的處理7.2Kettle的基本功能查詢

HTTPClient通過一個可以動態(tài)設(shè)定參數(shù)的基本網(wǎng)址調(diào)用HTTPWeb服務(wù)流查詢將目標(biāo)表讀取到內(nèi)存,通過查詢條件對內(nèi)存中的數(shù)據(jù)集進(jìn)行查詢數(shù)據(jù)庫查詢根據(jù)設(shè)定的查詢條件對目標(biāo)表進(jìn)行查詢,返回需要的結(jié)果字段連接

合并記錄合并兩個數(shù)據(jù)流,并根據(jù)某個關(guān)鍵字排序排序合并合并多個數(shù)據(jù)流,并且數(shù)據(jù)的行要基于某個關(guān)鍵字進(jìn)行排序作業(yè)

復(fù)制記錄到結(jié)果將數(shù)據(jù)寫入正在執(zhí)行的任務(wù)中獲取變量獲取環(huán)境或Kettle變量設(shè)置變量設(shè)置環(huán)境變量7.2Kettle的基本功能表7-2常用的作業(yè)控件及其相關(guān)說明作業(yè)類別步驟/控件相關(guān)說明通用

Start作業(yè)執(zhí)行的開始Dummy作業(yè)執(zhí)行的結(jié)束作業(yè)使用新的作業(yè)執(zhí)行之前已定義好的作業(yè)成功提示作業(yè)執(zhí)行成功轉(zhuǎn)換使用作業(yè)執(zhí)行之前已定義好的轉(zhuǎn)換流程郵件

POP收信通過設(shè)置好的POP服務(wù)器地址收取郵件發(fā)送郵件發(fā)送作業(yè)執(zhí)行成功或者失敗的郵件文件管理

創(chuàng)建文件創(chuàng)建一個新的文件,若文件名已經(jīng)存在,則提示創(chuàng)建失敗并退出刪除一個文件刪除指定文件名的文件,若不存在指定的文件名稱,則提示刪除失敗復(fù)制文件將源文件的內(nèi)容復(fù)制到新創(chuàng)建的文件中或替換已存在的文件比較文件比較兩個文件中的內(nèi)容移動文件將文件移動到另一個目錄下解壓縮文件將作業(yè)文件進(jìn)行解壓或壓縮操作7.2Kettle的基本功能條件

檢查表是否存在檢查數(shù)據(jù)庫中的數(shù)據(jù)表是否存在檢查一個文件是否存在檢查指定的文件是否存在腳本

JavaScript編寫JavaScript腳本,進(jìn)行相應(yīng)的數(shù)據(jù)處理Shell編寫Shell腳本,進(jìn)行相應(yīng)的數(shù)據(jù)處理SQL編寫SQL腳本,進(jìn)行相應(yīng)的數(shù)據(jù)處理批量加載

MySQL批量加載將本地文件中的數(shù)據(jù)批量加載到MySQL數(shù)據(jù)庫中SQLServer批量加載將本地文件中的數(shù)據(jù)批量加載到SQLServer數(shù)據(jù)庫中從MySQL批量導(dǎo)出到文件將MySQL數(shù)據(jù)庫中的數(shù)據(jù)批量導(dǎo)出到本地文件中7.3安裝Kettle7.3安裝Kettle在Windows系統(tǒng)中打開瀏覽器,訪問Kettle官網(wǎng)(/projects/pentaho/),下載Kettle安裝文件pdi-ce--324.zip。或者,也可以直接到教材官網(wǎng)的“下載專區(qū)”的“軟件”目錄中下載pdi-ce--324.zip文件。把pdi-ce--324.zip解壓縮到“D:\”目錄下(或者也可以選擇一個其他目錄,比如“C:\”),會生成一個“data-integration”目錄,該目錄下就包含了Kettle。在data-integration目錄里包含了Spoon的啟動文件,即spoon.bat,雙擊該文件就可以啟動Spoon,啟動界面如圖7-2所示。7.3安裝Kettle圖7-2Spoon啟動界面7.3安裝Kettle啟動成功以后的界面如圖7-3所示。圖7-3Spoon啟動以后的歡迎界面7.4數(shù)據(jù)抽取7.4數(shù)據(jù)抽取7.4.1把文本文件導(dǎo)入到Excel文件中7.4.2把文本文件導(dǎo)入MySQL數(shù)據(jù)庫中(請直接參考教材)7.4.3把Excel文件導(dǎo)入到MySQL數(shù)據(jù)庫中(請直接參考教材)7.4.1把文本文件導(dǎo)入到Excel文件中這里給出一個實例,演示如何使用Kettle把文本文件導(dǎo)入到Excel文件中,具體包括如下步驟:創(chuàng)建文本文件;建立轉(zhuǎn)換;設(shè)計轉(zhuǎn)換;執(zhí)行轉(zhuǎn)換。7.4.1把文本文件導(dǎo)入到Excel文件中1.創(chuàng)建文本文件在“D:\”目錄下新建一個文本文件studentinfo.txt,其內(nèi)容如圖7-4所示,文件的第1行是字段名稱,包括sno、name、sex和age,字段之間用“|”隔開,其余行都是記錄,字段之間也是用“|”隔開。圖7-4studentinfo.txt文件內(nèi)容7.4.1把文本文件導(dǎo)入到Excel文件中2.建立轉(zhuǎn)換在Spoon主界面的“主對象樹”欄目中,在“轉(zhuǎn)換”上面(如圖7-5所示)單擊鼠標(biāo)右鍵,在彈出的菜單中點擊“新建”。點擊Spoon主界面左上角的“保存”圖標(biāo),把這個轉(zhuǎn)換保存到某個路徑下并且名稱為“text_to_excel”。圖7-5新建“轉(zhuǎn)換”7.4.1把文本文件導(dǎo)入到Excel文件中3.設(shè)計轉(zhuǎn)換在“核心對象”欄目中,在“輸入”控件里把“文本文件輸入”拖到右側(cè)設(shè)計區(qū)域,然后在“輸出”控件里把“Excel輸出”拖到右側(cè)設(shè)計區(qū)域,然后為這兩個控件建立連線(如圖7-6所示),這里的連線就是前文介紹過的“跳”。為這兩個控件建立連線的方法是,按住鍵盤上的Shift鍵,然后用鼠標(biāo)左鍵單擊“文本文件輸入”控件圖標(biāo),再用鼠標(biāo)左鍵單擊“Excel輸出”控件圖標(biāo),最后在其他空白區(qū)域單擊鼠標(biāo)左鍵,這樣就建立了一條從“文本文件輸入”到“Excel輸出”的連線。圖7-6放置文本文件輸入和Excel輸出兩個控件7.4.1把文本文件導(dǎo)入到Excel文件中雙擊設(shè)計區(qū)域的“文本文件輸入”控件,打開設(shè)置界面,點擊“文件”選項卡,點擊“文件或目錄”右側(cè)的“瀏覽”按鈕(如圖7-7所示),把studentinfo.txt文件添加進(jìn)來,然后點擊“增加”按鈕,studentinfo.txt文件就會被增加到“選中的文件”中,增加后的效果如圖7-8所示。圖7-7添加文件7.4.1把文本文件導(dǎo)入到Excel文件中圖7-8添加文件以后的效果7.4.1把文本文件導(dǎo)入到Excel文件中圖7-9設(shè)置“內(nèi)容”選項卡7.4.1把文本文件導(dǎo)入到Excel文件中在“字段”選項卡中(如圖7-10所示),點擊“獲取字段”按鈕,會彈出如圖7-11所示的樣本數(shù)據(jù)行數(shù)設(shè)置界面,直接點擊“確定”按鈕,會得到如圖7-12所示結(jié)果。這時,點擊界面底部的“預(yù)覽記錄”,就可以看到如圖7-13所示的數(shù)據(jù)。最后,點擊界面底部的“確定”按鈕,完成文本文件輸入控件的設(shè)置。圖7-10設(shè)置“字段”選項卡7.4.1把文本文件導(dǎo)入到Excel文件中圖7-11設(shè)置樣本數(shù)據(jù)行數(shù)7.4.1把文本文件導(dǎo)入到Excel文件中圖7-12獲取字段以后的效果7.4.1把文本文件導(dǎo)入到Excel文件中圖7-13預(yù)覽記錄7.4.1把文本文件導(dǎo)入到Excel文件中雙擊設(shè)計區(qū)域的“Excel輸出”控件圖標(biāo),打開設(shè)置界面(如圖7-14所示),在“文件”選項卡中,設(shè)置“文件名”為“D:\file”。圖7-14設(shè)置文件名7.4.1把文本文件導(dǎo)入到Excel文件中在“字段”選項卡中(如圖7-15所示),點擊界面底部的“獲取字段”按鈕,成功獲取字段以后的效果如圖7-16所示,然后把“sno”和“age”字段的“格式”設(shè)置為“#”。最后,點擊“確定”按鈕完成“Excel輸出”控件的設(shè)置。全部設(shè)置完成以后,需要保存設(shè)計文件。圖7-15“字段”選項卡7.4.1把文本文件導(dǎo)入到Excel文件中圖7-16獲取字段后的效果7.4.1把文本文件導(dǎo)入到Excel文件中4.執(zhí)行轉(zhuǎn)換在轉(zhuǎn)換設(shè)計界面中(如圖7-17所示),點擊三角形按鈕開始執(zhí)行轉(zhuǎn)換,會彈出如圖7-18所示界面,在界面中點擊“啟動”,如果轉(zhuǎn)換執(zhí)行成功,會顯示如圖7-19所示的效果,在兩個控件圖標(biāo)上都會顯示綠色的勾號。這時,到D盤根目錄下就可以看到新生成的文件file.xls,可以使用Excel軟件打開file.xls查看內(nèi)容(如圖7-20所示)。圖7-17運(yùn)行轉(zhuǎn)換7.4.1把文本文件導(dǎo)入到Excel文件中圖7-18轉(zhuǎn)換啟動界面7.4.1把文本文件導(dǎo)入到Excel文件中圖7-19轉(zhuǎn)換執(zhí)行成功的效果7.4.1把文本文件導(dǎo)入到Excel文件中圖7-20file.xls文件內(nèi)容7.5數(shù)據(jù)清洗與轉(zhuǎn)換7.5數(shù)據(jù)清洗與轉(zhuǎn)換7.5.1使用Kettle實現(xiàn)數(shù)據(jù)排序7.5.2在Kettle中用正則表達(dá)式清洗數(shù)據(jù)(請直接參考教材)7.5.3使用Kettle去除缺失值(請直接參考教材)7.5.4使用Kettle轉(zhuǎn)化MySQL數(shù)據(jù)庫中的數(shù)據(jù)(請直接參考教材)7.5.1使用Kettle實現(xiàn)數(shù)據(jù)排序這里給出一個實例,演示如何使用Kettle實現(xiàn)數(shù)據(jù)排序,具體包括如下步驟:創(chuàng)建文本文件;建立轉(zhuǎn)換;設(shè)計轉(zhuǎn)換;執(zhí)行轉(zhuǎn)換。7.5.1使用Kettle實現(xiàn)數(shù)據(jù)排序1.創(chuàng)建文本文件在“D:\”目錄下新建一個文本文件score.txt,其內(nèi)容如圖7-51所示,文件的第1行是字段名稱,包括name和score,字段之間用分號隔開,其余行都是記錄,字段之間也是用分號隔開。圖7-51score.txt文件內(nèi)容7.5.1使用Kettle實現(xiàn)數(shù)據(jù)排序2.建立轉(zhuǎn)換在Spoon主界面的“主對象樹”欄目中,在“轉(zhuǎn)換”上面(如圖7-52所示)單擊鼠標(biāo)右鍵,在彈出的菜單中點擊“新建”。點擊Spoon主界面左上角的“保存”圖標(biāo),把這個轉(zhuǎn)換保存到某個路徑下并且名稱為“sort_data”。圖7-52新建“轉(zhuǎn)換”7.5.1使用Kettle實現(xiàn)數(shù)據(jù)排序3.設(shè)計轉(zhuǎn)換在“核心對象”欄目中,在“輸入”控件里把“文本文件輸入”拖到右側(cè)設(shè)計區(qū)域,然后在“轉(zhuǎn)換”控件里把“排序記錄”拖到右側(cè)設(shè)計區(qū)域,然后為這兩個控件建立連線(如圖7-53所示)。圖7-53放置文本文件輸入和排序記錄兩個控件7.5.1使用Kettle實現(xiàn)數(shù)據(jù)排序雙擊設(shè)計區(qū)域的“文本文件輸入”控件圖標(biāo),打開設(shè)置界面(如圖7-54所示),點擊“文件或目錄”右側(cè)的“瀏覽”按鈕,添加文件“D:\score.txt”,然后,點擊“增加”按鈕,執(zhí)行效果如圖7-55所示。圖7-54添加文件7.5.1使用Kettle實現(xiàn)數(shù)據(jù)排序圖7-55添加文件以后的效果7.5.1使用Kettle實現(xiàn)數(shù)據(jù)排序在“內(nèi)容”選項卡中,設(shè)置分隔符為分號“;”(如圖7-56所示)。圖7-56設(shè)置“內(nèi)容”選項卡7.5.1使用Kettle實現(xiàn)數(shù)據(jù)排序在“字段”選項卡中(如圖7-57所示),點擊“獲取字段”按鈕,成功獲取字段以后的效果如圖7-58所示。圖7-57獲取字段圖7-58獲取字段成功以后的效果7.5.1使用Kettle實現(xiàn)數(shù)據(jù)排序這時,點擊界面(如圖7-58所示)底部的“預(yù)覽記錄”按鈕,就可以預(yù)覽數(shù)據(jù)(如圖7-59所示)。最后,點擊界面底部的“確定”按鈕,完成“文本文件輸入”控件的設(shè)置。圖7-59預(yù)覽數(shù)據(jù)7.5.1使用Kettle實現(xiàn)數(shù)據(jù)排序雙擊設(shè)計區(qū)域的“排序記錄”控件圖標(biāo),打開設(shè)置界面(如圖7-60所示),在“字段名稱”下拉列表中選擇“score”,在“升序”下拉列表中選擇“是”,然后點擊“確定”按鈕完成設(shè)置。全部設(shè)置完成以后,需要保存設(shè)計文件。圖7-60排序記錄設(shè)置界面7.5.1使用Kettle實現(xiàn)數(shù)據(jù)排序4.執(zhí)行轉(zhuǎn)換在轉(zhuǎn)換設(shè)計界面中(如圖7-61所示),點擊三角形按鈕開始執(zhí)行轉(zhuǎn)換,在彈出的界面中點擊“啟動”,如果轉(zhuǎn)換執(zhí)行成功,會顯示如圖7-62所示的效果,在兩個控件圖標(biāo)上都會顯示綠色的勾號。這時,在“執(zhí)行結(jié)果”的“Previewdata”選項卡中就可以預(yù)覽排序后的數(shù)據(jù)(如圖7-63所示)。圖7-61運(yùn)行轉(zhuǎn)換圖7-62轉(zhuǎn)換執(zhí)行成功7.5.1使用Kettle實現(xiàn)數(shù)據(jù)排序圖7-63排序后的數(shù)據(jù)7.6數(shù)據(jù)加載7.6數(shù)據(jù)加載7.6.1把本地文件加載到HDFS中(請直接參考教材)7.6.2把HDFS文件加載到MySQL數(shù)據(jù)庫中7.6.2把HDFS文件加載到MySQL數(shù)據(jù)庫中這里給出一個實例,演示如何使用Kettle把HDFS文件導(dǎo)入到MySQL數(shù)據(jù)庫中,具體包括如下步驟:新建HDFS文件;創(chuàng)建數(shù)據(jù)庫;建立轉(zhuǎn)換;創(chuàng)建MySQL連接和Hadoop連接;設(shè)計轉(zhuǎn)換;執(zhí)行轉(zhuǎn)換。7.6.2把HDFS文件加載到MySQL數(shù)據(jù)庫中1.新建HDFS文件在Windows系統(tǒng)中打開一個cmd窗口,啟動Hadoop。在“D:\”目錄下新建一個文本文件student.txt,其內(nèi)容如圖7-140所示,文件的第1行是字段名稱,包括no、name、sex和age,字段之間用“|”隔開,其余行都是記錄,字段之間也是用“|”隔開。圖7-140student.txt文件內(nèi)容7.6.2把HDFS文件加載到MySQL數(shù)據(jù)庫中在cmd窗口中執(zhí)行如下命令,把本地文件student.txt上傳到HDFS系統(tǒng)的根目錄下:>cdc:\hadoop-3.1.3\bin>hadoopfs-putD:\book.txthdfs://localhost:9000/可以繼續(xù)執(zhí)行如下命令查看HDFS中student.txt的內(nèi)容:>hadoopfs-cathdfs://localhost:9000/student.txt或者,也可以打開瀏覽器,訪問“http://localhost:9870”,使用HDFS的WEB管理界面查看文件內(nèi)容。7.6.2把HDFS文件加載到MySQL數(shù)據(jù)庫中2.創(chuàng)建數(shù)據(jù)庫在Windows系統(tǒng)中啟動MySQL服務(wù),打開MySQL命令行客戶端,執(zhí)行如下SQL語句創(chuàng)建數(shù)據(jù)庫:CREATEDATABASEkettle;繼續(xù)執(zhí)行如下SQL語句創(chuàng)建student_table表:USEkettle;#------------創(chuàng)建表student_tableDROPTABLEIFEXISTSstudent_table;CREATETABLEstudent_table(noint,nameVARCHAR(10),sexVARCHAR(2),ageint);7.6.2把HDFS文件加載到MySQL數(shù)據(jù)庫中3.建立轉(zhuǎn)換在Spoon主界面的“主對象樹”欄目中,在“轉(zhuǎn)換”上面(如圖7-141所示)單擊鼠標(biāo)右鍵,在彈出的菜單中點擊“新建”。點擊Spoon主界面左上角的“保存”圖標(biāo),把這個轉(zhuǎn)換保存到某個路徑下并且名稱為“hdfs_to_mysql”。圖7-141新建“轉(zhuǎn)換”7.6.2把HDFS文件加載到MySQL數(shù)據(jù)庫中3.創(chuàng)建MySQL連接和Hadoop連接參照本章7.4.2節(jié)的內(nèi)容,建立一個名稱為“mysql”的數(shù)據(jù)庫連接(如圖7-142所示)。圖7-142建立數(shù)據(jù)庫連接7.6.2把HDFS文件加載到MySQL數(shù)據(jù)庫中參照本章7.6.1節(jié)的內(nèi)容,建立一個名稱為“Hadoop3”的Hadoop連接(如圖7-143所示)。圖7-143建立Hadoop連接7.6.2把HDFS文件加載到MySQL數(shù)據(jù)庫中4.設(shè)計轉(zhuǎn)換在Spoon主界面的“核心對象”的“BigData”里面,找到“Hadoopfileinput”控件,放置到設(shè)計區(qū)域,在“核心對象”的“輸出”里面,找到“表輸出”控件,放置到設(shè)計區(qū)域,為兩個控件建立連線(如圖7-144所示)。圖7-144放置“Hadoopfileinput”和“表輸出”控件7.6.2把HDFS文件加載到MySQL數(shù)據(jù)庫中在設(shè)計區(qū)域雙擊“Hadoopfileinput”控件圖標(biāo),打開設(shè)置界面(如圖7-145所示),用鼠標(biāo)點擊“Environment”下面的空白單元格,會出現(xiàn)如圖7-146所示的下拉列表,選中“Hadoop3”。圖7-145“Hadoopfileinput”設(shè)置界面7.6.2把HDFS文件加載到MySQL數(shù)據(jù)庫中圖7-146設(shè)置Environment7.6.2把HDFS文件加載到MySQL數(shù)據(jù)庫中點擊“File/Folder”下面的空白單元格,會出現(xiàn)如圖7-147所示的效果,點擊省略號按鈕,會彈出如圖7-148所示的界面,選中HDFS中的student.txt文件,點擊“OK”按鈕,返回到“Hadoopfileinput”設(shè)置界面。圖7-147設(shè)置File/Folder7.6.2把HDFS文件加載到MySQL數(shù)據(jù)庫中圖7-148選中HDFS中的student.txt文件7.6.2把HDFS文件加載到MySQL數(shù)據(jù)庫中點擊“Hadoopfileinput”設(shè)置界面的“內(nèi)容”選項卡,會出現(xiàn)如圖7-149所示的界面,“文件類型”選擇“CSV”,把“分隔符”設(shè)置為“|”,“頭部”后面的勾號選中,設(shè)置“頭部行數(shù)量”為1。圖7-149設(shè)置分隔符7.6.2把HDFS文件加載到My

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論