當今資料倉庫的建設有這樣幾個發展趨勢:
- 雲化:資料倉庫從雲下搬到雲上。
- 實時化:T+1 的資料延遲發展成為 T+0 的數有延遲。
- 資料分析統一化:多元度的報表分析與資料探索的自助分析一體化。
本文從大資料團隊的實踐經驗出發,介紹一種基于開源技術搭建的通用雲上流批一體架構,使資料倉庫同時滿足:雲化、實時化、資料分析統一化。由于本架構使用的是開源技術,并且對對象存儲進行了抽象,可以在運用到不同的雲廠商。
背景:蓬勃發展的大資料技術
随着大資料技術的蓬勃發展,幾大雲廠商陸續提供了可靠的雲上對象存儲服務;各種大資料元件的層出不窮。
雲服務廠商的對象存儲服務
- 阿裡雲:OSS(Object Storage Service)
- 騰訊雲:COS(Cloud Object Storage)
- 華為雲:OSS(Object Storage Service)
- 亞馬遜:S3 (Simple Storage Service)
大資料元件
大資料元件有很多,這裡主要介紹與本文有關的 3 類元件:大資料計算引擎、大資料查詢引擎、大資料作業排程引擎。
1.大資料計算引擎
Flink 和 Spark 分别是實時流資料處理和離線批資料處理的事實标準。
- Flink:實時流資料處理。
- Spark:離線批資料處理。
2.大資料查詢引擎
常見的大資料查詢引擎有很多,提供類資料庫的服務,支援資料查詢。這裡列舉最為常用的查詢引擎。
Kylin:預計算多元資料庫,支援 Hive 外表查詢。。
StarRocks:具有預計算能力的向量化多表查詢引擎,支援 Hive 外表查詢。
ClickHouse:強悍的向量化單表查詢引擎,不支援 Hive 外表查詢。
Presto / Trino:基于記憶體并行計算的查詢引擎,支援 Hive 外表查詢。
3.大資料作業排程引擎
DolphinScheduler:基于 Java 的高可用作業排程系統。
Airflow:基于 Python 的單點作業排程系統。
資料分析需求:我要又要還要的資料分析需求
多元下鑽需求:支援多元度下鑽 BI 報表分析。
自助分析需求:支援資料探索的無規則 Ad Hoc 資料查詢。
實時性需求:資料端到端的産出時間分為:分鐘級、小時級、天級 3 種。
明細資料查詢需求:所有明細上報日志都要能夠被查詢到,用于大資料鍊路的故障診斷。
技術選型
根據上述資料分析需求,在計算引擎和排程引擎上比較容易地選擇了 Flink、Spark、DolphinScheduler。對于資料查詢引擎的計算選型,進行了了一番調研,最終選擇了 Kylin + StarRocks 的組合。
在 StarRocks 和 Click House的對比中,選擇了 StarRocks。另一方面,我們對比了 StarRocks 與 Trino 查詢 Hive 外表的性能。相比 Trino,StarRocks 的外表查詢性能高出 30% 左右。
基于資料需求的架構設計
結合為了滿足魚和熊掌兼得的資料分析需求,我們提出了如下圖的雲上流批一體架構。
該架構主要優點
- 符合大資料發展潮流:基于雲上對象存儲建設資料倉庫,支援流批一體。
- 滿足資料分析需求:支援上文提到的不同場景下的資料分析需求。
- 成本控制:将明細資料存儲在對象存儲(而不是 StarRocks 的本地存儲),通過 StarRocks 外表能力查詢明細資料,節省了存儲成本,也節省了潛在的運維成本。
- 具備通用性:使用開源計算,可以部署到不同的雲廠商環境中。
線上運作情況
本架構已經上線并且在生産環境中平穩運作 3 周時間,支援每秒鐘 80 條資料記錄,
總結
本文從不同場景的資料分析需求出發,介紹了一種通用的雲上流批一體架構。該架構 符合大資料發展潮流、具備跨雲通用性、兼顧成本控制。
相關文章導讀
名額體系相關
- 搭建名額體系的實施過程 -- 大資料團隊實踐分享(https://www.toutiao.com/article/7194229231637840445/)
- 如何搭建名額體系?OSM+ARGO+金字塔原理 (https://www.toutiao.com/article/7193851943209452070/)
- 基于開源可視化資料探索平台 Superset 的名額體系建設(https://www.toutiao.com/article/7157336903145357824/)
開源技術相關
- 手把手教你源碼安裝 Dolphin Scheduler 作業排程系統(https://www.toutiao.com/article/7143945605298192935/)
- DolphinScheduler:從 Shell 工作流說到代碼解析任務間的依賴關系(https://www.toutiao.com/article/7145296029645193765/)
- 手把手教你源碼安裝 Data Ease 開源資料可視化分析工具(https://www.toutiao.com/article/7144529676512281129/)
資料治理相關
- 資料管理成熟度模型 Data Management Maturity Model(https://www.toutiao.com/article/7133058428549464606/)
- 資料品質成熟度評分卡-資料管理成熟度模型系列(https://www.toutiao.com/article/7133831970345370127/)