奇點雲資料中臺技術匯(二)| DataSimba系列之資料採集平臺
繼上期資料中臺技術匯欄目釋出DataSimba——企業級一站式大資料智慧服務平臺,本期介紹DataSimba的資料採集平臺。
DataSimba採集平臺屬於DataSimba的資料計算及服務平臺的一部分, 負責資料的匯入, 從而支援上層的資料處理。 DataSimba的定位是面向企業私有化部署,決定了採集平臺面臨要解決的問題和傳統的網際網路公司不太一樣:
1、企業使用的資料庫型別多且雜, 包括很多非主流的資料庫;
2、企業的資料管理水平參差不齊, 依賴資料規範(如:維護列modify_time判斷記錄是否修改)的匯入方式推行困難;
3、需要支援的場景比較複雜, 包括:流處理、增量處理、批處理;
4、企業的資料平臺規模一般較小,資源有限, 需要更好的平衡計算成本與效率。
採集平臺總體架構
整個採集平臺核心為DataX與DataS兩個採集元件:
DataX:
·阿里開源的資料整合元件,透過jdbc,以查詢的方式支援通用的關係行資料庫匯入;
·DataSimba 同時支援嚮導模式和指令碼模式。
·可擴充套件支援NoSQL、FTP等。
DataS:
奇點雲針對複雜的企業資料環境開發的, 基於資料庫日誌(類似binlog)同步資料的工具, 主要特徵如下:
·配置簡單: 整庫匯入配置只需要一分鐘, 支援實時抽取、增量落盤、全量合併;
·基於資料庫Log採集, 以減少對企業現有系統的侵入。 目前支援Mysql, Sqlserver, Oracle, Postgres, MongoDB;
·支援多種業務場景, 包括:實時計算, 增量計算(10m~1h), 全量批處理(>1h);
·高效的資料合併效能, 節省計算資源;
·schema自動同步;
DataX vs DataS:
·DataX透過查詢(即Select)方式, 而DataS透過解析資料庫日誌;
·DataX 支援資料來源更廣, DataS支援資料來源較少(見下表);
·DataX 對資料來源壓力較大, 而DataS對資料來源壓力較小;
·DataX 需要資料來源有較大的空閒時間視窗, 用於抽取資料。 而DataS不需要;
·DataX 需要維護類似modify_time欄位做增量抽取, 而DataS不需要;
·DataX 無法跟蹤記錄變更過程, DataS可以跟蹤;
·DataX 不支援實時資料採集, DataS支援秒級的資料採集;
DataSimba在採集資料時優先使用DataS的方式。
為什麼要做DataS
早期的Simba使用DataX匯入資料, 在企業部署過程中遇到很多問題, 如:
·某快消企業, 資料庫本身的壓力就比較大, 且沒有大段的空閒視窗用於資料採集, 採用DataX抽取難度較大。
·某企業, 資料庫每日增量較少(~10GB), 但全量資料較大(>20T), 導致增量與全量合併的效率較低, 消耗資源比較多。
·某金融企業, 需要在數倉中跟蹤賬戶餘額的每一次變動, 又要不侵入現有的業務, 採用DataX的方式無法做到。
·某企業大屏, 需按小時重新整理, 統計資料量較大, 採用流式計算成本較高, 實現比較複雜。 採用DataX又無法做到小時以內的採集頻率。
以上只是在simba部署過程中碰到的一部分內容。 為了解決碰到的種種問題, 我們最終決定開發一套新的採集工具: DataS。
DataS 技術方案
DataS 的目標是: 配置維護簡單, 支援多種資料來源, 支援多種應用場景, 儘可能高效。
與cannal/maxwell等binlog採集工具相比, DataS支援更多的資料庫型別:
實時採集資料流程
實時採集的主要流程如下:
1、 資料來源端建立訪問賬號, 設定許可權和日誌配置項
2、 simba平臺上配置資料來源
3、 simba平臺上建立匯入任務, 選擇匯入的庫和表, 確定是否合併
4、 釋出匯入任務
5、 DSExtracter從資料庫源拉取全量快照, 作為初始化匯入資料
6、 DSExtracter實時解析資料庫日誌, 以增量的方式解析新增資料到kafka
7、 DSLoader 按照設定的週期(通常是10分鐘)將新增資料落盤到增量資料層(INC)
8、 DSMerger 定期(通常是30分鐘)將新增資料與全量資料合併到ODS
9、 後續的計算以增量或者全量的方式從ODS層消費資料
技術亮點
一、高效的合併方案
DataS同時保留了增量的日誌資料和全量的快照資料, 以支援複雜的企業業務場景。 同時DataS提供了高效的快照合併方案。 以下是DataS合併與基於HBase方案合併的效能比較測試。對於1T以上的資料表增量和全量merge時, DataS有12 ~24 倍的效能提升。
與傳統的利用HiveSQL 或者HBase 做merge的方式不同, DataS採用了二級對映的方式, 使最終的合併轉化為一個RDD或者一個Map中就可完成的小檔案合併, 並避免了不需要合併的檔案讀取, 如圖所示:
DataS合併邏輯如下:
1、 DataS會將新增資料劃分到不同的hive分割槽中, 分割槽可以根據業務自定義;
2、 在一個分割槽內, DataS利用布隆過濾(Bloom Filter)將資料對映到不同的檔案;
3、 新增資料和單一儲存檔案做區域性合併;
將整個合併最終劃分為小檔案的合併, 從而大幅提高了合併的效率。
二. 近實時的資料時延
DataS提供兩種合併方式: 寫時複製(CopyOnWrite)和 讀時合併(MergeOnRead)
寫時複製 是指每次增量資料與檔案合併時, 都是複製兩邊的資料生成新的全量資料檔案。 此種方式合併時效能稍差, 但讀資料(統計查詢)時效能好一些, 過程如下:
讀時合併 是指合併時只將增量資料寫入日誌檔案, 讀時(查詢統計)再合併重複資料。 同時會定期全量合併。 此種方式的合併效率很高, 資料時延可以達到秒級~分鐘級, 但查詢時效能稍差, 如圖所示:
兩種方式使用與不同的業務場景: 注重讀效能或者注重合併效能。
Datas支援豐富的場景應用
按照資料要求的時延和資料要求的完整性, 計算場景大致可分為三類:
其中:
·實時計算: 很多資料時延要求在 毫秒級 ~ 10分鐘的場景, 通常採用flink或者spark等計算引擎。 如:監控告警、實時特徵等等。
·增量計算:時延要求在10分鐘~小時級別, 資料要求增量處理的場景。 如企業大屏、活動效果分析、當日uv等統計資料展示。
·全量批處理: 主要針對各種T+1的報表統計, Simba目前採用Hive引擎。
目前市場上對於實時計算和全量批處理都有成熟的方案, 但對於夾縫中的增量計算支援的都不太好。增量計算無論是採用流式實時處理, 還是採用全量批處理, 都比較浪費資源, 且效果不理想。 DataS可以支援增量的採集、合併、計算, 以較低的計算成本支援了此類場景。 此外, DataS能很好的支援秒級以上的實時計算和批處理任務。
附-DataSimba資料採集支援的多種資料來源
DataSimba的採集平臺支援豐富的資料來源, 包括:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69911376/viewspace-2645021/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 奇點雲資料中臺技術匯(七) | 資料智慧模型——資料中臺航母的作戰叢集模型
- 奇點雲資料中臺技術匯(一) | DataSimba——企業級一站式大資料智慧服務平臺大資料
- 奇點雲資料中臺技術匯 | 資料治理——企業數字化轉型的基石
- 奇點雲資料中臺技術匯(六)| 智慧演算法助力企業效率升級演算法
- 遊戲平臺採集資料遊戲
- 電商平臺資料採集介面
- 大資料技術之資料採集篇大資料
- 資料平臺、大資料平臺、資料中臺……還分的清不?大資料
- ViCANdo — 智慧駕駛資料採集及資料分析平臺
- 論資料中心與資料平臺
- 資料湖+資料中臺,金山雲大資料平臺如何攻克資料價值落地難關大資料
- IOT智慧資料採集平臺有什麼功能
- [平臺建設] 大資料平臺如何實現任務日誌採集大資料
- 資料採集物聯網平臺的功能及作用
- 建設資料採集分析平臺,整合業務資料、消滅資料孤島
- 流程簡化!資料中臺+BI平臺輕鬆實現資料整合
- 資料中臺(資料整合篇)
- 阿里雲產品之資料中臺架構阿里架構
- Smartbi:資料治理系列之後設資料管理平臺的原理
- 阿里雲AIoT物聯網平臺技術集錦阿里AI
- 智慧安防預警研判資料採集平臺解決方案
- 英特佩斯遠端資料採集和車隊管理平臺
- 資料中臺
- 專業資料採集公司和智慧資料管理執行一體化平臺
- 如何設計實時資料平臺(技術篇)
- 資料中臺(資料資產管理篇)
- UCloud優刻得率先採用區塊鏈技術構建可信資料流通平臺Cloud區塊鏈
- 資料採集與融合技術實驗課程作業二
- IT老兵告訴你資料中臺和大資料平臺有啥不一樣?大資料
- 自媒體採集平臺免費,免費的自媒體採集平臺
- 技術集錦 | 大資料雲原生技術實戰及最佳實踐系列大資料
- 資料採集和融合技術作業1
- 資料採集與融合技術作業一
- 資料採集與融合技術作業2
- 資料採集和融合技術作業3
- 採用POI技術進行大資料匯入大資料
- 資料採集作業二
- 雲原生資料中臺技術與趨勢解讀