葉敏

【摘要】ETL是“Extract”,“Transform”和“Load”3個單詞的首字母縮寫,是數(shù)據(jù)抽取、轉(zhuǎn)換、裝載的意思,一般將ETL簡寫為數(shù)據(jù)抽取。ETL是構(gòu)建數(shù)據(jù)倉庫和數(shù)據(jù)挖掘的很重要的一部分。本文通過介紹ETL技術(shù)架構(gòu),分析常見ETL工具,討論了ETL技術(shù)對商業(yè)領(lǐng)域的意義。ETL技術(shù)很大程度上提高了數(shù)據(jù)輸入的質(zhì)量,為大數(shù)據(jù)分析和數(shù)據(jù)挖掘提供巨大的支持。
【關(guān)鍵詞】ETL 數(shù)據(jù)抽取 數(shù)據(jù)倉庫
數(shù)據(jù)信息是現(xiàn)代企業(yè)的重要戰(zhàn)略資源,是企業(yè)進(jìn)行科學(xué)決策和分析的基礎(chǔ)。如今,大多數(shù)企業(yè)用大量的時間和資金來構(gòu)建事務(wù)處理OLTP的業(yè)務(wù)系統(tǒng)和辦公自動化OA系統(tǒng),用來記錄事務(wù)處理的各種相關(guān)數(shù)據(jù),有太多的潛在價值數(shù)據(jù)沒有得到合理利用。企業(yè)如何通過運用各種信息技術(shù)手段,把數(shù)據(jù)轉(zhuǎn)換為有用的信息和作為決策依據(jù),已經(jīng)成了提高其核心競爭力的主要瓶頸。ETL則是主要的一個技術(shù)手段,為企業(yè)進(jìn)行大數(shù)據(jù)分析和數(shù)據(jù)挖掘提供重要的支持。
一、ETL體系架構(gòu)
下圖為ETL體系結(jié)構(gòu),它是主流ETL產(chǎn)品框架的主要組成部分。ETL是指從源系統(tǒng)中提取數(shù)據(jù),轉(zhuǎn)換數(shù)據(jù)為一個標(biāo)準(zhǔn)的格式,并加載數(shù)據(jù)到目標(biāo)數(shù)據(jù)存儲區(qū),通常是數(shù)據(jù)倉庫。
(一)數(shù)據(jù)抽取
數(shù)據(jù)抽取就是從外部不同的數(shù)據(jù)源中抽取數(shù)據(jù),需要確認(rèn)數(shù)據(jù)的來源和以及將到的數(shù)據(jù)抽取技術(shù)。數(shù)據(jù)抽取分為數(shù)據(jù)增量抽取和全量抽取。增量抽取一般有4種抽取模式:①時間戳方式:通過比較需要抽取的數(shù)據(jù)庫系統(tǒng)時間戳與抽取源表的時間戳字段的值來決定抽取哪些數(shù)據(jù),這種方式需要源表中存在一個或多個時間戳字段,并且其值隨著新紀(jì)錄的增加而不斷增加,執(zhí)行數(shù)據(jù)抽取時,程序通過時間戳對數(shù)據(jù)進(jìn)行過濾,抽取設(shè)定的時間戳的數(shù)據(jù);②全表對比方式:每次從源表中讀取所有記錄,然后逐條比較源表和目標(biāo)表的記錄,將新增和修改的記錄過濾讀取出來,采用MD5校驗碼。③觸發(fā)器方式:根據(jù)抽取要求,要建立插入、修改和刪除3個觸發(fā)器,該方法需要用戶在源數(shù)據(jù)庫中有創(chuàng)建觸發(fā)器和臨時表的權(quán)限,觸發(fā)器可以捕獲新新增的數(shù)據(jù)到臨時表中,在進(jìn)行抽取時,程序會自動從臨時表中讀取新增的數(shù)據(jù)。④志表方式:該方法是在數(shù)據(jù)庫中創(chuàng)建業(yè)務(wù)日志表,當(dāng)系統(tǒng)監(jiān)控的業(yè)務(wù)數(shù)據(jù)發(fā)生特定的變化時,日志表內(nèi)容會記錄更新。日志表的維護(hù)需要編寫特定的程序代碼來完成。
(二)數(shù)據(jù)轉(zhuǎn)換
數(shù)據(jù)轉(zhuǎn)換是ETL過程中最為繁瑣的部分,主要任務(wù)包括數(shù)據(jù)類型轉(zhuǎn)換、數(shù)據(jù)格式轉(zhuǎn)換等,可以在數(shù)據(jù)抽取過程中利用關(guān)系數(shù)據(jù)庫的特性進(jìn)行轉(zhuǎn)換和在ETL引擎工具中完成。
一般來說,從數(shù)據(jù)源中抽取的數(shù)據(jù)是不符合入數(shù)據(jù)倉的要求,有必要對數(shù)據(jù)進(jìn)行轉(zhuǎn)換、清洗、拆分、匯總等處理,解決數(shù)據(jù)格式的不一致、數(shù)據(jù)輸入錯誤、數(shù)據(jù)不完整等問題。進(jìn)行數(shù)據(jù)轉(zhuǎn)換的原因有以下幾點:①數(shù)據(jù)不完整性:在數(shù)據(jù)庫中有信息缺失,從而導(dǎo)致數(shù)據(jù)的不完整性。解決的辦法是找到錯誤信息進(jìn)行補全②數(shù)據(jù)格式錯誤:指的是缺失數(shù)據(jù)值或數(shù)據(jù)超出數(shù)據(jù)范圍的問題,解決辦法是定義域完整性進(jìn)行格式約束③數(shù)據(jù)不一致性:表現(xiàn)為主表與子表的數(shù)據(jù)不能匹配,一般原因是缺少外鍵的定義,需要找由業(yè)務(wù)部門對數(shù)據(jù)進(jìn)行核對,修正后再進(jìn)行抽取。
(三)數(shù)據(jù)加載
數(shù)據(jù)加載一般是ETL的最后一步。是值將抽取和轉(zhuǎn)換的數(shù)據(jù)從數(shù)據(jù)臨時表或者文件中導(dǎo)入到指定的數(shù)據(jù)倉庫,裝載數(shù)據(jù)的最佳方法一般是取決于所執(zhí)行操作的類型以及需要裝入多少數(shù)據(jù)。有兩種裝載方式:①一種是直接SQL語句進(jìn)行操作.②采用關(guān)系數(shù)據(jù)庫特有的裝載工具批量進(jìn)行裝載,甚至可以采用多程并行處理方式加載數(shù)據(jù),提高程序運行效率。
二、ETL常見工具
當(dāng)選擇ETL產(chǎn)品時,最關(guān)鍵的因素是考慮這個產(chǎn)品在你的指定的環(huán)境和配置下,這個產(chǎn)品的執(zhí)行性能。當(dāng)你選擇一個ETL工具時,需要考慮選中工具的因素有:(1)能夠支持分布的數(shù)據(jù)整合需要并且要允許你借助于手頭的資源和技術(shù)(2)數(shù)據(jù)整合工具的使用不應(yīng)該千擾你現(xiàn)在的環(huán)境,而是應(yīng)該充分利用由RDBMS和SQL提供的能力和功能。
通過ETL工具,實現(xiàn)ETL數(shù)據(jù)抽取,主要是原因是維護(hù)容易。目前市場上主流的ETL工具可以分為兩大類:一類是專業(yè)ETL廠商的產(chǎn)品,這類產(chǎn)品一般都具備較完善的體系結(jié)構(gòu)和久經(jīng)考驗的產(chǎn)品,產(chǎn)品的功能之復(fù)雜和詳盡,但是能令初次接觸的人膛目,并且高昂的價格也會使一般用戶望而卻步;另一類是整體數(shù)據(jù)倉庫方案供應(yīng)商,他們在提供數(shù)據(jù)倉庫存儲、設(shè)計、展現(xiàn)工具的同時也提供相應(yīng)的ETL工具,這類產(chǎn)品一般對自己廠商的相關(guān)產(chǎn)品有很好的支持并能發(fā)揮出其最大效率,但結(jié)構(gòu)相對封閉,對其他廠商產(chǎn)品的支持也很有限。專業(yè)ETL廠商和產(chǎn)品包括ASCENTIAL公司的DATASTAGEXE,SAGENT公司SOLUTION和INFORMATICA公司的產(chǎn)品,整體方案提供商和產(chǎn)品則包括ORACLE公司的WAREHOUSEBUILDER和IBM公司的WAREHOUSE MANAGER。
三、ETL技術(shù)在商業(yè)領(lǐng)域的作用
在商業(yè)領(lǐng)域中,商業(yè)智能(Business Intelligence)的關(guān)鍵是從許多的來自不同的企業(yè)運作系統(tǒng)的數(shù)據(jù),經(jīng)過提取和清理獲得有用并且準(zhǔn)確的數(shù)據(jù),經(jīng)ETL過程,合并到企業(yè)級的數(shù)據(jù)倉庫里,從而得到企業(yè)數(shù)據(jù)的一個全局視圖,為管理者決策過程提供支持。ETL在整個BI過程中起到承上啟下的作用,ETL的成敗將直接影響整個BI項目的成功與否。ETL技術(shù)可以使得商業(yè)分析速度加快,使公司的業(yè)務(wù)獲得決策更多的決策時間。隨著ETL技術(shù)成本下降和計算能力的增長,分析技術(shù)開始從內(nèi)存與存儲價格的下降中獲益。同時,隨著開源軟件挖掘出更有價值的數(shù)據(jù),從海量的數(shù)據(jù)中發(fā)現(xiàn)之前用戶的真正搜索需要的數(shù)據(jù),支撐決策。
四、總結(jié)
本文介紹了ETL的體系結(jié)構(gòu)以及它的幾個處理過程,并詳細(xì)分析了ETL技術(shù)在數(shù)據(jù)抽取、數(shù)據(jù)轉(zhuǎn)換和數(shù)據(jù)加載等方面的具體實現(xiàn)過程。通過介紹了ETL的常用工具以及ETL技術(shù)對商業(yè)智能的作用。ETL在整個BI過程中起到承上啟下的作用,這部分工作質(zhì)量的好壞直接決定了數(shù)據(jù)的輸入資料,把握好ETL過程中的每一個步驟,才能為接下來的數(shù)據(jù)分析打下堅實的基礎(chǔ)。