對Storm ETL的初步思考


ETL簡介

ETL,是英文 Extract-Transform-Load 的縮寫,用來描述將數據從來源端經過萃取(extract)、轉置(transform)、加載(load)至目的端的過程。

ETL是數據抽取(Extract)、清洗(Cleaning)、轉換(Transform)、裝載(Load)的過程。是構建數據倉庫的重要一環,用戶從數據源抽取出所需的數據,經過數據清洗,最終按照預先定義好的數據倉庫模型,將數據加載到數據倉庫中去。

 

目前,ETL工具的典型代表有:Informatica、Datastage、OWB、微軟DTS、Beeload、Kettle……

開源的工具有eclipse的etl插件:cloveretl。

 

ETL產品的選型,需要從四點(即成本、人員經驗、案例和技術支持) 來考量。

 

ETL的質量問題具體表現為正確性、完整性、一致性、完備性、有效性、時效性和可獲取性等幾個特性。

 

實現ETL,首先要實現ETL轉換的過程。它可以集中地體現為以下幾個方面:

1、空值處理:可捕獲字段空值,進行加載或替換為其他含義數據,並可根據字段空值實現分流加載到不同目標庫。

2、規范化數據格式:可實現字段格式約束定義,對於數據源中時間、數值、字符等數據,可自定義加載格式。

3、拆分數據:依據業務需求對字段可進行分解。例,主叫號 861082585313-8148,可進行區域碼和電話號碼分解。

4、驗證數據正確性:可利用Lookup及拆分功能進行數據驗證。例如,主叫號861082585313-8148,進行區域碼和電話號碼分解后,可利用Lookup返回主叫網關或交換機記載的主叫地區,進行數據驗證。

5、數據替換:對於因業務因素,可實現無效數據、缺失數據的替換。

6、Lookup:查獲丟失數據 Lookup實現子查詢,並返回用其他手段獲取的缺失字段,保證字段完整性。

7、建立ETL過程的主外鍵約束:對無依賴性的非法數據,可替換或導出到錯誤數據文件中,保證主鍵唯一記錄的加載。

 


基於Storm的ETL設計

  • 通用ETL功能設計

1、通用的Spout來處理各類抽取:數據庫、消息系統、csv文件、RESTful服務等;

2、通用的Bolt來處理各類校驗:空值、超長、過短、數據類型、正則表達式、關聯校驗(關聯數據是否存在/不存在?是否在指定范圍內?)等,支持校驗后的數據替換處理;

3、通用的Bolt來處理各類數據拆分與合並:字符串處理(拆分、合並)、數學運算處理、日期時間處理、集合數據處理(計數、平均、求和、分組、排序等);

4、通用的Bolt來處理各類數據裝載:數據庫、消息系統、csv文件、RESTful服務;

  • 輔助功能設計

1、數據統計功能

2、狀態跟蹤功能

3、拓撲管理功能

4、拓撲設計功能

 


ETL平台設計

1  設計目標

1.1  數據的實時處理和推送

1) 實時獲取數據,

2) 支持多種格式數據

(JSON、DB、POJO、XML)

3) 內部統一數據結構(KV)

4) 能夠實現對數據的校驗:

空或非空、數據類型、長度、數據格式、關聯校驗(數據庫、緩存字典數據,加載字典和數據文件)

5) 能夠對校驗不通過的原因進行記錄

6) 能夠對數據進行實時處理

處理規則包括:數據類型轉換、字符分和合並、日期時間格式轉換、四則運算)

7)  能夠對處理后的數據進行輸出

輸出(DB、MQ)

8)  能夠對平台抽取和處理的數據進行統計

(抽取數據數,成功處理數,失敗處理數,失敗原因分類統計,抽取及處理的平均時長、最大時長、最短時長)

9)  能夠按照規則對校驗失敗的數據進行自動更正,並記錄日志

(定值更正、數據類型更正、長度更正)

 

1.2   容易使用,操作簡單

基於配置、配置工具(未來),監控工具

組件+javadoc+開發文檔+手冊

1.3   能夠支撐大數據,高並發的請求

(集群技術,流式計算技術)

1.4  高可用

zookeper集群、strom集群、fast-fail、消息系統

 

2   約束:

為保證平台計算的實時性,平台不考慮數據存儲,僅以MQ式來支持HBase的設計

 

類圖設計記錄:

Use Case Model 下的 處理流圖;

Class Model 下的:

01 PackageModel 、02 JmsSpoutAndJmsBlot、03 DataStructureTrans  、

04 ValidateBlot 、05 CorrectBlotAndDataTransBlot


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM