《數(shù)據(jù)清洗:基本技術(shù)方法》課件_第1頁(yè)
《數(shù)據(jù)清洗:基本技術(shù)方法》課件_第2頁(yè)
《數(shù)據(jù)清洗:基本技術(shù)方法》課件_第3頁(yè)
《數(shù)據(jù)清洗:基本技術(shù)方法》課件_第4頁(yè)
《數(shù)據(jù)清洗:基本技術(shù)方法》課件_第5頁(yè)
已閱讀5頁(yè),還剩69頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第三章基本技術(shù)方法3.1

ETL入門3.2

技術(shù)路線3.3

ETL工具3.4

ETL子系統(tǒng)習(xí)題第三章基本技術(shù)方法3.1ETL入門3.2技術(shù)路線3.33.1

ETL入門第三章基本技術(shù)方法1ETL,全稱為Extraction-Transformation-Loading,中文名為數(shù)據(jù)抽取、轉(zhuǎn)換和加載。2ETL的主要功能是將分布的、異構(gòu)數(shù)據(jù)源中的數(shù)據(jù)如關(guān)系數(shù)據(jù)、平面數(shù)據(jù)文件等抽取到臨時(shí)中間層后進(jìn)行清洗、轉(zhuǎn)換、集成,最后加載到數(shù)據(jù)倉(cāng)庫(kù)或數(shù)據(jù)集市中,成為聯(lián)機(jī)分析處理、數(shù)據(jù)挖掘的基礎(chǔ)。3ETL也是一個(gè)長(zhǎng)期的過(guò)程,只有不斷地發(fā)現(xiàn)問(wèn)題并解決問(wèn)題,才能使ETL運(yùn)行效率更高,為項(xiàng)目后期開發(fā)提供準(zhǔn)確的數(shù)據(jù)。企業(yè)每年產(chǎn)生海量的數(shù)據(jù),這些數(shù)據(jù),有的對(duì)企業(yè)非常重要,有的對(duì)企業(yè)沒(méi)有用處。如何在海量數(shù)據(jù)中抽取出有用的數(shù)據(jù)?可以通過(guò)ETL來(lái)進(jìn)行實(shí)現(xiàn)。3.1.1ETL解決方案3.1ETL入門第三章基本技術(shù)方法1ETL,全稱為Ex“一切圍繞需求”最終用戶提交界面數(shù)據(jù)集成業(yè)務(wù)需求數(shù)據(jù)評(píng)估大ETL系統(tǒng)的最終步驟是將數(shù)據(jù)提交給最終用戶,提交過(guò)程占據(jù)十分重要的位置,并對(duì)構(gòu)成最終用戶應(yīng)用的數(shù)據(jù)結(jié)構(gòu)和內(nèi)容進(jìn)行嚴(yán)格把關(guān),確保其簡(jiǎn)單快捷。。在數(shù)據(jù)進(jìn)入數(shù)據(jù)倉(cāng)庫(kù)之前,需要將全部數(shù)據(jù)無(wú)縫集成到一起。數(shù)據(jù)集成可采用規(guī)?;谋砀駚?lái)實(shí)現(xiàn),也就是在分離的數(shù)據(jù)庫(kù)中建立公共維度實(shí)體,從而快速構(gòu)建報(bào)表。業(yè)務(wù)需求是數(shù)據(jù)倉(cāng)庫(kù)最終用戶的信息需求,它直接決定了數(shù)據(jù)源的選擇。在ETL設(shè)計(jì)時(shí),需要考慮原始數(shù)據(jù)是否能解決用戶的業(yè)務(wù)需求,同時(shí),業(yè)務(wù)需求和數(shù)據(jù)源的內(nèi)容是不斷變化的,需要對(duì)ETL不斷進(jìn)行檢驗(yàn)和討論。數(shù)據(jù)評(píng)估是使用分析方法來(lái)檢查數(shù)據(jù),充分了解數(shù)據(jù)的內(nèi)容、質(zhì)量。設(shè)計(jì)好的數(shù)據(jù)評(píng)估方法能夠處理海量數(shù)據(jù)。3.1

ETL入門第三章基本技術(shù)方法“一切圍繞需求”最終用戶提交界面數(shù)據(jù)集成業(yè)務(wù)需求數(shù)據(jù)評(píng)估大E“一切圍繞需求”3.1

ETL入門1.業(yè)務(wù)需求業(yè)務(wù)需求是數(shù)據(jù)倉(cāng)庫(kù)最終用戶的信息需求,它直接決定了數(shù)據(jù)源的選擇。在許多情況下,最初對(duì)于數(shù)據(jù)源的調(diào)查不一定完全反映數(shù)據(jù)的復(fù)雜性和局限性,所以在ETL設(shè)計(jì)時(shí),需要考慮原始數(shù)據(jù)是否能解決用戶的業(yè)務(wù)需求,同時(shí),業(yè)務(wù)需求和數(shù)據(jù)源的內(nèi)容是不斷變化的,需要對(duì)ETL不斷進(jìn)行檢驗(yàn)和討論。對(duì)數(shù)據(jù)倉(cāng)庫(kù)典型的需求包括:數(shù)據(jù)源的歸檔備份以及隨后的數(shù)據(jù)存儲(chǔ)。任何造成數(shù)據(jù)修改的交易記錄的完整性證明。對(duì)分配和調(diào)整的規(guī)則進(jìn)行完備的文檔記錄。數(shù)據(jù)備份的安全性證明,不論是在線還是離線進(jìn)行。第三章基本技術(shù)方法“一切圍繞需求”3.1ETL入門1.業(yè)務(wù)需求第三章基“一切圍繞需求”3.1

ETL入門2.?dāng)?shù)據(jù)評(píng)估

數(shù)據(jù)評(píng)估是使用分析方法來(lái)檢查數(shù)據(jù),充分了解數(shù)據(jù)的內(nèi)容、質(zhì)量。設(shè)計(jì)好的數(shù)據(jù)評(píng)估方法能夠處理海量數(shù)據(jù)。

例如,企業(yè)的訂單系統(tǒng),能夠很好地滿足生產(chǎn)部門的需求。但是對(duì)于數(shù)據(jù)倉(cāng)庫(kù)來(lái)說(shuō),因?yàn)閿?shù)據(jù)倉(cāng)庫(kù)使用的字段并不是以訂單系統(tǒng)中的字段為中心,因此訂單系統(tǒng)中的信息對(duì)于數(shù)據(jù)倉(cāng)庫(kù)的分析來(lái)講是遠(yuǎn)遠(yuǎn)不夠的。對(duì)于“臟”數(shù)據(jù)源需要進(jìn)行操作處理,主要包括以下幾個(gè)方面:完全清除某些輸入字段;補(bǔ)入一些丟失的數(shù)據(jù);自動(dòng)替換掉某些錯(cuò)誤數(shù)據(jù)值;在記錄級(jí)別上進(jìn)行人工干預(yù);對(duì)數(shù)據(jù)進(jìn)行完全規(guī)范化的表述。第三章基本技術(shù)方法“一切圍繞需求”3.1ETL入門2.?dāng)?shù)據(jù)評(píng)估第三章基“一切圍繞需求”3.1

