版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
數(shù)據(jù)清洗第一章概論1.1數(shù)據(jù)清洗概述1.2數(shù)據(jù)標(biāo)準(zhǔn)化1.3數(shù)據(jù)倉庫習(xí)題1.1數(shù)據(jù)清洗概述1.1.1數(shù)據(jù)科學(xué)過程●數(shù)據(jù)科學(xué)則是一門新興的以數(shù)據(jù)為研究中心的學(xué)科。作為一門學(xué)科,數(shù)據(jù)科學(xué)以數(shù)據(jù)的廣泛性和多樣性為基礎(chǔ),探尋數(shù)據(jù)研究的共性?!?/p>
數(shù)據(jù)科學(xué)是一門關(guān)于數(shù)據(jù)的工程,它需要同時具備理論基礎(chǔ)和工程經(jīng)驗,需要掌握各種工具的用法。數(shù)據(jù)科學(xué)主要包括兩個方面:用數(shù)據(jù)的方法來研究科學(xué)和用科學(xué)的方法來研究數(shù)據(jù)?!?/p>
數(shù)據(jù)清洗是數(shù)據(jù)科學(xué)家完成數(shù)據(jù)分析和處理任務(wù)過程中必須面對的重要一環(huán)。具體來說,數(shù)據(jù)科學(xué)的一般處理過程包括如下幾個步驟:問題陳述,明確需要解決的問題和任務(wù)。數(shù)據(jù)收集與存儲,通過多種手段采集和存放來自眾多數(shù)據(jù)源的數(shù)據(jù)。數(shù)據(jù)清洗,對數(shù)據(jù)進行針對性地整理和規(guī)范以便于后面的分析和處理。數(shù)據(jù)分析和挖掘,運用特定模型和算法來尋求數(shù)據(jù)中隱含的知識和規(guī)律。數(shù)據(jù)呈現(xiàn)和可視化,以恰當(dāng)?shù)姆绞匠绦驍?shù)據(jù)分析和挖掘的結(jié)果??茖W(xué)決策:根據(jù)數(shù)據(jù)分析和處理結(jié)果來決定問題的解決方案。1.1.2數(shù)據(jù)清洗定義●來自多樣化數(shù)據(jù)源的數(shù)據(jù)內(nèi)容并不完美,存在著許多“臟數(shù)據(jù)”,即數(shù)據(jù)不完整有缺失、存在錯誤和重復(fù)的數(shù)據(jù),數(shù)據(jù)的不一致和沖突等缺陷。數(shù)據(jù)清洗(DataCleaning/Cleansing)對數(shù)據(jù)進行審查和校驗,發(fā)現(xiàn)不準(zhǔn)確、不完整或不合理數(shù)據(jù),進而刪除重復(fù)信息、糾正存在的錯誤,并保持數(shù)據(jù)的一致性、精確性、完整性和有效性以提高數(shù)據(jù)的質(zhì)量?!駭?shù)據(jù)清洗并沒有統(tǒng)一的定義,其定義依賴于具體的應(yīng)用領(lǐng)域。從廣義上講,數(shù)據(jù)清洗是將原始數(shù)據(jù)進行精簡以去除冗余和消除不一致,并使剩余的數(shù)據(jù)轉(zhuǎn)換成可接收的標(biāo)準(zhǔn)格式的過程;而狹義上的數(shù)據(jù)清洗特指在構(gòu)建數(shù)據(jù)倉庫和實現(xiàn)數(shù)據(jù)挖掘前對數(shù)據(jù)源進行處理,使數(shù)據(jù)實現(xiàn)準(zhǔn)確性、完整性、一致性、唯一性和有效性以適應(yīng)后續(xù)操作的過程。一般而言,凡是有助于提高信息系統(tǒng)數(shù)據(jù)質(zhì)量的處理過程,都可認為是數(shù)據(jù)清洗。1.1數(shù)據(jù)清洗概述1.1.3數(shù)據(jù)清洗任務(wù)●數(shù)據(jù)清洗就是對原始數(shù)據(jù)進行重新審查和校驗的過程,目的在于刪除重復(fù)信息、糾正存在的錯誤,并使得數(shù)據(jù)保持精確性、完整性、一致性、有效性及唯一性,還可能涉及數(shù)據(jù)的分解和重組,最終將原始數(shù)據(jù)轉(zhuǎn)換為滿足數(shù)據(jù)質(zhì)量或應(yīng)用要求的數(shù)據(jù)?!?/p>
數(shù)據(jù)清洗對保持數(shù)據(jù)的一致和更新起著重要的作用,因此被用于如銀行、保險、零售、電信和交通的多個行業(yè)[3]。數(shù)據(jù)清洗主要有三個應(yīng)用領(lǐng)域:數(shù)據(jù)倉庫(DataWarehouse,DW)、數(shù)據(jù)庫中知識的發(fā)現(xiàn)(KnowledgeDiscoveryinDatabase,KDD)和數(shù)據(jù)質(zhì)量管理(DataQualityManagement,DQM)?!駭?shù)據(jù)清洗對隨后的數(shù)據(jù)分析非常重要,因為它能提高數(shù)據(jù)分析的準(zhǔn)確性。但是數(shù)據(jù)清洗依賴復(fù)雜的關(guān)系模型,會帶來額外的計算和延遲開銷,必須在數(shù)據(jù)清洗模型的復(fù)雜性和分析結(jié)果的準(zhǔn)確性之間進行平衡。1.1數(shù)據(jù)清洗概述1.1.4數(shù)據(jù)清洗流程●數(shù)據(jù)清洗通過分析“臟數(shù)據(jù)”的產(chǎn)生原因和存在形式,利用數(shù)據(jù)溯源的思想,從“臟數(shù)據(jù)”產(chǎn)生的源頭開始分析數(shù)據(jù),對數(shù)據(jù)流經(jīng)環(huán)節(jié)進行考察,提取數(shù)據(jù)清洗的規(guī)則和策略,對原始數(shù)據(jù)集應(yīng)用數(shù)據(jù)清洗規(guī)則和策略來發(fā)現(xiàn)“臟數(shù)據(jù)”并通過特定的清洗算法來清洗“臟數(shù)據(jù)”,從而得到滿足預(yù)期要求的數(shù)據(jù)。具體而言,數(shù)據(jù)清洗流程包含以下基本步驟:1.1數(shù)據(jù)清洗概述1.分析數(shù)據(jù)并定義清洗規(guī)則2.搜尋并標(biāo)識錯誤實例3.糾正發(fā)現(xiàn)的錯誤4.干凈數(shù)據(jù)回流5.?dāng)?shù)據(jù)清洗的評判數(shù)據(jù)清洗是一項十分繁重的工作,數(shù)據(jù)清洗在提高數(shù)據(jù)質(zhì)量的同時要付出一定的代價,包括投入的時間、人力和物力成本。通常情況下,大數(shù)據(jù)集的數(shù)據(jù)清洗是一個系統(tǒng)性的工作,需要多方配合以及大量人員的參與,需要多種資源的支持。1.1.5數(shù)據(jù)清洗環(huán)境1.1數(shù)據(jù)清洗概述●數(shù)據(jù)清洗環(huán)境是指為進行數(shù)據(jù)清洗所提供的基本硬件設(shè)備和軟件系統(tǒng),特別是已得到廣泛應(yīng)用的開源軟件和工具。終端窗口和命令行界面,比如MacOSX上的Terminal程序或Linux上的bash程序。適合程序員使用的編輯器,如Mac上的TextWrangler,Linux上的vi或emacs,或是Windows上的Notepad++、Sublime編輯器等。Python客戶端程序,如EnthoughtCanopy。另外,還需要足夠的權(quán)限來安裝一些程序包文件。電子表格程序,如MicrosoftExcel和GoogleSpreadsheets。數(shù)據(jù)呈現(xiàn)和可視化,以恰當(dāng)?shù)姆绞匠绦驍?shù)據(jù)分析和挖掘的結(jié)果。數(shù)據(jù)庫軟件,如MySQL數(shù)據(jù)庫和MicrosoftAccess。1.1.6數(shù)據(jù)清洗實例說明1.1數(shù)據(jù)清洗概述●以網(wǎng)站文件下載為例,假定一組記錄文件下載時間長度的原始數(shù)據(jù)集如表1-1所示。直接計算網(wǎng)站文件平均下載時長,計算結(jié)果約為23000秒,約6小時,與實際情況嚴重不符,說明這一數(shù)據(jù)集受到了顯著的噪聲的影響而導(dǎo)致部分數(shù)據(jù)值出現(xiàn)嚴重偏差。為此,必須對原始數(shù)據(jù)集做異常值識別并盡可能剔除錯誤數(shù)據(jù)。表1-1各個文件的下載時間1.1.6數(shù)據(jù)清洗實例說明1.1數(shù)據(jù)清洗概述●具體來說,可以基于數(shù)據(jù)的分布特征利用分箱法或聚類法來識別上例數(shù)據(jù)集中的噪聲數(shù)據(jù)。對于表1中的數(shù)據(jù),清洗數(shù)據(jù)時首先將數(shù)據(jù)集等分為2403個區(qū)間,找到數(shù)據(jù)的集中域[0,3266]。然后,利用分箱法對取值在[0,3266]之間的數(shù)據(jù)作進一步分析,對新數(shù)據(jù)組剔除離群值,得到清洗后的離群數(shù)據(jù)組。最后,統(tǒng)計計算清洗后的目標(biāo)數(shù)據(jù)源的平均下載時長為192.93秒,約3.22分鐘,符合網(wǎng)站文件下載的實際情況。從這個簡單的例子可看出,基于數(shù)據(jù)的分布特征,數(shù)據(jù)清洗可以采用分箱法或聚類方法較為快捷地識別和剔除數(shù)據(jù)集中的噪聲數(shù)據(jù),從而獲得良好的清洗效果。圖1基于聚類的孤立點識別第一章概論1.1數(shù)據(jù)清洗概述1.2數(shù)據(jù)標(biāo)準(zhǔn)化1.3數(shù)據(jù)倉庫習(xí)題1.2.1數(shù)據(jù)標(biāo)準(zhǔn)化概念●數(shù)據(jù)標(biāo)準(zhǔn)化/規(guī)范化(DataStandardization/Normalization)是機構(gòu)或組織對數(shù)據(jù)的定義、組織、分類、記錄、編碼、監(jiān)督和保護進行標(biāo)準(zhǔn)化的過程,有利于數(shù)據(jù)的共享和管理,可以節(jié)省費用,提高數(shù)據(jù)使用效率和可用性?!駭?shù)據(jù)標(biāo)準(zhǔn)化處理主要包括數(shù)據(jù)同趨化處理和無量綱化處理兩個方面。數(shù)據(jù)同趨化處理主要解決不同性質(zhì)數(shù)據(jù)問題,對不同性質(zhì)指標(biāo)直接加總不能正確反映不同作用力的綜合結(jié)果,必須先考慮改變逆指標(biāo)數(shù)據(jù)性質(zhì),使所有指標(biāo)對測評方案的作用力同趨化,然后再加總才能得出正確結(jié)果?!駭?shù)據(jù)無量綱化處理主要用于消除變量間的量綱關(guān)系,解決數(shù)據(jù)評價分析中數(shù)據(jù)的可比性。例如,多指標(biāo)綜合評價方法需要把描述評價對象不同方面的多個信息綜合起來得到一個綜合指標(biāo),由此對評價對象做整體評判,并進行橫向或縱向比較。1.2數(shù)據(jù)標(biāo)準(zhǔn)化1.2數(shù)據(jù)標(biāo)準(zhǔn)化1.2.1數(shù)據(jù)標(biāo)準(zhǔn)化常用方法max-min標(biāo)準(zhǔn)化對原始數(shù)據(jù)進行線性變換。設(shè)minA和maxA分別為屬性A的最小值和最大值,將A的一個原始值x通過max-min標(biāo)準(zhǔn)化映射成在區(qū)間[0,1]中的值x',其公式為:x'=(x-minA)/(maxA-minA)z-score標(biāo)準(zhǔn)化基于原始數(shù)據(jù)的均值(mean)和標(biāo)準(zhǔn)差(standarddeviation)進行數(shù)據(jù)的標(biāo)準(zhǔn)化,將A的原始值x標(biāo)準(zhǔn)化到x',其公式為:x'=(x-mean)/standarddeviation。12Decimalscaling標(biāo)準(zhǔn)化通過移動數(shù)據(jù)的小數(shù)點位置來進行標(biāo)準(zhǔn)化。小數(shù)點移動多少位取決于屬性A的取值中的最大絕對值。將屬性A的原始值x到x'的計算方法公式為:x'=x/(10^j)。其中,j是滿足條件的最小整數(shù)。其他標(biāo)準(zhǔn)化方法還有一些標(biāo)準(zhǔn)化方法的做法是將原始數(shù)據(jù)除以某一值,如將原始數(shù)據(jù)除以行或列的和,稱總和標(biāo)準(zhǔn)化;如果原始數(shù)據(jù)除以每行或每列中的最大值,叫做最大值標(biāo)準(zhǔn)化;如果原始數(shù)據(jù)除以行或列的和的平方根,則稱為模標(biāo)準(zhǔn)化(normstandardization)。34第一章概論1.1數(shù)據(jù)清洗概述1.2數(shù)據(jù)標(biāo)準(zhǔn)化1.3數(shù)據(jù)倉庫習(xí)題1.3數(shù)據(jù)倉庫簡介1.3.1數(shù)據(jù)倉庫定義●數(shù)據(jù)倉庫(DataWarehouse,DW)是基于信息系統(tǒng)業(yè)務(wù)發(fā)展需要,基于傳統(tǒng)數(shù)據(jù)庫系統(tǒng)技術(shù)發(fā)展形成能夠并逐步獨立出來的一系列新的應(yīng)用技術(shù),目標(biāo)是通過提供全面、大量的數(shù)據(jù)存儲來有效支持高層決策分析。●W.H.Inmon在書中對數(shù)據(jù)倉庫的定義是:數(shù)據(jù)倉庫是決策支持系統(tǒng)和聯(lián)機分析應(yīng)用數(shù)據(jù)源的結(jié)構(gòu)化數(shù)據(jù)環(huán)境,是一個面向主題的(SubjectOriented)、集成的(Integrated)、相對穩(wěn)定的(Non-Volatile)、反映歷史變化(TimeVariant)的數(shù)據(jù)集合,用于支持經(jīng)營管理中的決策制定過程?!駭?shù)據(jù)庫是面向事務(wù)的設(shè)計,而數(shù)據(jù)倉庫是面向主題設(shè)計的。數(shù)據(jù)庫設(shè)計是盡量避免冗余,一般采用符合范式的規(guī)則來設(shè)計,數(shù)據(jù)倉庫在設(shè)計是有意引入冗余,采用反范式的方式來設(shè)計。數(shù)據(jù)庫是為捕獲數(shù)據(jù)而設(shè)計,數(shù)據(jù)倉庫是為分析數(shù)據(jù)而設(shè)計。數(shù)據(jù)庫一般存儲在線交易數(shù)據(jù),數(shù)據(jù)倉庫一般存儲的是歷史數(shù)據(jù)。1.3數(shù)據(jù)倉庫簡介1.3.2數(shù)據(jù)倉庫組成要素●數(shù)據(jù)倉庫不是一種提供戰(zhàn)略信息的軟件或硬件產(chǎn)品,而是一個便于用戶找到戰(zhàn)略信息和做出更好決策的計算環(huán)境,是一個以用戶為中心的環(huán)境。數(shù)據(jù)倉庫需要提供數(shù)據(jù)抽取、數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)裝載和數(shù)據(jù)存儲功能,并為用戶提供交互接口。典型數(shù)據(jù)倉庫的基本組成要素包括:1.源數(shù)據(jù)單元2.?dāng)?shù)據(jù)準(zhǔn)備單元3.?dāng)?shù)據(jù)存儲單元4.信息傳遞單元5.元數(shù)據(jù)單元6.管理控制單元
傳統(tǒng)數(shù)據(jù)倉庫
企業(yè)把數(shù)據(jù)分成內(nèi)部數(shù)據(jù)和外部數(shù)據(jù),內(nèi)部數(shù)據(jù)包括OLTP交易系統(tǒng)和OLAP分析系統(tǒng)的數(shù)據(jù)。企業(yè)首先需要將這些數(shù)據(jù)集中起來,經(jīng)過轉(zhuǎn)換放到這類數(shù)據(jù)庫中,然后在數(shù)據(jù)庫上對數(shù)據(jù)進行加工,建立各種主題模型,再提供報表分析業(yè)務(wù)。
數(shù)據(jù)集市
數(shù)據(jù)集市一般是用于某一類功能需求的數(shù)據(jù)倉庫的簡單模式,往往是由一些業(yè)務(wù)部門構(gòu)建,也可以構(gòu)建在企業(yè)數(shù)據(jù)倉庫上。一般來說數(shù)據(jù)集市的數(shù)據(jù)源較少,但往往對數(shù)據(jù)分析的延時有很高的要求,并需要和各種報表工具有很好的對接。1.3數(shù)據(jù)倉庫簡介1.3.3數(shù)據(jù)倉庫分類
關(guān)聯(lián)發(fā)現(xiàn)數(shù)據(jù)倉庫
在一些場景下,企業(yè)可能不知道數(shù)據(jù)的內(nèi)聯(lián)規(guī)則,而是需要通過數(shù)據(jù)挖掘的方式找出數(shù)據(jù)之間的關(guān)聯(lián)關(guān)系,隱藏的聯(lián)系和模式等,從而挖掘出數(shù)據(jù)的價值。很多行業(yè)的新業(yè)務(wù)都有這方面的需求,如金融行業(yè)的風(fēng)險控制,反欺詐等業(yè)務(wù)。上下文無關(guān)聯(lián)的數(shù)據(jù)倉庫一般需要在架構(gòu)設(shè)計上支持數(shù)據(jù)挖掘能力,并提供通用的算法接口來操作數(shù)據(jù)。
實時處理數(shù)據(jù)倉庫
隨著業(yè)務(wù)的發(fā)展,企業(yè)客戶需要對實時的數(shù)據(jù)做一些商業(yè)分析,譬如零售行業(yè)需要根據(jù)實時的銷售數(shù)據(jù)來調(diào)整庫存和生產(chǎn)計劃。這類行業(yè)用戶對數(shù)據(jù)的實時性要求很高,傳統(tǒng)的離線批處理的方式不能滿足需求,因此需要構(gòu)建實時處理的數(shù)據(jù)倉庫。數(shù)據(jù)可以通過各種方式完成采集,然后數(shù)據(jù)倉庫可以在指定的時間限期內(nèi)對數(shù)據(jù)進行處理和統(tǒng)計分析等,再將數(shù)據(jù)存入數(shù)據(jù)倉庫以滿足一些其他業(yè)務(wù)的需求。1.3數(shù)據(jù)倉庫簡介1.3.3數(shù)據(jù)倉庫分類1.3數(shù)據(jù)倉庫簡介1.3.4數(shù)據(jù)倉庫相關(guān)技術(shù)數(shù)據(jù)清洗數(shù)據(jù)倉庫需要從種類各異的多個數(shù)據(jù)源中導(dǎo)入大量數(shù)據(jù),數(shù)據(jù)倉庫的一個重要任務(wù)就通過數(shù)據(jù)清洗保證數(shù)據(jù)的一致性與正確性。數(shù)據(jù)粒度數(shù)據(jù)倉庫中存儲的數(shù)據(jù)粒度將直接影響到數(shù)據(jù)倉庫中數(shù)據(jù)的存儲量及查詢質(zhì)量,并進一步影響數(shù)據(jù)倉庫能否滿足最終用戶的分析需求。設(shè)計數(shù)據(jù)倉庫時要合理確定數(shù)據(jù)粒度。12索引優(yōu)化不論是數(shù)據(jù)庫還是數(shù)據(jù)倉庫,索引查找是優(yōu)化查詢響應(yīng)時間的重要方法,索引建立的好壞直接影響數(shù)據(jù)訪問效率。物化視圖選擇和維護數(shù)據(jù)倉庫中以物化視圖(MaterializedView)的形式存儲大量來自多個異質(zhì)數(shù)據(jù)源中的數(shù)據(jù),數(shù)據(jù)倉庫中采用物化視圖進行快速查詢和分析,能有效提高查詢速度和響應(yīng)時間。34數(shù)據(jù)倉庫的管理維護為了減少數(shù)據(jù)更新量,數(shù)據(jù)倉庫一般采用增量式更新策略。此外,數(shù)據(jù)倉庫必須建立有效的安全策略和授權(quán)訪問控制機制。最后,數(shù)據(jù)倉庫必須提供穩(wěn)定可靠的數(shù)據(jù)備份和恢復(fù)策略。51.3數(shù)據(jù)倉庫簡介1.3.5常用工具簡介
數(shù)據(jù)倉庫不是一門純粹的技術(shù),更是一種架構(gòu)和理念,核心在于對數(shù)據(jù)的整合集成,把企業(yè)原始數(shù)據(jù)進行集成、歸類、分析,從而提供了企業(yè)決策分析需要的目標(biāo)數(shù)據(jù)。SQLServer、Sybase、DB2和Oracle都是傳統(tǒng)的關(guān)系數(shù)據(jù)庫,但是只要經(jīng)過合理的數(shù)據(jù)模型設(shè)計或參數(shù)設(shè)置也可將其轉(zhuǎn)變?yōu)楹芎玫臄?shù)據(jù)倉庫實體。
目前,OLAP已逐漸融合到數(shù)據(jù)倉庫中,例如微軟的AnalysisService和DB2的OLAPServer,通過自身提供的專用接口可以加快多維數(shù)據(jù)的轉(zhuǎn)換處理。當(dāng)然,也有如Essbase這樣純粹的OLAP產(chǎn)品,實際上許多大型OLAP都采用Essbase。
對于ETL而言,廣泛使用的ETL工具主要包括InformaticaPowerCenter、IBM的Datastage、SQLServer搭配的SSIS、Oracle的OWB和ODI以及開源的Kettle等。
數(shù)據(jù)倉庫可用的報表工具很多,專業(yè)性的報表工具有Hyperion、B0、Congos和Brio,這些產(chǎn)品價格相對昂貴。便宜的報表工具可選用微軟的ReportService。第一章概論1.1數(shù)據(jù)清洗概述1.2數(shù)據(jù)標(biāo)準(zhǔn)化1.3數(shù)據(jù)倉庫習(xí)題1.什么是數(shù)據(jù)科學(xué),請簡要闡述數(shù)據(jù)清洗在數(shù)據(jù)科學(xué)過程中扮演什么角色?2.?dāng)?shù)據(jù)清洗的目的何在,你是如何理解數(shù)據(jù)清洗這一概念的?3.?dāng)?shù)據(jù)清洗的主要任務(wù)有哪些,當(dāng)前有哪些主要的應(yīng)用領(lǐng)域?4.結(jié)合一個實例說明數(shù)據(jù)清洗的流程包括哪些步驟,并簡要說明數(shù)據(jù)清洗的主要評價標(biāo)準(zhǔn)。5.什么是數(shù)據(jù)標(biāo)準(zhǔn)化,其作用主要有體現(xiàn)在哪些方面?6.請簡單介紹一下max-min數(shù)據(jù)標(biāo)準(zhǔn)化和z-score數(shù)據(jù)標(biāo)準(zhǔn)化方法。7.?dāng)?shù)據(jù)倉庫的典型特點是什么,并比較數(shù)據(jù)倉庫和傳統(tǒng)數(shù)據(jù)庫的區(qū)別和聯(lián)系。8.請舉例說明數(shù)據(jù)倉庫包括那些組成要素,并簡要闡述不同要素的作用。9.請介紹幾種常見的數(shù)據(jù)倉庫工具,并說明其作用。習(xí)題:第二章數(shù)據(jù)格式與編碼2.1文件文本格式2.2數(shù)據(jù)編碼2.3數(shù)據(jù)轉(zhuǎn)換習(xí)題大數(shù)據(jù)應(yīng)用人才培養(yǎng)系列教材2.1文件文本格式第二章數(shù)據(jù)格式與編碼文本是計算機保存數(shù)據(jù)的主要方式,存放于計算機系統(tǒng)的文件系統(tǒng)中。文本有多種不同的格式,常見的文本格式有txt、doc、zip、jpg和HTML等。1.常見文本格式類(UNIX)操作系統(tǒng)下常見文本格式:dmg、tar格式等12Windows操作系統(tǒng)下常見的文本格式:txt、doc、xls格式等2網(wǎng)絡(luò)文本格式:HTML、xml、php、jsp、css格式等第二章數(shù)據(jù)格式與編碼存儲存儲成本下降2.1文件文本格式2.xls及xlsx文件格式xlsx是MicrosoftOfficeExcel2007或者更新版本保存的文件格式,是用新的基于XML的壓縮文件格式取代了其之前專有的文件格式。此文件格式在傳統(tǒng)的文件擴展名后面添加了字母x(“.docx”取代“.doc”,“.xlsx”取代“.xls”),使文件占用系統(tǒng)的空間更小。xls格式的文件能用所有版本的MicrosoftExcel打開。第二章數(shù)據(jù)格式與編碼存儲存儲成本下降2.1文件文本格式3.JSON文本格式JSON全稱是JavaScript
ObjectNotation,即JavaScript對象標(biāo)記,是一種輕量級的數(shù)據(jù)傳輸格式,常用于網(wǎng)絡(luò)信息的傳輸。JSON基于
ECMAScript
規(guī)范,采用獨立于編程語言的文本格式來存儲和表示數(shù)據(jù)。JSON具有簡潔和清晰的層次結(jié)構(gòu),是一種當(dāng)下較為理想的數(shù)據(jù)傳輸語言。因為JSON易于閱讀和編寫,也易于機器解析和生成,因此能有效地提升網(wǎng)絡(luò)傳輸效率,在現(xiàn)有的客戶端和服務(wù)器數(shù)據(jù)交換傳輸中,JSON的應(yīng)用非常廣泛。如下所示,為JSON的舉例:第二章數(shù)據(jù)格式與編碼存儲存儲成本下降2.1文件文本格式4.HTML和XML文本格式HTML全稱是HyperTextMarkupLanguage,即超文本標(biāo)記語言,這里的“超文本”指的是頁面內(nèi)可以包含圖片、鏈接,甚至音樂、程序等非文字元素,HTML是標(biāo)準(zhǔn)通用標(biāo)記語言下的一個應(yīng)用。如下所示,為一個典型的HTML文件內(nèi)容:HTML01第二章數(shù)據(jù)格式與編碼存儲存儲成本下降2.1文件文本格式4.HTML和XML文本格式XML02與JSON功能相同的另一種格式是XML,其全稱是ExtensibleMarkupLanguage,即可擴展標(biāo)記語言,也是標(biāo)準(zhǔn)通用標(biāo)記語言下的一個應(yīng)用。XML是各種應(yīng)用程序之間進行數(shù)據(jù)傳輸最常用的工具。如下圖所示,為一個典型的xml文件內(nèi)容。第二章數(shù)據(jù)格式與編碼存儲存儲成本下降2.1文件文本格式下面介紹XML和JSON的比較:JSON和XML都是純文本01JSON和XML都具有“自我描述性”02XML和JSON都可以通過JavaScript進行解析03JSON傳輸一般比XML更短、速度更快05XML有結(jié)束標(biāo)簽而JSON沒有042.1文件文本格式2.2數(shù)據(jù)編碼第二章數(shù)據(jù)格式與編碼2.3數(shù)據(jù)轉(zhuǎn)換習(xí)題大數(shù)據(jù)應(yīng)用人才培養(yǎng)系列教材2.2數(shù)據(jù)編碼第二章數(shù)據(jù)格式與編碼數(shù)據(jù)類型數(shù)據(jù)類型是一種數(shù)據(jù)結(jié)構(gòu),包括定義一個值的集合以及定義在這個值集上的一組操作。通常根據(jù)數(shù)據(jù)的特點將數(shù)據(jù)劃分為不同的類型。按照計算機的存儲特性,編程語言和數(shù)據(jù)庫應(yīng)用都會把數(shù)據(jù)劃分為特定的幾種類型:01Java常見數(shù)據(jù)類型類型1Java的基礎(chǔ)數(shù)據(jù)類型可分為4類8種,包含整型(byte、short、int、long)、浮點型(float、double)、邏輯型(boolean)以及符型(char)。具體內(nèi)容如下:2.2數(shù)據(jù)編碼第二章數(shù)據(jù)格式與編碼布爾類型文本類型整數(shù)類型浮點類型包括字符和字符串布爾類型bool常用于記錄判斷對錯的邏輯變量,只允許取值true或false整數(shù)類型,顧名思義,用來存儲有符號的整數(shù)數(shù)據(jù)。在計算機中用二進制補碼的形式表示浮點數(shù)又稱小數(shù)、非整數(shù),與整數(shù)類型相似。Java浮點數(shù)類型有固定的取值范圍和字段長度,不受平臺影響表2-1Java常見數(shù)據(jù)類型類型字節(jié)取值范圍byte1-27~27-1short2-215~215-1int4-231~231-1long8-263~263-1float4-3.403E38~3.403E38double8-1.798E308~1.798E308boolean1/8true或falsechar20~216-12.2數(shù)據(jù)編碼第二章數(shù)據(jù)格式與編碼數(shù)據(jù)類型01MySQL常見數(shù)據(jù)類型類型2數(shù)值類型:MySQL支持所有標(biāo)準(zhǔn)SQL數(shù)值數(shù)據(jù)類型日期和時間類型:表示時間值的日期和時間類型有DATE、TIME、YEAR、DATATIME和TIMESTAMP12字符串類型:CHAR、VARCHAR、TEXT、ENUM和SET等32.2數(shù)據(jù)編碼第二章數(shù)據(jù)格式與編碼數(shù)據(jù)類型間轉(zhuǎn)換在編程語言中,不同數(shù)據(jù)類型可以相互轉(zhuǎn)換,例如整型、實數(shù)型(常量)、字符型數(shù)據(jù)可以混合運算。Java程序類型轉(zhuǎn)換規(guī)則如下所示:02(1)不能對boolean類型進行類型轉(zhuǎn)換(2)不能把對象類型轉(zhuǎn)換成不相關(guān)類型的對象(3)在把容量大的類型轉(zhuǎn)換為容量小的類型時必須使用強制類型轉(zhuǎn)換(4)轉(zhuǎn)換過程中可能導(dǎo)致溢出或損失精度(5)轉(zhuǎn)換的數(shù)據(jù)類型必須是兼容的
(6)格式:(type)valuetype是要強制類型轉(zhuǎn)換后的數(shù)據(jù)類型2.2數(shù)據(jù)編碼第二章數(shù)據(jù)格式與編碼字符編碼對字符進行編碼,是信息交流的技術(shù)基礎(chǔ),在此之前,需要了解一些基本概念,如“字節(jié)”“字符”“字符集”“編碼”“內(nèi)碼”。1)字節(jié)、字符和字符集:字節(jié)是計算機存儲數(shù)據(jù)的單位,一個字節(jié)是一串8位二進制數(shù),是一個具體的二進制空間;字符是各種文字和符號的總稱,包括各個國家文字、標(biāo)點符號、圖形符號、數(shù)字等;字符集是多個字符的集合,字符集種類較多,每個字符集包含的字符個數(shù)不同,常見字符集有ASCII字符集等。032.2數(shù)據(jù)編碼第二章數(shù)據(jù)格式與編碼字符編碼2)內(nèi)碼:在計算機科學(xué)及相關(guān)領(lǐng)域中,內(nèi)碼是指整機系統(tǒng)中使用的二進制字符編碼,指的是“將資訊編碼后,通過某種方式存儲在特定存儲設(shè)備時,內(nèi)部的編碼形式”。在不同的系統(tǒng)中,會有不同的內(nèi)碼。032.2數(shù)據(jù)編碼第二章數(shù)據(jù)格式與編碼字符編碼2)編碼與字符集:編碼(Encoding)和字符集不同。字符集只是字符的集合,不一定適合做網(wǎng)絡(luò)傳送、處理,有時須經(jīng)編碼(Encode)后才能應(yīng)用。如Unicode可依不同需要以UTF-8、UTF-16、UTF-32等方式編碼。字符編碼就是以二進制的數(shù)字來對應(yīng)字符集的字符。下圖為Unicode字符集。032.2數(shù)據(jù)編碼第二章數(shù)據(jù)格式與編碼空值和亂碼1)空值在數(shù)據(jù)庫中,空值(NULL)用來表示實際值未知或無意義的情況??罩挡煌诳瞻谆蛄阒?,沒有兩個相等的空值,比較兩個空值或?qū)⒖罩蹬c任何其他值相比均返回未知,這是因為每個空值均為未知。04
空值具有以下特點:(1)等價于沒有任何值(2)與0、空字符串或空格不同(3)在where條件中,Oracle認為結(jié)果為NULL的條件為FALSE,帶有這樣條件的select語句不返回行,并且不返回錯誤信息。但NULL和FALSE是不同的(4)排序時比其他數(shù)據(jù)都大2.2數(shù)據(jù)編碼第二章數(shù)據(jù)格式與編碼空值和亂碼2)亂碼亂碼主要指用文本編輯器打開文本時,使用了不對應(yīng)的字符集和編碼,從而造成文本解碼錯誤,導(dǎo)致文本的部分字符或所有字符無法被正確顯示的情況,下圖為常見的亂碼。042.3數(shù)據(jù)轉(zhuǎn)換2.2數(shù)據(jù)編碼2.1文件文本格式第二章數(shù)據(jù)格式與編碼習(xí)題大數(shù)據(jù)應(yīng)用人才培養(yǎng)系列教材2.3數(shù)據(jù)轉(zhuǎn)換第二章數(shù)據(jù)格式與編碼文件是計算機信息保存的主要形式,也是操作系統(tǒng)中文件管理的重要載體,在不同時代和不同系統(tǒng)中都有與之對應(yīng)的格式,針對系統(tǒng)的功能和特性,文件系統(tǒng)也會有所不同。以下主要介紹兩種類型的數(shù)據(jù)轉(zhuǎn)換:電子表格轉(zhuǎn)換、RDBMS數(shù)據(jù)轉(zhuǎn)換。2.3數(shù)據(jù)轉(zhuǎn)換第二章數(shù)據(jù)格式與編碼of4041電子表格轉(zhuǎn)換數(shù)據(jù)信息一般使用專門軟件處理,常見的有Excel、Access、MySQL和SQLServer。01特點一特點二數(shù)據(jù)以表格的形式出現(xiàn)每行為各種記錄名稱數(shù)據(jù)庫文件導(dǎo)出1目前主要用的數(shù)據(jù)庫是RDBMS,即關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RelationalDatabaseManagementSystem),它將數(shù)據(jù)組織為相關(guān)的行和列,而管理關(guān)系數(shù)據(jù)庫的軟件就是關(guān)系數(shù)據(jù)庫管理系統(tǒng),以下為RDBMS的特點:2.3數(shù)據(jù)轉(zhuǎn)換第二章數(shù)據(jù)格式與編碼電子表格轉(zhuǎn)換01特點三特點四許多的行和列組成一張表單若干的表單組成數(shù)據(jù)庫數(shù)據(jù)庫文件導(dǎo)出1通常情況下,數(shù)據(jù)庫軟件都能將其內(nèi)部的數(shù)據(jù)庫導(dǎo)出,以MySQL為例,可以通過命令行的MySQL命令將數(shù)據(jù)庫導(dǎo)出到一個后綴名為.sql的文件中,該文件格式可以通過txt文本編輯器編輯。2.3數(shù)據(jù)轉(zhuǎn)換第二章數(shù)據(jù)格式與編碼RDBMS數(shù)據(jù)轉(zhuǎn)換常見的RDBMS有Oracle、MySQL、Access、SQLServer等。在日常業(yè)務(wù)中,可能存在數(shù)據(jù)規(guī)模的變化,出現(xiàn)數(shù)據(jù)庫管理系統(tǒng)的變化,例如MySQL轉(zhuǎn)換到Oracle數(shù)據(jù)庫管理系統(tǒng)等。大多數(shù)據(jù)庫管理系統(tǒng)均有數(shù)據(jù)的導(dǎo)入、導(dǎo)出工具,可以實現(xiàn)數(shù)據(jù)源到目標(biāo)的轉(zhuǎn)換。例如,SQLServer可以通過數(shù)據(jù)庫客戶端(SSMS)的界面工具實現(xiàn)數(shù)據(jù)庫與Excel、數(shù)據(jù)庫與數(shù)據(jù)庫之間的相互轉(zhuǎn)換。022.3數(shù)據(jù)數(shù)據(jù)轉(zhuǎn)換習(xí)題2.2數(shù)據(jù)編碼2.1文件文本格式第二章數(shù)據(jù)格式與編碼大數(shù)據(jù)應(yīng)用人才培養(yǎng)系列教材1.Windows下常見的文本格式有哪些,分別有什么用途?2.Linux下常見的文本格式有哪些,分別有什么用途?3.分別解釋字符、字節(jié)和字符集,并說明它們的區(qū)別。4.Java中常見的數(shù)據(jù)類型有幾種,分別是什么?5.MySQL中常見的數(shù)據(jù)類型有幾種,分別是什么?6.分別解釋空值和亂碼,并舉例說明它們在實際應(yīng)用中的表現(xiàn)形式。7.參照圖2-1的ASCII碼表,符號0的ASCII碼值是48,那么符號3的ASCII碼值是多少?同理,符號a的ASCII碼值是97,那么符號c的ASCII碼值是多少?(用十進制表示)8.請分別寫出符號3和符號c的ASCII碼值二進制表示(提示:符號0的ASCII碼二進制表示為00110000)。習(xí)題:第三章基本技術(shù)方法3.1
ETL入門3.2
技術(shù)路線3.3
ETL工具3.4
ETL子系統(tǒng)習(xí)題大數(shù)據(jù)應(yīng)用人才培養(yǎng)系列教材3.1
ETL入門第三章基本技術(shù)方法1ETL,全稱為Extraction-Transformation-Loading,中文名為數(shù)據(jù)抽取、轉(zhuǎn)換和加載。2ETL的主要功能是將分布的、異構(gòu)數(shù)據(jù)源中的數(shù)據(jù)如關(guān)系數(shù)據(jù)、平面數(shù)據(jù)文件等抽取到臨時中間層后進行清洗、轉(zhuǎn)換、集成,最后加載到數(shù)據(jù)倉庫或數(shù)據(jù)集市中,成為聯(lián)機分析處理、數(shù)據(jù)挖掘的基礎(chǔ)。3ETL也是一個長期的過程,只有不斷地發(fā)現(xiàn)問題并解決問題,才能使ETL運行效率更高,為項目后期開發(fā)提供準(zhǔn)確的數(shù)據(jù)。企業(yè)每年產(chǎn)生海量的數(shù)據(jù),這些數(shù)據(jù),有的對企業(yè)非常重要,有的對企業(yè)沒有用處。如何在海量數(shù)據(jù)中抽取出有用的數(shù)據(jù)?可以通過ETL來進行實現(xiàn)。3.1.1ETL解決方案“一切圍繞需求”最終用戶提交界面數(shù)據(jù)集成業(yè)務(wù)需求數(shù)據(jù)評估大ETL系統(tǒng)的最終步驟是將數(shù)據(jù)提交給最終用戶,提交過程占據(jù)十分重要的位置,并對構(gòu)成最終用戶應(yīng)用的數(shù)據(jù)結(jié)構(gòu)和內(nèi)容進行嚴格把關(guān),確保其簡單快捷。。在數(shù)據(jù)進入數(shù)據(jù)倉庫之前,需要將全部數(shù)據(jù)無縫集成到一起。數(shù)據(jù)集成可采用規(guī)模化的表格來實現(xiàn),也就是在分離的數(shù)據(jù)庫中建立公共維度實體,從而快速構(gòu)建報表。業(yè)務(wù)需求是數(shù)據(jù)倉庫最終用戶的信息需求,它直接決定了數(shù)據(jù)源的選擇。在ETL設(shè)計時,需要考慮原始數(shù)據(jù)是否能解決用戶的業(yè)務(wù)需求,同時,業(yè)務(wù)需求和數(shù)據(jù)源的內(nèi)容是不斷變化的,需要對ETL不斷進行檢驗和討論。數(shù)據(jù)評估是使用分析方法來檢查數(shù)據(jù),充分了解數(shù)據(jù)的內(nèi)容、質(zhì)量。設(shè)計好的數(shù)據(jù)評估方法能夠處理海量數(shù)據(jù)。3.1
ETL入門第三章基本技術(shù)方法“一切圍繞需求”3.1
ETL入門1.業(yè)務(wù)需求業(yè)務(wù)需求是數(shù)據(jù)倉庫最終用戶的信息需求,它直接決定了數(shù)據(jù)源的選擇。在許多情況下,最初對于數(shù)據(jù)源的調(diào)查不一定完全反映數(shù)據(jù)的復(fù)雜性和局限性,所以在ETL設(shè)計時,需要考慮原始數(shù)據(jù)是否能解決用戶的業(yè)務(wù)需求,同時,業(yè)務(wù)需求和數(shù)據(jù)源的內(nèi)容是不斷變化的,需要對ETL不斷進行檢驗和討論。對數(shù)據(jù)倉庫典型的需求包括:數(shù)據(jù)源的歸檔備份以及隨后的數(shù)據(jù)存儲。任何造成數(shù)據(jù)修改的交易記錄的完整性證明。對分配和調(diào)整的規(guī)則進行完備的文檔記錄。數(shù)據(jù)備份的安全性證明,不論是在線還是離線進行。第三章基本技術(shù)方法“一切圍繞需求”3.1
ETL入門2.?dāng)?shù)據(jù)評估
數(shù)據(jù)評估是使用分析方法來檢查數(shù)據(jù),充分了解數(shù)據(jù)的內(nèi)容、質(zhì)量。設(shè)計好的數(shù)據(jù)評估方法能夠處理海量數(shù)據(jù)。
例如,企業(yè)的訂單系統(tǒng),能夠很好地滿足生產(chǎn)部門的需求。但是對于數(shù)據(jù)倉庫來說,因為數(shù)據(jù)倉庫使用的字段并不是以訂單系統(tǒng)中的字段為中心,因此訂單系統(tǒng)中的信息對于數(shù)據(jù)倉庫的分析來講是遠遠不夠的。對于“臟”數(shù)據(jù)源需要進行操作處理,主要包括以下幾個方面:完全清除某些輸入字段;補入一些丟失的數(shù)據(jù);自動替換掉某些錯誤數(shù)據(jù)值;在記錄級別上進行人工干預(yù);對數(shù)據(jù)進行完全規(guī)范化的表述。第三章基本技術(shù)方法“一切圍繞需求”3.1
ETL入門3.?dāng)?shù)據(jù)集成在數(shù)據(jù)進入數(shù)據(jù)倉庫之前,需要將全部數(shù)據(jù)無縫集成到一起。數(shù)據(jù)集成可采用規(guī)?;谋砀駚韺崿F(xiàn),也就是在分離的數(shù)據(jù)庫中建立公共維度實體,從而快速構(gòu)建報表。在ELT系統(tǒng)中,數(shù)據(jù)集成是數(shù)據(jù)流程中一個獨立的步驟,叫作規(guī)格化步驟。4.最終用戶提交界面ETL系統(tǒng)的最終步驟是將數(shù)據(jù)提交給最終用戶,提交過程占據(jù)十分重要的位置,并對構(gòu)成最終用戶應(yīng)用的數(shù)據(jù)結(jié)構(gòu)和內(nèi)容進行嚴格把關(guān),確保其簡單快捷。將使用復(fù)雜、查詢緩慢的數(shù)據(jù)直接交給最終用戶是不負責(zé)的,經(jīng)常犯的一個錯誤就是將完全規(guī)范化的數(shù)據(jù)模型直接交給用戶,就不再過問。第三章基本技術(shù)方法ETL基本構(gòu)成數(shù)據(jù)抽取數(shù)據(jù)轉(zhuǎn)換數(shù)據(jù)加載3.1
ETL入門3.1.2ETL基本構(gòu)成第三章基本技術(shù)方法“一切圍繞需求”3.1
ETL入門1.?dāng)?shù)據(jù)抽取所謂數(shù)據(jù)抽取,就是從源端數(shù)據(jù)系統(tǒng)中抽取目標(biāo)數(shù)據(jù)系統(tǒng)需要的數(shù)據(jù)。
進行數(shù)據(jù)抽取的原則:一是要求準(zhǔn)確性,即能夠?qū)?shù)據(jù)源中的數(shù)據(jù)準(zhǔn)確抽取到;二是不對源端數(shù)據(jù)系統(tǒng)的性能、響應(yīng)時間等造成影響。數(shù)據(jù)抽取可分為全量抽取和增量抽取兩種方式。(1)全量抽取全量抽取好比數(shù)據(jù)的遷移和復(fù)制,它是將源端數(shù)據(jù)表中的數(shù)據(jù)一次性全部從數(shù)據(jù)庫中抽取出來,再進行下一步操作。(2)增量抽取增量抽取主要是在第一次全量抽取完畢后,需要對源端數(shù)據(jù)中新增或修改的數(shù)據(jù)進行抽取。增量抽取的關(guān)鍵是抽取自上次以來,數(shù)據(jù)表中已經(jīng)變化的數(shù)據(jù)。第三章基本技術(shù)方法“一切圍繞需求”3.1
ETL入門1.?dāng)?shù)據(jù)抽?。?)增量抽取例如,在新生入學(xué)時,所有學(xué)生的信息采集整理屬于全量抽??;在后期,如果有個別學(xué)生或部分學(xué)生需要休學(xué),對這部分學(xué)生的操作即屬于增量抽取。增量抽取一般有4種抽取模式①觸發(fā)器模式,這是普遍采用一種抽取模式。一般是建立3個觸發(fā)器,即插入、修改、刪除,并且要求用戶擁有操作權(quán)限。當(dāng)觸發(fā)器獲得新增數(shù)據(jù)后,程序會自動從臨時表中讀取數(shù)據(jù)。這種模式性能高、規(guī)則簡單、效率高,且不需要修改業(yè)務(wù)系統(tǒng)表結(jié)構(gòu),可實現(xiàn)數(shù)據(jù)的遞增加載。第三章基本技術(shù)方法“一切圍繞需求”of403.1
ETL入門1.?dāng)?shù)據(jù)抽?。?)增量抽?、跁r間戳方式,即在源數(shù)據(jù)表中增加一個時間戳字段。當(dāng)系統(tǒng)修改源端數(shù)據(jù)表中的數(shù)據(jù)時,同時修改時間戳的值。在進行數(shù)據(jù)抽取時,通過比較系統(tǒng)時間和時間戳的值來決定需要抽取哪些數(shù)據(jù)。③全表對比方式,即每次從源端數(shù)據(jù)表中讀取所有數(shù)據(jù),然后逐條比較數(shù)據(jù),將修改過的數(shù)據(jù)過濾出來。此種方式主要采用MD5校驗碼。全表對比方式不會對源端表結(jié)構(gòu)產(chǎn)生影響。④日志對比方式,即通過分析數(shù)據(jù)庫的日志來抽取相應(yīng)的數(shù)據(jù)。這種方式主要是在Oracle9i數(shù)據(jù)庫中引入的。以上4種方式中,時間戳方式是使用最為廣泛的,在銀行業(yè)務(wù)中采用的就是時間戳方式。第三章基本技術(shù)方法“一切圍繞需求”3.1
ETL入門2.?dāng)?shù)據(jù)轉(zhuǎn)換
數(shù)據(jù)轉(zhuǎn)換就是將從數(shù)據(jù)源獲取的數(shù)據(jù)按照業(yè)務(wù)需求,通過轉(zhuǎn)換、清洗、拆分等,加工成目的數(shù)據(jù)源所需要的格式。數(shù)據(jù)轉(zhuǎn)換是ETL過程中最關(guān)鍵的步驟,它主要是對數(shù)據(jù)格式、數(shù)據(jù)類型等進行轉(zhuǎn)換。它可以在數(shù)據(jù)抽取過程中進行,也可以通過ETL引擎進行轉(zhuǎn)換。數(shù)據(jù)轉(zhuǎn)換的原因非常多,主要包括以下3種:①數(shù)據(jù)不完整,指數(shù)據(jù)庫的數(shù)據(jù)信息缺失。這種轉(zhuǎn)換需要對數(shù)據(jù)內(nèi)容進行二次輸入,以進行補全。②數(shù)據(jù)格式錯誤,指數(shù)據(jù)超出數(shù)據(jù)范圍??赏ㄟ^定義完整性進行模式約束。③數(shù)據(jù)不一致,即主表與子表的數(shù)據(jù)不能匹配。可通過業(yè)務(wù)主管部門確認后,再進行二次抽取。第三章基本技術(shù)方法“一切圍繞需求”3.1
ETL入門3.?dāng)?shù)據(jù)加載數(shù)據(jù)加載是ETL的最后一個步驟,即將數(shù)據(jù)從臨時表或文件中,加載到指定的數(shù)據(jù)倉庫中。一般來說,有直接SQL語句操作和利用裝載工具進行加載兩種方式,最佳裝載方式取決于操作類型以及數(shù)據(jù)的加載量。第三章基本技術(shù)方法“一切圍繞需求”3.1
ETL入門3.1.3ETL技術(shù)選型ETL技術(shù)的選型,主要從成本、人員、案例和技術(shù)支持來衡量。目前流行的3種主要技術(shù)為Datastage、Powercenter和ETLAutomation。在Datastage和Powercenter中,ETL技術(shù)選型可以從對ETL流程的支持,對元數(shù)據(jù)的支持和對數(shù)據(jù)質(zhì)量的支持來考慮,同時從兼顧維護的實用性、定制開發(fā)的支持等方面考慮。在ETL中,數(shù)據(jù)抽取過程多則上百,少則十幾個,它們之間的依賴關(guān)系、出錯控制及恢復(fù)的流程都是需要考慮的。第三章基本技術(shù)方法第三章基本技術(shù)方法3.1
ETL入門3.2
技術(shù)路線3.3
ETL工具3.4
ETL子系統(tǒng)習(xí)題大數(shù)據(jù)應(yīng)用人才培養(yǎng)系列教材數(shù)據(jù)的來源不同文本清洗RDBMS清洗Web內(nèi)容清洗3.2技術(shù)路線第三章基本技術(shù)方法第三章基本技術(shù)方法3.2技術(shù)路線3.2.1文本清洗路線
對文本進行清洗主要包括電子表格中的數(shù)據(jù)清洗和文本編輯器的數(shù)據(jù)清洗。對于電子表格中的數(shù)據(jù)清洗,主要是利用表格中的行和列,以及電子表格中的內(nèi)置函數(shù)。我們通常把一些數(shù)據(jù)復(fù)制到電子表格中,電子表格根據(jù)相應(yīng)分隔符(制表位或逗號或其他)把數(shù)據(jù)分成不同的列。有時候會根據(jù)系統(tǒng)不同來人為地制定分隔符。
對于文本編輯器中的數(shù)據(jù)清洗,主要是許多操作系統(tǒng)中集成了文本編輯器,如Windows操作系統(tǒng)中的文本編輯器。在進行文本清洗前,需要對數(shù)據(jù)進行整理,包括對數(shù)據(jù)中的數(shù)據(jù)改變大小寫、在文本每一行前端增加前綴,主要是為了在轉(zhuǎn)換過程中,有可以參考的分隔符。第三章基本技術(shù)方法3.2技術(shù)路線
3.2.2RDBMS清洗路線
RDBMS即關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它作為經(jīng)典的、長期使用的數(shù)據(jù)存儲解決方案,成為數(shù)據(jù)存儲的標(biāo)準(zhǔn)。但由于不同的人在設(shè)計數(shù)據(jù)庫時,往往存在設(shè)計缺陷,需要對數(shù)據(jù)庫的數(shù)據(jù)進行清洗。通過清洗可以找到異常數(shù)據(jù),通常使用不同的策略來清洗不同類型的數(shù)據(jù)。對于RDBMS數(shù)據(jù)的清洗,有兩種方式可以選擇,即可以先把數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫,然后在數(shù)據(jù)庫端進行清洗;也可以在電子表格或文本編輯器中進行清洗。具體選擇哪種方案,會根據(jù)不同的數(shù)據(jù)進行不同的選擇。第三章基本技術(shù)方法3.2技術(shù)路線
3.2.3Web內(nèi)容清洗路線Web內(nèi)容清洗,主要是清洗來自網(wǎng)絡(luò)的數(shù)據(jù),為其構(gòu)建合理的清洗方案。Web數(shù)據(jù)主要來自HTML網(wǎng)頁。HTML網(wǎng)頁的頁面結(jié)構(gòu)決定了采取哪種方式。1.HTML頁面結(jié)構(gòu)2.清洗方式第三章基本技術(shù)方法3.2技術(shù)路線
1.HTML頁面結(jié)構(gòu)文本組成。所以從Web中進行數(shù)據(jù)抽取,可有兩種不同的方式,一種是行分隔方式,另一種是樹形結(jié)構(gòu)方式。在行分隔方式中,我們把網(wǎng)頁的數(shù)據(jù)看作文本內(nèi)容,把網(wǎng)頁中的標(biāo)簽理解為分隔符,這樣在進行數(shù)據(jù)抽取時就比較容易。2.清洗方式Web內(nèi)容清洗可以有兩種方式,一種是逐行方式,另一種是使用樹形結(jié)構(gòu)方式。逐行方式中,采用基于正則表達式的HTML分析技術(shù),它是基于文件中的分隔符,配合正則表達式,獲取需要的數(shù)據(jù)。第三章基本技術(shù)方法3.3
ETL工具3.2
技術(shù)路線3.1
ETL入門3.4
ETL子系統(tǒng)習(xí)題大數(shù)據(jù)應(yīng)用人才培養(yǎng)系列教材多平臺管理和調(diào)試功能集成性和開放性3.3
ETL工具數(shù)據(jù)轉(zhuǎn)換多種數(shù)據(jù)源管理元數(shù)據(jù)第三章基本技術(shù)方法ETL功能第三章基本技術(shù)方法3.3ETL工具3.3.1ETL功能
評價ETL設(shè)計的好壞需要從多個不同的角度來考慮,主要包括對多平臺的支持、數(shù)據(jù)源格式的支持、數(shù)據(jù)的轉(zhuǎn)換、數(shù)據(jù)的管理和調(diào)試、數(shù)據(jù)的集成和開放性以及對元數(shù)據(jù)的管理等方面。1.多平臺業(yè)務(wù)數(shù)據(jù)量的飛速增長,對系統(tǒng)的可靠性提出了更高的要求。對于海量的數(shù)據(jù)抽取,往往要求在有限的時間內(nèi)完成。所以,平臺對ETL開發(fā)工具的支持成為衡量一個開發(fā)工具的重要指標(biāo)。目前主流的平臺包括Windows、Linux、IBMAIX、MacOS等。第三章基本技術(shù)方法3.3ETL工具
3.3.1ETL功能
2.多種數(shù)據(jù)源開發(fā)工具對數(shù)據(jù)源的支持非常重要,不僅要考慮項目開發(fā)中各種不同類型的數(shù)據(jù)源,還要考慮數(shù)據(jù)源的接口類型。例如,在數(shù)據(jù)抽取時,使用原廠商自己的專用接口,還是通用接口,效率會大不一樣。數(shù)據(jù)源包括Oracle、SQLServer、DB2、Sybase、MicrosoftExcel等。
3.?dāng)?shù)據(jù)轉(zhuǎn)換由于在業(yè)務(wù)系統(tǒng)中的數(shù)據(jù),存在數(shù)據(jù)時間跨度大、數(shù)據(jù)量多而亂的特點,就會造成在數(shù)據(jù)業(yè)務(wù)系統(tǒng)中可能會有多種完全不同的存儲格式,也有可能業(yè)務(wù)系統(tǒng)存儲的數(shù)據(jù)需要進行計算才能夠抽取,因此,ETL功能中必須要有對數(shù)據(jù)進行計算、合并、拆分等轉(zhuǎn)換功能。第三章基本技術(shù)方法3.3ETL工具3.3.1ETL功能
4.具備管理和調(diào)試功能由于數(shù)據(jù)業(yè)務(wù)量的增大,對數(shù)據(jù)抽取的要求也越來越高,專業(yè)的ETL工具要求具有管理和調(diào)度的功能,主要包括抽取過程的備份和恢復(fù)、版本升級、版本管理、支持統(tǒng)一的管理平臺等功能。
5.集成性和開放性隨著國內(nèi)數(shù)據(jù)倉庫技術(shù)的不斷發(fā)展,大多數(shù)情況下一般項目只會用到ETL工具的少數(shù)幾個功能,開發(fā)商將ETL工具的主要功能模塊集成到自己的系統(tǒng)中,這樣可以減少用戶的操作錯誤。這就要求ETL能夠具有較好的集成性和開放性。第三章基本技術(shù)方法3.3ETL工具
3.3.1ETL功能
6.管理元數(shù)據(jù)元數(shù)據(jù)是描述數(shù)據(jù)的數(shù)據(jù),它是對業(yè)務(wù)數(shù)據(jù)本身及其運行環(huán)境的描述與定義,主要用于支持業(yè)務(wù)系統(tǒng)應(yīng)用。元數(shù)據(jù)的主要表現(xiàn)是對對象的描述,即對數(shù)據(jù)庫、表、列、主鍵等的描述。在當(dāng)前信息化建設(shè)中,一些應(yīng)用的異構(gòu)性和分布性越來越普遍,使用統(tǒng)一的元數(shù)據(jù)成為重要的選擇,合理的元數(shù)據(jù)可以打破以往信息化建設(shè)中的“信息孤島”等問題。第三章基本技術(shù)方法of40713.3ETL工具3.3.2開源ETL工具
1.PentahoKettleKettle是一款國外的開源ETL工具,純Java編寫,可以在Windows、Linux、UNIX上運行,無須安裝,數(shù)據(jù)抽取高效穩(wěn)定。Kettle(中文譯名:水壺),該項目的主程序員Matt希望把各種數(shù)據(jù)放到一個壺里,然后以一種指定的格式流出。Kettle將ETL流程編譯為XML格式,學(xué)起來十分簡單,PentahoDataIntegration(Kettle)使用Java(Swing)開發(fā)。Kettle作為編譯器對以XML格式書寫的流程進行編譯。Kettle的JavaScript引擎(和Java引擎)可以深層地控制對數(shù)據(jù)的處理。第三章基本技術(shù)方法3.3ETL工具3.3.2開源ETL工具
2.OpenRefineOpenRefine最初叫作FreebaseGridworks,由一家名為Metaweb的公司開發(fā),主要用于調(diào)試各種表格,以避免隨著時間的推移出現(xiàn)錯誤,這對于任何數(shù)據(jù)庫來說都是一個很大的問題。后來,該軟件被谷歌收購,更名為GoogleRefine,并發(fā)布了第2版。2012年10月,GoogleRefine被社區(qū)接管,并以O(shè)penRefine為名進行了開源。第三章基本技術(shù)方法3.3ETL工具
3.3.2開源ETL工具
3.DataWranglerDataWrangler(中文譯名:牧馬人)是一款由斯坦福大學(xué)開發(fā)的在線數(shù)據(jù)清洗、數(shù)據(jù)重組軟件,主要用于去除無效數(shù)據(jù),將數(shù)據(jù)整理成用戶需要的格式等。使用DataWrangler能節(jié)約用戶花在數(shù)據(jù)整理上的時間,從而使其有更多的精力用于數(shù)據(jù)分析。(校企)第三章基本技術(shù)方法3.3ETL工具
3.3.2開源ETL工具
4.HawkHawk是一種數(shù)據(jù)抓取和清洗工具,依據(jù)GPL協(xié)議開源,軟件基于C#實現(xiàn),其前端界面使用WPF開發(fā),支持插件擴展。能夠靈活高效地采集網(wǎng)頁、數(shù)據(jù)庫、文件等來源的數(shù)據(jù),并通過可視化拖曳操作,快速地進行生成、過濾、轉(zhuǎn)換等數(shù)據(jù)操作,快速建立解決方案。非常適合作為網(wǎng)頁爬蟲和數(shù)據(jù)清洗工具。Hawk含義為“鷹”,形容能夠高效、準(zhǔn)確地抓取和清洗數(shù)據(jù)。(校企)第三章基本技術(shù)方法3.4
ETL子系統(tǒng)3.2
技術(shù)路線3.3
ETL工具3.1
ETL入門習(xí)題大數(shù)據(jù)應(yīng)用人才培養(yǎng)系列教材第三章基本技術(shù)方法3.4ETL子系統(tǒng)3.4.1抽取
抽取類子系統(tǒng)中,主要包括數(shù)據(jù)分析系統(tǒng)、增量捕獲系統(tǒng)和數(shù)據(jù)抽取系統(tǒng)。數(shù)據(jù)分析系統(tǒng)主要用來分析不同類型的數(shù)據(jù)源,包括數(shù)據(jù)源的格式、數(shù)據(jù)的類型、數(shù)據(jù)的內(nèi)容等。數(shù)據(jù)增量捕獲系統(tǒng)主要是捕獲數(shù)據(jù)源中發(fā)生了改變的數(shù)據(jù),在Kettle中可通過時間戳的方式來捕獲數(shù)據(jù)的變化。數(shù)據(jù)抽取系統(tǒng)主要是從不同的數(shù)據(jù)源抽取數(shù)據(jù),通過數(shù)據(jù)的過濾和排序,數(shù)據(jù)格式的轉(zhuǎn)換,遷移到ETL環(huán)境,進行數(shù)據(jù)暫存。第三章基本技術(shù)方法3.4ETL子系統(tǒng)3.4.2清洗和更正數(shù)據(jù)清洗和更正數(shù)據(jù)子系統(tǒng)主要包括數(shù)據(jù)清洗系統(tǒng)、錯誤處理系統(tǒng)、審計維度系統(tǒng)、重復(fù)數(shù)據(jù)排查系統(tǒng)和數(shù)據(jù)一致性系統(tǒng)。數(shù)據(jù)清洗系統(tǒng)主要是根據(jù)系統(tǒng)業(yè)務(wù)需求對數(shù)據(jù)源中的數(shù)據(jù)進行清洗,提高數(shù)據(jù)的質(zhì)量。通過清洗,可以找到錯誤的數(shù)據(jù),并進行更正。在數(shù)據(jù)清洗系統(tǒng)中,數(shù)據(jù)業(yè)務(wù)人員、源系統(tǒng)開發(fā)人員、ELT開發(fā)人員都有義務(wù)來完成數(shù)據(jù)的清洗。第三章基本技術(shù)方法3.4ETL子系統(tǒng)3.4.3數(shù)據(jù)發(fā)布
數(shù)據(jù)發(fā)布類子系統(tǒng)主要是加載和更新數(shù)據(jù)倉庫數(shù)據(jù),包括數(shù)據(jù)緩慢變化維度處理系統(tǒng)、遲到維度處理系統(tǒng)、代理鍵生成系統(tǒng)等。這里主要講述數(shù)據(jù)緩慢變化維度處理系統(tǒng)。數(shù)據(jù)緩慢變化維度處理系統(tǒng)是多維度數(shù)據(jù)倉庫的基礎(chǔ),它保存了對事實表進行分析的信息。例如,如果業(yè)務(wù)系統(tǒng)修改了客戶的信息,維度變更也會根據(jù)不同的規(guī)則變更數(shù)據(jù)倉庫中的數(shù)據(jù)維度。變更方式可采用覆蓋、增加新行、增加新列、增加小維度表、分離歷史表等方式。第三章基本技術(shù)方法3.4ETL子系統(tǒng)
3.4.4管理ETL
管理ETL系統(tǒng)主要是對ETL開發(fā)環(huán)境進行設(shè)置,包括備份系統(tǒng)、恢復(fù)和重新啟動子系統(tǒng)、工作流監(jiān)控系統(tǒng)、問題報告系統(tǒng)、版本控制系統(tǒng)等。第三章基本技術(shù)方法3.2
技術(shù)路線3.3
ETL工具3.1
ETL入門習(xí)題大數(shù)據(jù)應(yīng)用人才培養(yǎng)系列教材1.什么是ETL,其主要功能是什么?2.對數(shù)據(jù)倉庫典型的需求包括哪幾個方面?3.在數(shù)據(jù)評估中,對數(shù)據(jù)源進行清潔處理主要包括哪幾個方面?4.簡述比較流行的開源ETL工具。5.ETL子系統(tǒng)主要包括哪4種類型?習(xí)題:第四章常用數(shù)據(jù)清洗工具及基本操作4.1MicrosoftExcel數(shù)據(jù)清洗基本操作4.2Kettle簡介及基本操作4.3OpenRefine簡介及基本操作4.5Hawk簡介及基本操作
4.4DataWrangler簡介及基本操作4.6上機練習(xí)與實訓(xùn)習(xí)題大數(shù)據(jù)應(yīng)用人才培養(yǎng)系列教材4.1MicrosoftExcel數(shù)據(jù)清洗基本操作第四章常用數(shù)據(jù)清洗工具及基本操作
4.1.1Excel數(shù)據(jù)清洗概述MicrosoftExcel是微軟公司MicrosoftOffice系列辦公軟件的重要組件之一,是一個功能強大的電子表格程序,能將整齊而美觀的表格呈現(xiàn)給用戶,還可以將表格中的數(shù)據(jù)通過多種形式的圖形、圖表表現(xiàn)出來,增強表格的表達力和感染力。MicrosoftExcel也是一個復(fù)雜的數(shù)據(jù)管理和分析軟件,能完成許多復(fù)雜的數(shù)據(jù)運算,幫助使用者做出最優(yōu)的決策。利用Excel內(nèi)嵌的各種函數(shù)可以方便地實現(xiàn)數(shù)據(jù)清洗的功能,并且可以借助過濾、排序、作圖等工具看出數(shù)據(jù)的規(guī)律。另外,Excel還支持VBA編程,可以實現(xiàn)各種更加復(fù)雜的數(shù)據(jù)運算和清理。作為一款桌面型數(shù)據(jù)處理軟件,Excel主要面向日常辦公和中小型數(shù)據(jù)集的處理,但在面對海量數(shù)據(jù)的清洗任務(wù)時卻是難以勝任的,即使是小型數(shù)據(jù)集在使用前也存在需要規(guī)范化的問題,因此,通過在Excel中進行數(shù)據(jù)清洗的實踐操作,有助于幫助讀者理解數(shù)據(jù)清洗的概念和知識,并掌握一定的操作技巧,為后面進行大數(shù)據(jù)集的清洗打好基礎(chǔ)。4.1MicrosoftExcel數(shù)據(jù)清洗基本操作第四章常用數(shù)據(jù)清洗工具及基本操作主要針對與數(shù)據(jù)清洗密切相關(guān)的操作和注意事項做簡要介紹1.Excel數(shù)據(jù)清洗相關(guān)操作快速定位和快速填充12數(shù)據(jù)分列3Excel中的數(shù)據(jù)類型和數(shù)據(jù)格式第四章常用數(shù)據(jù)清洗工具及基本操作存儲存儲成本下降4.1MicrosoftExcel數(shù)據(jù)清洗基本操作
1數(shù)據(jù)分列在利用Excel進行數(shù)據(jù)處理過程中,常會遇到1列單元格中的數(shù)據(jù)是組合型的情況,即粒度過大,如“2017-03-25Saturday18:22”,包含日期、星期和時間3個部分,如圖4-1所示。需要將之拆分為獨立的3列,這時就可以采用分列功能實現(xiàn),操作步驟為:步驟1:選定要進行分列的數(shù)據(jù),然后單擊“數(shù)據(jù)”工具欄,選擇“分列”,如圖4-2所示。圖4-1組合型數(shù)據(jù)示例
圖4-2選擇“分列”操作第四章常用數(shù)據(jù)清洗工具及基本操作4.1MicrosoftExcel數(shù)據(jù)清洗基本操作步驟2:出現(xiàn)文本分列向?qū)Вū鞠驅(qū)б部梢栽谶x中待分列區(qū)域后,按Alt+A+E快捷鍵快速打開),如圖4-3所示,默認選中“分隔符號”,單擊“下一步”按鈕。圖4-3文本分列向?qū)У?步步驟3:選擇分隔符號,本例中為空格,所以選中“空格”復(fù)選框,選中后,在數(shù)據(jù)預(yù)覽的區(qū)域里就會顯示按照要求分隔后的格式,如圖4-4所示,單擊“下一步”按鈕。圖4-4文本分列向?qū)У?步第四章常用數(shù)據(jù)清洗工具及基本操作4.1MicrosoftExcel數(shù)據(jù)清洗基本操作步驟4:設(shè)置分列后各列的數(shù)據(jù)格式,根據(jù)實際情況而定,這里設(shè)為文本格式,選中“文本”單選按鈕,如圖4-5所示。步驟5:設(shè)置分列后,還可設(shè)置數(shù)據(jù)存放的區(qū)域,如圖4-6所示,單擊“完成”按鈕。圖4-5文本分列向?qū)У?步圖4-6設(shè)置數(shù)據(jù)存放區(qū)域存儲存儲成本下降第四章常用數(shù)據(jù)清洗工具及基本操作4.1MicrosoftExcel數(shù)據(jù)清洗基本操作可以看到,數(shù)據(jù)已被完美地分開,如圖4-7所示。圖4-7完成數(shù)據(jù)分列
第四章常用數(shù)據(jù)清洗工具及基本操作4.1MicrosoftExcel數(shù)據(jù)清洗基本操作2快速定位和快速填充在日常的工作中經(jīng)常會看到一些重復(fù)項合并的Excel表格,如月份、地區(qū)等,主要是為了方便查看,如圖4-8所示A列的銷售區(qū)。但這樣的工作表,沒有辦法使用數(shù)據(jù)透視表功能進行統(tǒng)計、匯總和分析等。圖4-8重復(fù)項合并示例第八章清洗RDBMS數(shù)據(jù)實例
第四章常用數(shù)據(jù)清洗工具及基本操作4.1MicrosoftExcel數(shù)據(jù)清洗基本操作對此,可以使用Excel的“定位”功能來實現(xiàn)快速填充,步驟如下:
步驟1:選中A列,單擊“合并后居中”按鈕,取消單元格合并,結(jié)果如圖4-9所示。圖4-9取消單元格合并第八章清洗RDBMS數(shù)據(jù)實例
第四章常用數(shù)據(jù)清洗工具及基本操作4.1MicrosoftExcel數(shù)據(jù)清洗基本操作步驟2:選中A列,然后依次單擊“查找和選擇”→“定位條件”→“空值”按鈕(或按Ctrl+G快捷鍵彈出“定位”對話框后,單擊“定位條件”按鈕,如圖4-10所示)。
步驟3:在隨后彈出的“定位條件”對話框中選中“空值”單選按鈕,然后單擊“確定”按鈕,如圖4-11所示。圖4-10“定位”對話框
圖4-11“定位條件”對話框第八章清洗RDBMS數(shù)據(jù)實例
第四章常用數(shù)據(jù)清洗工具及基本操作4.1MicrosoftExcel數(shù)據(jù)清洗基本操作步驟4:在定位的空值單元格中輸入“=A3”(根據(jù)實際情況輸入),如圖4-12所示。步驟5:按Ctrl+Enter快捷鍵完成填充,結(jié)果如圖4-13所示。圖4-12輸入定位條件
圖4-13完成定位填充第四章常用數(shù)據(jù)清洗工具及基本操作4.1MicrosoftExcel數(shù)據(jù)清洗基本操作
3Excel中的數(shù)據(jù)類型和數(shù)據(jù)格式在Excel中,數(shù)據(jù)類型只有3種,分別是文本型、數(shù)字型和邏輯型。所有單元格默認的類型為數(shù)字型;當(dāng)輸入內(nèi)容是以單引號為先導(dǎo)符時為文本型,一般當(dāng)單元格中的數(shù)據(jù)為文本型時,單元格的左上角會出現(xiàn)綠色的小三角型標(biāo)記;邏輯型是指運算結(jié)果為TRUE或FALSE的二值型數(shù)據(jù)。3種類型分別可以用函數(shù)istext()、isnumber()和islogical()進行判斷。3種數(shù)據(jù)類型的對應(yīng)關(guān)系如圖4-14所示。數(shù)據(jù)格式是指Excel中各個數(shù)據(jù)類型的外在表現(xiàn)形式,同一數(shù)據(jù)類型有多種數(shù)據(jù)格式,在工具欄上單擊“設(shè)置單元格格式”按鈕(或在單元格中右擊,在彈出的快捷菜單中選擇選擇“設(shè)置單元格”命令),出現(xiàn)設(shè)置數(shù)據(jù)格式對話框,如圖4-15所示。圖4-14Excel的數(shù)據(jù)類型圖4-15設(shè)置單元格格式4.1MicrosoftExcel數(shù)據(jù)清洗基本操作第四章常用數(shù)據(jù)清洗工具及基本操作關(guān)于數(shù)據(jù)類型和數(shù)據(jù)格式的關(guān)系主要有以下幾點:1所有單元格默認的類型為數(shù)字型,單元格格式的改變不會改變數(shù)據(jù)類型本身,但單元格格式會影響新生成數(shù)據(jù)的類型。2
以文本形式存儲的數(shù)字,在參與四則運算時會轉(zhuǎn)變成為數(shù)字,結(jié)果為數(shù)字型;在參與函數(shù)運算時會忽略不計,但運算結(jié)果仍為數(shù)字型。以上是Excel數(shù)據(jù)清洗的常用操作介紹,使用數(shù)據(jù)分列功能是為了使數(shù)據(jù)的粒度變??;定位填充功能是為了將原始數(shù)據(jù)中存在的合并居中現(xiàn)象取消,并實現(xiàn)快速的數(shù)據(jù)填充,實例中僅使用了定位條件中的“空值”,日常工作中可以根據(jù)實際需要,選取其他的條件;正確理解Excel中數(shù)據(jù)類型和數(shù)據(jù)格式的區(qū)別和聯(lián)系,有利于在實際的數(shù)據(jù)操作中避免錯誤。4.1MicrosoftExcel數(shù)據(jù)清洗基本操作第四章常用數(shù)據(jù)清洗工具及基本操作Excel的函數(shù)功能十分強大,同時也非常復(fù)雜,其中很多都可以直接用來進行初步的數(shù)據(jù)清洗操作,本節(jié)按照功能介紹10類函數(shù),根據(jù)經(jīng)驗,這些函數(shù)在實際的數(shù)據(jù)清洗工作中使用頻率較高,應(yīng)用面也較廣,使用這些函數(shù)可以讓工作事半功倍。2.Excel數(shù)據(jù)清洗常用函數(shù)AVERAGE函數(shù)12SUM函數(shù)3COUNT函數(shù)4INT函數(shù)和ROUND函數(shù)5IF函數(shù)67NOW函數(shù)和TODAY函數(shù)8ISNUMBER函數(shù)、ISTEXT函數(shù)和ISLOGICAL函數(shù)9MAX函數(shù)和MIN函數(shù)10SUMIF函數(shù)和COUNTIF函數(shù)HLOOKUP函數(shù)和VLOOKUP函數(shù)964.1MicrosoftExcel數(shù)據(jù)清洗基本操作第四章常用數(shù)據(jù)清洗工具及基本操作SUM函數(shù)用來承擔(dān)數(shù)學(xué)的加法運算,其參數(shù)可以是單個數(shù)字或一組數(shù)字,因此它的加法運算功能十分強大。使用一個單元格區(qū)域的語法結(jié)構(gòu):=SUM(A1:A12)使用多個單元格區(qū)域的語法結(jié)構(gòu):=SUM(A1:A12,B1:B12)AVERAGE函數(shù)是頻繁使用的一個統(tǒng)計函數(shù),用于計算數(shù)據(jù)集的平均值。其參數(shù)可以是數(shù)字,或者是單元格區(qū)域。使用一個單元格區(qū)域的語法結(jié)構(gòu):=AVERAGE(A1:A12)使用多個單元格區(qū)域的語法結(jié)構(gòu):=AVERAGE(A1:A12,B1:B12)1297COUNT函數(shù)用于統(tǒng)計含有數(shù)字的單元格的個數(shù)。注意:COUNT函數(shù)不會將數(shù)字相加,而只是統(tǒng)計共有多少個數(shù)字。COUNT函數(shù)的參數(shù)可以是單元格、單元格引用或者數(shù)字本身。COUNT函數(shù)會忽略非數(shù)字單元格的值。例如,如果A1:A10是COUNT函數(shù)的參數(shù),但是其中只有兩個單元格含有數(shù)字,那么COUNT函數(shù)返回的值是2。使用一個單元格區(qū)域的語法結(jié)構(gòu):=COUNT(A1:A12)使用多個單元格區(qū)域的語法結(jié)構(gòu):=COUNT(A1:A12,B1:B12)4.1MicrosoftExcel數(shù)據(jù)清洗基本操作第四章常用數(shù)據(jù)清洗工具及基本操作97398INT函數(shù)和ROUND函數(shù)都是將一個數(shù)字的小數(shù)部分刪除,兩者的區(qū)別在于:INT函數(shù)是無條件地將小數(shù)部分刪除,無須進行四舍五入。該函數(shù)只有一個參數(shù),語法結(jié)構(gòu):=INT(number)需要注意的是,INT函數(shù)總是向下舍去小數(shù)部分。例如,INT(-5.1)和INT(-5.9)都是等于-6,而不是-5,因為-6才是-5.1和-5.9向下舍入的數(shù)字。相反,ROUND函數(shù)是將一個數(shù)字的小數(shù)部分四舍五入。該函數(shù)有兩個參數(shù):需要計算的數(shù)字和需要四舍五入的小數(shù)位數(shù),語法結(jié)構(gòu):=ROUND(number,小數(shù)位數(shù))另外還有兩個函數(shù)ROUNDUP和ROUNDDOWN,可以規(guī)定是向上舍入還是向下舍入。ROUNDUP和ROUNDDOWN的語法結(jié)構(gòu)與ROUND相似:=ROUNDUP(number,小數(shù)位數(shù))=ROUNDDOWN(number,小數(shù)位數(shù))4.1MicrosoftExcel數(shù)據(jù)清洗基本操作第四章常用數(shù)據(jù)清洗工具及基本操作98984994.1MicrosoftExcel數(shù)據(jù)清洗基本操作第四章常用數(shù)據(jù)清洗工具及基本操作99995IF函數(shù)的主要用途是執(zhí)行邏輯判斷,根據(jù)邏輯表達式的真假,返回不同的結(jié)果,從而執(zhí)行數(shù)值或公式的條件檢測任務(wù)。邏輯判斷的結(jié)果是返回一個TRUE或FALSE的值,注意這里的TRUE或FALSE不是正確和錯誤的意思,而是邏輯上的真與假的意思。IF函數(shù)的語法結(jié)構(gòu):=IF(邏輯判斷,為TRUE時的結(jié)果,為FALSE時的結(jié)果)例如,給出的條件是B25>C30,如果實際情況是TRUE,那么IF函數(shù)就返回第二個參數(shù)的值;如果是FALSE,則返回第三個參數(shù)的值。IF函數(shù)常常用來檢查數(shù)據(jù)的邏輯錯誤,如使用二分法的多選題錄入時,出現(xiàn)了1和0以外的數(shù)字,可以通過如下設(shè)置,過程如圖4-19所示:步驟1:選中數(shù)值區(qū)域→格式→條件格式→公式。步驟2:輸入公式,設(shè)置格式。圖4-19數(shù)據(jù)邏輯錯誤檢查100NOW函數(shù)根據(jù)計算機現(xiàn)在的系統(tǒng)時間返回相應(yīng)的日期和時間。TODAY函數(shù)則只返回日期。NOW函數(shù)和TODAY函數(shù)都沒有參數(shù)。語法結(jié)構(gòu)如下:=NOW()=TODAY()TODAY函數(shù)常用來計算過去到“今天”總共有多少天的計算上。例如,項目到今天總共進行多少天了?在一個單元格上輸入開始日期,另一個單元格輸入公式減去TODAY得到的日期,得出的數(shù)字就是項目進行的天數(shù)。請注意可能需要更改單元格的格式,才能正確顯示所需要的日期和時間格式。4.1MicrosoftExcel數(shù)據(jù)清洗基本操作第四章常用數(shù)據(jù)清洗工具及基本操作1001001006HLOOKUP函數(shù)和VLOOKUP函數(shù)都可以用來在表格中查找數(shù)據(jù)。所謂的表格是指用戶預(yù)先定義的行和列區(qū)域。具體來說,HLOOKUP返回的值與需要查找的值在同一列上,而VLOOKUP返回的值與需要查找的值在同一行上。兩個函數(shù)的語法結(jié)構(gòu)是:=HLOOKUP(查找值,區(qū)域,第幾行,匹配方式)=VLOOKUP(查找值,區(qū)域,第幾列,匹配方式)這兩個函數(shù)的第一個參數(shù)是需要查找的值,如果在表格中查找到這個值,則返回一個不同的值。71014.1MicrosoftExcel數(shù)據(jù)清洗基本操作第四章常用數(shù)據(jù)清洗工具及基本操作101101ISNUMBER函數(shù)、ISTEXT函數(shù)和ISLOGICAL函數(shù)這3個函數(shù)的功能是判斷Excel的數(shù)據(jù)類型,ISNUMBER函數(shù)判斷單元格中的值是否是數(shù)字,ISTEXT函數(shù)判斷單元格中的值是否是文本,ISLOGICAL函數(shù)判斷單元格中的值是TRUE或FALSE,這3個函數(shù)的返回值均為TRUE或FALSE。語法結(jié)構(gòu)是:=ISNUMBER(value)=ISTEXT(value)=ISLOGICAL(value)8MAX函數(shù)和MIN函數(shù)是在單元格區(qū)域中找到最大和最小的數(shù)值。兩個函數(shù)可以擁有30個參數(shù),參數(shù)還可以是單元格區(qū)域。兩個函數(shù)的語法結(jié)構(gòu)是:=MAX(number1,[number2],…)=MIN(number1,[number2],…)使用一個單元格區(qū)域的語法結(jié)構(gòu):=MAX(A1:A12)使用多個單元格區(qū)域的語法結(jié)構(gòu):=MAX(A1:A12,B1:B12)9①SUMIF函數(shù)有3個參數(shù),其語法結(jié)構(gòu):=SUMIF(判斷范圍,判斷要求,匯總的區(qū)域)第一個參數(shù)可以與第三個參數(shù)不同,即實際需要匯總的區(qū)域可以不是應(yīng)用判斷要求的區(qū)域。第三個參數(shù)可以忽略,忽略的情況下,第一個參數(shù)應(yīng)用條件判斷的單元格區(qū)域就會用來作為需要求和的區(qū)域。②COUNTIF函數(shù)用來計算單元格區(qū)域內(nèi)符合條件的單元格個數(shù)。COUNTIF函數(shù)只有兩個參數(shù),其語法結(jié)構(gòu):=COUNTIF(單元格區(qū)域,計算的條件)如果其中一個單元格的值符合條件,則不管單元格里面的值是多少,返回值是1。利用這一特性可以進行重復(fù)數(shù)據(jù)的處理。例如:對圖4-20中的數(shù)據(jù)進行處理,分別找出重復(fù)值和非重復(fù)值。1024.1MicrosoftExcel數(shù)據(jù)清洗基本操作第四章常用數(shù)據(jù)清洗工具及基本操作102102SUMIF函數(shù)和COUNTIF函數(shù)分別根據(jù)條件匯總或計算單元格個數(shù),Excel的計算功能因此大大增強。圖4-20尋找重復(fù)值和非重復(fù)值10B1=COUNTIF(A:A,A1)尋找重復(fù)值;C1=COUNTIF(A$1:A1,A1)篩選出所有非重復(fù)項(篩選出1即可)。1031.1MicrosoftExcel數(shù)據(jù)清洗基本操作第四章常用數(shù)據(jù)清洗工具及基本操作1031033.Excel數(shù)據(jù)清洗操作的注意事項①同一份數(shù)據(jù)清單中避免出現(xiàn)空行和空列;②數(shù)據(jù)清單中的數(shù)據(jù)盡可能細化,不要使用數(shù)據(jù)合并;③構(gòu)造單行表頭結(jié)構(gòu)的數(shù)據(jù)清單,不要有兩行以上的復(fù)雜表頭結(jié)構(gòu);④單元格的開頭和末尾避免輸入空格或其他控制符號;⑤在一個工作表中要避免建立多個數(shù)據(jù)清單,每個工作表僅使用一個數(shù)據(jù)清單;⑥當(dāng)工作表中有多個數(shù)據(jù)清單時,則數(shù)據(jù)清單之間應(yīng)至少留出一個空列和一個空行,以便于檢測和選定數(shù)據(jù)清單;⑦關(guān)鍵數(shù)據(jù)應(yīng)置于數(shù)據(jù)清單的頂部或底部;⑧對原始工作表做好備份,在執(zhí)行完所有的清洗操作并確認無誤后再復(fù)制到原始表中。1044.1MicrosoftExcel數(shù)據(jù)清洗基本操作第四章常用數(shù)據(jù)清洗工具及基本操作104104
4.1.2Excel數(shù)據(jù)清洗現(xiàn)有一個企業(yè)招聘職位信息的數(shù)據(jù)集,約有5000條數(shù)據(jù),客戶提出需要了解數(shù)據(jù)分析師崗位情況,包括崗位分布和特點、能力要求、工資和薪酬等。由于數(shù)據(jù)集沒有經(jīng)過處理,所以表中的數(shù)據(jù)還很不規(guī)范,含有大量數(shù)據(jù)重復(fù)、缺失、單列數(shù)據(jù)粒度過大等問題,因此,在進行數(shù)據(jù)分析前,需要進行數(shù)據(jù)清洗操作,以使數(shù)據(jù)規(guī)范化。下面介紹執(zhí)行數(shù)據(jù)清洗的主要過程。1054.1MicrosoftExcel數(shù)據(jù)清洗基本操作第四章常用數(shù)據(jù)清洗工具及基本操作1051051.?dāng)?shù)據(jù)預(yù)覽拿到數(shù)據(jù)后,不要急著動手處理,先對數(shù)據(jù)集做總體的觀察。如圖4-21所示,可以看到,數(shù)據(jù)集表頭由城市、公司名稱、公司編號、公司福利、公司規(guī)模、經(jīng)營區(qū)域、經(jīng)營范圍、教育程度、職位編號、職位名稱、薪水和工作年限要求等屬性組成。圖4-21招聘信息數(shù)據(jù)集1064.1MicrosoftExcel數(shù)據(jù)清洗基本操作第四章常用數(shù)據(jù)清洗工具及基本操作106106數(shù)據(jù)整體較為規(guī)整,但通過初步觀察,該數(shù)據(jù)集主要存在如下問題:(1)數(shù)據(jù)缺失(2)數(shù)據(jù)不一致(3)存在“臟”數(shù)據(jù)(4)數(shù)據(jù)不規(guī)范1074.1MicrosoftExcel數(shù)據(jù)清洗基本操作第四章常用數(shù)據(jù)清洗工具及基本操作1071072.進行數(shù)據(jù)清洗(1)清洗薪水?dāng)?shù)據(jù)(2)分列操作(3)搜索替換不一致第四章常用數(shù)據(jù)清洗工具及基本操作4.2Kettle簡介及基本操作4.1MicrosoftExcel數(shù)據(jù)清洗基本操作4.3OpenRefine簡介及基本操作4.5Hawk簡介及基本操作
4.4DataWrangler簡介及基本操作4.6上機練習(xí)與實訓(xùn)習(xí)題大數(shù)據(jù)應(yīng)用人才培養(yǎng)系列教材1094.2Kettle簡介及基本操作第四章常用數(shù)據(jù)清洗工具及基本操作109109大數(shù)據(jù)技術(shù)中,數(shù)據(jù)清洗的前期過程可簡單地認為就是ETL的過程。ETL(Extract-Transform-Load)負責(zé)將分散的、異構(gòu)數(shù)據(jù)源中的數(shù)據(jù)如關(guān)系數(shù)據(jù)、平面數(shù)據(jù)文件等抽取到臨時中間層,進行清洗、轉(zhuǎn)換、集成,最后加載到數(shù)據(jù)倉庫或數(shù)據(jù)集市中,作為聯(lián)機分析處理、數(shù)據(jù)挖掘提供決策支持的數(shù)據(jù)。在整個數(shù)據(jù)倉庫的構(gòu)建中,ETL
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 汽輪機和水輪機檢修工操作水平知識考核試卷含答案
- 遺體防腐整容師崗前安全技能考核試卷含答案
- 氧化擴散工崗前操作安全考核試卷含答案
- 量具制造工安全知識宣貫評優(yōu)考核試卷含答案
- 盾構(gòu)機操作工測試驗證能力考核試卷含答案
- 護理質(zhì)量與團隊協(xié)作
- 數(shù)控技術(shù)職業(yè)發(fā)展趨勢
- 企業(yè)風(fēng)險管理與防范制度
- 2026年及未來5年市場數(shù)據(jù)中國液晶模組行業(yè)發(fā)展監(jiān)測及投資策略研究報告
- 2026年及未來5年市場數(shù)據(jù)中國化妝品檢測行業(yè)市場發(fā)展現(xiàn)狀及投資方向研究報告
- 成人呼吸支持治療器械相關(guān)壓力性損傷的預(yù)防
- DHA乳狀液制備工藝優(yōu)化及氧化穩(wěn)定性的研究
- 2023年江蘇省五年制專轉(zhuǎn)本英語統(tǒng)考真題(試卷+答案)
- 三星-SHS-P718-指紋鎖使用說明書
- 岳麓書社版高中歷史必修三3.13《挑戰(zhàn)教皇的權(quán)威》課件(共28張PPT)
- 2007年國家公務(wù)員考試《申論》真題及參考答案
- GC/T 1201-2022國家物資儲備通用術(shù)語
- 污水管網(wǎng)監(jiān)理規(guī)劃
- GB/T 6730.65-2009鐵礦石全鐵含量的測定三氯化鈦還原重鉻酸鉀滴定法(常規(guī)方法)
- GB/T 35273-2020信息安全技術(shù)個人信息安全規(guī)范
- 《看圖猜成語》課件
評論
0/150
提交評論