天天看點

雲上流批一體架構設計與實踐 —— 大資料團隊實踐分享

作者:資料築夢空間

當今資料倉庫的建設有這樣幾個發展趨勢:

  • 雲化:資料倉庫從雲下搬到雲上。
  • 實時化: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% 左右。

基于資料需求的架構設計

結合為了滿足魚和熊掌兼得的資料分析需求,我們提出了如下圖的雲上流批一體架構。

雲上流批一體架構設計與實踐 —— 大資料團隊實踐分享

該架構主要優點

  1. 符合大資料發展潮流:基于雲上對象存儲建設資料倉庫,支援流批一體。
  2. 滿足資料分析需求:支援上文提到的不同場景下的資料分析需求。
  3. 成本控制:将明細資料存儲在對象存儲(而不是 StarRocks 的本地存儲),通過 StarRocks 外表能力查詢明細資料,節省了存儲成本,也節省了潛在的運維成本。
  4. 具備通用性:使用開源計算,可以部署到不同的雲廠商環境中。

線上運作情況

本架構已經上線并且在生産環境中平穩運作 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/)

繼續閱讀