ETL入門3.?dāng)?shù)據(jù)集成在數(shù)據(jù)進(jìn)入數(shù)據(jù)倉(cāng)庫(kù)之前,需要將全部數(shù)據(jù)無(wú)縫集成到一起。數(shù)據(jù)集成可采用規(guī)?;谋砀駚?lái)實(shí)現(xiàn),也就是在分離的數(shù)據(jù)庫(kù)中建立公共維度實(shí)體,從而快速構(gòu)建報(bào)表。在ELT系統(tǒng)中,數(shù)據(jù)集成是數(shù)據(jù)流程中一個(gè)獨(dú)立的步驟,叫作規(guī)格化步驟。4.最終用戶提交界面ETL系統(tǒng)的最終步驟是將數(shù)據(jù)提交給最終用戶,提交過(guò)程占據(jù)十分重要的位置,并對(duì)構(gòu)成最終用戶應(yīng)用的數(shù)據(jù)結(jié)構(gòu)和內(nèi)容進(jìn)行嚴(yán)格把關(guān),確保其簡(jiǎn)單快捷。將使用復(fù)雜、查詢緩慢的數(shù)據(jù)直接交給最終用戶是不負(fù)責(zé)的,經(jīng)常犯的一個(gè)錯(cuò)誤就是將完全規(guī)范化的數(shù)據(jù)模型直接交給用戶,就不再過(guò)問(wèn)。第三章基本技術(shù)方法“一切圍繞需求”3.1ETL入門3.?dāng)?shù)據(jù)集成第三章基ETL基本構(gòu)成數(shù)據(jù)抽取數(shù)據(jù)轉(zhuǎn)換數(shù)據(jù)加載3.1

ETL入門3.1.2ETL基本構(gòu)成第三章基本技術(shù)方法ETL基本構(gòu)成數(shù)據(jù)抽取數(shù)據(jù)轉(zhuǎn)換數(shù)據(jù)加載3.1ETL入門3.“一切圍繞需求”3.1

ETL入門1.?dāng)?shù)據(jù)抽取所謂數(shù)據(jù)抽取,就是從源端數(shù)據(jù)系統(tǒng)中抽取目標(biāo)數(shù)據(jù)系統(tǒng)需要的數(shù)據(jù)。

進(jìn)行數(shù)據(jù)抽取的原則:一是要求準(zhǔn)確性,即能夠?qū)?shù)據(jù)源中的數(shù)據(jù)準(zhǔn)確抽取到;二是不對(duì)源端數(shù)據(jù)系統(tǒng)的性能、響應(yīng)時(shí)間等造成影響。數(shù)據(jù)抽取可分為全量抽取和增量抽取兩種方式。(1)全量抽取全量抽取好比數(shù)據(jù)的遷移和復(fù)制,它是將源端數(shù)據(jù)表中的數(shù)據(jù)一次性全部從數(shù)據(jù)庫(kù)中抽取出來(lái),再進(jìn)行下一步操作。(2)增量抽取增量抽取主要是在第一次全量抽取完畢后,需要對(duì)源端數(shù)據(jù)中新增或修改的數(shù)據(jù)進(jìn)行抽取。增量抽取的關(guān)鍵是抽取自上次以來(lái),數(shù)據(jù)表中已經(jīng)變化的數(shù)據(jù)。第三章基本技術(shù)方法“一切圍繞需求”3.1ETL入門1.?dāng)?shù)據(jù)抽取第三章基“一切圍繞需求”3.1

ETL入門1.?dāng)?shù)據(jù)抽?。?)增量抽取例如,在新生入學(xué)時(shí),所有學(xué)生的信息采集整理屬于全量抽?。辉诤笃?,如果有個(gè)別學(xué)生或部分學(xué)生需要休學(xué),對(duì)這部分學(xué)生的操作即屬于增量抽取。增量抽取一般有4種抽取模式①觸發(fā)器模式,這是普遍采用一種抽取模式。一般是建立3個(gè)觸發(fā)器,即插入、修改、刪除,并且要求用戶擁有操作權(quán)限。當(dāng)觸發(fā)器獲得新增數(shù)據(jù)后,程序會(huì)自動(dòng)從臨時(shí)表中讀取數(shù)據(jù)。這種模式性能高、規(guī)則簡(jiǎn)單、效率高,且不需要修改業(yè)務(wù)系統(tǒng)表結(jié)構(gòu),可實(shí)現(xiàn)數(shù)據(jù)的遞增加載。第三章基本技術(shù)方法“一切圍繞需求”3.1ETL入門1.?dāng)?shù)據(jù)抽取第三章基“一切圍繞需求”of403.1

ETL入門1.?dāng)?shù)據(jù)抽?。?)增量抽?、跁r(shí)間戳方式,即在源數(shù)據(jù)表中增加一個(gè)時(shí)間戳字段。當(dāng)系統(tǒng)修改源端數(shù)據(jù)表中的數(shù)據(jù)時(shí),同時(shí)修改時(shí)間戳的值。在進(jìn)行數(shù)據(jù)抽取時(shí),通過(guò)比較系統(tǒng)時(shí)間和時(shí)間戳的值來(lái)決定需要抽取哪些數(shù)據(jù)。③全表對(duì)比方式,即每次從源端數(shù)據(jù)表中讀取所有數(shù)據(jù),然后逐條比較數(shù)據(jù),將修改過(guò)的數(shù)據(jù)過(guò)濾出來(lái)。此種方式主要采用MD5校驗(yàn)碼。全表對(duì)比方式不會(huì)對(duì)源端表結(jié)構(gòu)產(chǎn)生影響。④日志對(duì)比方式,即通過(guò)分析數(shù)據(jù)庫(kù)的日志來(lái)抽取相應(yīng)的數(shù)據(jù)。這種方式主要是在Oracle9i數(shù)據(jù)庫(kù)中引入的。以上4種方式中,時(shí)間戳方式是使用最為廣泛的,在銀行業(yè)務(wù)中采用的就是時(shí)間戳方式。第三章基本技術(shù)方法“一切圍繞需求”of403.1ETL入門1.?dāng)?shù)據(jù)抽取第三章“一切圍繞需求”3.1

ETL入門2.?dāng)?shù)據(jù)轉(zhuǎn)換

數(shù)據(jù)轉(zhuǎn)換就是將從數(shù)據(jù)源獲取的數(shù)據(jù)按照業(yè)務(wù)需求,通過(guò)轉(zhuǎn)換、清洗、拆分等,加工成目的數(shù)據(jù)源所需要的格式。數(shù)據(jù)轉(zhuǎn)換是ETL過(guò)程中最關(guān)鍵的步驟,它主要是對(duì)數(shù)據(jù)格式、數(shù)據(jù)類型等進(jìn)行轉(zhuǎn)換。它可以在數(shù)據(jù)抽取過(guò)程中進(jìn)行,也可以通過(guò)ETL引擎進(jìn)行轉(zhuǎn)換。數(shù)據(jù)轉(zhuǎn)換的原因非常多,主要包括以下3種:①數(shù)據(jù)不完整,指數(shù)據(jù)庫(kù)的數(shù)據(jù)信息缺失。這種轉(zhuǎn)換需要對(duì)數(shù)據(jù)內(nèi)容進(jìn)行二次輸入,以進(jìn)行補(bǔ)全。②數(shù)據(jù)格式錯(cuò)誤,指數(shù)據(jù)超出數(shù)據(jù)范圍。可通過(guò)定義完整性進(jìn)行模式約束。③數(shù)據(jù)不一致,即主表與子表的數(shù)據(jù)不能匹配。可通過(guò)業(yè)務(wù)主管部門確認(rèn)后,再進(jìn)行二次抽取。第三章基本技術(shù)方法“一切圍繞需求”3.1ETL入門2.?dāng)?shù)據(jù)轉(zhuǎn)換第三章基“一切圍繞需求”3.1

ETL入門3.?dāng)?shù)據(jù)加載數(shù)據(jù)加載是ETL的最后一個(gè)步驟,即將數(shù)據(jù)從臨時(shí)表或文件中,加載到指定的數(shù)據(jù)倉(cāng)庫(kù)中。一般來(lái)說(shuō),有直接SQL語(yǔ)句操作和利用裝載工具進(jìn)行加載兩種方式,最佳裝載方式取決于操作類型以及數(shù)據(jù)的加載量。第三章基本技術(shù)方法“一切圍繞需求”3.1ETL入門第三章基本技術(shù)方法“一切圍繞需求”3.1

