任務(wù)2-數(shù)據(jù)預(yù)處理環(huán)境搭建.任務(wù)2-數(shù)據(jù)預(yù)處理環(huán)境搭建_第1頁(yè)
任務(wù)2-數(shù)據(jù)預(yù)處理環(huán)境搭建.任務(wù)2-數(shù)據(jù)預(yù)處理環(huán)境搭建_第2頁(yè)
任務(wù)2-數(shù)據(jù)預(yù)處理環(huán)境搭建.任務(wù)2-數(shù)據(jù)預(yù)處理環(huán)境搭建_第3頁(yè)
任務(wù)2-數(shù)據(jù)預(yù)處理環(huán)境搭建.任務(wù)2-數(shù)據(jù)預(yù)處理環(huán)境搭建_第4頁(yè)
任務(wù)2-數(shù)據(jù)預(yù)處理環(huán)境搭建.任務(wù)2-數(shù)據(jù)預(yù)處理環(huán)境搭建_第5頁(yè)
已閱讀5頁(yè),還剩31頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

ETL數(shù)據(jù)預(yù)處理技術(shù)主講人:趙美枝任務(wù)二部署ETL環(huán)境ETL是將業(yè)務(wù)系統(tǒng)的數(shù)據(jù)經(jīng)過抽取、清洗轉(zhuǎn)換之后加載到數(shù)據(jù)倉(cāng)庫(kù)的過程ETL初識(shí)ETL現(xiàn)如今,數(shù)據(jù)已然成為一種戰(zhàn)略資源,為了充分利用數(shù)據(jù)資源,使用ETL技術(shù)進(jìn)行數(shù)據(jù)分析已成為企業(yè)決策的主要工作內(nèi)容之一01.ETL簡(jiǎn)介02.03.目錄ETL主要技術(shù)Kettle環(huán)境部署CONTENTS子任務(wù)2.1ETL簡(jiǎn)介隨著企業(yè)的發(fā)展,各業(yè)務(wù)線、產(chǎn)品線、部門都會(huì)承建各種信息化系統(tǒng)方便開展自己的業(yè)務(wù)。隨著信息化建設(shè)的不斷深入,由于業(yè)務(wù)系統(tǒng)之間各自為政、相互獨(dú)立造成的數(shù)據(jù)孤島”現(xiàn)象尤為普遍,業(yè)務(wù)不集成、流程不互通、數(shù)據(jù)不共享。這給企業(yè)進(jìn)行數(shù)據(jù)的分析利用、報(bào)表開發(fā)、分析挖掘等帶來了巨大困難。在此情況下,為了實(shí)現(xiàn)企業(yè)全局?jǐn)?shù)據(jù)的系統(tǒng)化運(yùn)作管理(信息孤島、數(shù)據(jù)統(tǒng)計(jì)、數(shù)據(jù)分析、數(shù)據(jù)挖掘),為DSS(決策支持系統(tǒng))、BI(商務(wù)智能)、經(jīng)營(yíng)分析系統(tǒng)等深度開發(fā)應(yīng)用奠定基礎(chǔ),挖掘數(shù)據(jù)價(jià)值,企業(yè)會(huì)開始著手建立數(shù)據(jù)倉(cāng)庫(kù),數(shù)據(jù)中臺(tái)。將相互分離的業(yè)務(wù)系統(tǒng)的數(shù)據(jù)源整合在一起,建立一個(gè)統(tǒng)一的數(shù)據(jù)采集、處理、存儲(chǔ)、分發(fā)、共享中心。1、ETL概念實(shí)現(xiàn)商務(wù)智能(BusinessIntelligence,即BI)的核心和靈魂,一般情況下ETL會(huì)花費(fèi)掉整個(gè)BI項(xiàng)目三分之一的時(shí)間,因此ETL設(shè)計(jì)的好壞直接影響到BI項(xiàng)目的成敗。ETLExtract-Transform-Load用來描述將數(shù)據(jù)從源端經(jīng)過抽取(extract)、轉(zhuǎn)換(transform)、加載(load)至目的端的過程,它能夠?qū)Ω鞣N分布的、異構(gòu)的源數(shù)據(jù)(如關(guān)系數(shù)據(jù))進(jìn)行抽取,按照預(yù)先設(shè)計(jì)的規(guī)則將不完整數(shù)據(jù)、重復(fù)數(shù)據(jù)以及錯(cuò)誤數(shù)據(jù)等臟數(shù)據(jù)內(nèi)容進(jìn)行清洗,得到符合要求的“干凈”數(shù)據(jù),并加載到數(shù)據(jù)倉(cāng)庫(kù)中進(jìn)行存儲(chǔ),這些“干凈”數(shù)據(jù)就成為了數(shù)據(jù)分析、數(shù)據(jù)挖掘的基石。ETLBusinessIntelligence1、ETL概念1、ETL概念借助ETL工具借助Pentaho,Kettle工具,可快速建立ETL工程,屏蔽復(fù)雜的編碼任務(wù)、加快速度和降低難度,但缺少靈活性01編寫SQL語句該方式的優(yōu)點(diǎn)是靈活,可以提高ETL的運(yùn)行效率,但是編碼復(fù)雜,對(duì)技術(shù)要求比較高。02ETL工具與SQL語句結(jié)合該方式綜合了前面兩種方式的優(yōu)點(diǎn),可以極大地提高ETL的開發(fā)速度和效率。03ETL實(shí)現(xiàn)方式2、ETL體系結(jié)構(gòu)ETL主要是用來實(shí)現(xiàn)異構(gòu)數(shù)據(jù)源數(shù)據(jù)集成的。多種數(shù)據(jù)源的所有原始數(shù)據(jù)大部分未作修改就被載入到ETL,因而,無論數(shù)據(jù)源在關(guān)系型數(shù)據(jù)庫(kù)、非關(guān)系型數(shù)據(jù)庫(kù)還是外部文件,集成后的數(shù)據(jù)都將被置于數(shù)據(jù)庫(kù)的數(shù)據(jù)表或數(shù)據(jù)倉(cāng)庫(kù)的維度表中,以便在數(shù)據(jù)庫(kù)內(nèi)或數(shù)據(jù)倉(cāng)庫(kù)中作進(jìn)一步地轉(zhuǎn)換。2、ETL體系結(jié)構(gòu)若數(shù)據(jù)源1和數(shù)據(jù)源2均為功能較強(qiáng)大的DBMS,可使用SQL語句完成一部分?jǐn)?shù)據(jù)清洗工作。但是,如果數(shù)據(jù)源為外部文件,無法使用SQL語句進(jìn)行數(shù)據(jù)清洗工作,只能直接從數(shù)據(jù)源中抽取出來,然后在數(shù)據(jù)轉(zhuǎn)換時(shí)進(jìn)行數(shù)據(jù)清洗工作。因此,數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)清洗工作主要是在數(shù)據(jù)轉(zhuǎn)換時(shí)進(jìn)行。清洗好的數(shù)據(jù)將保存到目標(biāo)數(shù)據(jù)庫(kù)中,用于后續(xù)數(shù)據(jù)分析、數(shù)據(jù)挖掘以及商業(yè)智能。ETL體系結(jié)構(gòu)示意圖3、數(shù)據(jù)倉(cāng)庫(kù)糧倉(cāng)→糧食貨倉(cāng)→貨物數(shù)據(jù)倉(cāng)庫(kù)?3、數(shù)據(jù)倉(cāng)庫(kù)簡(jiǎn)稱DW,是一個(gè)很大的數(shù)據(jù)存儲(chǔ)集合,出于企業(yè)的分析性報(bào)告和決策支持目的而創(chuàng)建,并對(duì)多樣的業(yè)務(wù)數(shù)據(jù)進(jìn)行篩選與整合數(shù)據(jù)倉(cāng)庫(kù)DataWarehouse3、數(shù)據(jù)倉(cāng)庫(kù)1分析用戶行為數(shù)據(jù),通過數(shù)據(jù)挖掘來降低投入成本,提高投入效果2可以作為各個(gè)業(yè)務(wù)的數(shù)據(jù)域,形成業(yè)務(wù)數(shù)據(jù)瓦相反饋的良性循環(huán)3整合公司所有業(yè)務(wù)數(shù)據(jù),建立統(tǒng)一的數(shù)據(jù)中心4產(chǎn)生業(yè)務(wù)報(bào)表,用于做出決策5為網(wǎng)站運(yùn)營(yíng)提供運(yùn)營(yíng)商的數(shù)據(jù)支持?jǐn)?shù)據(jù)倉(cāng)庫(kù)的作用3、數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)倉(cāng)庫(kù)與數(shù)據(jù)庫(kù)等價(jià)嗎??3、數(shù)據(jù)倉(cāng)庫(kù)數(shù)據(jù)庫(kù)也稱面向交易的處理系統(tǒng),它是針對(duì)具體業(yè)務(wù)在數(shù)據(jù)庫(kù)聯(lián)機(jī)的日常操作,通常對(duì)少數(shù)記錄進(jìn)行查詢、修改。用戶較為關(guān)心操作的響應(yīng)時(shí)間、數(shù)據(jù)的安全性、完整性和并發(fā)的支持用戶數(shù)等問題。傳統(tǒng)的數(shù)據(jù)庫(kù)系統(tǒng)作為數(shù)據(jù)管理的主要手段,主要用于操作型處理。一般針對(duì)某些主題歷史數(shù)據(jù)進(jìn)行分析,支持管理決策。數(shù)據(jù)倉(cāng)庫(kù)3、數(shù)據(jù)倉(cāng)庫(kù)操作型處理(數(shù)據(jù)庫(kù))分析型處理(數(shù)據(jù)倉(cāng)庫(kù))細(xì)節(jié)的綜合或者提煉的實(shí)體-關(guān)系(E-R)模型星型模型或雪花模型存儲(chǔ)瞬間數(shù)據(jù)存儲(chǔ)歷史數(shù)據(jù),不包含最近的數(shù)據(jù)一次操作一個(gè)單元一次操作一個(gè)集合性能要求高,響應(yīng)時(shí)間短性能要求寬松可更新的只讀、只追加面向事務(wù)面向分析一次操作數(shù)據(jù)量小支持決策需求數(shù)據(jù)量小數(shù)據(jù)量大客戶訂單、庫(kù)存水平和銀行賬戶查詢客戶收益分析、市場(chǎng)細(xì)分3、數(shù)據(jù)倉(cāng)庫(kù)ETL是數(shù)據(jù)倉(cāng)庫(kù)應(yīng)用中非常重要的一環(huán),是承前啟后的必要的一步。子任務(wù)2.2ETL主要技術(shù)1、數(shù)據(jù)抽取數(shù)據(jù)抽取就是從異構(gòu)數(shù)據(jù)源抽取數(shù)據(jù),但是并不是所有的數(shù)據(jù)源中的數(shù)據(jù)都有實(shí)際的價(jià)值。1、數(shù)據(jù)抽取方式說明觸發(fā)器方式根據(jù)抽取要求,在要被抽取的數(shù)據(jù)源表上建立插入、修改、刪除三個(gè)觸發(fā)器,每當(dāng)數(shù)據(jù)源表中數(shù)據(jù)發(fā)生變化,就被相應(yīng)觸發(fā)器將變化數(shù)據(jù)寫入一個(gè)增量日志表中,ETL增量抽取是從增量日志中抽取,而不是直接在源表中抽取數(shù)據(jù),同時(shí)增量日志表中抽取過的數(shù)據(jù)要及時(shí)被標(biāo)記或者刪除。時(shí)間戳方式在增量抽取時(shí),抽取進(jìn)程通過比較指定抽取時(shí)間與抽取源表的時(shí)間戳字段的值來決定抽取哪些數(shù)據(jù)。這種方式需要在源表中增加一個(gè)時(shí)間戳字段,系統(tǒng)中更新或修改源表數(shù)據(jù)的時(shí)候,也會(huì)同時(shí)修改時(shí)間戳字段的值。插入數(shù)據(jù)的時(shí)間戳是由系統(tǒng)時(shí)間指定。全表對(duì)比方式在增量抽取時(shí),ETL進(jìn)行逐條比較源表和目標(biāo)表的每次從源表中讀取所有記錄,然后逐條比較源表和目標(biāo)表的記錄,將變化的記錄過濾讀取出來。日志表方式對(duì)于建立了業(yè)務(wù)系統(tǒng)的生產(chǎn)數(shù)據(jù)庫(kù)的企業(yè)來說,可以在數(shù)據(jù)庫(kù)中創(chuàng)建業(yè)務(wù)日志表,當(dāng)特定需要監(jiān)控的業(yè)務(wù)數(shù)據(jù)發(fā)生變化時(shí),由相應(yīng)的業(yè)務(wù)系統(tǒng)程序模塊更新維護(hù)日志表的內(nèi)容。增量抽取時(shí),通過讀日志表數(shù)據(jù)決定加載哪些數(shù)據(jù)及如何加載。日志表的維護(hù)需要由業(yè)務(wù)系統(tǒng)程序編寫代碼來完成。數(shù)據(jù)抽取的方式2、數(shù)據(jù)清洗數(shù)據(jù)的清洗轉(zhuǎn)換是ETL中最為復(fù)雜的部分,主要任務(wù)是過濾掉不符合要求的數(shù)據(jù),不符合要求的數(shù)據(jù)主要有不完整的數(shù)據(jù)、錯(cuò)誤的數(shù)據(jù)、重復(fù)的數(shù)據(jù)三大類2、數(shù)據(jù)清洗

