無需獨立部署,使用Smartbi自帶的ETL功能即可滿足日常需求

01什麼是ETL?

無需獨立部署,使用Smartbi自帶的ETL功能即可滿足日常需求

ETL(Extraction-Transformation-Loading的縮寫)是將業務系統的數據經過抽取、清洗轉換之後加載到數據倉庫的過程,目的是將企業中的分散、零亂、標準不統一的數據整合到一起,爲企業的決策分析提供數據依據。

ETL是BI項目建設中重要的一個環節,通常情況下ETL會花掉整個項目的1/3的時間,ETL設計的好壞直接關係到BI項目的成敗。ETL也是一個長期的過程,只有不斷的發現問題並解決問題,才能使ETL運行效率更高,爲項目後期開發提供準確的數據。

ETL的流程分三部分:數據抽取、數據的清洗轉換、數據的加載。在設計ETL的時候也是從這三部分出發。數據的抽取是從各個不同的數據源抽取到ODS中,在抽取的過程中需要挑選不同的抽取方法,儘可能提高ETL的運行效率。整個流程中,花費時間最長的是T(清洗、轉換)的部分,一般情況下這部分工作量佔整個ETL的2/3。數據的加載一般在數據清洗完了之後直接寫入DW中去。

目前,主流的ETL工具有DataPipeline、Kettle、Talend、Informatica等,這些工具都比較專業,有一定的學習成本,且都需要獨立部署。如果BI系統只是用到了常規的ETL功能,那麼用BI自帶的ETL功能就足夠了,方便快捷,例如Smartbi自帶的自助ETL。

02 Smartbi自助ETL介紹

Smartbi通過封裝ETL算法,將技術分離,可以實現業務人員進行自助ETL操作。自助ETL以工作流的形式實現爲庫表提取數據模型的語義,通過易於操作的可視化工具,將數據加工成具備語義一致性與完整性的數據模型,也可以增強自助數據集構建數據模型的能力。自助ETL採用分佈式計算架構,同時單節點情況下支持多線程,這極大地提高了數據處理的性能,億級的數據量處理時間可以達到分鐘級。

Smartbi自助ETL工作流程以數據源爲起點,以目標源爲終點:從數據源中抽取需要進行處理的數據,通過拖拽內置的預處理方法,之後將處理過的數據存儲到目標源中。

無需獨立部署,使用Smartbi自帶的ETL功能即可滿足日常需求

03數據抽取

數據的抽取需要在調研階段做大量工作,首先要搞清楚以下幾個問題:數據是從幾個業務系統中來?各個業務系統運行什麼數據庫?是否存在手工數據?手工數據量有多大?是否存在非結構化的數據等等類似問題,當收集完這些信息之後纔可以進行數據抽取。

Smartbi自助ETL的數據抽取具有豐富的數據連接能力,支持目前主流的關係數據庫,如Oracle、Mysql、DB2、MSSQL、Presto+hive、星環、PG、Gauss100、Greenplum等等,通過創建數據源快速連接企業的業務數據庫。同時,Smartbi還提供跨庫聯合數據源,用於實現跨庫查詢的需要。應對不同接口數據統一訪問的問題。

對於本地數據,Smartbi支持批量上傳Excel、CSV、TXT文件;而對於需要手工錄入的數據,採用表單填報即可。

對於數據量大的系統,必須考慮增量抽取。一般情況,業務系統會記錄業務發生的時間,可以用作增量的標誌,每次抽取之前首先判斷ODS中記錄的時間,然後根據這個時間去業務系統取大於這個時間的所有記錄。

一般情況下,數據倉庫分爲ODS、DW兩部分,通常的做法是把數據從業務系統抽取到ODS做清洗,將髒數據和不完整數據過濾掉,也即數據的預處理。再從ODS到DW的過程中轉換,進行一些業務規則的計算和聚合。

04數據預處理

Smartbi自助ETL擁有強大的數據預處理能力,對各種結構化數據,可進行排序、去重、映射、行列合併等處理,滿足客戶的日常需要。並且是完全可視化操作,業務人員都能參與。

無需獨立部署,使用Smartbi自帶的ETL功能即可滿足日常需求

數據清洗

數據清洗的任務是過濾那些不符合要求的數據,將過濾的結果交給業務主管部門,確認是否過濾掉還是由業務單位修正之後再進行抽取。不符合要求的數據主要是有不完整的數據、錯誤的數據和重複的數據三大類。

A、不完整的數據,其特徵是是一些應該有的信息缺失,如供應商的名稱,分公司的名稱,客戶的區域信息缺失、業務系統中主表與明細表不能匹配等。需要將這一類數據過濾出來,按缺失的內容分別寫入不同Excel文件向客戶提交,要求在規定的時間內補全。補全後才寫入數據倉庫。

B、錯誤的數據,產生原因是業務系統不夠健全,在接收輸入後沒有進行判斷直接寫入後臺數據庫造成的,比如數值數據輸成全角數字字符、字符串數據後面有一個回車、日期格式不正確、日期越界等。

C、重複的數據,特別是表中比較常見,將重複的數據的記錄所有字段導出來,讓客戶確認並整理。

數據清洗是一個反覆的過程,不可能在幾天內完成,只有不斷的發現問題,解決問題。對於是否過濾、是否修正一般要求客戶確認。對於過濾掉的數據,寫入Excel文件或者將過濾數據寫入數據表,在項目開發的初期可以每天向業務單位發送過濾數據的郵件,促使他們儘快的修正錯誤,同時也可以作爲將來驗證數據的依據。數據清洗需要注意的是不要將有用的數據過濾掉了,對於每個過濾規則認真進行驗證,並要用戶確認纔行。

數據轉換

數據轉換的任務主要是進行不一致的數據轉換、數據粒度的轉換和一些商務規則的計算。

A、不一致數據轉換,這個過程是一個整合的過程,將不同業務系統的相同類型的數據統一,比如同一個供應商在結算系統的編碼是XX0001,而在CRM中編碼是YY0001,這樣在抽取過來之後統一轉換成一個編碼。

B、數據粒度的轉換,業務系統一般存儲非常明細的數據,而數據倉庫中的數據是用來分析的,不需要非常明細的數據,一般情況下,會將業務系統數據按照數據倉庫粒度進行聚合。

C、商務規則的計算,不同的企業有不同的業務規則,不同的數據指標,這些指標有的時候不是簡單的加減就能完成,這個時候需要在ETL中將這些數據指標計算好了之後存儲在數據倉庫中,供分析使用。

05 ETL監控

ETL監控的目的是隨時可以知道ETL運行情況,如果出錯了,出錯在那裏。

Smartbi自助ETL可以監控數據集抽取的信息,包括執行時間,狀態及操作等,並生成抽取日誌。包括兩種,一種是抽取過程的錯誤日誌,這種是在抽取異常的時候會記錄在error文件,在數據集抽取日誌中能查看;另外一種是抽取過程中的DEBUG日誌,這種是爲了便於跟蹤抽取過程直接輸出到控制檯。

ETL的調度通過Smartbi計劃任務自動執行,系統對ETL調度在狀態、啓用情況、執行時間上進行監控。ETL工作流定製完成時,系統自動設置計劃任務進行ETL調度。

由此可見,對於大部分的BI項目,其實我們沒必要部署一套獨立的ETL工具。如此不僅需要花費額外的採購成本,而且還需要投入學習成本。使用Smartbi自帶的ETL功能已經可以滿足日常需求,而且容易上手,和BI緊密集成,無疑是一種更加明智的選擇。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章