ETL入門3.1.3ETL技術(shù)選型ETL技術(shù)的選型,主要從成本、人員、案例和技術(shù)支持來(lái)衡量。目前流行的3種主要技術(shù)為Datastage、Powercenter和ETLAutomation。在Datastage和Powercenter中,ETL技術(shù)選型可以從對(duì)ETL流程的支持,對(duì)元數(shù)據(jù)的支持和對(duì)數(shù)據(jù)質(zhì)量的支持來(lái)考慮,同時(shí)從兼顧維護(hù)的實(shí)用性、定制開發(fā)的支持等方面考慮。在ETL中,數(shù)據(jù)抽取過(guò)程多則上百,少則十幾個(gè),它們之間的依賴關(guān)系、出錯(cuò)控制及恢復(fù)的流程都是需要考慮的。第三章基本技術(shù)方法“一切圍繞需求”3.1ETL入門3.1.3ETL技術(shù)選第三章基本技術(shù)方法3.1

ETL入門3.2

技術(shù)路線3.3

ETL工具3.4

ETL子系統(tǒng)習(xí)題大數(shù)據(jù)應(yīng)用人才培養(yǎng)系列教材第三章基本技術(shù)方法3.1ETL入門3.2技術(shù)路線3.3數(shù)據(jù)的來(lái)源不同文本清洗RDBMS清洗Web內(nèi)容清洗3.2技術(shù)路線第三章基本技術(shù)方法數(shù)據(jù)的來(lái)源不同文本清洗RDBMS清洗Web內(nèi)容清洗3.2技第三章基本技術(shù)方法3.2技術(shù)路線3.2.1文本清洗路線

對(duì)文本進(jìn)行清洗主要包括電子表格中的數(shù)據(jù)清洗和文本編輯器的數(shù)據(jù)清洗。對(duì)于電子表格中的數(shù)據(jù)清洗,主要是利用表格中的行和列,以及電子表格中的內(nèi)置函數(shù)。我們通常把一些數(shù)據(jù)復(fù)制到電子表格中,電子表格根據(jù)相應(yīng)分隔符(制表位或逗號(hào)或其他)把數(shù)據(jù)分成不同的列。有時(shí)候會(huì)根據(jù)系統(tǒng)不同來(lái)人為地制定分隔符。

對(duì)于文本編輯器中的數(shù)據(jù)清洗,主要是許多操作系統(tǒng)中集成了文本編輯器,如Windows操作系統(tǒng)中的文本編輯器。在進(jìn)行文本清洗前,需要對(duì)數(shù)據(jù)進(jìn)行整理,包括對(duì)數(shù)據(jù)中的數(shù)據(jù)改變大小寫、在文本每一行前端增加前綴,主要是為了在轉(zhuǎn)換過(guò)程中,有可以參考的分隔符。第三章基本技術(shù)方法3.2技術(shù)路線3.2.1文本清洗路第三章基本技術(shù)方法3.2技術(shù)路線

3.2.2RDBMS清洗路線

RDBMS即關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),它作為經(jīng)典的、長(zhǎng)期使用的數(shù)據(jù)存儲(chǔ)解決方案,成為數(shù)據(jù)存儲(chǔ)的標(biāo)準(zhǔn)。但由于不同的人在設(shè)計(jì)數(shù)據(jù)庫(kù)時(shí),往往存在設(shè)計(jì)缺陷,需要對(duì)數(shù)據(jù)庫(kù)的數(shù)據(jù)進(jìn)行清洗。通過(guò)清洗可以找到異常數(shù)據(jù),通常使用不同的策略來(lái)清洗不同類型的數(shù)據(jù)。對(duì)于RDBMS數(shù)據(jù)的清洗,有兩種方式可以選擇,即可以先把數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù),然后在數(shù)據(jù)庫(kù)端進(jìn)行清洗;也可以在電子表格或文本編輯器中進(jìn)行清洗。具體選擇哪種方案,會(huì)根據(jù)不同的數(shù)據(jù)進(jìn)行不同的選擇。第三章基本技術(shù)方法3.2技術(shù)路線第三章基本技術(shù)方法3.2技術(shù)路線

3.2.3Web內(nèi)容清洗路線Web內(nèi)容清洗,主要是清洗來(lái)自網(wǎng)絡(luò)的數(shù)據(jù),為其構(gòu)建合理的清洗方案。Web數(shù)據(jù)主要來(lái)自HTML網(wǎng)頁(yè)。HTML網(wǎng)頁(yè)的頁(yè)面結(jié)構(gòu)決定了采取哪種方式。1.HTML頁(yè)面結(jié)構(gòu)2.清洗方式第三章基本技術(shù)方法3.2技術(shù)路線第三章基本技術(shù)方法3.2技術(shù)路線

1.HTML頁(yè)面結(jié)構(gòu)文本組成。所以從Web中進(jìn)行數(shù)據(jù)抽取,可有兩種不同的方式,一種是行分隔方式,另一種是樹形結(jié)構(gòu)方式。在行分隔方式中,我們把網(wǎng)頁(yè)的數(shù)據(jù)看作文本內(nèi)容,把網(wǎng)頁(yè)中的標(biāo)簽理解為分隔符,這樣在進(jìn)行數(shù)據(jù)抽取時(shí)就比較容易。2.清洗方式Web內(nèi)容清洗可以有兩種方式,一種是逐行方式,另一種是使用樹形結(jié)構(gòu)方式。逐行方式中,采用基于正則表達(dá)式的HTML分析技術(shù),它是基于文件中的分隔符,配合正則表達(dá)式,獲取需要的數(shù)據(jù)。第三章基本技術(shù)方法3.2技術(shù)路線第三章基本技術(shù)方法3.3

ETL工具3.2

技術(shù)路線3.1

ETL入門3.4

ETL子系統(tǒng)習(xí)題大數(shù)據(jù)應(yīng)用人才培養(yǎng)系列教材第三章基本技術(shù)方法3.3ETL工具3.2技術(shù)路線3.1多平臺(tái)管理和調(diào)試功能集成性和開放性3.3

ETL工具數(shù)據(jù)轉(zhuǎn)換多種數(shù)據(jù)源管理元數(shù)據(jù)第三章基本技術(shù)方法ETL功能多平臺(tái)管理和調(diào)試功能集成性和開放性3.3ETL工具數(shù)據(jù)轉(zhuǎn)換第三章基本技術(shù)方法3.3ETL工具3.3.1ETL功能

評(píng)價(jià)ETL設(shè)計(jì)的好壞需要從多個(gè)不同的角度來(lái)考慮,主要包括對(duì)多平臺(tái)的支持、數(shù)據(jù)源格式的支持、數(shù)據(jù)的轉(zhuǎn)換、數(shù)據(jù)的管理和調(diào)試、數(shù)據(jù)的集成和開放性以及對(duì)元數(shù)據(jù)的管理等方面。1.多平臺(tái)業(yè)務(wù)數(shù)據(jù)量的飛速增長(zhǎng),對(duì)系統(tǒng)的可靠性提出了更高的要求。對(duì)于海量的數(shù)據(jù)抽取,往往要求在有限的時(shí)間內(nèi)完成。所以,平臺(tái)對(duì)ETL開發(fā)工具的支持成為衡量一個(gè)開發(fā)工具的重要指標(biāo)。目前主流的平臺(tái)包括Windows、Linux、IBMAIX、MacOS等。第三章基本技術(shù)方法3.3ETL工具3.3.1第三章基本技術(shù)方法3.3ETL工具

3.3.1ETL功能

