趙子健+褚偉波



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