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