2.多種數(shù)據(jù)源開發(fā)工具對(duì)數(shù)據(jù)源的支持非常重要,不僅要考慮項(xiàng)目開發(fā)中各種不同類型的數(shù)據(jù)源,還要考慮數(shù)據(jù)源的接口類型。例如,在數(shù)據(jù)抽取時(shí),使用原廠商自己的專用接口,還是通用接口,效率會(huì)大不一樣。數(shù)據(jù)源包括Oracle、SQLServer、DB2、Sybase、MicrosoftExcel等。

3.?dāng)?shù)據(jù)轉(zhuǎn)換由于在業(yè)務(wù)系統(tǒng)中的數(shù)據(jù),存在數(shù)據(jù)時(shí)間跨度大、數(shù)據(jù)量多而亂的特點(diǎn),就會(huì)造成在數(shù)據(jù)業(yè)務(wù)系統(tǒng)中可能會(huì)有多種完全不同的存儲(chǔ)格式,也有可能業(yè)務(wù)系統(tǒng)存儲(chǔ)的數(shù)據(jù)需要進(jìn)行計(jì)算才能夠抽取,因此,ETL功能中必須要有對(duì)數(shù)據(jù)進(jìn)行計(jì)算、合并、拆分等轉(zhuǎn)換功能。第三章基本技術(shù)方法3.3ETL工具3.3.1第三章基本技術(shù)方法3.3ETL工具3.3.1ETL功能

4.具備管理和調(diào)試功能由于數(shù)據(jù)業(yè)務(wù)量的增大,對(duì)數(shù)據(jù)抽取的要求也越來(lái)越高,專業(yè)的ETL工具要求具有管理和調(diào)度的功能,主要包括抽取過(guò)程的備份和恢復(fù)、版本升級(jí)、版本管理、支持統(tǒng)一的管理平臺(tái)等功能。

5.集成性和開放性隨著國(guó)內(nèi)數(shù)據(jù)倉(cāng)庫(kù)技術(shù)的不斷發(fā)展,大多數(shù)情況下一般項(xiàng)目只會(huì)用到ETL工具的少數(shù)幾個(gè)功能,開發(fā)商將ETL工具的主要功能模塊集成到自己的系統(tǒng)中,這樣可以減少用戶的操作錯(cuò)誤。這就要求ETL能夠具有較好的集成性和開放性。第三章基本技術(shù)方法3.3ETL工具3.3.1第三章基本技術(shù)方法3.3ETL工具

3.3.1ETL功能

6.管理元數(shù)據(jù)元數(shù)據(jù)是描述數(shù)據(jù)的數(shù)據(jù),它是對(duì)業(yè)務(wù)數(shù)據(jù)本身及其運(yùn)行環(huán)境的描述與定義,主要用于支持業(yè)務(wù)系統(tǒng)應(yīng)用。元數(shù)據(jù)的主要表現(xiàn)是對(duì)對(duì)象的描述,即對(duì)數(shù)據(jù)庫(kù)、表、列、主鍵等的描述。在當(dāng)前信息化建設(shè)中,一些應(yīng)用的異構(gòu)性和分布性越來(lái)越普遍,使用統(tǒng)一的元數(shù)據(jù)成為重要的選擇,合理的元數(shù)據(jù)可以打破以往信息化建設(shè)中的“信息孤島”等問(wèn)題。第三章基本技術(shù)方法3.3ETL工具3.3.1第三章基本技術(shù)方法of40263.3ETL工具3.3.2開源ETL工具

1.PentahoKettleKettle是一款國(guó)外的開源ETL工具,純Java編寫,可以在Windows、Linux、UNIX上運(yùn)行,無(wú)須安裝,數(shù)據(jù)抽取高效穩(wěn)定。Kettle(中文譯名:水壺),該項(xiàng)目的主程序員Matt希望把各種數(shù)據(jù)放到一個(gè)壺里,然后以一種指定的格式流出。Kettle將ETL流程編譯為XML格式,學(xué)起來(lái)十分簡(jiǎn)單,PentahoDataIntegration(Kettle)使用Java(Swing)開發(fā)。Kettle作為編譯器對(duì)以XML格式書寫的流程進(jìn)行編譯。Kettle的JavaScript引擎(和Java引擎)可以深層地控制對(duì)數(shù)據(jù)的處理。第三章基本技術(shù)方法of40263.3ETL工具第三章基本技術(shù)方法3.3ETL工具3.3.2開源ETL工具

2.OpenRefineOpenRefine最初叫作FreebaseGridworks,由一家名為Metaweb的公司開發(fā),主要用于調(diào)試各種表格,以避免隨著時(shí)間的推移出現(xiàn)錯(cuò)誤,這對(duì)于任何數(shù)據(jù)庫(kù)來(lái)說(shuō)都是一個(gè)很大的問(wèn)題。后來(lái),該軟件被谷歌收購(gòu),更名為GoogleRefine,并發(fā)布了第2版。2012年10月,GoogleRefine被社區(qū)接管,并以O(shè)penRefine為名進(jìn)行了開源。第三章基本技術(shù)方法3.3ETL工具3.3.2第三章基本技術(shù)方法3.3ETL工具

3.3.2開源ETL工具

3.DataWranglerDataWrangler(中文譯名:牧馬人)是一款由斯坦福大學(xué)開發(fā)的在線數(shù)據(jù)清洗、數(shù)據(jù)重組軟件,主要用于去除無(wú)效數(shù)據(jù),將數(shù)據(jù)整理成用戶需要的格式等。使用DataWrangler能節(jié)約用戶花在數(shù)據(jù)整理上的時(shí)間,從而使其有更多的精力用于數(shù)據(jù)分析。(校企)第三章基本技術(shù)方法3.3ETL工具3.3.2第三章基本技術(shù)方法3.3ETL工具

3.3.2開源ETL工具

4.HawkHawk是一種數(shù)據(jù)抓取和清洗工具,依據(jù)GPL協(xié)議開源,軟件基于C#實(shí)現(xiàn),其前端界面使用WPF開發(fā),支持插件擴(kuò)展。能夠靈活高效地采集網(wǎng)頁(yè)、數(shù)據(jù)庫(kù)、文件等來(lái)源的數(shù)據(jù),并通過(guò)可視化拖曳操作,快速地進(jìn)行生成、過(guò)濾、轉(zhuǎn)換等數(shù)據(jù)操作,快速建立解決方案。非常適合作為網(wǎng)頁(yè)爬蟲和數(shù)據(jù)清洗工具。Hawk含義為“鷹”,形容能夠高效、準(zhǔn)確地抓取和清洗數(shù)據(jù)。(校企)第三章基本技術(shù)方法3.3ETL工具3.3.2第三章基本技術(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.2技術(shù)路線3.第三章基本技術(shù)方法3.4ETL子系統(tǒng)3.4.1抽取