源頭:當(dāng)數(shù)據(jù)上報(bào)、接口調(diào)用時(shí)都會(huì)產(chǎn)生大量的不完整數(shù)據(jù)

事實(shí):不完整數(shù)據(jù)的產(chǎn)生是不可避免的現(xiàn)象危害:不完整的數(shù)據(jù)對(duì)大數(shù)據(jù)環(huán)境下的決策具有一定的影響清洗流程:不完整數(shù)據(jù)2、數(shù)據(jù)清洗大數(shù)據(jù)環(huán)境下數(shù)據(jù)量的劇增使得獲取到的數(shù)據(jù)源會(huì)由于各種原因存在大量的錯(cuò)誤數(shù)據(jù)。尤其是業(yè)務(wù)系統(tǒng)不夠健全的情況下,在接收輸入數(shù)據(jù)后沒有進(jìn)行過濾判斷,而是直接將數(shù)據(jù)寫入到后臺(tái)數(shù)據(jù)庫(kù),會(huì)造成大量錯(cuò)誤數(shù)據(jù)產(chǎn)生。如數(shù)值數(shù)據(jù)輸成全角數(shù)字字符、字符串?dāng)?shù)據(jù)后面出現(xiàn)一個(gè)回車操作、日期格式不正確、日期越界等錯(cuò)誤。錯(cuò)誤數(shù)據(jù)清洗的過程如下圖:錯(cuò)誤的數(shù)據(jù)2、數(shù)據(jù)清洗重復(fù)的數(shù)據(jù)源頭:數(shù)據(jù)集成、系統(tǒng)重復(fù)錄入等,通常表現(xiàn)為多條記錄所表達(dá)的含義相同,或同一目標(biāo)實(shí)體的記錄雖然在形式上有所不同,但其描述的目標(biāo)卻相同。危害:重復(fù)記錄的數(shù)據(jù)特征并不明顯,但是對(duì)數(shù)據(jù)識(shí)別和數(shù)據(jù)清洗造成很大的難度。清洗目的:提高數(shù)據(jù)庫(kù)使用率,降低系統(tǒng)消耗,并提高數(shù)據(jù)質(zhì)量。采用排序合并算法清洗重復(fù)數(shù)據(jù)的流程圖3、數(shù)據(jù)的加載數(shù)據(jù)加載是ETL的最后一個(gè)階段,它的主要任務(wù)是將數(shù)據(jù)從臨時(shí)數(shù)據(jù)表或文件中,加載到指定數(shù)據(jù)倉(cāng)庫(kù)中。一般來說,可以通過編寫SQL語句和利用加載工具將數(shù)據(jù)加載到數(shù)據(jù)倉(cāng)庫(kù)中。通常加載方式有:全量加載增量加載批量加載子任務(wù)2.3Kettle環(huán)境部署1、認(rèn)識(shí)kettle中文名稱為水壺,其設(shè)計(jì)理念是主程序員Matt希望將來自不同數(shù)據(jù)庫(kù)中的數(shù)據(jù)放到一個(gè)壺里,然后以一種指定的格式流出(即按照用戶要求的格式進(jìn)行輸出)。Kettle支持管理來自不同數(shù)據(jù)庫(kù)的的數(shù)據(jù),通過提供一個(gè)圖形化的用戶環(huán)境來描述用戶想要做什么,而不是用戶想要怎么做。kettle一款國(guó)外免費(fèi)開源的輕量級(jí)ETL工具,是基于Java語言開發(fā)的,可以在Windows、Linux、Unix系統(tǒng)上運(yùn)行,并且是綠色無需安裝的,它可以用于各種數(shù)據(jù)庫(kù)之間數(shù)據(jù)的遷移。kettle1、認(rèn)識(shí)kettleSpoonSpoon是Kettle的集成開發(fā)環(huán)境,它會(huì)提供一個(gè)基于SWT的圖形用戶界面,主要用于構(gòu)建ETLJobs和Transformtions,也可以用于執(zhí)行或調(diào)試作業(yè)、轉(zhuǎn)換,還可以用于監(jiān)控ETL操作的性能。windows選擇spoon.bat,linux選擇spoon.sh)PanPan是以命令行的方式執(zhí)行Spoon生成的Transformtions程序,運(yùn)行在后臺(tái),并且該組件沒有圖形化用戶界面。KetchenKitchen是以命令行的方式執(zhí)行Spoon生成的Jobs程序,運(yùn)行在后臺(tái),并且該組件沒有圖形化用戶界面。CarteCarte是Kettle中的一個(gè)重要組件,是一個(gè)輕量級(jí)的web容器,用于建立專用、遠(yuǎn)程的ETLserverKettle工具主要是由四個(gè)組件組成,分別是Spoon、Pan、Kitchen及Carte組件Kettle工具的執(zhí)行分為兩個(gè)層次,即轉(zhuǎn)換和作業(yè),這兩個(gè)層次的最主要區(qū)別在于數(shù)據(jù)傳遞和執(zhí)行方式。Kettle的概念模型圖如右圖所示。1、認(rèn)識(shí)kettle概念轉(zhuǎn)換是ETL解決方案中重要的組成部分之一,主要用于數(shù)據(jù)的抽取、轉(zhuǎn)換以及加載等操作,其本質(zhì)是一組圖形化的數(shù)據(jù)轉(zhuǎn)換配置的邏輯結(jié)構(gòu)。一個(gè)轉(zhuǎn)換包括一個(gè)或多個(gè)步驟要素轉(zhuǎn)換中的步驟是通過跳來連接的,跳定義了一個(gè)單向通道,允許數(shù)據(jù)從一個(gè)步驟向另一個(gè)步驟流動(dòng)。在Kettle中,數(shù)據(jù)的單位是行,數(shù)據(jù)流就是數(shù)據(jù)行從一個(gè)步驟到另一個(gè)步驟的移動(dòng)1、認(rèn)識(shí)kettle轉(zhuǎn)換1、認(rèn)識(shí)kettle作業(yè)概念轉(zhuǎn)換目前,大多數(shù)的ETL項(xiàng)目都需要完成各種各樣的維護(hù)工作。例如,如何傳送文件、驗(yàn)證數(shù)據(jù)庫(kù)中的數(shù)據(jù)表是否存在等操作,這些操作都必須按照一定順序完成,因此需要一個(gè)可以串行執(zhí)行的作業(yè)來處理這些操作。要素一個(gè)作業(yè)包含一個(gè)或者多個(gè)作業(yè)項(xiàng),并且這些作業(yè)項(xiàng)都是以某種順序來進(jìn)行執(zhí)行的。作業(yè)執(zhí)行的順序由作業(yè)項(xiàng)之間的跳(JobHop)和每個(gè)作業(yè)項(xiàng)的執(zhí)行結(jié)果來決定。2、kettle搭建先安裝jdk-8u151-windows-x64(直接下一步即可),安裝完成后,將安裝路徑復(fù)制在系統(tǒng)變量中第一步:搭建JDK環(huán)境2、kettle搭建注意:Kettle版本和JDK版本的兼容性2

安裝MySQL8.0,或安裝phpstudy,將MySQL的安裝路徑復(fù)制到系統(tǒng)變量中3下載Kettle安裝包:下載地址/projects/pentaho/files/Data%20Integration/。4Kettle工具pdi-ce--342.zip直接解壓,將安裝路徑復(fù)制到系統(tǒng)變量中2、kettle搭建5將數(shù)據(jù)庫(kù)驅(qū)動(dòng)mysql-connector-java-5.1.46-bin拷貝到ket

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論