趙子健+褚偉波
摘 要 商業(yè)智能(BI)分析對(duì)于大型裝備制造企業(yè)非常重要。BI通常要有質(zhì)量較高的數(shù)據(jù)倉庫為支撐,而ETL(數(shù)據(jù)抽取、轉(zhuǎn)換、裝載)是構(gòu)建整個(gè)數(shù)據(jù)倉庫的核心和靈魂。本文通過對(duì)ETL技術(shù)在大型裝備制造企業(yè)的應(yīng)用研究,詳細(xì)闡述了ETL的應(yīng)用過程,并以實(shí)例說明了其帶來的應(yīng)用價(jià)值。
【關(guān)鍵詞】數(shù)據(jù)倉庫 ETL 應(yīng)用過程 價(jià)值
1 ETL介紹
1.1 ETL相關(guān)概念
ETL,是英文 Extract-Transform-Load 的縮寫,用來描述將數(shù)據(jù)從來源端經(jīng)過抽?。╡xtract)、轉(zhuǎn)換(transform)、加載(load)至目的端的過程。ETL是構(gòu)建數(shù)據(jù)倉庫的重要一環(huán),用戶從數(shù)據(jù)源抽取出所需的數(shù)據(jù),經(jīng)過數(shù)據(jù)清洗和加工,最終按照預(yù)先定義好的模型,將數(shù)據(jù)加載到目的數(shù)據(jù)倉庫中去,做各種商業(yè)智能分析或者用于主數(shù)據(jù)管理體系。具體來講:
1.1.1 數(shù)據(jù)抽取
將數(shù)據(jù)從各種原始的業(yè)務(wù)系統(tǒng)或者非結(jié)構(gòu)化文檔中讀取出來。
1.1.2 數(shù)據(jù)轉(zhuǎn)換
按照預(yù)先設(shè)計(jì)好的規(guī)則將抽取得數(shù)據(jù)進(jìn)行轉(zhuǎn)換、清洗、加工,統(tǒng)一抽取的數(shù)據(jù)格式。
1.1.3 數(shù)據(jù)裝載
將轉(zhuǎn)換完的數(shù)據(jù)按制定的規(guī)則增量或全部導(dǎo)入到目的數(shù)據(jù)倉庫。
1.2 ETL的重要性
在互聯(lián)網(wǎng)和大數(shù)據(jù)飛速發(fā)展的當(dāng)今時(shí)代,越來越多的企業(yè)已經(jīng)認(rèn)識(shí)到了數(shù)據(jù)將是企業(yè)的核心資產(chǎn),能夠?yàn)槠髽I(yè)創(chuàng)造新的價(jià)值。這些能夠?yàn)槠髽I(yè)帶來價(jià)值的數(shù)據(jù)都需要經(jīng)過從各種原始的數(shù)據(jù)采集而后加工分析得出,因此前提是要構(gòu)建企業(yè)的數(shù)據(jù)倉庫,而在構(gòu)建數(shù)據(jù)倉庫過程中,數(shù)據(jù)的抽取、轉(zhuǎn)換、裝載(ETL)是最重要也是最花費(fèi)時(shí)間和人力的,往往占整個(gè)項(xiàng)目的60%以上的工作量,而ETL的成敗將影響整個(gè)數(shù)據(jù)倉庫構(gòu)建的成敗及數(shù)據(jù)質(zhì)量,因此ETL的關(guān)鍵作用也決定了其在數(shù)據(jù)倉庫構(gòu)建過程中的核心地位。
2 ETL的應(yīng)用過程
ETL的應(yīng)用過程按照大的步驟分為數(shù)據(jù)的抽取、轉(zhuǎn)換、加載三個(gè)過程,但實(shí)際在應(yīng)用過程中往往要經(jīng)歷數(shù)據(jù)源的識(shí)別、數(shù)據(jù)模型建立、數(shù)據(jù)清洗和加工、流程設(shè)定、運(yùn)行跟蹤五個(gè)過程,見圖1。下面將結(jié)合Informatic 的ETL工具 PowerCenter 進(jìn)行詳細(xì)闡述整個(gè)應(yīng)用過程。
2.1 數(shù)據(jù)源識(shí)別
ETL首先要進(jìn)行數(shù)據(jù)源的識(shí)別,數(shù)據(jù)的來源有多種多樣,可以是數(shù)據(jù)庫、文件或消息等,目前在大型裝備制造企業(yè)中用得較多的是數(shù)據(jù)庫。數(shù)據(jù)庫的數(shù)據(jù)源中存儲(chǔ)了所有建立數(shù)據(jù)庫連接的信息,就像通過指定文件名稱可以在文件系統(tǒng)中找到文件一樣,通過提供正確的數(shù)據(jù)源名稱,就可以找到相應(yīng)的數(shù)據(jù)庫連接,見圖2。
2.2 數(shù)據(jù)模型建立
定義了數(shù)據(jù)源和目標(biāo)數(shù)據(jù)庫后,數(shù)據(jù)模型的建立過程在PowerCenter中是映射的建立過程,描述源和目標(biāo)之間數(shù)據(jù)流的映射關(guān)系。映射界面是基于組件的,需要向映射中添加轉(zhuǎn)換,用以描述在載入目標(biāo)之前如何提取和轉(zhuǎn)換數(shù)據(jù),見圖3。
2.3 數(shù)據(jù)清洗和加工
根據(jù)業(yè)務(wù)邏輯篩選出需要的源數(shù)據(jù)并對(duì)這些數(shù)據(jù)進(jìn)行處理,形成符合目標(biāo)數(shù)據(jù)標(biāo)準(zhǔn)的數(shù)據(jù),PowerCenter提供了一系列的功能函數(shù)供用戶構(gòu)建相關(guān)的表達(dá)式及字段組合及拼湊字符串等各類數(shù)據(jù)加工手段,幫助完成數(shù)據(jù)清洗和加工工作,見圖4。
2.4 流程設(shè)定
從源數(shù)據(jù)轉(zhuǎn)換成需要的目標(biāo)數(shù)據(jù)是一個(gè)復(fù)雜的過程,往往需要經(jīng)過設(shè)置多個(gè)數(shù)據(jù)清洗和加工邏輯,同時(shí)將這些不同的邏輯按照一定的順序執(zhí)行,即形成數(shù)據(jù)轉(zhuǎn)換的流程,每個(gè)流程都是一個(gè)指令集,指示如何執(zhí)行任務(wù),可以在一個(gè)流程中加入多個(gè)任務(wù),以同時(shí)或依次運(yùn)行任務(wù)。PowerCenter可以利用工作流中配置的指令運(yùn)行任務(wù),見圖5。
2.5 運(yùn)行跟蹤
流程設(shè)置完畢后需要運(yùn)行,需要使用 Workflow Monitor 監(jiān)控流程的執(zhí)行情況。Workflow Monitor 是一個(gè)監(jiān)控流程和任務(wù)的工具??梢允褂酶侍貓D視圖或任務(wù)視圖查看流程或任務(wù)的詳細(xì)信息。在 Workflow Monitor 中可以啟動(dòng)、停止、中止或繼續(xù)流程,見圖6。
通過上述的5個(gè)步驟,完整的實(shí)現(xiàn)了從數(shù)據(jù)源的識(shí)別到最終轉(zhuǎn)換成目標(biāo)數(shù)據(jù)的過程。
3 使用ETL帶來的價(jià)值
ETL的成功應(yīng)用將為企業(yè)帶來巨大的價(jià)值,從作者供職的大型裝備制造企業(yè)中主要體現(xiàn)在兩個(gè)方面:
3.1 內(nèi)部業(yè)務(wù)系統(tǒng)的數(shù)據(jù)集成
由于各種原因,企業(yè)的生產(chǎn)物資系統(tǒng)數(shù)據(jù)庫采用分布式部署,每天需要將分布在全國(guó)各地20多個(gè)數(shù)據(jù)庫的數(shù)據(jù)約2200多萬條物資采購和使用數(shù)據(jù)集中匯總至總部進(jìn)行整理分析,應(yīng)用ETL技術(shù)后,數(shù)據(jù)采集和清洗的效率、準(zhǔn)確性和系統(tǒng)性能大幅提高,同時(shí)簡(jiǎn)化了整個(gè)數(shù)據(jù)匯總分析的過程。
3.2 大型裝備工況數(shù)據(jù)的采集分析
企業(yè)生產(chǎn)的大型港口機(jī)械裝備遍布全球碼頭,每臺(tái)設(shè)備上都裝有起重機(jī)管理系統(tǒng),這些設(shè)備的故障、旁路、工作循環(huán)等各類工況數(shù)據(jù)都會(huì)存入起重機(jī)管理系統(tǒng),由于用戶的要求不同,系統(tǒng)使用的數(shù)據(jù)庫各不一樣,數(shù)據(jù)項(xiàng)也會(huì)略有差異。企業(yè)需要收集這些設(shè)備的工況數(shù)據(jù)到內(nèi)部的云平臺(tái)上匯總分析并為用戶提供主動(dòng)性服務(wù),而ETL技術(shù)在設(shè)備工況數(shù)據(jù)的采集、清洗加工和匯總分析等應(yīng)用上發(fā)揮了巨大的作用。
4 應(yīng)用ETL的注意事項(xiàng)
(1)在選用ETL工具時(shí)要注意必須擁有以下幾個(gè)功能:處理海量數(shù)據(jù)、能夠?qū)?shù)據(jù)以最快地速度從一個(gè)地方轉(zhuǎn)移到另一個(gè)地方;實(shí)時(shí)監(jiān)測(cè)交易的變更,并對(duì)數(shù)據(jù)進(jìn)行同步;能夠處理多種數(shù)據(jù)類型,包括文本、非結(jié)構(gòu)化數(shù)據(jù)等;利用多處理進(jìn)行分布式操作以及并行處理。
(2)進(jìn)行ETL之前應(yīng)制定統(tǒng)一標(biāo)準(zhǔn)協(xié)議,同時(shí)擁有數(shù)據(jù)模板是非常重要的,它們是標(biāo)準(zhǔn)化的接口,確保你的數(shù)據(jù)轉(zhuǎn)換按照統(tǒng)一的標(biāo)準(zhǔn)協(xié)議和模板進(jìn)行。
(3)注意流程的合理調(diào)度運(yùn)行時(shí)間,由于目標(biāo)數(shù)據(jù)的轉(zhuǎn)換通常需要經(jīng)過多個(gè)流程從多個(gè)數(shù)據(jù)源獲取,在進(jìn)行流程運(yùn)行的時(shí)間調(diào)度時(shí)要合理安排流程執(zhí)行的時(shí)間和順序,避免大量的并發(fā)執(zhí)行,最大限度的優(yōu)化和提升整個(gè)ETL的效率。
(4)要注意定時(shí)跟蹤ETL流程的運(yùn)行日志,防止各類錯(cuò)誤引起的運(yùn)行錯(cuò)誤,并根據(jù)日志對(duì)ETL進(jìn)行優(yōu)化。重點(diǎn)可關(guān)注錯(cuò)誤日志和執(zhí)行過程日志,錯(cuò)誤日志記錄著每次出錯(cuò)的時(shí)間,出錯(cuò)的模塊以及出錯(cuò)信息等,可用來排錯(cuò)。執(zhí)行日志是ETL執(zhí)行過程中每執(zhí)行一步的記錄,記錄每次運(yùn)行每一步驟的起始時(shí)間,影響了多少行數(shù)據(jù),可以用來做ETL的效率優(yōu)化。
5 結(jié)束語
ETL是構(gòu)建整個(gè)數(shù)據(jù)倉庫的核心和靈魂,對(duì)于大型裝備制造企業(yè),如果能夠規(guī)劃和設(shè)計(jì)好ETL的使用,同時(shí)結(jié)合云計(jì)算及大數(shù)據(jù)的分析和處理平臺(tái),不管是對(duì)于企業(yè)內(nèi)部業(yè)務(wù)系統(tǒng)的有效集成,為管理層提供高效的商業(yè)智能分析,或是結(jié)合大型裝備產(chǎn)品進(jìn)行工況數(shù)據(jù)的采集分析,為使用者提供更多的增值服務(wù),都將起到至關(guān)重要的作用。
參考文獻(xiàn)
[1]Informatica PowerCenter 使用入門(版本 7.1.1).美國(guó):Informatica 公司,2004.
[2]張蓓,趙莉.淺談數(shù)據(jù)倉庫中ETL的重要性[J].科技信息:科學(xué)·教研,2008.
[3]Derick Jose,孫瑞選擇ETL工具時(shí)的三個(gè)注意事項(xiàng).TechTarget中國(guó) 2012.
[4]張寧,賈自艷,史忠植.數(shù)據(jù)倉庫中ETL技術(shù)的研究[J].計(jì)算機(jī)工程與應(yīng)用,2002.