抽取類子系統(tǒng)中,主要包括數(shù)據(jù)分析系統(tǒng)、增量捕獲系統(tǒng)和數(shù)據(jù)抽取系統(tǒng)。數(shù)據(jù)分析系統(tǒng)主要用來(lái)分析不同類型的數(shù)據(jù)源,包括數(shù)據(jù)源的格式、數(shù)據(jù)的類型、數(shù)據(jù)的內(nèi)容等。數(shù)據(jù)增量捕獲系統(tǒng)主要是捕獲數(shù)據(jù)源中發(fā)生了改變的數(shù)據(jù),在Kettle中可通過(guò)時(shí)間戳的方式來(lái)捕獲數(shù)據(jù)的變化。數(shù)據(jù)抽取系統(tǒng)主要是從不同的數(shù)據(jù)源抽取數(shù)據(jù),通過(guò)數(shù)據(jù)的過(guò)濾和排序,數(shù)據(jù)格式的轉(zhuǎn)換,遷移到ETL環(huán)境,進(jìn)行數(shù)據(jù)暫存。第三章基本技術(shù)方法3.4ETL子系統(tǒng)3.4.1抽第三章基本技術(shù)方法3.4ETL子系統(tǒng)3.4.2清洗和更正數(shù)據(jù)清洗和更正數(shù)據(jù)子系統(tǒng)主要包括數(shù)據(jù)清洗系統(tǒng)、錯(cuò)誤處理系統(tǒng)、審計(jì)維度系統(tǒng)、重復(fù)數(shù)據(jù)排查系統(tǒng)和數(shù)據(jù)一致性系統(tǒng)。數(shù)據(jù)清洗系統(tǒng)主要是根據(jù)系統(tǒng)業(yè)務(wù)需求對(duì)數(shù)據(jù)源中的數(shù)據(jù)進(jìn)行清洗,提高數(shù)據(jù)的質(zhì)量。通過(guò)清洗,可以找到錯(cuò)誤的數(shù)據(jù),并進(jìn)行更正。在數(shù)據(jù)清洗系統(tǒng)中,數(shù)據(jù)業(yè)務(wù)人員、源系統(tǒng)開發(fā)人員、ELT開發(fā)人員都有義務(wù)來(lái)完成數(shù)據(jù)的清洗。第三章基本技術(shù)方法3.4ETL子系統(tǒng)第三章基本技術(shù)方法3.4ETL子系統(tǒng)3.4.3數(shù)據(jù)發(fā)布

數(shù)據(jù)發(fā)布類子系統(tǒng)主要是加載和更新數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù),包括數(shù)據(jù)緩慢變化維度處理系統(tǒng)、遲到維度處理系統(tǒng)、代理鍵生成系統(tǒng)等。這里主要講述數(shù)據(jù)緩慢變化維度處理系統(tǒng)。數(shù)據(jù)緩慢變化維度處理系統(tǒng)是多維度數(shù)據(jù)倉(cāng)庫(kù)的基礎(chǔ),它保存了對(duì)事實(shí)表進(jìn)行分析的信息。例如,如果業(yè)務(wù)系統(tǒng)修改了客戶的信息,維度變更也會(huì)根據(jù)不同的規(guī)則變更數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)維度。變更方式可采用覆蓋、增加新行、增加新列、增加小維度表、分離歷史表等方式。第三章基本技術(shù)方法3.4ETL子系統(tǒng)第三章基本技術(shù)方法3.4ETL子系統(tǒng)

3.4.4管理ETL

管理ETL系統(tǒng)主要是對(duì)ETL開發(fā)環(huán)境進(jìn)行設(shè)置,包括備份系統(tǒng)、恢復(fù)和重新啟動(dòng)子系統(tǒng)、工作流監(jiān)控系統(tǒng)、問(wèn)題報(bào)告系統(tǒng)、版本控制系統(tǒng)等。第三章基本技術(shù)方法3.4ETL子系統(tǒng)第三章基本技術(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.2技術(shù)路線3.1.什么是ETL,其主要功能是什么?2.對(duì)數(shù)據(jù)倉(cāng)庫(kù)典型的需求包括哪幾個(gè)方面?3.在數(shù)據(jù)評(píng)估中,對(duì)數(shù)據(jù)源進(jìn)行清潔處理主要包括哪幾個(gè)方面?4.簡(jiǎn)述比較流行的開源ETL工具。5.ETL子系統(tǒng)主要包括哪4種類型?習(xí)題:1.什么是ETL,其主要功能是什么?習(xí)題:感謝聆聽感謝聆聽第三章基本技術(shù)方法3.1

ETL入門3.2

技術(shù)路線3.3

ETL工具3.4

ETL子系統(tǒng)習(xí)題第三章基本技術(shù)方法3.1ETL入門3.2技術(shù)路線3.33.1

ETL入門第三章基本技術(shù)方法1ETL,全稱為Extraction-Transformation-Loading,中文名為數(shù)據(jù)抽取、轉(zhuǎn)換和加載。2ETL的主要功能是將分布的、異構(gòu)數(shù)據(jù)源中的數(shù)據(jù)如關(guān)系數(shù)據(jù)、平面數(shù)據(jù)文件等抽取到臨時(shí)中間層后進(jìn)行清洗、轉(zhuǎn)換、集成,最后加載到數(shù)據(jù)倉(cāng)庫(kù)或數(shù)據(jù)集市中,成為聯(lián)機(jī)分析處理、數(shù)據(jù)挖掘的基礎(chǔ)。3ETL也是一個(gè)長(zhǎng)期的過(guò)程,只有不斷地發(fā)現(xiàn)問(wèn)題并解決問(wèn)題,才能使ETL運(yùn)行效率更高,為項(xiàng)目后期開發(fā)提供準(zhǔn)確的數(shù)據(jù)。企業(yè)每年產(chǎn)生海量的數(shù)據(jù),這些數(shù)據(jù),有的對(duì)企業(yè)非常重要,有的對(duì)企業(yè)沒(méi)有用處。如何在海量數(shù)據(jù)中抽取出有用的數(shù)據(jù)?可以通過(guò)ETL來(lái)進(jìn)行實(shí)現(xiàn)。3.1.1ETL解決方案3.1ETL入門第三章基本技術(shù)方法1ETL,全稱為Ex“一切圍繞需求”最終用戶提交界面數(shù)據(jù)集成業(yè)務(wù)需求數(shù)據(jù)評(píng)估大ETL系統(tǒng)的最終步驟是將數(shù)據(jù)提交給最終用戶,提交過(guò)程占據(jù)十分重要的位置,并對(duì)構(gòu)成最終用戶應(yīng)用的數(shù)據(jù)結(jié)構(gòu)和內(nèi)容進(jìn)行嚴(yán)格把關(guān),確保其簡(jiǎn)單快捷。。在數(shù)據(jù)進(jìn)入數(shù)據(jù)倉(cāng)庫(kù)之前,需要將全部數(shù)據(jù)無(wú)縫集成到一起。數(shù)據(jù)集成可采用規(guī)?;谋砀駚?lái)實(shí)現(xiàn),也就是在分離的數(shù)據(jù)庫(kù)中建立公共維度實(shí)體,從而快速構(gòu)建報(bào)表。業(yè)務(wù)需求是數(shù)據(jù)倉(cāng)庫(kù)最終用戶的信息需求,它直接決定了數(shù)據(jù)源的選擇。在ETL設(shè)計(jì)時(shí),需要考慮原始數(shù)據(jù)是否能解決用戶的業(yè)務(wù)需求,同時(shí),業(yè)務(wù)需求和數(shù)據(jù)源的內(nèi)容是不斷變化的,需要對(duì)ETL不斷進(jìn)行檢驗(yàn)和討論。數(shù)據(jù)評(píng)估是使用分析方法來(lái)檢查數(shù)據(jù),充分了解數(shù)據(jù)的內(nèi)容、質(zhì)量。設(shè)計(jì)好的數(shù)據(jù)評(píng)估方法能夠處理海量數(shù)據(jù)。3.1

ETL入門第三章基本技術(shù)方法“一切圍繞需求”最終用戶提交界面數(shù)據(jù)集成業(yè)務(wù)需求數(shù)據(jù)評(píng)估大E“一切圍繞需求”3.1

