




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、ETL即數據抽取(Extract)、轉換(Transform)、裝載(Load)的過程,它是構建數據倉庫的重要環節。 ETL是將業務系統的數據經過抽取、清洗轉換之后加載到數據倉庫的過程,目的是將企業中的分散、零亂、標準不統一的數據整合到一起,為企業的決策提供分析依據。ETL是BI項目重要的一個環節。通常情況下,在BI項目中ETL會花掉整個項目的1/3的時間,ETL設計的好壞直接關接到BI項目的成敗。ETL的設計分三部分:數據抽取、數據的清洗轉換、數據的加載。在設計ETL的時候我們也是從這三部分出發。數據的抽取是從各個不同的數據源抽取到ODS(OperationalDataStore,操作型數據
2、存儲)中這個過程也可以做一些數據的清洗和轉換),在抽取的過程中需要挑選不同的抽取方法,盡可能的提高ETL的運行效率。ETL三個部分中,花費時間最長的是“T”(Transform,清洗、轉換)的部分,一般情況下這部分工作量是整個ETL的2/3。數據的加載一般在數據清洗完了之后直接寫入DW(DataWarehousing,數據倉庫)中去。ETL的實實現有多種方方法,常用的的有三種。一一種是借助EETL工具(如Oraclle的OWB、SQLSeerver22000的DTS、SQLSeerver22005的SSIS服務務、Infoormatiic等)實現,一種種是SQL方式實實現,另外一一種是ETLL
3、工具和SQLL相結合。前前兩種方法各各有各的優缺缺點,借助工工具可以快速速的建立起EETL工程,屏屏蔽了復雜的的編碼任務,提提高了速度,降降低了難度,但但是缺少靈活活性。SQLL的方法優點點是靈活,提提高ETL運行效效率,但是編編碼復雜,對對技術要求比比較高。第三三種是綜合了了前面二種的的優點,會極極大地提高EETL的開發發速度和效率率。一、數據的的抽取這一部分需需要在調研階階段做大量的的工作,首先先要搞清楚數數據是從幾個個業務系統中中來,各個業務系系統的數據庫庫服務器運行行什么DBMMS,是否存存在手工數據據,手工數據據量有多大,是是否存在非結結構化的數據據等等,當收收集完這些信信息之后才可
4、可以進行數據據抽取的設計計。1、對于與與存放DW的數據庫庫系統相同的的數據源處理理方法這一類數據據源在設計上上比較容易。一一般情況下,DBMS(SQLServer、Oracle)都會提供數據庫鏈接功能,在DW數據庫服務器和原業務系統之間建立直接的鏈接關系就可以寫Select語句直接訪問。2、對于與與DW數據庫系系統不同的數數據源的處理理方法對于這一類類數據源,一一般情況下也也可以通過OODBC的方方式建立數據據庫鏈接如SQLSeerver和和Oraclle之間。如如果不能建立立數據庫鏈接接,可以有兩兩種方式完成成,一種是通通過工具將源源數據導出成成.txt或者者是.xlss文件,然后后再將這些
5、源源系統文件導導入到ODSS中。另外一一種方法是通通過程序接口口來完成。3、對于文文件類型數據據源(.txxt,.xlls),可以以培訓業務人人員利用數據據庫工具將這這些數據導入入到指定的數數據庫,然后后從指定的數數據庫中抽取取。或者還可可以借助工具具實現,如SSQLSerrver20005的SSIS服務務的平面數據據源和平面目目標等組件導導入ODS中去。4、增量更更新的問題對于數據量量大的系統,必必須考慮增量量抽取。一般般情況下,業業務系統會記記錄業務發生生的時間,我我們可以用來來做增量的標標志,每次抽取之之前首先判斷斷ODS中記錄錄最大的時間間,然后根據據這個時間去去業務系統取取大于這個時
6、時間所有的記記錄。利用業業務系統的時時間戳,一般般情況下,業業務系統沒有有或者部分有有時間戳。 二、數數據的清洗轉轉換一般情況下下,數據倉庫庫分為ODSS、DW兩部分。通通常的做法是是從業務系統統到ODS做清洗洗,將臟數據據和不完整數數據過濾掉,在在從ODS到DW的過程中中轉換,進行行一些業務規規則的計算和和聚合。 1、數數據清洗數據清洗的的任務是過濾濾那些不符合合要求的數據據,將過濾的的結果交給業業務主管部門門,確認是否否過濾掉還是是由業務單位位修正之后再再進行抽取。不不符合要求的的數據主要是是有不完整的的數據、錯誤誤的數據、重重復的數據三三大類。(1)不完完整的數據:這一類數據據主要是一些
7、些應該有的信信息缺失,如如供應商的名名稱、分公司司的名稱、客客戶的區域信信息缺失、業業務系統中主主表與明細表表不能匹配等等。對于這一一類數據過濾濾出來,按缺缺失的內容分分別寫入不同同Excell文件向客戶戶提交,要求求在規定的時時間內補全。補補全后才寫入入數據倉庫。(2)錯誤誤的數據:這這一類錯誤產產生的原因是是業務系統不不夠健全,在在接收輸入后后沒有進行判判斷直接寫入入后臺數據庫庫造成的,比比如數值數據據輸成全角數數字字符、字字符串數據后后面有一個回回車操作、日日期格式不正正確、日期越越界等。這一一類數據也要要分類,對于于類似于全角角字符、數據據前后有不可可見字符的問問題,只能通通過寫SQL
8、L語句的方式式找出來,然然后要求客戶戶在業務系統統修正之后抽抽取。日期格格式不正確的的或者是日期期越界的這一一類錯誤會導導致ETL運行失失敗,這一類類錯誤需要去去業務系統數數據庫用SQQL的方式挑挑出來,交給給業務主管部部門要求限期期修正,修正正之后再抽取取。(3)重復復的數據:對對于這一類數數據特別是維維表中會出現現這種情況將重復數數據記錄的所所有字段導出出來,讓客戶戶確認并整理理。數據清洗是是一個反復的的過程,不可可能在幾天內內完成,只有有不斷的發現現問題,解決決問題。對于于是否過濾,是是否修正一般般要求客戶確確認,對于過過濾掉的數據據,寫入Exxcel文件件或者將過濾濾數據寫入數數據表,
9、在EETL開發的的初期可以每每天向業務單單位發送過濾濾數據的郵件件,促使他們們盡快地修正正錯誤,同時也可以以做為將來驗驗證數據的依依據。數據清清洗需要注意意的是不要將將有用的數據據過濾掉,對對于每個過濾濾規則認真進進行驗證,并并要用戶確認認。2、數據轉轉換數據轉換的的任務主要進進行不一致的的數據轉換、數數據粒度的轉轉換,以及一一些商務規則則的計算。(1)不一一致數據轉換換:這個過程程是一個整合合的過程,將將不同業務系系統的相同類類型的數據統統一,比如同同一個供應商商在結算系統統的編碼是XXX00011,而在CRM中編碼碼是YY00001,這樣樣在抽取過來來之后統一轉轉換成一個編編碼。(2)數據
10、據粒度的轉換換:業務系統統一般存儲非非常明細的數數據,而數據據倉庫中數據據是用來分析析的,不需要要非常明細的的數據。一般般情況下,會會將業務系統統數據按照數數據倉庫粒度度進行聚合。(3)商務務規則的計算算:不同的企企業有不同的的業務規則、不不同的數據指指標,這些指指標有的時候候不是簡單的的加加減減就就能完成,這這個時候需要要在ETL中將這這些數據指標標計算好了之之后存儲在數數據倉庫中,以以供分析使用用。 三、EETL日志、警警告發送1、ETLL日志ETL日志志分為三類。一一類是執行過過程日志,這這一部分日志志是在ETLL執行過程中中每執行一步步的記錄,記記錄每次運行行每一步驟的的起始時間,影影
11、響了多少行行數據,流水水賬形式。一一類是錯誤日日志,當某個個模塊出錯的的時候寫錯誤誤日志,記錄錄每次出錯的的時間、出錯錯的模塊以及及出錯的信息息等。第三類類日志是總體體日志,只記記錄ETL開始時時間、結束時時間是否成功功信息。如果果使用ETLL工具,ETLL工具會自動動產生一些日日志,這一類類日志也可以以作為ETLL日志的一部部分。記錄日日志的目的是是隨時可以知知道ETL運行情情況,如果出出錯了,可以以知道哪里出出錯。2、警告發發送如果ETLL出錯了,不不僅要形成EETL出錯日日志,而且要要向系統管理理員發送警告告。發送警告告的方式多種種,一般常用用的就是給系系統管理員發發送郵件,并并附上出錯
12、的的信息,方便便管理員排查查錯誤。ETL是BBI項目的關關鍵部分,也也是一個長期期的過程,只只有不斷的發發現問題并解解決問題,才才能使ETLL運行效率更更高,為BII項目后期開開發提供準確確的數據。數據抽取、清洗洗與轉換 BBI項目中ETLL設計作者: 葉江, 出處:ITTPub,責任編輯: 葉江, 2007-055-14 113:39ETL是將將業務系統的的數據經過抽抽取、清洗轉轉換之后加載載到數據倉庫庫的過程,目目的是將企業業中的分散、零零亂、標準不不統一的數據據整合到一起起,為企業的的決策提供分分析的依據 CONTROL ShockwaveFlash.ShockwaveFlash.10
13、ETL是BBI項目最重重要的一個環環節,通常情情況下ETLL會花掉整個個項目的1/3的時間,ETTL設計的好好壞直接關接接到BI項目的成成敗。ETLL也是一個長長期的過程,只只有不斷的發發現問題并解解決問題,才才能使ETLL運行效率更更高,為項目目后期開發提提供準確的數數據。ETL的設設計分三部分分:數據抽取取、數據的清清洗轉換、數數據的加載。在在設計ETLL的時候也是是從這三部分分出發。數據據的抽取是從從各個不同的的數據源抽取取到ODS中(這個過程也也可以做一些些數據的清洗洗和轉換),在抽取的的過程中需要要挑選不同的的抽取方法,盡盡可能的提高高ETL的運行行效率。ETTL三個部分分中,花費時
14、時間最長的是是T(清洗、轉轉換)的部分,一一般情況下這這部分工作量量是整個ETTL的2/3。數據據的加載一般般在數據清洗洗完了之后直直接寫入DWW中去。ETL的實實現有多種方方法,常用的的有三種,第第一種是借助助ETL工具如如Oraclle的OWB、SQL sserverr 20000的DTS、SQL SServerr2005的的SSIS服務務、informmatic等等實現,第二二種是SQLL方式實現,第第三種是ETTL工具和SQLL相結合。前前兩種方法各各有優缺點,借借助工具可以以快速的建立立起ETL工程,屏屏蔽復雜的編編碼任務,提提高速度,降降低難度,但但是欠缺靈活活性。SQLL的方法優
15、點點是靈活,提提高ETL運行效效率,但是編編碼復雜,對對技術要求比比較高。第三三種是綜合了了前面二種的的優點,極大大的提高ETTL的開發速速度和效率。數據的抽取取數據的抽取取需要在調研研階段做大量量工作,首先先要搞清楚以以下幾個問題題:數據是從從幾個業務系系統中來?各個業務系系統的 HYPERLINK / 數據庫庫 HYPERLINK / 服務器運行什什么DBMSS?是否存在手手工數據,手手工數據量有有多大?是否存在非非結構化的數數據?等等類似問問題,當收集集完這些信息息之后才可以以進行數據抽抽取的設計。1、與存放放DW的數據庫系統相相同的數據源源處理方法這一類數源源在設計比較較容易,一般般情
16、況下,DDBMS(包括SQLSServerr,Oraclle)都會提提供數據庫鏈接功功能,在DWW數據庫服務器器和原業務系系統之間建立立直接的鏈接接關系就可以以寫Seleect 語句句直接訪問。2、與DWW數據庫系統不不同的數據源源的處理方法法。這一類數據據源一般情況況下也可以通通過ODBCC的方式建立立數據庫鏈接接,如SQLL Servver和Oraclle之間。如如果不能建立立數據庫鏈接,可可以有兩種方方式完成,一一種是通過工工具將源數據據導出成.ttxt或者是是.xls文件件,然后再將將這些源系統統文件導入到到ODS中。另另外一種方法法通過程序接接口來完成。3、對于文文件類型數據據源(.
17、txxt,,xls),可可以培訓業務務人員利用數數據庫工具將將這些數據導導入到指定的的數據庫,然然后從指定的的數據庫抽取。或或者可以借助助工具實現,如如SQL SSERVERR 20055 的SSIS服務務的平面數據據源和平面目目標等組件導導入ODS中去。4、增量更更新問題對于數據量量大的系統,必必須考慮增量量抽取。一般般情況,業務務系統會記錄錄業務發生的的時間,可以以用作增量的的標志,每次次抽取之前首首先判斷ODDS中記錄最最大的時間,然然后根據這個個時間去業務務系統取大于于這個時間的的所有記錄。利利用業務系統統的時間戳,一一般情況下,業業務系統沒有有或者部分有有時間戳。數據的清洗洗轉換一般
18、情況下下, HYPERLINK /datawarehouse/tt-database-dbck/ 數據倉庫庫分為ODS、DW兩部分,通通常的做法是是從業務系統統到ODS做清洗洗,將臟數據據和不完整數數據過濾掉,再再從ODS到DW的過程中中轉換,進行行一些業務規規則的計算和和聚合。共2頁。 HYPERLINK /tips/7/7332007.shtml 1 HYPERLINK /tips/7/7332007_1.shtml 2 HYPERLINK /tips/7/7332007_1.shtml :1 HYPERLINK /tips/7/7332007_2.shtml 2 HYPERLINK /t
19、ips/7/7332007_2.shtml 下一頁 1、數據清清洗數據清洗的的任務是過濾濾那些不符合合要求的數據據,將過濾的的結果交給業業務主管部門門,確認是否否過濾掉還是是由業務單位位修正之后再再進行抽取。不不符合要求的的數據主要是是有不完整的的數據、錯誤誤的數據和重重復的數據三三大類。A、不完整整的數據,其其特征是是一一些應該有的的信息缺失,如如供應商的名名稱,分公司司的名稱,客客戶的區域信信息缺失、業業務系統中主主表與明細表表不能匹配等等。需要將這這一類數據過過濾出來,按按缺失的內容容分別寫入不不同 HYPERLINK /officejqfs/ Exceel文件向客客戶提交,要要求在規定
20、的的時間內補全全。補全后才才寫入 HYPERLINK /datawarehouse/tt-database-dbck/ 數據倉倉庫。 B、錯誤的的數據,產生生原因是業務務系統不夠健健全,在接收收輸入后沒有有進行判斷直直接寫入后臺臺 HYPERLINK / 數據庫造成的的,比如數值值數據輸成全全角數字字符符、字符串數數據后面有一一個回車、日日期格式不正正確、日期越越界等。這一一類數據也要要分類,對于于類似于全角角字符、數據據前后有不面面見字符的問問題只能寫SSQL的方式式找出來,然然后要求客戶戶在業務系統統修正之后抽抽取;日期格式不不正確的或者者是日期越界界的這一類錯錯誤會導致EETL運行失失敗
21、,這一類類錯誤需要去去業務系統數數據庫用SQL的方式式挑出來,交交給業務主管管部門要求限限期修正,修修正之后再抽抽取。 C、重復的的數據,特別別是維表中比比較常見,將將重復的數據據的記錄所有有字段導出來來,讓客戶確確認并整理。數據清洗是是一個反復的的過程,不可可能在幾天內內完成,只有有不斷的發現現問題,解決決問題。對于于是否過濾、是是否修正一般般要求客戶確確認;對于過濾掉掉的數據,寫寫入Exceel文件或者者將過濾數據據寫入數據表表,在ETLL開發的初期期可以每天向向業務單位發發送過濾數據據的郵件,促促使他們盡快快的修正錯誤誤,同時也可可以作為將來來驗證數據的的依據。數據據清洗需要注注意的是不
22、要要將有用的數數據過濾掉了了,對于每個個過濾規則認認真進行驗證證,并要用戶戶確認才行。2、數據轉轉換數據轉換的的任務主要是是進行不一致致的數據轉換換、數據粒度度的轉換和一一些商務規則則的計算。A、不一致致數據轉換,這這個過程是一一個整合的過過程,將不同同業務系統的的相同類型的的數據統一,比比如同一個供供應商在結算算系統的編碼碼是XX00001,而在在 HYPERLINK / CRM中編碼碼是YY00001,這樣樣在抽取過來來之后統一轉轉換成一個編編碼。 B、數據粒粒度的轉換,業業務系統一般般 HYPERLINK / 存儲非常明細細的數據,而而數據倉庫中中的數據是用用來分析的,不不需要非常明明細
23、的數據,一一般情況下,會會將業務系統統數據按照數數據倉庫粒度度進行聚合。 C、商務規規則的計算,不不同的企業有有不同的業務務規則,不同同的數據指標標,這些指標標有的時候不不是簡單的加加加減減就能能完成,這個個時候需要在在ETL中將這這些數據指標標計算好了之之后存儲在數數據倉庫中,供供分析使用。ETL日志志與警告發送送1、ETLL日志,記錄錄日志的目的的是隨時可以以知道ETLL運行情況,如如果出錯了,出出錯在那里。ETL日志志分為三類。第第一類是執行行過程日志,是是在ETL執行過過程中每執行行一步的記錄錄,記錄每次次運行每一步步驟的起始時時間,影響了了多少行數據據,流水賬形形式。第二類類是錯誤日
24、志志,當某個模模塊出錯的時時候需要寫錯錯誤日志,記記錄每次出錯錯的時間,出出錯的模塊以以及出錯的信信息等。第三三類日志是總總體日志,只只記錄ETLL開始時間,結結束時間是否否成功信息。如果使用EETL工具,工工具會自動產產生一些日志志,這一類日日志也可以作作為ETL日志的的一部分。2、警告發發送ETL出錯錯了,不僅要要寫ETL出錯日日志而且要向向系統管理員員發送警告,發發送警告的方方式有多種,常常用的就是給給系統管理員員發送郵件,并并附上出錯的的信息,方便便管理員排查查錯誤。面向數據集成的的ETL技術研研究 HYPERLINK 開發者在線 BB 更新時間:2008-09-166作者: 來源:I
25、T專家網網本文關鍵詞: HYPERLINK /files/list-0-0-136294-1-1.htm ETL HYPERLINK /files/list-0-0-144252-1-1.htm IT技術 HYPERLINK /files/list-0-0-168525-1-1.htm 數據庫 隨著企業信息息化建設的發發展,巨大的的投資為企業業建立了眾多多的信息系統統,以幫助企企業進行內外外部業務的處處理和管理工工作。但是隨隨著信息系統統的增加,各各自孤立工作作的信息系統統將會造成大大量的冗余數數據和業務人人員的重復勞勞動。企業應應用集成(EEAI,Ennterprrise AApplicca
26、tionn Inteegratiion)應運運而生。EAAI通過建立立底層數據交交換平臺來聯聯系橫貫整個個企業的異構構系統、應用用、數據源等等,完成在企企業內部的EERP、CRRM、SCMM、數據庫、數數據倉庫,以以及其它重要要的內部系統統之間無縫地地共享和交換換數據的需要要。數據集成成是企業應用用集成的重要要環節,企業業實現數據集集成,可以使使更多的人更更充分地使用用已有數據資資源,減少資資料收集、數數據采集等重重復勞動和相相應費用。 但是,在實實施數據集成成的過程中,由由于不同用戶戶提供的數據據可能來自不不同的途徑,其其數據內容、數數據格式和數數據質量千差差萬別,有時時甚至會遇到到數據格式
27、不不能轉換或數數據轉換格式式后丟失信息息等棘手問題題,嚴重阻礙礙了數據在各各部門和各應應用系統中的的流動與共享享。因此,如如何對數據進進行有效的集集成管理已成成為增強企業業商業競爭力力的必然選擇擇。ETL是是實現數據集集成的主要技技術。ETL中三三個字母分別別代表的是EExtracct、Traansforrm、Loaad,即抽取取、轉換、加加載。(1)數據抽取:從源數據源源系統抽取目目的數據源系系統需要的數數據;(2)數據轉換:將從源數據據源獲取的數數據按照業務務需求,轉換換成目的數據據源要求的形形式,并對錯錯誤、不一致致的數據進行行清洗和加工工。(3)數數據加載:將將轉換后的數數據裝載到目目
28、的數據源。ETL原本本是作為構建建數據倉庫的的一個環節,負負責將分布的的、異構數據據源中的數據據如關系數據據、平面數據據文件等抽取取到臨時中間間層后進行清清洗、轉換、集集成,最后加加載到數據倉倉庫或數據集集市中,成為為聯機分析處處理、數據挖挖掘的基礎。現現在也越來越越多地將ETTL應用于一一般信息系統統中數據的遷遷移、交換和和同步。一個個簡單的ETTL體系結構構如圖1.11所示。2.ETLL中的關鍵技技術ETL過程程中的主要環環節就是數據據抽取、數據據轉換和加工工、數據裝載載。為了實現現這些功能,各各個ETL工工具一般會進進行一些功能能上的擴充,例例如工作流、調調度引擎、規規則引擎、腳腳本支持
29、、統統計信息等。2.1 數數據抽取數據抽取是是從數據源中中抽取數據的的過程。實際際應用中,數數據源較多采采用的是關系系數據庫。從從數據庫中抽抽取數據一般般有以下幾種種方式。(1)全量量抽取全量抽取類類似于數據遷遷移或數據復復制,它將數數據源中的表表或視圖的數數據原封不動動的從數據庫庫中抽取出來來,并轉換成成自己的ETTL工具可以以識別的格式式。全量抽取取比較簡單。(2)增量量抽取增量抽取只只抽取自上次次抽取以來數數據庫中要抽抽取的表中新新增或修改的的數據。在EETL使用過過程中。增量量抽取較全量量抽取應用更更廣。如何捕捕獲變化的數數據是增量抽抽取的關鍵。對對捕獲方法一一般有兩點要要求:準確性性
30、,能夠將業業務系統中的的變化數據按按一定的頻率率準確地捕獲獲到;性能,不不能對業務系系統造成太大大的壓力,影影響現有業務務。目前增量量數據抽取中中常用的捕獲獲變化數據的的方法有:a.觸發器器:在要抽取取的表上建立立需要的觸發發器,一般要要建立插入、修修改、刪除三三個觸發器,每每當源表中的的數據發生變變化,就被相相應的觸發器器將變化的數數據寫入一個個臨時表,抽抽取線程從臨臨時表中抽取取數據,臨時時表中抽取過過的數據被標標記或刪除。觸觸發器方式的的優點是數據據抽取的性能能較高,缺點點是要求業務務表建立觸發發器,對業務務系統有一定定的影響。b.時間戳戳:它是一種種基于快照比比較的變化數數據捕獲方式式
31、,在源表上上增加一個時時間戳字段,系系統中更新修修改表數據的的時候,同時時修改時間戳戳字段的值。當當進行數據抽抽取時,通過過比較系統時時間與時間戳戳字段的值來來決定抽取哪哪些數據。有有的數據庫的的時間戳支持持自動更新,即即表的其它字字段的數據發發生改變時,自自動更新時間間戳字段的值值。有的數據據庫不支持時時間戳的自動動更新,這就就要求業務系系統在更新業業務數據時,手手工更新時間間戳字段。同同觸發器方式式一樣,時間間戳方式的性性能也比較好好,數據抽取取相對清楚簡簡單,但對業業務系統也有有很大的傾入入性(加入額額外的時間戳戳字段),特特別是對不支支持時間戳的的自動更新的的數據庫,還還要求業務系系統
32、進行額外外的更新時間間戳操作。另另外,無法捕捕獲對時間戳戳以前數據的的delette和upddate操作作,在數據準準確性上受到到了一定的限限制。c.全表比比對:典型的的全表比對的的方式是采用用MD5校驗驗碼。ETLL工具事先為為要抽取的表表建立一個結結構類似的MMD5臨時表表,該臨時表表記錄源表主主鍵以及根據據所有字段的的數據計算出出來的MD55校驗碼。每每次進行數據據抽取時,對對源表和MDD5臨時表進進行MD5校校驗碼的比對對,從而決定定源表中的數數據是新增、修修改還是刪除除,同時更新新MD5校驗驗碼。MD55方式的優點點是對源系統統的傾入性較較小(僅需要要建立一個MMD5臨時表表),但缺
33、點點也是顯而易易見的,與觸觸發器和時間間戳方式中的的主動通知不不同,MD55方式是被動動的進行全表表數據的比對對,性能較差差。當表中沒沒有主鍵或唯唯一列且含有有重復記錄時時,MD5方方式的準確性性較差。d.日志對對比:通過分分析數據庫自自身的日志來來判斷變化的的數據。Orracle的的改變數據捕捕獲(CDCC,Channged DData CCapturre)技術是是這方面的代代表。CDCC 特性是在在Oraclle9i數據據庫中引入的的。CDC能能夠幫助你識識別從上次抽抽取之后發生生變化的數據據。利用CDDC,在對源源表進行innsert、uupdatee或 dellete等操操作的同時就就
34、可以提取數數據,并且變變化的數據被被保存在數據據庫的變化表表中。這樣就就可以捕獲發發生變化的數數據,然后利利用數據庫視視圖以一種可可控的方式提提供給目標系系統。CDCC體系結構基基于發布者/訂閱者模型型。發布者捕捕捉變化數據據并提供給訂訂閱者。訂閱閱者使用從發發布者那里獲獲得的變化數數據。通常,CCDC系統擁擁有一個發布布者和多個訂訂閱者。發布布者首先需要要識別捕獲變變化數據所需需的源表。然然后,它捕捉捉變化的數據據并將其保存存在特別創建建的變化表中中。它還使訂訂閱者能夠控控制對變化數數據的訪問。訂訂閱者需要清清楚自己感興興趣的是哪些些變化數據。一一個訂閱者可可能不會對發發布者發布的的所有數據
35、都都感興趣。訂訂閱者需要創創建一個訂閱閱者視圖來訪訪問經發布者者授權可以訪訪問的變化數數據。CDCC分為同步模模式和異步模模式,同步模模式實時的捕捕獲變化數據據并存儲到變變化表中,發發布者與訂閱閱都位于同一一數據庫中。異異步模式則是是基于Oraacle的流流復制技術。ETL處理理的數據源除除了關系數據據庫外,還可可能是文件,例例如txt文文件、exccel文件、xxml文件等等。對文件數數據的抽取一一般是進行全全量抽取,一一次抽取前可可保存文件的的時間戳或計計算文件的MMD5校驗碼碼,下次抽取取時進行比對對,如果相同同則可忽略本本次抽取。2.2 數數據轉換和加加工從數據源中中抽取的數據據不一定
36、完全全滿足目的庫庫的要求,例例如數據格式式的不一致、數數據輸入錯誤誤、數據不完完整等等,因因此有必要對對抽取出的數數據進行數據據轉換和加工工。數據的轉換換和加工可以以在ETL引引擎中進行,也也可以在數據據抽取過程中中利用關系數數據庫的特性性同時進行。(1)ETTL引擎中的的數據轉換和和加工ETL引擎擎中一般以組組件化的方式式實現數據轉轉換。常用的的數據轉換組組件有字段映映射、數據過過濾、數據清清洗、數據替替換、數據計計算、數據驗驗證、數據加加解密、數據據合并、數據據拆分等。這這些組件如同同一條流水線線上的一道道道工序,它們們是可插拔的的,且可以任任意組裝,各各組件之間通通過數據總線線共享數據。
37、有些ETLL工具還提供供了腳本支持持,使得用戶戶可以以一種種編程的方式式定制數據的的轉換和加工工行為。(2)在數數據庫中進行行數據加工關系數據庫庫本身已經提提供了強大的的SQL、函函數來支持數數據的加工,如如在SQL查查詢語句中添添加wherre條件進行行過濾,查詢詢中重命名字字段名與目的的表進行映射射,subsstr函數,ccase條件件判斷等等。下下面是一個SSQL查詢的的例子。select ID ass USERRID, ssubstrr(TITLLE, 1, 20) as TIITLE, case when REMARRK is null then eelse RREMARKK end
38、 as COONTENTT fromm TB_RREMARKK wherre ID 1000;相比在ETTL引擎中進進行數據轉換換和加工,直直接在SQLL語句中進行行轉換和加工工更加簡單清清晰,性能更更高。對于SSQL語句無無法處理的可可以交由ETTL引擎處理理。 2.3 數數據裝載將轉換和加加工后的數據據裝載到目的的庫中通常是是ETL過程程的最后步驟驟。裝載數據據的最佳方法法取決于所執執行操作的類類型以及需要要裝入多少數數據。當目的的庫是關系數數據庫時,一一般來說有兩兩種裝載方式式:(1)直接接SQL語句句進行inssert、uupdatee、deleete操作。(2)采用用批量裝載方方法,
39、如bccp、bullk、關系數數據庫特有的的批量裝載工工具或apii。大多數情況況下會使用第第一種方法,因因為它們進行行了日志記錄錄并且是可恢恢復的。但是是,批量裝載載操作易于使使用,并且在在裝入大量數數據時效率較較高。使用哪哪種數據裝載載方法取決于于業務系統的的需要。3.主流EETL工具ETL工具具從廠商來看看分為兩種,一種是數據據庫廠商自帶帶的ETL工工具,如Orracle warehhouse buildder、Orracle Data Integgratorr。另外一種種是第三方工工具提供商,如如Kettlle。開源世世界也有很多多的ETL工工具,功能各各異,強弱不不一。(1)Orra
40、cle Data Integgratorr(ODI)ODI前身身是Sunoopsis Activve Inttegrattion PPlatfoorm,在22006年底底被Oraccle收購,重重新命名為OOraclee Dataa Inteegratoor,主要定定位于在ETTL和數據集集成的場景里里使用。ODDI和Oraacle原來來的ETL工工具OWB相相比有一些顯顯著的特點,比比如和OWBB一樣是ELLT架構,但但是比OWBB支持更多的的異構的數據據源,ODII提供了caall weeb serrvice的的機制,并且且ODI的接接口也可以暴暴露為webb servvice,從從而可以
41、和SSOA環境進進行交互。OODI能夠檢檢測事件,一一個事件可以以觸發ODII的一個接口口流程,從而而完成近乎實實時的數據集集成。ODI的主主要功能特點點有:a.使用CCDC作為變變更數據捕獲獲的捕獲方式式。b.代理支支持并行處理理和負載均衡衡。c.完善的的權限控制、版版本管理功能能。d.支持數數據質量檢查查,清洗和回回收臟數據。e.支持與與JMS消息息中間件集成成。f.支持WWeb Seervicee。(2)SQQL Serrver IIntegrrationn Servvices(SSIS)SSIS是是SQL SServerr 20055的新成員,在在SQL SServerr的早期版本本中
42、,其實就就已經有了它它的雛形,那那時的名稱叫叫做數據轉換換服務(DTTS)。在SSQL Seerver 2005的的前兩個版本本SQL SServerr 7.0和和SQL SServerr 20000中,DTSS主要集中于于提取和加載載。通過使用用DTS,可可以從任何數數據源中提取取數據以及將將數據加載到到任何數據源源中。在SQQL Serrver 22005中,對對DTS進行行了重新設計計和改進形成成了SSISS。SSISS提供了數據據相關的控制制流、數據流流、日志、變變量、eveent、連接接管理等基礎礎設施。控制制流也稱為工工作流或者任任務流,它更更像工作流,在在工作流中每每個組件都是是
43、一個任務。這這些任務是按按預定義的順順序執行的。在在任務流中可可能有分支。當當前任務的執執行結果決定定沿哪條分支支前進。數據據流是新的概概念。數據流流也稱為流水水線,主要解解決數據轉換換的問題。數數據流由一組組預定義的轉轉換操作組成成。數據流的的起點通常是是數據源(源源表);數據據流的終點通通常是數據的的目的地(目目標表)。可可以將數據流流的執行認為為是一個流水水線的過程,在在該過程中,每每一行數據都都是裝配線中中需要處理的的零件,而每每一個轉換都都是裝配線中中的處理單元元。SSISS的體系結構構如圖3.11所示。圖3.1 SSIS體體系結構圖4.ETLL工具的選擇擇在數據集成成中該如何選選擇
44、ETL工工具呢?一般般來說需要考考慮以下幾個個方面:(1)對平平臺的支持程程度。(2)對數數據源的支持持程度。(3)抽取取和裝載的性性能是不是較較高,且對業業務系統的性性能影響大不不大,傾入性性高不高。(4)數據據轉換和加工工的功能強不不強。(5)是否否具有管理和和調度功能。(6)是否否具有良好的的集成性和開開放性。數據倉庫建模與與ETL的實踐踐技巧 HYPERLINK 開發者在線 BB 更新時間:2008-09-166作者: 來源:本文關鍵詞: HYPERLINK /files/list-0-0-144252-1-1.htm IT技術 HYPERLINK /files/list-0-0-13
45、6294-1-1.htm ETL HYPERLINK /files/list-0-0-69909-1-1.htm 數據倉庫 一、數據倉庫庫的架構 數據倉庫(Data Warehhouse DW)是為為了便于多維維分析和多角角度展現而將將數據按特定定的模式進行行存儲所建立立起來的關系系型數據庫,它它的數據基于于OLTP源源系統。數據據倉庫中的數數據是細節的的、集成的、面面向主題的,以以OLAP系系統的分析需需求為目的。數據倉庫的的架構模型包包括了星型架架構(圖二:pic2.bmp)與與雪花型架構構(圖三:ppic3.bbmp)兩種種模式。如圖圖所示,星型型架構的中間間為事實表,四四周為維度表表,
46、類似星星星;而相比較較而言,雪花花型架構的中中間為事實表表,兩邊的維維度表可以再再有其關聯子子表,從而表表達了清晰的的維度層次關關系。從OLAPP系統的分析析需求和ETTL的處理效效率兩方面來來考慮:星型型結構聚合快快,分析效率率高;而雪花花型結構明確確,便于與OOLTP系統統交互。因此此,在實際項項目中,我們們將綜合運用用星型架構與與雪花型架構構來設計數據據倉庫。那么,下面面我們就來看看一看,構建建企業級數據據倉庫的流程程。二、構建企企業級數據倉倉庫五步法(一)、確確定主題即確定數據據分析或前端端展現的主題題。例如:我我們希望分析析某年某月某某一地區的啤啤酒銷售情況況,這就是一一個主題。主主
47、題要體現出出某一方面的的各分析角度度(維度)和和統計數值型型數據(量度度)之間的關關系,確定主主題時要綜合合考慮。我們可以形形象的將一個個主題想象為為一顆星星:統計數值型型數據(量度度)存在于星星星中間的事事實表;分析析角度(維度度)是星星的的各個角;我我們將通過維維度的組合,來來考察量度。那那么,“某年年某月某一地地區的啤酒銷銷售情況”這這樣一個主題題,就要求我我們通過時間間和地區兩個個維度的組合合,來考察銷銷售情況這個個量度。從而而,不同的主主題來源于數數據倉庫中的的不同子集,我我們可以稱之之為數據集市市。數據集市市體現了數據據倉庫某一方方面的信息,多多個數據集市市構成了數據據倉庫。(二)
48、、確確定量度在確定了主主題以后,我我們將考慮要要分析的技術術指標,諸如如年銷售額之之類。它們一一般為數值型型數據。我們們或者將該數數據匯總,或或者將該數據據取次數、獨獨立次數或取取最大最小值值等,這樣的的數據稱為量量度。量度是要統統計的指標,必必須事先選擇擇恰當,基于于不同的量度度可以進行復復雜關鍵性能能指標(KPPI)等的設設計和計算。(三)、確確定事實數據據粒度在確定了量量度之后,我我們要考慮到到該量度的匯匯總情況和不不同維度下量量度的聚合情情況。考慮到到量度的聚合合程度不同,我我們將采用“最最小粒度原則則”,即將量量度的粒度設設置到最小。例如:假設設目前的數據據最小記錄到到秒,即數據據庫
49、中記錄了了每一秒的交交易額。那么么,如果我們們可以確認,在在將來的分析析需求中,時時間只需要精精確到天就可可以的話,我我們就可以在在ETL處理理過程中,按按天來匯總數數據,此時,數數據倉庫中量量度的粒度就就是“天”;反過來,如如果我們不能能確認將來的的分析需求在在時間上是否否需要精確到到秒,那么,我我們就需要遵遵循“最小粒粒度原則”,在在數據倉庫的的事實表中保保留每一秒的的數據,以便便日后對“秒秒”進行分析析。在采用“最最小粒度原則則”的同時,我我們不必擔心心海量數據所所帶來的匯總總分析效率問問題,因為在在后續建立多多維分析模型型(CUBEE)的時候,我我們會對數據據提前進行匯匯總,從而保保障
50、產生分析析結果的效率率。關于建立立多維分析模模型(CUBBE)的相關關問題,我們們將在下期欄欄目中予以闡闡述。(四)、確確定維度維度是指分分析的各個角角度。例如我我們希望按照照時間,或者者按照地區,或或者按照產品品進行分析,那那么這里的時時間、地區、產產品就是相應應的維度。基基于不同的維維度,我們可可以看到各量量度的匯總情情況,也可以以基于所有的的維度進行交交叉分析。這里我們首首先要確定維維度的層次(Hieraarchy)和級別(LLevel)(圖四:ppic4.bbmp)。如如圖所示,我我們在時間維維度上,按照照“年-季度度-月”形成成了一個層次次,其中“年年”、“季度度”、“月”成成為了這
51、個層層次的3個級級別;同理,當當我們建立產產品維度時,我我們可以將“產產品大類-產產品子類-產產品”劃為一一個層次,其其中包含“產產品大類”、“產產品子類”、“產產品”三個級級別。那么,我們們分析中所用用到的這些維維度,在數據據倉庫中的存存在形式是怎怎樣的呢? 我們可以將33個級別設置置成一張數據據表中的3個個字段,比如如時間維度;我們也可以以使用三張表表,分別保存存產品大類、產產品子類、產產品三部分數數據,比如產產品維度。(圖五:piic5.bmmp) 另外,值得得一提的是,我我們在建立維維度表時要充充分使用代理理鍵。代理鍵鍵是數值型的的ID號碼(例如圖六中中每張表的第第一個字段),它唯一標
52、標識了每一維維度成員。更更重要的是,在在聚合時,數數值型字段的的匹配和比較較,JOINN效率高,便便于聚合。同同時,代理鍵鍵對緩慢變化化維度有著重重要的意義,在在原數據主鍵鍵相同的情況況下,它起到到了對新數據據與歷史數據據的標識作用用。在此,我們們不妨談一談談維度表隨時時間變化的問問題,這是我我們經常會遇遇到的情況,我我們稱其為緩緩慢變化維度度。比如我們增增加了新的產產品,或者產產品的ID號號碼修改了,或或者產品增加加了一個新的的屬性,此時時,維度表就就會被修改或或者增加新的的記錄行。這這樣,我們在在ETL的過過程中,就要要考慮到緩慢慢變化維度的的處理。對于于緩慢變化維維度,有三種種情況:1、
53、緩慢變變化維度第一一種類型:歷史數據需需要修改。這這種情況下,我我們使用UPPDATE方方法來修改維維度表中的數數據。例如:產品的IDD號碼為1223,后來發發現ID號碼碼錯了,需要要改寫成4556,那么,我我們就在ETTL處理時,直直接修改維度度表中原來的的ID號碼為為456。2、緩慢變變化維度第二二種類型:歷史數據保保留,新增數數據也要保留留。這時,要要將原數據更更新,將新數數據插入,我我們使用UPPDATE / INSSERT。比比如:某一員員工20055年在A部門門,20066年時他調到到了B部門。那那么在統計22005年的的數據時就應應該將該員工工定位到A部部門;而在統統計20066
54、年數據時就就應該定位到到B部門,然然后再有新的的數據插入時時,將按照新新部門(B部部門)進行處處理,這樣我我們的做法是是將該維度成成員列表加入入標識列,將將歷史的數據據標識為“過過期”,將目目前的數據標標識為“當前前的”。另一一種方法是將將該維度打上上時間戳,即即將歷史數據據生效的時間間段作為它的的一個屬性,在在與原始表匹匹配生成事實實表時將按照照時間段進行行關聯,這種種方法的好處處是該維度成成員生效時間間明確。3、緩慢變變化維度第三三種類型:新增數據維維度成員改變變了屬性。例例如:某一維維度成員新加加入了一列,該該列在歷史數數據中不能基基于它瀏覽,而而在目前數據據和將來數據據中可以按照照它瀏
55、覽,那那么此時我們們需要改變維維度表屬性,即即加入新的字字段列。那么么,我們將使使用存儲過程程或程序生成成新的維度屬屬性,在后續續的數據中將將基于新的屬屬性進行查看看。(五)、創創建事實表在確定好事事實數據和維維度后,我們們將考慮加載載事實表。在公司的大大量數據堆積積如山時,我我們想看看里里面究竟是什什么,結果發發現里面是一一筆筆生產記記錄,一筆筆筆交易記錄 那么這些些記錄是我們們將要建立的的事實表的原原始數據,即即關于某一主主題的事實記記錄表。我們的做法法是將原始表表與維度表進進行關聯,生生成事實表(圖六:piic6.bmmp)。注意意在關聯時有有為空的數據據時(數據源源臟),需要要使用外連
56、接接,連接后我我們將各維度度的代理鍵取取出放于事實實表中,事實實表除了各維維度代理鍵外外,還有各量量度數據,這這將來自原始始表,事實表表中將存在維維度代理鍵和和各量度,而而不應該存在在描述性信息息,即符合“瘦瘦高原則”,即即要求事實表表數據條數盡盡量多(粒度度最小),而而描述性信息息盡量少。如果考慮到到擴展,可以以將事實表加加一唯一標識識列,以為了了以后擴展將將該事實作為為雪花型維度度,不過不需需要時一般建建議不用這樣樣做。事實數據表表是數據倉庫庫的核心,需需要精心維護護,在JOIIN后將得到到事實數據表表,一般記錄錄條數都比較較大,我們需需要為其設置置復合主鍵和和索引,以實實現數據的完完整性
57、和基于于數據倉庫的的查詢性能優優化。事實數數據表與維度度表一起放于于數據倉庫中中,如果前端端需要連接數數據倉庫進行行查詢,我們們還需要建立立一些相關的的中間匯總表表或物化視圖圖,以方便查查詢。三、什么是是ETL在數據倉庫庫的構建中,EETL貫穿于于項目始終,它它是整個數據據倉庫的生命命線,包括了了數據清洗、整整合、轉換、加加載等各個過過程。如果說說數據倉庫是是一座大廈,那那么ETL就就是大廈的根根基。ETLL抽取整合數數據的好壞直直接影響到最最終的結果展展現。所以EETL在整個個數據倉庫項項目中起著十十分關鍵的作作用,必須擺擺到十分重要要的位置。ETL是數數據抽取(EExtracct)、轉換換(Trannsformm)、加載(Load )的簡寫,它它是指:將OOLTP系統統中的數據抽抽取出來,并并將不同數據據源的數據進進行轉換和整整合,得出一一致性的數據據,然后加載載到數據倉庫庫中。例如:下圖就向我我們展示了EETL的數據據轉換效果。(圖七:piic7.bmmp)那么,在這這一轉換過程程中,我們就就完成了對數數據格式的更更正、對數據據字段的合并并、以及新增增指標的計算算三項操作。類類似地,我們們也可以根據據其他需求,完完善數據倉庫庫中的數據。簡而言之,通通過ETL,我我們可以基于于源系統中的的數據來生成成數據
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 文化建設在前臺文員工作中的應用計劃
- 氣焊焊接安全培訓
- 財務部工作計劃
- 員工績效評估的工作方向計劃
- 制定年度工作計劃的要點
- 學期教學工作報告總結計劃
- 康復護理新技術的應用與總結計劃
- DB12T 727-2017 藍莓設施栽培技術規范
- 水利水電行業智能水電站建設方案
- 可再生能源技術研發與應用方案
- ALC輕質隔墻施工方案
- 入職勞動合同書
- 幼兒園園長一日三巡記錄表實用文檔
- 公司財務盡職調查報告范本
- 水稻育種課件 第八講三系雜交水稻育種
- CTS-9006PLUS簡易操作介紹
- 2023年國家能源集團神東煤炭集團公司招聘筆試題庫及答案解析
- GB 25131-2010蒸氣壓縮循環冷水(熱泵)機組安全要求
- 狗盲腸切除術課件
- 高血壓性心臟病的超聲診斷要點課件整理
- 安全教育登記表(三 級)
評論
0/150
提交評論