ETL 概念簡介 ZT
系統(tǒng)
1800 0
?????? ETL即數(shù)據(jù)抽取(Extract)、轉(zhuǎn)換(
Transform)、裝載(Load)的過程。
它是構(gòu)建數(shù)據(jù)倉庫的重要環(huán)節(jié)。數(shù)據(jù)倉庫是面向主題的、集成的、
穩(wěn)定的且隨時間不斷變化的數(shù)據(jù)集合,
用以支持經(jīng)營管理中的決策制定過程。
數(shù)據(jù)倉庫系統(tǒng)中有可能存在著大量的噪聲數(shù)據(jù),引起的主要原因有:
濫用縮寫詞、慣用語、數(shù)據(jù)輸入錯誤、重復(fù)記錄、丟失值、
拼寫變化等。即便是一個設(shè)計和規(guī)劃良好的數(shù)據(jù)庫系統(tǒng),
如果其中存在著大量的噪聲數(shù)據(jù),
那么這個系統(tǒng)也是沒有任何意義的,因為“垃圾進,垃圾出”(
garbage in, garbage out),系統(tǒng)根本就不可能為決策分析系統(tǒng)提供任何支持。
為了清除噪聲數(shù)據(jù),必須在數(shù)據(jù)庫系統(tǒng)中進行數(shù)據(jù)清洗。
目前有不少數(shù)據(jù)清洗研究和ETL研究,
但是如何在ETL過程中進行有效的數(shù)據(jù)清洗并使這個過程可視化,
此方面研究不多。
本文主要從兩個方面闡述ETL和數(shù)據(jù)清洗的實現(xiàn)過程:
ETL的處理方式和數(shù)據(jù)清洗的實現(xiàn)方法。
(1)ETL的處理方式
本文所采用的ETL方法是數(shù)據(jù)庫段區(qū)域中的ETL處理方式,
它不使用外部引擎而是使用數(shù)據(jù)庫作為唯一的控制點。
由于源系統(tǒng)SQLserver2000是關(guān)系數(shù)據(jù)庫,
它的段表也是典型的關(guān)系型表。
成功地將外部未修改數(shù)據(jù)載入數(shù)據(jù)庫后,再在數(shù)據(jù)庫內(nèi)部進行轉(zhuǎn)換。
數(shù)據(jù)庫段區(qū)域中的ETL處理方式執(zhí)行的步驟是提取、裝載、轉(zhuǎn)換,
即通常所說的ELT。
這種方式的優(yōu)點是為抽取出的數(shù)據(jù)首先提供一個緩沖以便于進行復(fù)雜
的轉(zhuǎn)換,減輕了ETL進程的復(fù)雜度。
(2)ETL過程中實現(xiàn)數(shù)據(jù)清洗的實現(xiàn)方法
首先,在理解源數(shù)據(jù)的基礎(chǔ)上實現(xiàn)數(shù)據(jù)表屬性一致化。
為解決源數(shù)據(jù)的同義異名和同名異義的問題,
可通過元數(shù)據(jù)管理子系統(tǒng),在理解源數(shù)據(jù)的同時,
對不同表的屬性名根據(jù)其含義重新定義其在數(shù)據(jù)挖掘庫中的名字,
并以轉(zhuǎn)換規(guī)則的形式存放在元數(shù)據(jù)庫中,在數(shù)據(jù)集成的時候,
系統(tǒng)自動根據(jù)這些轉(zhuǎn)換規(guī)則將源數(shù)據(jù)中的字段名轉(zhuǎn)換成新定義的字段
名,從而實現(xiàn)數(shù)據(jù)挖掘庫中的同名同義。
其次,通過數(shù)據(jù)縮減,大幅度縮小數(shù)據(jù)量。由于源數(shù)據(jù)量很大,
處理起來非常耗時,所以可以優(yōu)先進行數(shù)據(jù)縮減,
以提高后續(xù)數(shù)據(jù)處理分析效率。
最后,通過預(yù)先設(shè)定數(shù)據(jù)處理的可視化功能節(jié)點,
達到可視化的進行數(shù)據(jù)清洗和數(shù)據(jù)轉(zhuǎn)換的目的。
針對縮減并集成后的數(shù)據(jù),
通過組合預(yù)處理子系統(tǒng)提供各種數(shù)據(jù)處理功能節(jié)點,
能夠以可視化的方式快速有效完成數(shù)據(jù)清洗和數(shù)據(jù)轉(zhuǎn)換過程。
?
-----------
數(shù)據(jù)集成:快速實現(xiàn)ETL
ETL的質(zhì)量問題具體表現(xiàn)為正確性、完整性、一致性、完備性、
有效性、時效性和可獲取性等幾個特性。
而影響質(zhì)量問題的原因有很多,
由系統(tǒng)集成和歷史數(shù)據(jù)造成的原因主要包括:
業(yè)務(wù)系統(tǒng)不同時期系統(tǒng)之間數(shù)據(jù)模型不一致;
業(yè)務(wù)系統(tǒng)不同時期業(yè)務(wù)過程有變化;舊系統(tǒng)模塊在運營、人事、
財務(wù)、辦公系統(tǒng)等相關(guān)信息的不一致;遺留系統(tǒng)和新業(yè)務(wù)、
管理系統(tǒng)數(shù)據(jù)集成不完備帶來的不一致性。
實現(xiàn)ETL,首先要實現(xiàn)ETL轉(zhuǎn)換的過程。
它可以集中地體現(xiàn)為以下幾個方面:
空值處理 可捕獲字段空值,進行加載或替換為其他含義數(shù)據(jù),
并可根據(jù)字段空值實現(xiàn)分流加載到不同目標庫。
規(guī)范化數(shù)據(jù)格式 可實現(xiàn)字段格式約束定義,對于數(shù)據(jù)源中時間、數(shù)值、字符等數(shù)據(jù),
可自定義加載格式。
拆分數(shù)據(jù) 依據(jù)業(yè)務(wù)需求對字段可進行分解。例,主叫號 861084613409,可進行區(qū)域碼和電話號碼分解。
驗證數(shù)據(jù)正確性 可利用Lookup及拆分功能進行數(shù)據(jù)驗證。例如,
主叫號861084613409,進行區(qū)域碼和電話號碼分解后,
可利用Lookup返回主叫網(wǎng)關(guān)或交換機記載的主叫地區(qū),
進行數(shù)據(jù)驗證。
數(shù)據(jù)替換 對于因業(yè)務(wù)因素,可實現(xiàn)無效數(shù)據(jù)、缺失數(shù)據(jù)的替換。
Lookup 查獲丟失數(shù)據(jù) Lookup實現(xiàn)子查詢,并返回用其他手段獲取的缺失字段,
保證字段完整性。
建立ETL過程的主外鍵約束 對無依賴性的非法數(shù)據(jù),可替換或?qū)С龅藉e誤數(shù)據(jù)文件中,
保證主鍵惟一記錄的加載。
為了能更好地實現(xiàn)ETL,
筆者建議用戶在實施ETL過程中應(yīng)注意以下幾點:
第一,如果條件允許,可利用數(shù)據(jù)中轉(zhuǎn)區(qū)對運營數(shù)據(jù)進行預(yù)處理,
保證集成與加載的高效性;
第二,如果ETL的過程是主動“拉取”,而不是從內(nèi)部“推送”,
其可控性將大為增強;
第三,ETL之前應(yīng)制定流程化的配置管理和標準協(xié)議;
第四,關(guān)鍵數(shù)據(jù)標準至關(guān)重要。目前,
ETL面臨的最大挑戰(zhàn)是當接收數(shù)據(jù)時其各源數(shù)據(jù)的異構(gòu)性和低質(zhì)量
。以電信為例,A系統(tǒng)按照統(tǒng)計代碼管理數(shù)據(jù),
B系統(tǒng)按照賬目數(shù)字管理,C系統(tǒng)按照語音ID管理。
當ETL需要對這三個系統(tǒng)進行集成以獲得對客戶的全面視角時,
這一過程需要復(fù)雜的匹配規(guī)則、名稱/地址正常化與標準化。
而ETL在處理過程中會定義一個關(guān)鍵數(shù)據(jù)標準,并在此基礎(chǔ)上,
制定相應(yīng)的數(shù)據(jù)接口標準。
ETL過程在很大程度上受企業(yè)對源數(shù)據(jù)的理解程度的影響,
也就是說從業(yè)務(wù)的角度看數(shù)據(jù)集成非常重要。
一個優(yōu)秀的ETL設(shè)計應(yīng)該具有如下功能:
管理簡單;采用元數(shù)據(jù)方法,集中進行管理;接口、數(shù)據(jù)格式、
傳輸有嚴格的規(guī)范;盡量不在外部數(shù)據(jù)源安裝軟件;
數(shù)據(jù)抽取系統(tǒng)流程自動化,并有自動調(diào)度功能;抽取的數(shù)據(jù)及時、
準確、完整;可以提供同各種數(shù)據(jù)系統(tǒng)的接口,系統(tǒng)適應(yīng)性強;
提供軟件框架系統(tǒng),系統(tǒng)功能改變時,
應(yīng)用程序很少改變便可適應(yīng)變化;可擴展性強。
數(shù)據(jù)模型:標準定義數(shù)據(jù)
合理的業(yè)務(wù)模型設(shè)計對ETL至關(guān)重要。數(shù)據(jù)倉庫是企業(yè)惟一、
真實、可靠的綜合數(shù)據(jù)平臺。
數(shù)據(jù)倉庫的設(shè)計建模一般都依照三范式、星型模型、雪花模型,
無論哪種設(shè)計思想,都應(yīng)該最大化地涵蓋關(guān)鍵業(yè)務(wù)數(shù)據(jù),
把運營環(huán)境中雜亂無序的數(shù)據(jù)結(jié)構(gòu)統(tǒng)一成為合理的、關(guān)聯(lián)的、
分析型的新結(jié)構(gòu),而ETL則會依照模型的定義去提取數(shù)據(jù)源,
進行轉(zhuǎn)換、清洗,并最終加載到目標數(shù)據(jù)倉庫中。
模型的重要之處在于對數(shù)據(jù)做標準化定義,實現(xiàn)統(tǒng)一的編碼、
統(tǒng)一的分類和組織。標準化定義的內(nèi)容包括:標準代碼統(tǒng)一、
業(yè)務(wù)術(shù)語統(tǒng)一。ETL依照模型進行初始加載、增量加載、
緩慢增長維、慢速變化維、事實表加載等數(shù)據(jù)集成,
并根據(jù)業(yè)務(wù)需求制定相應(yīng)的加載策略、刷新策略、匯總策略、
維護策略。
元數(shù)據(jù):拓展新型應(yīng)用
對業(yè)務(wù)數(shù)據(jù)本身及其運行環(huán)境的描述與定義的數(shù)據(jù),稱之為元數(shù)據(jù)(
metadata)。元數(shù)據(jù)是描述數(shù)據(jù)的數(shù)據(jù)。從某種意義上說,
業(yè)務(wù)數(shù)據(jù)主要用于支持業(yè)務(wù)系統(tǒng)應(yīng)用的數(shù)據(jù),
而元數(shù)據(jù)則是企業(yè)信息門戶、客戶關(guān)系管理、數(shù)據(jù)倉庫、
決策支持和B2B等新型應(yīng)用所不可或缺的內(nèi)容。
元數(shù)據(jù)的典型表現(xiàn)為對象的描述,即對數(shù)據(jù)庫、表、列、列屬性(
類型、格式、約束等)以及主鍵/外部鍵關(guān)聯(lián)等等的描述。
特別是現(xiàn)行應(yīng)用的異構(gòu)性與分布性越來越普遍的情況下,
統(tǒng)一的元數(shù)據(jù)就愈發(fā)重要了。“信息孤島”
曾經(jīng)是很多企業(yè)對其應(yīng)用現(xiàn)狀的一種抱怨和概括,
而合理的元數(shù)據(jù)則會有效地描繪出信息的關(guān)聯(lián)性。
而元數(shù)據(jù)對于ETL的集中表現(xiàn)為:
定義數(shù)據(jù)源的位置及數(shù)據(jù)源的屬性、
確定從源數(shù)據(jù)到目標數(shù)據(jù)的對應(yīng)規(guī)則、確定相關(guān)的業(yè)務(wù)邏輯、
在數(shù)據(jù)實際加載前的其他必要的準備工作,等等,
它一般貫穿整個數(shù)據(jù)倉庫項目,
而ETL的所有過程必須最大化地參照元數(shù)據(jù),
這樣才能快速實現(xiàn)ETL。
ETL體系結(jié)構(gòu)
下圖為ETL體系結(jié)構(gòu),
它體現(xiàn)了主流ETL產(chǎn)品框架的主要組成部分。
ETL是指從源系統(tǒng)中提取數(shù)據(jù),轉(zhuǎn)換數(shù)據(jù)為一個標準的格式,
并加載數(shù)據(jù)到目標數(shù)據(jù)存儲區(qū),通常是數(shù)據(jù)倉庫。
ETL體系結(jié)構(gòu)圖
Design manager 提供一個圖形化的映射環(huán)境,讓開發(fā)者定義從源到目標的映射關(guān)系、
轉(zhuǎn)換、處理流程。
設(shè)計過程的各對象的邏輯定義存儲在一個元數(shù)據(jù)資料庫中。
Meta data management 提供一個關(guān)于ETL設(shè)計和運行處理等相關(guān)定義、
管理信息的元數(shù)據(jù)資料庫。
ETL引擎在運行時和其它應(yīng)用都可參考此資料庫中的元數(shù)據(jù)。
Extract 通過接口提取源數(shù)據(jù),例如ODBC、
專用數(shù)據(jù)庫接口和平面文件提取器,
并參照元數(shù)據(jù)來決定數(shù)據(jù)的提取及其提取方式。
Transform 開發(fā)者將提取的數(shù)據(jù),按照業(yè)務(wù)需要轉(zhuǎn)換為目標數(shù)據(jù)結(jié)構(gòu),
并實現(xiàn)匯總。
Load 加載經(jīng)轉(zhuǎn)換和匯總的數(shù)據(jù)到目標數(shù)據(jù)倉庫中,
可實現(xiàn)SQL或批量加載。
Transport services 利用網(wǎng)絡(luò)協(xié)議或文件協(xié)議,在源和目標系統(tǒng)之間移動數(shù)據(jù),
利用內(nèi)存在ETL處理的各組件中移動數(shù)據(jù)。
Administration and operation 可讓管理員基于事件和時間進行調(diào)度、運行、監(jiān)測ETL作業(yè)、
管理錯誤信息、從失敗中恢復(fù)和調(diào)節(jié)從源系統(tǒng)的輸出。
ETL 概念簡介 ZT
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元