ETL入門1.業(yè)務(wù)需求業(yè)務(wù)需求是數(shù)據(jù)倉(cāng)庫(kù)最終用戶的信息需求,它直接決定了數(shù)據(jù)源的選擇。在許多情況下,最初對(duì)于數(shù)據(jù)源的調(diào)查不一定完全反映數(shù)據(jù)的復(fù)雜性和局限性,所以在ETL設(shè)計(jì)時(shí),需要考慮原始數(shù)據(jù)是否能解決用戶的業(yè)務(wù)需求,同時(shí),業(yè)務(wù)需求和數(shù)據(jù)源的內(nèi)容是不斷變化的,需要對(duì)ETL不斷進(jìn)行檢驗(yàn)和討論。對(duì)數(shù)據(jù)倉(cāng)庫(kù)典型的需求包括:數(shù)據(jù)源的歸檔備份以及隨后的數(shù)據(jù)存儲(chǔ)。任何造成數(shù)據(jù)修改的交易記錄的完整性證明。對(duì)分配和調(diào)整的規(guī)則進(jìn)行完備的文檔記錄。數(shù)據(jù)備份的安全性證明,不論是在線還是離線進(jìn)行。第三章基本技術(shù)方法“一切圍繞需求”3.1ETL入門1.業(yè)務(wù)需求第三章基“一切圍繞需求”3.1

ETL入門2.?dāng)?shù)據(jù)評(píng)估

數(shù)據(jù)評(píng)估是使用分析方法來(lái)檢查數(shù)據(jù),充分了解數(shù)據(jù)的內(nèi)容、質(zhì)量。設(shè)計(jì)好的數(shù)據(jù)評(píng)估方法能夠處理海量數(shù)據(jù)。

例如,企業(yè)的訂單系統(tǒng),能夠很好地滿足生產(chǎn)部門的需求。但是對(duì)于數(shù)據(jù)倉(cāng)庫(kù)來(lái)說(shuō),因?yàn)閿?shù)據(jù)倉(cāng)庫(kù)使用的字段并不是以訂單系統(tǒng)中的字段為中心,因此訂單系統(tǒng)中的信息對(duì)于數(shù)據(jù)倉(cāng)庫(kù)的分析來(lái)講是遠(yuǎn)遠(yuǎn)不夠的。對(duì)于“臟”數(shù)據(jù)源需要進(jìn)行操作處理,主要包括以下幾個(gè)方面:完全清除某些輸入字段;補(bǔ)入一些丟失的數(shù)據(jù);自動(dòng)替換掉某些錯(cuò)誤數(shù)據(jù)值;在記錄級(jí)別上進(jìn)行人工干預(yù);對(duì)數(shù)據(jù)進(jìn)行完全規(guī)范化的表述。第三章基本技術(shù)方法“一切圍繞需求”3.1ETL入門2.?dāng)?shù)據(jù)評(píng)估第三章基“一切圍繞需求”3.1

ETL入門3.?dāng)?shù)據(jù)集成在數(shù)據(jù)進(jìn)入數(shù)據(jù)倉(cāng)庫(kù)之前,需要將全部數(shù)據(jù)無(wú)縫集成到一起。數(shù)據(jù)集成可采用規(guī)模化的表格來(lái)實(shí)現(xiàn),也就是在分離的數(shù)據(jù)庫(kù)中建立公共維度實(shí)體,從而快速構(gòu)建報(bào)表。在ELT系統(tǒng)中,數(shù)據(jù)集成是數(shù)據(jù)流程中一個(gè)獨(dú)立的步驟,叫作規(guī)格化步驟。4.最終用戶提交界面ETL系統(tǒng)的最終步驟是將數(shù)據(jù)提交給最終用戶,提交過(guò)程占據(jù)十分重要的位置,并對(duì)構(gòu)成最終用戶應(yīng)用的數(shù)據(jù)結(jié)構(gòu)和內(nèi)容進(jìn)行嚴(yán)格把關(guān),確保其簡(jiǎn)單快捷。將使用復(fù)雜、查詢緩慢的數(shù)據(jù)直接交給最終用戶是不負(fù)責(zé)的,經(jīng)常犯的一個(gè)錯(cuò)誤就是將完全規(guī)范化的數(shù)據(jù)模型直接交給用戶,就不再過(guò)問(wèn)。第三章基本技術(shù)方法“一切圍繞需求”3.1ETL入門3.?dāng)?shù)據(jù)集成第三章基ETL基本構(gòu)成數(shù)據(jù)抽取數(shù)據(jù)轉(zhuǎn)換數(shù)據(jù)加載3.1

ETL入門3.1.2ETL基本構(gòu)成第三章基本技術(shù)方法ETL基本構(gòu)成數(shù)據(jù)抽取數(shù)據(jù)轉(zhuǎn)換數(shù)據(jù)加載3.1ETL入門3.“一切圍繞需求”3.1

ETL入門1.?dāng)?shù)據(jù)抽取所謂數(shù)據(jù)抽取,就是從源端數(shù)據(jù)系統(tǒng)中抽取目標(biāo)數(shù)據(jù)系統(tǒng)需要的數(shù)據(jù)。

進(jìn)行數(shù)據(jù)抽取的原則:一是要求準(zhǔn)確性,即能夠?qū)?shù)據(jù)源中的數(shù)據(jù)準(zhǔn)確抽取到;二是不對(duì)源端數(shù)據(jù)系統(tǒng)的性能、響應(yīng)時(shí)間等造成影響。數(shù)據(jù)抽取可分為全量抽取和增量抽取兩種方式。(1)全量抽取全量抽取好比數(shù)據(jù)的遷移和復(fù)制,它是將源端數(shù)據(jù)表中的數(shù)據(jù)一次性全部從數(shù)據(jù)庫(kù)中抽取出來(lái),再進(jìn)行下一步操作。(2)增量抽取增量抽取主要是在第一次全量抽取完畢后,需要對(duì)源端數(shù)據(jù)中新增或修改的數(shù)據(jù)進(jìn)行抽取。增量抽取的關(guān)鍵是抽取自上次以來(lái),數(shù)據(jù)表中已經(jīng)變化的數(shù)據(jù)。第三章基本技術(shù)方法“一切圍繞需求”3.1ETL入門1.?dāng)?shù)據(jù)抽取第三章基“一切圍繞需求”3.1

ETL入門1.?dāng)?shù)據(jù)抽取(2)增量抽取例如,在新生入學(xué)時(shí),所有學(xué)生的信息采集整理屬于全量抽??;在后期,如果有個(gè)別學(xué)生或部分學(xué)生需要休學(xué),對(duì)這部分學(xué)生的操作即屬于增量抽取。增量抽取一般有4種抽取模式①觸發(fā)器模式,這是普遍采用一種抽取模式。一般是建立3個(gè)觸發(fā)器,即插入、修改、刪除,并且要求用戶擁有操作權(quán)限。當(dāng)觸發(fā)器獲得新增數(shù)據(jù)后,程序會(huì)自動(dòng)從臨時(shí)表中讀取數(shù)據(jù)。這種模式性能高、規(guī)則簡(jiǎn)單、效率高,且不需要修改業(yè)務(wù)系統(tǒng)表結(jié)構(gòu),可實(shí)現(xiàn)數(shù)據(jù)的遞增加載。第三章基本技術(shù)方法“一切圍繞需求”3.1ETL入門1.?dāng)?shù)據(jù)抽取第三章基“一切圍繞需求”of403.1

ETL入門1.?dāng)?shù)據(jù)抽?。?)增量抽?、跁r(shí)間戳方式,即在源數(shù)據(jù)表中增加一個(gè)時(shí)間戳字段。當(dāng)系統(tǒng)修改源端數(shù)據(jù)表中的數(shù)據(jù)時(shí),同時(shí)修改時(shí)間戳的值。在進(jìn)行數(shù)據(jù)抽取時(shí),通過(guò)比較系統(tǒng)時(shí)間和時(shí)間戳的值來(lái)決定需要抽取哪些數(shù)據(jù)。③全表對(duì)比方式,即每次從源端數(shù)據(jù)表中讀取所有數(shù)據(jù),然后逐條比較數(shù)據(jù),將修改過(guò)的數(shù)據(jù)過(guò)濾出來(lái)。此種方式主要采用MD5校驗(yàn)碼。全表對(duì)比方式不會(huì)對(duì)源端表結(jié)構(gòu)產(chǎn)生影響。④日志對(duì)比方式,即通過(guò)分析數(shù)據(jù)庫(kù)的日志來(lái)抽取相應(yīng)的數(shù)據(jù)。這種方式主要是在Oracle9i數(shù)據(jù)庫(kù)中引入的。以上4種方式中,時(shí)間戳方式是使用最為廣泛的,在銀行業(yè)務(wù)中采用的就是時(shí)間戳方式。第三章基本技術(shù)方法“一切圍繞需求”of403.1ETL入門1.?dāng)?shù)據(jù)抽取第三章“一切圍繞需求”3.1

