ETL,用來描述將數據從來源端經過抽取、轉換、加載至目的端的過程。ETL是BI項目中重要的一個環節,用戶從數據源抽取出所需的數據,經過數據清洗,最終按照預先定義好的數據模型,將數據加載到數據倉庫中去,為后續的數據分析提供數據支撐。
舉個例子來說就是,某電商公司分析人員根據訂單數據進行用戶特征分析。這時需要基于訂單數據,計算一些相應的分析指標,如每個用戶的消費頻次,銷售額最大的單品,用戶復購時間間隔等。這些指標都要通過計算轉換得到,這時候ETL的作用就顯現出來了。
所以ETL在商務智能中能夠起到的作用是巨大的,那么ETL究竟是什么?應該怎么用?億信ABI今天就和大家聊聊這些。
一、什么是ETL?
ETL,Extract-Transform-Load的縮寫,是將業務系統的數據經過抽取、清洗轉換之后加載到數據倉庫的過程。ETL是數據集成的第一步,也是構建數據倉庫最重要的步驟,目的是將企業中的分散、零亂、標準不統一的數據整合到一起,為企業的決策提供分析依據。ETL一詞較常用在數據倉庫,但其對象并不限于數據倉庫。
ETL 是企業數據應用過程中的一個數據流(pipeline)的控制技術,把原始的數據經過一定的處理,放入數據倉庫里。可以想象一下一條大河的源頭被污染,下游就無法作為飲用水源,也無法用于灌溉。如果想用于灌溉,就要將河上游工廠的污水進行處理之后再排入,如果想用于飲用,那就要用水淡化或者滲透過濾技術,對水質進行改造。同樣,原始數據并不是完美的、潔凈的,質量參差不齊的數據對于數據最終的使用會產生很大的影響。
2、ETL的流程是什么?
ETL如同它代表的三個英文單詞,涉及三個獨立的過程:抽取、轉換和加載。工作流程往往作為一個正在進行的過程來實現,各模塊可靈活進行組合,形成ETL處理流程。
1.數據抽取
數據抽取指的是從不同的網絡、不同的操作平臺、不同的數據庫和數據格式、不同的應用中抽取數據的過程。目標源可能包括ERP、CRM和其他企業系統,以及來自第三方源的數據。
不同的系統傾向于使用不同的數據格式,在這個過程中,首先需要結合業務需求確定抽取的字段,形成一張公共需求表頭,并且數據庫字段也應與這些需求字段形成一一映射關系。這樣通過數據抽取所得到的數據都具有統一、規整的字段內容,為后續的數據轉換和加載提供基礎,具體步驟如下:
①確定數據源,需要確定從哪些源系統進行數據抽取
②定義數據接口,對每個源文件及系統的每個字段進行詳細說明
③確定數據抽取的方法:是主動抽取還是由源系統推送?是增量抽取還是全量抽取?是按照每日抽取還是按照每月抽取?
2.數據轉換
數據轉換實際上還包含了數據清洗的工作,需要根據業務規則對異常數據進行清洗,主要將不完整數據、錯誤數據、重復數據進行處理,保證后續分析結果的準確性。
數據轉換就是處理抽取上來的數據中存在的不一致的過程。數據轉換一般包括兩類:第一類:數據名稱及格式的統一,即數據粒度轉換、商務規則計算以及統一的命名、數據格式、計量單位等;第二類:數據倉庫中存在源數據庫中可能不存在的數據,因此需要進行字段的組合、分割或計算。主要涉及以下幾個方面:
①空值處理:可捕獲字段空值,進行加載或替換為其他含義數據,或數據分流問題庫
②數據標準:統一元數據、統一標準字段、統一字段類型定義
③數據拆分:依據業務需求做數據拆分,如身份證號,拆分區劃、出生日期、性別等
④數據驗證:時間規則、業務規則、自定義規則
⑤數據替換:對于因業務因素,可實現無效數據、缺失數據的替換
⑥數據關聯:關聯其他數據或數學,保障數據完整性
3.數據加載
數據加載的主要任務是將經過清洗后的干凈的數據集按照物理數據模型定義的表結構裝入目標數據倉庫的數據表中,如果是全量方式則采用LOAD方式,如果是增量則根據業務規則MERGE進數據庫,并允許人工干預,以及提供強大的錯誤報告、系統日志、數據備份與恢復功能。整個操作過程往往要跨網絡、跨操作平臺。
在實際的工作中,數據加載需要結合使用的數據庫系統(Oracle、Mysql、Spark、Impala等),確定最優的數據加載方案,節約CPU、硬盤IO和網絡傳輸資源。
三、ETL有什么價值?
ETL 的成功應用將為企業帶來巨大的價值,一般來說,ETL在企業中的價值主要體現在:
1、簡化了用戶的操作
ETL通常通過圖形化的配置方式,簡單,靈活,使得用戶無需過分關心數據庫的各種內部細節,而專注于功能。
2、支持各種數據源,特別是平面數據源
ETL出了支持所有常見的數據源,如Oracle,Sqlserver,DB2,,Mysql,Access,Vf等,還提供了對各種平面數據源,如txt,excel,csv,xml等的支持。
3 、簡化內部業務系統的數據集成
舉個例子來看,如果由于各種原因,企業的生產物資系統數據庫采用分布式部署,每天需要將分布在全國各地20 多個數據庫的數據約2200 多萬條物資采購和使用數據集中匯總至總部進行整理分析。應用ETL技術后,數據采集和清洗的效率、準確性和系統性能大幅提高,同時簡化了整個數據匯總分析的過程。
能夠通過ETL的三個流程,大大提高效率簡化流程。
4、提高設備采集數據分析效率
繼續舉例子來看,如果企業生產的大型港口機械裝備遍布全球碼頭,每臺設備上都裝有起重機管理系統,這些設備的故障、旁路、工作循環等各類工況數據都會存入起重機管理系統,由于用戶的要求不同,系統使用的數據庫各不一樣,數據項也會略有差異。企業需要收集這些設備的工況數據到內部的云平臺上匯總分析并為用戶提供主動性服務,而ETL技術在設備工況數據的采集、清洗加工和匯總分析等應用上發揮了巨大的作用。
ETL是構建整個數據倉庫的核心和靈魂,對于大型裝備制造企業,如果能夠規劃和設計好ETL的使用,同時結合云計算及
大數據分析和處理平臺,不管是對于企業內部業務系統的有效集成,為管理層提供高效的商業智能分析,或是結合大型裝備產品進行工況數據的采集分析,為使用者提供更多的增值服務,都將起到至關重要的作用。
四、ETL應用優勢
市面上大多BI工具都不含ETL功能,在進行上述項目時,通常會用到BI、ETL兩個工具,成本高、花費時間長。而億信ABI基于這個需求,依賴十余年數倉經驗,推出可視化ETL功能,通過簡單的拖拽就可以完成ETL過程,所以下面的講解我們以
億信ABI為例。
1、程序設計人性化,操作更易用
一般情況下,ETL過程設計需要用到大量的代碼,且重復利用率較低。億信ABI中的ETL功能充分結合大量項目人員實施習慣,操作敏捷易用,可快速地建立起ETL過程,提高效率,降低實施難度。
億信ABI有著更友好易用的數據處理體驗:
數據處理支持批量創建,ETL定義支持數據抽樣;
開發過程支持多人協同定義,共享資料庫,使得數據處理過程更高效;
系統內部封裝大量清洗轉換規則,極大程度的降低技術門檻,只需簡單的拖拽配置,即可玩轉數據處理;
2、擁有豐富的數據處理組件
億信ABI中的ETL組件豐富多樣,面向數據分析師精心打造,滿足各種各樣的數據處理場景。一般情況下,一個簡單的數據處理需求,前期在技術人員這里可能徘徊2到3天,更何況還有后期的修改。有了豐富的可視化ETL組件,復用率高,屏蔽復雜的編碼任務,操作簡單,數據處理更高效。
億信ABI中內置組件包括:輸入輸出組件、轉換組件、流程組件、統計組件、數倉組件、腳本組件、大數據組件等。
以轉換組件里面的清洗組件為例,清洗組件支持記錄級清洗和字段級清洗,內置50多種規則,支持在一個組件中完成多次清洗轉換設置。支持清洗前后結果預覽。
3、可以靈活的調度任務
一般情況下,ETL過程都會伴隨著調度任務的設置。比如,某銷售部門需要每周五抽取數據計算當周銷售利潤用于匯報,如果利用ETL實現,時間調度管理必不可少。
億信ABI的ETL調度導向,深度考慮各使用場景,用戶只需簡單操作,即可實現復雜的調度任務。
支持基于時間或事件的調度機制,如:任意事件周期、文件到達、腳本事件等;
調度設置支持crontab表達式;
調度設置能指定到月份、星期、日期、小時、分鐘的粒度;
支持設置調度的時間窗口,重調時間間隔等;
4、隔離設計,應用更穩定
為保證運行環境的穩定可靠,提供了設計區與運行區隔離的機制,所有作業的修訂和更改通過在設計區完成調試和試運行后,通過發布機制,發布到穩定的運行環境,保證開發和運行兩不耽誤。
億信ABI除了高效的數據處理能力,還擁有智能分析引擎、高擴展性、高集成性等亮點功能,在數據填報、數據處理、大屏可視化、自助分析、預測挖掘等場景的的應用效果也首屈一指。
五、小結
對于ETL,我們要有一個清晰的認識,它不是想象中的簡單一蹴而就,在實際的過程,你可以會遇到各種各樣的問題,甚至是部門之間溝通的問題。出現以上問題時,可以和團隊小伙伴或者業務側一起制定解決方案,不斷完善,只有這樣才能保證我們的業務分析結果是準確的,才能指導公司做出正確的決策。也只有這樣,才能真正發揮ETL在企業中的作用。
(部分內容來源網絡,如有侵權請聯系刪除)