版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
數(shù)據(jù)的導入與導出新工科建設之路·數(shù)據(jù)科學與大數(shù)據(jù)系列樣本數(shù)據(jù)處理第三章01基于文件的數(shù)據(jù)導入與導出文本文件可能是使用ETL工具處理的最簡單的一種數(shù)據(jù)。文本文件易于交換,壓縮比高,任何文本編輯器都可打開??傮w來說,文本文件可分為兩類。(1)分隔符文件;(2)固定寬度文件?;谖募臄?shù)據(jù)導入與導出最基本的文本文件輸入步驟就是“CSV文件輸入”步驟。CSV文件是一種用分隔符分隔的文本文件。在處理這種文件之前,需要通過文本編輯器打開查看,以確定此文件的分隔符和字段。“CSV文件輸入”步驟和與之類似的“固定寬度文件輸入”步驟其實都是“文本文件輸入”步驟的簡化版,都不適合一次處理多個文件。這3個步驟是處理文本文件的首選步驟,“文本文件輸入”步驟具備的功能如下?;谖募臄?shù)據(jù)導入與導出①從前一個步驟讀取文件名。②一次運行讀取多個文件名。③從.zip或.gzip壓縮文件中讀取文件。④不用指定文件結構就可以顯示文件內容。⑤指定逃逸字符。⑥錯誤處理。⑦過濾。⑧指定本地化的日期格式。文本文件的導入與導出案例1.(1)轉換的輸入/輸出需求讀取student.csv文件,輸出固定寬度為12字節(jié)的student.txt文件。student.csv文件以逗號為分隔符,內容如圖3-2所示。文本文件的導入與導出案例期望輸出的student.txt文件的內容如圖3-3所示。文本文件的導入與導出案例(2)轉換的設計圖參考2.2.2節(jié)的操作,新建轉換文件,并開始可視化編程。該轉換所需要的步驟及步驟之間的連接流程如圖3-4所示。文本文件的導入與導出案例(3)步驟的配置“CS∨文件輸入”的配置如圖3-5所示。文本文件的導入與導出案例(4)運行轉換如圖3-9所示,單擊卜按鈕開始運行程序,在打開的對話框中單擊“啟動”按鈕運行此轉換。文本文件的導入與導出案例2.(1)轉換的輸入/輸出需求讀取通過“固定寬度文件輸入”的student.txt文件,輸出分隔符為分號(;)的stu.txt文件。student.txt為本節(jié)案例1的輸出文件,內容如圖3-10所示。文本文件的導入與導出案例期望輸出的stu.txt文件的內容如圖3-11所示。文本文件的導入與導出案例(2)轉換的設計圖參考2.2.2節(jié)的操作,新建轉換文件,并開始可視化編程。該轉換所需要的步驟及步驟之間的連接流程如圖3-12所示。文本文件的導入與導出案例(3)步驟的配置“固定寬度文件輸入”的配置如圖3-13所示。文本文件的導入與導出案例4)運行轉換如圖3-17所示,單擊按鈕開始運行程序,在打開的對話框中,單擊“啟動”按鈕運行此轉換。Excel文件的導入與導出Excel的數(shù)據(jù)可分為結構化的表格數(shù)據(jù)和非結構化的表格數(shù)據(jù)。對于非結構化的表格數(shù)據(jù),有可能表里包含多個字段值的列或者重復的一組字段等。使用Kettle讀取后還需要轉化為結構化的表格數(shù)據(jù),才能進一步處理,而且,Excel作為常用的辦公軟件,很難規(guī)范所有的人員按數(shù)據(jù)的格式要求,規(guī)范地輸入數(shù)據(jù)。因此,在數(shù)據(jù)導入時,應盡量避免把Excel文件作為輸入數(shù)據(jù)源。Excel文件的導入與導出案例1.轉換的輸入/輸出需求讀取student.xlsx文件,輸出分隔符為逗號的student.csv文件和名為stuout.xlsx的文件。student.xlsx文件的內容如圖3-18所示。Excel文件的導入與導出案例輸出的student.csv文件的內容如圖3-19所示。Excel文件的導入與導出案例2.轉換的設計圖參考2.2.2節(jié)的操作,新建轉換文件,并開始可視化編程。該轉換所需要的步驟及步驟之間的連接流程如圖3-20所示。Excel文件的導入與導出案例3.步驟的配置“文件”選項卡的配置如圖3-21所示。Excel文件的導入與導出案例“其他輸出字段”選項卡的配置如圖3-29所示,采用默認配置即可。Excel文件的導入與導出案例4.運行轉換如圖3-35所示,單擊按鈕開始運行程序,在打開的對話框中單擊“啟動”按鈕運行此轉換。XML是擴展標識語言(eXtensibleMarkupLanguage)的縮寫,是一種在平面文本文件中定義數(shù)據(jù)結構和內容的開放標準。在互聯(lián)網上,很多軟件和系統(tǒng)都使用XML格式來交換數(shù)據(jù),這使XML格式的文件非常流行。XML實際上是文本文件,它可以使用NotePad、vi等文本編輯器打開。XML文件的導入與導出XML文件不是普通的文本文件,而是一種遵循規(guī)范的半結構化的文本文件。關于XML的語法規(guī)則及相關的知識內容,本書不進行介紹,請不熟悉的讀者自找資料完成XML相關知識的學習。XML文件的導入與導出案例1.轉換的輸入/輸出需求讀取XML文件.XML文件,輸出XmltoExcel.xlsx文件和xmlout.xml文件。XML文件.XML文件的內容如圖3-36所示。XML文件的導入與導出案例輸出的XmltoExcel.xlsx文件的內容如圖3-37所示。XML文件的導入與導出案例輸出的xmlout.xml文件的內容如圖3-38所示。XML文件的導入與導出案例2.轉換的設計圖參考2.2.2節(jié)的操作,新建轉換文件,并開始可視化編程。該轉換所需要的步驟及步驟之間的連接流程如圖3-39所示。XML文件的導入與導出案例3.步驟的配置“文件”選項卡的配置如圖3-40所示。XML文件的導入與導出案例4.運行轉換如圖3-48所示,單擊按鈕開始運行程序,在打開的對話框中單擊“啟動”按鈕運行此轉換。JSON(JavaScriptObjectNotation)是目前Web應用中使用越來越多的一種數(shù)據(jù)交換標準,甚至超過XML格式。JSON格式最初由DouglasCrockford提出,關于JSON的更多描述請參考JSON的官方網站。對JSON文件,Kettle可以用“JSONInput”和“JSONOutput”步驟完成文件的讀取與輸出。JSON文件的導入與導出JSON文件的導入與導出案例1.轉換的輸入/輸出需求JsonToExcel.xlsx文件的內容如圖3-50所示。JSON文件的導入與導出案例2.轉換的設計圖參考2.2.2節(jié)的操作,新建轉換文件,并開始可視化編程。該轉換所需要的步驟及步驟之間的連接流程如圖3-51所示。JSON文件的導入與導出案例3.步驟的配置“文件”選項卡的配置如圖3-52所示。JSON文件的導入與導出案例4.運行轉換如圖3-58所示,單擊按鈕開始運行程序,在彈出的對話框中單擊“啟動”按鈕運行此轉換。02基于數(shù)據(jù)庫的數(shù)據(jù)導入與導出連接名稱:設定一個在作業(yè)或轉換范圍內唯一的名稱。連接類型:從數(shù)據(jù)庫列表中選擇要連接的數(shù)據(jù)庫類型。連接方式:在列表里可以選擇可用的連接方式。關系數(shù)據(jù)庫的數(shù)據(jù)導入與導出關系數(shù)據(jù)庫的數(shù)據(jù)導入與導出(1)主機名稱:數(shù)據(jù)庫服務器的主機名稱或IP地址。(2)數(shù)據(jù)庫名稱:要訪問的數(shù)據(jù)庫的名稱。(3)端口號:默認是選中的數(shù)據(jù)庫服務器的默認端口號。(4)用戶名和密碼:數(shù)據(jù)庫服務器的用戶名和密碼?!耙话恪边x項卡常用的連接參數(shù)如下MySQL數(shù)據(jù)庫的數(shù)據(jù)導入與導出案例1.轉換的輸入/輸出需求期望輸出的StuOut表的內容如圖3-63所示。MySQL數(shù)據(jù)庫的數(shù)據(jù)導入與導出案例2.轉換的設計圖參考2.2.2節(jié)的操作,新建轉換文件,并開始可視化編程。該轉換所需要的步驟及步驟之間的連接流程如圖3-64所示。MySQL數(shù)據(jù)庫的數(shù)據(jù)導入與導出案例3.步驟的配置“元數(shù)據(jù)”選項卡的配置如圖3-65所示。MySQL數(shù)據(jù)庫的數(shù)據(jù)導入與導出案例4.運行轉換如圖3-78所示,單擊按鈕開始運行程序,在打開的對話框中單擊“啟動”按鈕運行此轉換。03基于Web的數(shù)據(jù)導入與導出Kettle提供了“HTTPClient”和“HTTPPost”步驟從Web獲取數(shù)據(jù)?!癏TTPClient”步驟發(fā)出一個HTTPGET請求或者直接訪問HTML頁面,調用此步驟里的URL從Web獲取數(shù)據(jù)。HTTPGET請求主要從服務器獲取數(shù)據(jù),不會對服務器數(shù)據(jù)進行更改。最常見的HTTPGET請求就是頁面里的各種查詢操作。基于Web的數(shù)據(jù)導入與導出“HTTPPost”步驟發(fā)出一個HTTPPOST請求,調用此步驟里的URL從Web獲取數(shù)據(jù)。HTTPPOST請求主要向服務器提交數(shù)據(jù),對服務器端的數(shù)據(jù)有影響。最常見的HTTPPOST請求就是用戶登錄操作,以及各種修改操作。該步驟可以通過HTTPPOST請求把參數(shù)作為消息體進行提交,也可以把整個文件作為消息體進行提交。HTML數(shù)據(jù)的導入與導出1.轉換的輸入/輸出需求讀取數(shù)據(jù),輸出HTML源碼并保存在E:教材案例\第3章\webout.html文件中。其中,需要注意網頁的字符編碼(見圖3-79)。HTML數(shù)據(jù)的導入與導出2.轉換的設計圖參考2.2.2節(jié)的操作,新建轉換文件,并開始可視化編程。該轉換所需要的步驟及步驟之間的連接流程如圖3-81所示。HTML數(shù)據(jù)的導入與導出3.步驟的配置在“數(shù)據(jù)”選項卡中,WebURL的值按案例的需求填入目標分析地址,如圖3-82所示。HTML數(shù)據(jù)的導入與導出4.運行轉換如圖3-87所示,單擊按鈕開始運行程序,在打開的對話框中單擊“啟動”按鈕運行此轉換。HTTPGET請求返回的結構化數(shù)據(jù)主要有XML和JSON,本例使用的API返回的是JSON格式的數(shù)據(jù)。通過對返回數(shù)據(jù)的后續(xù)處理,我們可以獲取需要的數(shù)據(jù)。基于HTTPGET請求的導入與導出基于HTTPGET請求的導入與導出案例1.轉換的輸入/輸出需求期望輸出的httpGetJson.xls文件的內容如圖3-88所示。基于HTTPGET請求的導入與導出案例2.轉換的設計圖參考2.2.2節(jié)的操作,新建轉換文件,并開始可視化編程。該轉換所需要的步驟及步驟之間的連接流程如圖3-89所示?;贖TTPGET請求的導入與導出案例3.步驟的配置配置完的效果如圖3-90所示?;贖TTPGET請求的導入與導出案例4.運行轉換單擊按鈕開始運行程序,在打開的對話框(見圖3-94)中單擊“啟動”按鈕運行此轉換。04基于CDC變更數(shù)據(jù)的導入與導出時間戳這種屬性列最少需要一個更新時間,最好有兩個時間,即一個插入時間和一個更新時間。自增序列大多數(shù)據(jù)庫都有自增序列,如果數(shù)據(jù)庫表中使用了這種序列,就可以通過序列識別出新插入的數(shù)據(jù)。基于源數(shù)據(jù)的CDC基于源數(shù)據(jù)的CDC案例1.(1)轉換的輸入/輸出需求其中,輸入數(shù)據(jù)studentcdc表的內容如圖3-95所示。基于源數(shù)據(jù)的CDC案例(2)轉換的設計圖參考2.2.2節(jié)的操作,新建轉換文件,并開始可視化編程。該轉換所需要的步驟及步驟之間的連接流程如圖3-101所示?;谠磾?shù)據(jù)的CDC案例(3)步驟的配置在當前轉換畫布上空白的地方單擊鼠標右鍵,在彈出的快捷菜單中選擇“轉換設置CTL-L”命令,打開“轉換屬性”對話框,在“命名參數(shù)”選項卡中配置命名參數(shù)的名字(curtime)和默認值(2018-08-04),如圖3-102所示?;谠磾?shù)據(jù)的CDC案例(4)運行轉換單擊按鈕開始運行程序,在打開的對話框中設置命名參數(shù)“curtime”的“值”為“2018-08-06”,如圖3-107所示。基于源數(shù)據(jù)的CDC案例(2)轉換的設計圖參考2.2.2節(jié)的操作,新建轉換文件,并開始可視化編程。該轉換所需要的步驟及步驟之間的連接流程如圖3-114所示?;谠磾?shù)據(jù)的CDC案例(3)步驟的配置在當前轉換畫布上空白的地方單擊鼠標右鍵,在彈出的快捷菜單中選擇“轉換設置CTL-L”命令,系統(tǒng)打開“轉換屬性”對話框。在“命名參數(shù)”選項卡中配置命名參數(shù)的名字(cur_no)和默認值(1),如圖3-115所示?;谠磾?shù)據(jù)的CDC案例(4)運行轉換單擊按鈕開始運行程序,系統(tǒng)打開“執(zhí)行轉換”對話框,單擊“命令參數(shù)”選項卡,設置命名參數(shù)“cur_no”的“值”為“2”,如圖3-120所示。當INSERT、UPDATE、DELETE等SQL執(zhí)行時,系統(tǒng)會觸發(fā)數(shù)據(jù)庫自有的觸發(fā)器,并執(zhí)行某些動作。一般的設計思路是源表進行INSERT、UPDATE、DELETE操作時,利用數(shù)據(jù)庫自有的觸發(fā)器,將操作的數(shù)據(jù)記錄到日志表中,根據(jù)日志表的記錄對目標表進行相應的處理。因為要變動源數(shù)據(jù)庫,服務協(xié)議或者數(shù)據(jù)庫管理員不允許,所以在大多數(shù)情況下,系統(tǒng)不允許向數(shù)據(jù)添加觸發(fā)器,而且變動源數(shù)據(jù)庫還會降低系統(tǒng)的性能,因此人們較少使用這種方法?;谟|發(fā)器的CDC基于觸發(fā)器的CDC案例1.(1)轉換的輸入/輸出需求期望輸出的student_cdcsync表的內容如圖3-123所示。基于觸發(fā)器的CDC案例(2)轉換的設計圖參考2.2.2節(jié)的操作,新建轉換文件,并開始可視化編程。該轉換所需要的步驟及步驟之間的連接流程如圖3-124所示?;谟|發(fā)器的CDC案例(3)步驟的配置“CDC日志表輸入”的配置如圖3-125所示?;谟|發(fā)器的CDC案例(4)運行轉換單擊按鈕開始運行程序,系統(tǒng)打開“執(zhí)行轉換”對話框(見圖3-129),單擊“啟動”按鈕運行此轉換。如果源數(shù)據(jù)中沒有時間戳,又不能使用觸發(fā)器,就可以使用不同版本的快照表進行對比,來獲得數(shù)據(jù)的增量變化。我們將源數(shù)據(jù)中的所有數(shù)據(jù)加載到數(shù)據(jù)倉庫的緩沖區(qū)形成源數(shù)據(jù)的第一個快照版本,下一次需要同步時,再將源數(shù)據(jù)的所有數(shù)據(jù)加載到數(shù)據(jù)倉庫的緩沖區(qū)形成源數(shù)據(jù)的第二個快照版本,然后比較這兩個版本的數(shù)據(jù),就可以找到增量變化。基于快照的CDCKettle里的“合并記錄”就可以用來比較兩個表的差異。這個步驟讀取兩個使用關鍵字排序的輸入流數(shù)據(jù),并根據(jù)輸入流里的關鍵字比較其他字段?;诳煺盏腃DC案例1.轉換的輸入/輸出需求期望輸出的studentcdcsync表的內容如圖3-143所示?;诳煺盏腃DC案例2.轉換的設計圖參考2.2.2節(jié)的操作,新建轉換文件,并開始可視化編程。該轉換所需要的步驟及步驟之間的連接流程如圖3-144所示。基于快照的CDC案例3.步驟的配置“快照1輸入”的配置如圖3-145所示?;诳煺盏腃DC案例4.運行轉換如圖3-143所示?;谌罩镜姆绞绞亲罡呒壍?、最沒有侵入性的CDC方法。數(shù)據(jù)庫會把插入、更新、刪除操作都記入日志中。MySQL提供了一個日志讀取工具一MySQLbinlog。這個工具可以把二進制的日志格式轉換為可以理解的格式,然后就可以把這種格式保存到文本文件中。我們可以在MySQLbinlog中設置開始/截止時間戳,這樣就可以從日志中讀取一段時間的日志。另外,日志中的每一項都有相應的序列號,也可以作為偏移的依據(jù)。MySQL提供了以上兩種方式,來防止CDC過程發(fā)生數(shù)據(jù)重復和丟失?;谌罩镜腃DC把MySQLbinlog的輸出寫到文本文件后,我們就可以使用Kettle步驟來讀取文件的內容。其他的數(shù)據(jù)庫也有相應的方法。使用基于日志的CDC也有其缺點,那就是只能用來處理一種特定的數(shù)據(jù)庫。如果要在異構的數(shù)據(jù)庫環(huán)境使用基于日志的CDC,就需要使用類似OracleGoldenGate的商業(yè)軟件,而這些軟件的價格都十分高昂。基于日志的CDC基于日志的CDC案例1.轉換的輸入/輸出需求期望輸出的student_cdc_sync表的內容如圖3-149所示。基于日志的CDC案例2.轉換的設計圖參考2.2.2節(jié)的操作,新建轉換文件,并開始可視化編程。該轉換所需要的步驟及步驟之間的連接流程如圖3-150所示。基于日志的CDC案例3.步驟的配置“讀入SQL文件”的配置如圖3-151所示?;谌罩镜腃DC案例4.運行轉換單擊按鈕開始運行程序,在打開的對話框(見圖3-129)中單擊“啟動”按鈕運行此轉換,系統(tǒng)將執(zhí)行替換后的SQL,studentcdcsync表的內容如圖3-149所示。數(shù)據(jù)清洗新工科建設之路·數(shù)據(jù)科學與大數(shù)據(jù)系列樣本數(shù)據(jù)處理第四章01數(shù)據(jù)清洗概述Kettle里沒有單一的數(shù)據(jù)清洗步驟,很多數(shù)據(jù)清洗工作都需要結合多個步驟來組合完成。數(shù)據(jù)清洗工作從抽取數(shù)據(jù)時就開始,在很多輸入步驟中都可以設置特定的數(shù)據(jù)格式,按照特定的數(shù)據(jù)格式來讀取數(shù)據(jù)。示例代碼是從一張studentinfo表中抽取studentid和score兩個字段,并按score字段降序排列得到的。Kettle常用的數(shù)據(jù)清洗步驟注意:首先,如果SQL語句太過復雜,就會導致以后的維護工作非常困難;其次,如果數(shù)據(jù)在進入Kettle時已經做過清理,那么ETL便不能提供數(shù)據(jù)審計的功能。因此,是需要原樣讀入數(shù)據(jù),還是利用SQL在數(shù)據(jù)抽取時清理,需要用戶在效率和可維護性之間進行平衡。這里主要介紹Kettle在轉換(Transform)目錄下提供的數(shù)據(jù)清洗步驟。這是一個功能豐富的步驟,它提供了很多預定義的函數(shù)來處理輸入字段,并且隨著版本的更新還在不斷增加。計算器從字面上看很簡單,只有了解到這個步驟可以支持正則表達式時,才會真正感受到它的強大之處。字符串替換Kettle常用的數(shù)據(jù)清洗步驟該步驟提供了很多常規(guī)的字符操作,如大小寫轉換,字符填充、移除空白字符等。字段選擇剪切字符串。字符串剪切這3個步驟通過使用分隔符來拆分、合并字段。拆分字段、合并字段和拆分字段成多行Kettle常用的數(shù)據(jù)清洗步驟該步驟使用一個標準的值來替換字段里的其他值。值映射該步驟可以對字段進行選擇、刪除、重命名等操作,還可以更改字段的數(shù)據(jù)類型、長度和精度等元數(shù)據(jù)。字段選擇這兩個步驟主要通過指定字段來清除重復記錄。去除重復記錄和去除重復記錄Kettle常用的數(shù)據(jù)清洗步驟字符串清理“DataGrid”的元數(shù)據(jù)如圖4-1所示。字符串清理另外輸入一組示例數(shù)據(jù),內容如圖4-2所示。字符串清理“Stringoperations”的具體設置如圖4-3所示。字符串清理清理步驟設置完畢。為了展示結果,我們使用一個“MicrosoftExcelOutput”步驟輸出清理后的結果。"MicrosoftExcelOutput”步驟的設置方法前面已經講過,這里不再贅述。這時整個轉換流程如圖4-4所示。字符串清理執(zhí)行string_op轉換,打開輸出文件,可以看到如圖4-5所示的結果。字符串清理這時將這個步驟添加到“Stringoperations”步驟和“MicrosoftExcelOutput”步驟之間,string_op轉換的流程變成如圖4-7所示的流程。字符串清理執(zhí)行轉換并打開輸出文件,可以看到如圖4-8所示的結果。字符串清理“Stringscut”的具體設置如圖4-9所示。字符串清理組合幾個步驟后,string_op轉換的最終流程如圖4-10所示。字符串清理執(zhí)行上面的轉換,系統(tǒng)將得出最終結果,如圖4-11所示。關于字段清理,這里簡單介紹4個常用步驟:“拆分字段成多行(Splitfiledtorows)"、“拆分字段(SplitFields)”、“合并字段(ConcatFields)”和“字段選擇(Selectvalues)"。字段清理字段清理“Splitfiledtorows”步驟新建一個轉換,命名為field_op,同樣使用“DataGrid”步驟作為輸入,設計一個表格,記錄編號、省份、城市,如圖4-12所示。字段清理表格設計完成后,輸入一組示例數(shù)據(jù),如圖4-13所示。字段清理這里我們就用這個正則表達式來作為分隔符“Splitfieldtorows"的具體設置如圖4-14所示。字段清理同樣選擇輸出一個Excel文件,整個轉換的流程如圖4-15所示。字段清理這時查看結果,可以發(fā)現(xiàn)數(shù)據(jù)增加了一個字段“城市New”,具體結果如圖4-16所示。字段清理“SplitFields”步驟和“ConcatFields”步驟具體設置如圖4-17所示。字段清理對該步驟的結果同樣用Excel輸出。field_op_1轉換的流程如圖4-18所示。字段清理執(zhí)行轉換,“SplitFields”的輸出結果如圖4-19所示。字段清理具體設置如圖4-20所示。字段清理同樣選擇Excel作為輸出步驟,field_op_1轉換的流程如圖4-21所示。字段清理執(zhí)行轉換,“ConcatFields”的具體結果如圖4-22所示。字段清理“Selectvalues”步驟元數(shù)據(jù)設置成如圖4-23所示的結構。字段清理對“DataGrid”步驟輸入一組示例數(shù)據(jù),如圖4-24所示。字段清理我們可以在該頁面上添加“Age”字段將其刪除,具體設置如圖4-25所示。字段清理單擊“Quick
launch”按鈕,這里會看到如圖4-26所示的結果。字段清理具體設置如圖4-27所示。字段清理預覽該步驟,可以查看到如圖4-28所示的結果。字段清理具體設置如圖4-29所示。字段清理預覽該步驟,可以查看到如圖4-30所示的最終清理結果。使用參照表清理數(shù)據(jù)在某些場合,我們無法直接從當前表中識別出數(shù)據(jù)的錯誤。在某些場合,我們無法直接從當前表中識別出數(shù)據(jù)的錯誤。例如,客戶信息表包含客戶的郵編、城市及其他信息,但錄入時可能出現(xiàn)城市與郵編不一致的情況,這時就需要訪問外部的一些參照數(shù)據(jù)來檢查和修正這些錯誤。外部的參照數(shù)據(jù)里的信息是完整的、標準的,也稱這些參照數(shù)據(jù)為主數(shù)據(jù)。外部的這些主數(shù)據(jù)從何而來?主數(shù)據(jù)一般都有相應的公司對其進行銷售和維護,當然也有極少的主數(shù)據(jù)是可以免費下載的。使用參照表校驗數(shù)據(jù)的準確性參照表的用途很多,其中最常見的用法就是用參照表來做查詢和校驗。使用參照表使數(shù)據(jù)一致不同的系統(tǒng)對性別的記錄可能都不一樣,有的系統(tǒng)用M表示男,用F表示女;有的系統(tǒng)用數(shù)字0表示男,用1表示女,或者用1表示男,用2表示女;而有的系統(tǒng)則用Male和Female分別表示男和女。對未知性別的表示也不盡相同,用Unknown、0、NULL、U等都可以表示。使用參照表清理數(shù)據(jù)在Kettle7.1中,校驗目錄下有以下4個步驟。(1)數(shù)據(jù)校驗(DataValidator)。(2)信用卡校驗(CreditCardValidator)。(3)電子郵箱校驗(MailValidator)。(4)XML文件校驗(XMLValidator)。后3個步驟都是功能相對“單一”的步驟。所謂單一,并不是指功能簡單,而是指針對性很強。數(shù)據(jù)校驗可以給一列設置多個約束:有的列可能需要多個約束,該步驟不會限制在同一列上設置幾個約束。錯誤合并:將一行數(shù)據(jù)里的所有錯誤通過分隔符連接,合并成一個字符串,保存到錯誤描述字段中。校驗數(shù)據(jù)類型:當輸入的是日期類型的數(shù)據(jù)或者字符串格式的數(shù)值時非常有用,可以設置掩碼,找到非法數(shù)據(jù)。約束條件參數(shù)化:幾乎所有的約束條件都可以參數(shù)化。正則表達式:支持功能強大且靈活的正則匹配。數(shù)據(jù)校驗02數(shù)據(jù)排重現(xiàn)實世界中的一個實體,理論上在數(shù)據(jù)庫或者數(shù)據(jù)倉庫中應該只有一條與之對應的記錄。很多原因(如數(shù)據(jù)錄入出錯、數(shù)據(jù)不完整、數(shù)據(jù)縮寫,以及多個數(shù)據(jù)集成過程中不同系統(tǒng)對數(shù)據(jù)的表示不盡相同)會導致集成后同一實體對應多條記錄。在數(shù)據(jù)清洗的過程中,重復記錄的檢測與清除是一項非常重要的工作。如何識別重復數(shù)據(jù)重復數(shù)據(jù)分為兩類,一類是完全重復數(shù)據(jù),另一類是不完全重復數(shù)據(jù)。完全重復數(shù)據(jù)很好理解,就是兩個數(shù)據(jù)行的數(shù)據(jù)完全一致,這類重復數(shù)據(jù)很好辨別,也很容易清除。對于完全重復數(shù)據(jù),一個最簡單的方式就是對數(shù)據(jù)集排序,然后通過比較相鄰記錄進行合并,Kettle的“Sortrows(記錄排序)”步驟可以用于排序。Kettle有兩個去除重復記錄的步驟“Uniquerows(去除重復記錄)”和“Uniquerows(HashSet)(去除重復記錄(哈希值))"。前一個步驟只能針對有序記錄去重,后一個步驟不需要。如何識別重復數(shù)據(jù)對于不完全重復數(shù)據(jù),檢查可能的重復記錄需要保證有充足的計算能力,因為檢查一條記錄就需要遍歷整個數(shù)據(jù)集,也就是說對整個數(shù)據(jù)集的檢查需要在所有記錄之間進行兩兩匹配,其計算復雜度為O(n2)。對可能重復記錄的檢測需要使用模糊匹配的邏輯,它可以計算字符串的相似度。首先通過模糊匹配找出疑似重復的數(shù)據(jù),然后結合其他參考字段做數(shù)據(jù)排重。相同點“Redirectduplicaterow":選中該選項后,需要對該步驟進行錯誤處理,否則一旦有重復記錄,系統(tǒng)將會以出錯處理。相同點“Fieldstocompare":設置哪些字段參與比較。若留空,則表示整條記錄參與比較。去除完全重復數(shù)據(jù)選項只在“Uniquerows(HashSet)”步驟中有設置,選中該選項后
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《域名的商業(yè)價值》課件
- 2024民法典實施后住宅小區(qū)綠化養(yǎng)護服務合同3篇
- 2024某酒店與旅游公司之間的旅游服務合同
- 2024年渣土運輸車分時租賃協(xié)議3篇
- 2024微商虛擬貨幣交易合作協(xié)議3篇
- 2024年車輛股權分割轉讓協(xié)議樣本版B版
- 2024年版智能停車場建設與運營合同
- 2024投標書城市更新改造項目合同范本3篇
- 2024智能語音交互系統(tǒng)研發(fā)與商業(yè)化合同
- 2024年實習生職業(yè)素養(yǎng)培養(yǎng)實習協(xié)議書3篇
- 品質總監(jiān)述職報告
- 2024年中信金屬股份有限公司招聘筆試參考題庫附帶答案詳解
- 山東省淄博市2022-2023學年高一上學期期末數(shù)學試題含答案
- 7【題組七】雙變量的恒成立與存在性問題
- 2023年1月自考11749商務管理綜合應用試題及答案
- 汽車制造整車AUDIT質量評審
- 非洲豬瘟防控難點與對策
- 教師如何管理和控制自己的情緒
- 《中外歷史綱要(上)》全冊單元知識點高頻考點
- (完整版)庭審筆錄(刑事普通程序)
- 耳鳴耳聾-疾病研究白皮書
評論
0/150
提交評論