ETL入門2.?dāng)?shù)據(jù)轉(zhuǎn)換

數(shù)據(jù)轉(zhuǎn)換就是將從數(shù)據(jù)源獲取的數(shù)據(jù)按照業(yè)務(wù)需求,通過(guò)轉(zhuǎn)換、清洗、拆分等,加工成目的數(shù)據(jù)源所需要的格式。數(shù)據(jù)轉(zhuǎn)換是ETL過(guò)程中最關(guān)鍵的步驟,它主要是對(duì)數(shù)據(jù)格式、數(shù)據(jù)類型等進(jìn)行轉(zhuǎn)換。它可以在數(shù)據(jù)抽取過(guò)程中進(jìn)行,也可以通過(guò)ETL引擎進(jìn)行轉(zhuǎn)換。數(shù)據(jù)轉(zhuǎn)換的原因非常多,主要包括以下3種:①數(shù)據(jù)不完整,指數(shù)據(jù)庫(kù)的數(shù)據(jù)信息缺失。這種轉(zhuǎn)換需要對(duì)數(shù)據(jù)內(nèi)容進(jìn)行二次輸入,以進(jìn)行補(bǔ)全。②數(shù)據(jù)格式錯(cuò)誤,指數(shù)據(jù)超出數(shù)據(jù)范圍??赏ㄟ^(guò)定義完整性進(jìn)行模式約束。③數(shù)據(jù)不一致,即主表與子表的數(shù)據(jù)不能匹配??赏ㄟ^(guò)業(yè)務(wù)主管部門確認(rèn)后,再進(jìn)行二次抽取。第三章基本技術(shù)方法“一切圍繞需求”3.1ETL入門2.?dāng)?shù)據(jù)轉(zhuǎn)換第三章基“一切圍繞需求”3.1

ETL入門3.?dāng)?shù)據(jù)加載數(shù)據(jù)加載是ETL的最后一個(gè)步驟,即將數(shù)據(jù)從臨時(shí)表或文件中,加載到指定的數(shù)據(jù)倉(cāng)庫(kù)中。一般來(lái)說(shuō),有直接SQL語(yǔ)句操作和利用裝載工具進(jìn)行加載兩種方式,最佳裝載方式取決于操作類型以及數(shù)據(jù)的加載量。第三章基本技術(shù)方法“一切圍繞需求”3.1ETL入門第三章基本技術(shù)方法“一切圍繞需求”3.1

ETL入門3.1.3ETL技術(shù)選型ETL技術(shù)的選型,主要從成本、人員、案例和技術(shù)支持來(lái)衡量。目前流行的3種主要技術(shù)為Datastage、Powercenter和ETLAutomation。在Datastage和Powercenter中,ETL技術(shù)選型可以從對(duì)ETL流程的支持,對(duì)元數(shù)據(jù)的支持和對(duì)數(shù)據(jù)質(zhì)量的支持來(lái)考慮,同時(shí)從兼顧維護(hù)的實(shí)用性、定制開發(fā)的支持等方面考慮。在ETL中,數(shù)據(jù)抽取過(guò)程多則上百,少則十幾個(gè),它們之間的依賴關(guān)系、出錯(cuò)控制及恢復(fù)的流程都是需要考慮的。第三章基本技術(shù)方法“一切圍繞需求”3.1ETL入門3.1.3ETL技術(shù)選第三章基本技術(shù)方法3.1

ETL入門3.2

技術(shù)路線3.3

ETL工具3.4

ETL子系統(tǒng)習(xí)題大數(shù)據(jù)應(yīng)用人才培養(yǎng)系列教材第三章基本技術(shù)方法3.1ETL入門3.2技術(shù)路線3.3數(shù)據(jù)的來(lái)源不同文本清洗RDBMS清洗Web內(nèi)容清洗3.2技術(shù)路線第三章基本技術(shù)方法數(shù)據(jù)的來(lái)源不同文本清洗RDBMS清洗Web內(nèi)容清洗3.2技第三章基本技術(shù)方法3.2技術(shù)路線3.2.1文本清洗路線

對(duì)文本進(jìn)行清洗主要包括電子表格中的數(shù)據(jù)清洗和文本編輯器的數(shù)據(jù)清洗。對(duì)于電子表格中的數(shù)據(jù)清洗,主要是利用表格中的行和列,以及電子表格中的內(nèi)置函數(shù)。我們通常把一些數(shù)據(jù)復(fù)制到電子表格中,電子表格根據(jù)相應(yīng)分隔符(制表位或逗號(hào)或其他)把數(shù)據(jù)分成不同的列。有時(shí)候會(huì)根據(jù)系統(tǒng)不同來(lái)人為地制定分隔符。

對(duì)于文本編輯器中的數(shù)據(jù)清洗,主要是許多操作系統(tǒng)中集成了文本編輯器,如Windows操作系統(tǒng)中的文本編輯器。在進(jìn)行文本清洗前,需要對(duì)數(shù)據(jù)進(jìn)行整理,包括對(duì)數(shù)據(jù)中的數(shù)據(jù)改變大小寫、在文本每一行前端增加前綴,主要是為了在轉(zhuǎn)換過(guò)程中,有可以參考的分隔符。第三章基本技術(shù)方法3.2技術(shù)路線3.2.1文本清洗路第三章基本技術(shù)方法3.2技術(shù)路線

3.2.2RDBMS清洗路線

RDBMS即關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),它作為經(jīng)典的、長(zhǎng)期使用的數(shù)據(jù)存儲(chǔ)解決方案,成為數(shù)據(jù)存儲(chǔ)的標(biāo)準(zhǔn)。但由于不同的人在設(shè)計(jì)數(shù)據(jù)庫(kù)時(shí),往往存在設(shè)計(jì)缺陷,需要對(duì)數(shù)據(jù)庫(kù)的數(shù)據(jù)進(jìn)行清洗。通過(guò)清洗可以找到異常數(shù)據(jù),通常使用不同的策略來(lái)清洗不同類型的數(shù)據(jù)。對(duì)于RDBMS數(shù)據(jù)的清洗,有兩種方式可以選擇,即可以先把數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù),然后在數(shù)據(jù)庫(kù)端進(jìn)行清洗;也可以在電子表格或文本編輯器中進(jìn)行清洗。具體選擇哪種方案,會(huì)根據(jù)不同的數(shù)據(jù)進(jìn)行不同的選擇。第三章基本技術(shù)方法3.2技術(shù)路線第三章基本技術(shù)方法3.2技術(shù)路線

3.2.3Web內(nèi)容清洗路線Web內(nèi)容清洗,主要是清洗來(lái)自網(wǎng)絡(luò)的數(shù)據(jù),為其構(gòu)建合理的清洗方案。Web數(shù)據(jù)主要來(lái)自HTML網(wǎng)頁(yè)。HTML網(wǎng)頁(yè)的頁(yè)面結(jié)構(gòu)決定了采取哪種方式。1.HTML頁(yè)面結(jié)構(gòu)2.清洗方式第三章基本技術(shù)方法3.2技術(shù)路線第三章基本技術(shù)方法3.2技術(shù)路線

1.HTML頁(yè)面結(jié)構(gòu)文本組成。所以從Web中進(jìn)行數(shù)據(jù)抽取,可有兩種不同的方式,一種是行分隔方式,另一種是樹形結(jié)構(gòu)方式。在行分隔方式中,我們把網(wǎng)頁(yè)的數(shù)據(jù)看作文本內(nèi)容,把網(wǎng)頁(yè)中的標(biāo)簽理解為分隔符,這樣在進(jìn)行數(shù)據(jù)抽取時(shí)就比較容易。2.清洗方式Web內(nèi)容清洗可以有兩種方式,一種是逐行方式,另一種是使用樹形結(jié)構(gòu)方式。逐行方式中,采用基于正則表達(dá)式的HTML分析技術(shù),它是基于文件中的分隔符,配合正則表達(dá)式,獲取需要的數(shù)據(jù)。第三章基本技術(shù)方法3.2技術(shù)路線第三章基本技術(shù)方法3.3

ETL工具3.2

技術(shù)路線3.1

ETL入門3.4

ETL子系統(tǒng)習(xí)題大數(shù)據(jù)應(yīng)用人才培養(yǎng)系列教材第三章基本技術(shù)方法3.3ETL工具3.2技術(shù)路線3.1多平臺(tái)管理和調(diào)試功能集成性和開放性3.3

ETL工具數(shù)據(jù)轉(zhuǎn)換多種數(shù)據(jù)源管理元數(shù)據(jù)第三章基本技術(shù)方法ETL功能多平臺(tái)管理和調(diào)試功能集成性和開放性3.3ETL工具數(shù)據(jù)轉(zhuǎn)換第三章基本技術(shù)方法3.3ETL工具3.3.1ETL功能

評(píng)價(jià)ETL設(shè)計(jì)的好壞需要從多個(gè)不同的角度來(lái)考慮,主要包括對(duì)多平臺(tái)的支持、數(shù)據(jù)源格式的支持、數(shù)據(jù)的轉(zhuǎn)換、數(shù)據(jù)的管理和調(diào)試、數(shù)據(jù)的集成和開放性以及對(duì)元數(shù)據(jù)的管理等方面。1.多平臺(tái)業(yè)務(wù)數(shù)據(jù)量的飛速增長(zhǎng),對(duì)系統(tǒng)的可靠性提出了更高的要求。對(duì)于海量的數(shù)據(jù)抽取,往往要求在有限的時(shí)間內(nèi)完成。所以,平臺(tái)對(duì)ETL開發(fā)工具的支持成為衡量一個(gè)開發(fā)工具的重要指標(biāo)。目前主流的平臺(tái)包括Windows、Linux、IBMAIX、MacOS等。第三章基本技術(shù)方法3.3ETL工具3.3.1第三章基本技術(shù)方法3.3ETL工具

3.3.1ETL功能

2.多種數(shù)據(jù)源開發(fā)工具對(duì)數(shù)據(jù)源的支持非常重要,不僅要考慮項(xiàng)目開發(fā)中各種不同類型的數(shù)據(jù)源,還要考慮數(shù)據(jù)源的接口類型。例如,在數(shù)據(jù)抽取時(shí),使用原廠商自己的專用接口,還是通用接口,效率會(huì)大不一樣。數(shù)據(jù)源包括Oracle、SQLServer、DB2、Sybase、MicrosoftExcel等。

3.?dāng)?shù)據(jù)轉(zhuǎn)換由于在業(yè)務(wù)系統(tǒng)中的數(shù)據(jù),存在數(shù)據(jù)時(shí)間跨度大、數(shù)據(jù)量多而亂的特點(diǎn),就會(huì)造成在數(shù)據(jù)業(yè)務(wù)系統(tǒng)中可能會(huì)有多種完全不同的存儲(chǔ)格式,也有可能業(yè)務(wù)系統(tǒng)存儲(chǔ)的數(shù)據(jù)需要進(jìn)行計(jì)算才能夠抽取,因此,ETL功能中必須要有對(duì)數(shù)據(jù)進(jìn)行計(jì)算、合并、拆分等轉(zhuǎn)換功能。第三章基本技術(shù)方法3.3ETL工具3.3.1第三章基本技術(shù)方法3.3ETL工具3.3.1ETL功能

4.具備管理和調(diào)試功能由于數(shù)據(jù)業(yè)務(wù)量的增大,對(duì)數(shù)據(jù)抽取的要求也越來(lái)越高,專業(yè)的ETL工具要求具有管理和調(diào)度的功能,主要包括抽取過(guò)程的備份和恢復(fù)、版本升級(jí)、版本管理、支持統(tǒng)一的管理平臺(tái)等功能。

5.集成性和開放性隨著國(guó)內(nèi)數(shù)據(jù)倉(cāng)庫(kù)技術(shù)的不斷發(fā)展,大多數(shù)情況下一般項(xiàng)目只會(huì)用到ETL工具的少數(shù)幾個(gè)功能,開發(fā)商將ETL工具的主要功能模塊集成到自己的系統(tǒng)中,這樣可以減少用戶的操作錯(cuò)誤。這就要求ETL能夠具有較好的集成性和開放性。第三章基本技術(shù)方法3.3ETL工具3.3.1第三章基本技術(shù)方法3.3ETL工具

3.3.1ETL功能

6.管理元數(shù)據(jù)元數(shù)據(jù)是描述數(shù)據(jù)的數(shù)據(jù),它是對(duì)業(yè)務(wù)數(shù)據(jù)本身及其運(yùn)行環(huán)境的描述與定義,主要用于支持業(yè)務(wù)系統(tǒng)應(yīng)用。元數(shù)據(jù)的主要表現(xiàn)是對(duì)對(duì)象的描述,即對(duì)數(shù)據(jù)庫(kù)、表、列、主鍵等的描述。在當(dāng)前信息化建設(shè)中,一些應(yīng)用的異構(gòu)性和分布性越來(lái)越普遍,使用統(tǒng)一的元數(shù)據(jù)成為重要的選擇,合理的元數(shù)據(jù)可以打破以往信息化建設(shè)中的“信息孤島”等問(wèn)題。第三章基本技術(shù)方法3.3ETL工具3.3.1第三章基本技術(shù)方法of40633.3ETL工具3.3.2開源ETL工具

1.PentahoKettleKettle是一款國(guó)外的開源ETL工具,純Java編寫,可以在Windows、Linux、UNIX上運(yùn)行,無(wú)須安裝,數(shù)據(jù)抽取高效穩(wěn)定。Kettle(中文譯名:水壺),該項(xiàng)目的主程序員Matt希望把各種數(shù)據(jù)放到一個(gè)壺里,然后以一種指定的格式流出。Kettle將ETL流程編譯為XML格式,學(xué)起來(lái)十分簡(jiǎn)單,PentahoDataIntegration(Kettle)使用Java(Swing)開發(fā)。Kettle作為編譯器對(duì)以XML格式書寫的流程進(jìn)行編譯。Kettle的JavaScript引擎(和Java引擎)可以深層地控制對(duì)數(shù)據(jù)的處理。第三章基本技術(shù)方法of40263.3ETL工具第三章基本技術(shù)方法3.3ETL工具3.3.2開源ETL工具

2.OpenRefineOpenRefine最初叫作FreebaseGridworks,由一家名為Metaweb的公司開發(fā),主要用于調(diào)試各種表格,以避免隨著時(shí)間的推移出現(xiàn)錯(cuò)誤,這對(duì)于任何數(shù)據(jù)庫(kù)來(lái)說(shuō)都是一個(gè)很大的問(wèn)題。后來(lái),該軟件被谷歌收購(gòu),更名為GoogleRefine,并發(fā)布了第2版。2012年10月,GoogleRefine被社區(qū)接管,并以O(shè)penRefi

溫馨提示

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

評(píng)論

0/150

提交評(píng)論