天天看點

如何建構雲原生的開源大資料平台 | 微淼基于阿裡雲大資料生态的應用實踐

随着開源技術與雲原生的高度融合,阿裡雲開源大資料平台在功能性、易用性、安全性上積累了豐富的實踐經驗,已成功服務數千家企業,助力其聚焦自身核心業務優勢,縮短開發周期、簡化運維難度,拓展更多業務創新。10月29日,阿裡雲釋出“如何建構雲原生的開源大資料平台”解決方案,邀請到了來自阿裡雲、微淼、Inmobi的技術專家為大家現身說法,呈現上雲實踐。
如何建構雲原生的開源大資料平台 | 微淼基于阿裡雲大資料生态的應用實踐

本文主要分享微淼基于阿裡雲大資料生态的應用實踐,以及實時計算 Flink 版全托管在微淼的實踐總結。

分享嘉賓: 喬丹,微淼大資料進階大資料開發工程師

視訊位址:

https://yqh.aliyun.com/live/bigdataop

一、公司簡介

微淼

是一家專門從事理财、創業技能教育訓練的公司。微淼不售賣、不代理理财及保險産品,始終緻力于幫助使用者樹立正确的金錢觀、理财觀、創業觀,幫助使用者掌握正确的理财方法和創業技能,全面提升國民的财經素養和創業水準。目前已擁有超過800萬付費使用者及1500萬自媒體矩陣粉絲。

二、大資料平台建設曆程

微淼初期大資料平台架構

為了助力企業做出更好的業務決策,為使用者提供更優質的服務,微淼在20年成立了大資料部門,同年8月開始搭建叢集。

  • 背景

大資料部門成立初期,實時資料需求較少,多以離線分析為主

  • EMR 的優勢
    • 建立叢集友善快捷
    • 內建大量開源元件及架構
    • 運維成本低
    • 擴容友善
    • 穩定性高

EMR 建立叢集很友善,在標明叢集模闆之後,可以一鍵自動化建立叢集,極大的降低叢集的搭建難度,有效避免搭建叢集過程中的各種踩坑問題。其次,EMR 內建了大量的社群開源元件并進行了适配,避免了開源元件之間版本不相容的問題,阿裡雲 EMR 團隊還對大部分開源元件進行了優化,極大的提高了元件的性能。此外,EMR 還內建了 Flink 實時計算引擎。阿裡雲24小時線上的企業級服務,助力企業解決各種叢集問題,同時提供叢集調優建議,降低運維成本。EMR 擴容也很友善,申請擴容之後幾分鐘之内就能自動完成,無需手動部署和啟動服務。阿裡雲對象存儲 OSS 替代 HDFS 提供檔案存儲服務,保證安全和性能的同時,可以顯著降低存儲成本,無需參與維護還有無限的擴充能力。

基于大資料部門成立初期的背景及業務需求,結合阿裡雲 EMR 的優勢,微淼搭建了基于 EMR 的大資料平台,這套架構在平台建設初期提供了很多便利。Flink 元件完成實時分析任務,Hive 元件完成離線數倉分層模組化,契合大資料平台搭建的初衷,比較好的支撐了我們的業務。

如何建構雲原生的開源大資料平台 | 微淼基于阿裡雲大資料生态的應用實踐

面臨挑戰

随着微淼業務的高速增長,多個業務線齊頭并進,大資料平台瓶頸突顯:

  • 業務高速增長,導緻資料量、任務需求量爆發式增長
    • 日增資料量同比上半年增長超過10倍
    • 排程任務數同比增長超過8倍
  • T+1離線資料分析已經不能滿足業務訴求
    • 實時及準實時的分析任務急劇增加
  • 現有的實時計算架構不能滿足業務的快速需求
    • 資料名額越來越多,“煙囪式”的開發導緻代碼耦合問題嚴重
    • 需求越來越多,有的需要明細資料,有的需要 OLAP 分析。單一的 Flink 開發模式難以對付多種需求
    • 每個需求都需要申請資源,導緻資源成本急速膨脹,EMR 叢集資源吃緊,出現實時任務和離線任務搶占資源的情況
    • 核心元件 Flink 更新困難,大版本更新相當于重新建立叢集,人力成本較高

阿裡雲開源大資料平台解決方案架構

基于上述業務增長帶來的問題,微淼大資料研發團隊開始建構2.0版本的實時計算架構。一方面引入了一批新的元件,豐富了整個平台的架構;另一方面,對實時計算架構進行了優化和更新,引入了實時數倉的概念模型。

針對資料量激增:

  • 廣泛使用對象存儲 OSS,減小存儲壓力,降低存儲成本
  • 對叢集資源進行隔離和優化 

廣泛使用阿裡雲對象存儲 OSS 替代 HDFS 作為離線數倉的存儲服務,大大減小了的存儲壓力,降低了存儲成本。計算和存儲分離的架構使叢集的計算資源得到了更充分的利用,計算資源和存儲資源相比對,使得整個叢集資源使用率超過了50%。同時對叢集進行資源隔離優化,很大程度上節省了成本。

針對實時分析任務需求量大增

  • 引入 Hudi 及 OLAP 元件
    • 增量更新,提升資料支援響應速度
    • OLAP 元件引入,替代部分實時 OLAP 的工作量,使得開發成本大大降低

針對實時、準實時分析任務需求量大增,引入了 Hudi 資料湖和 OLAP 元件 Doris。Hudi 內建 Presto 和 Spark 引擎後,可以達到近實時的查詢和分析,解決了大部分的準實時需求。Doris 是一款對海量資料進行快速分析的MPP架構資料庫,在資料分析領域有着簡單易用、高性能等特點,支援明細查詢、聚合分析、多元分析等,秒級到毫秒級的響應滿足了大部分的實時需求。

針對現有的實時計算架構不能滿足業務的快速發展

  • 進行實時數倉搭建探索
    • 實時數倉分層,避免“煙囪式”開發
    • 引入 OLAP 分析引擎,靈活的處理多樣的分析需求
    • 引入實時計算Flink版,更靈活的版本選擇,更徹底的計算資源隔離。

針對 Flink 版本問題,引入了阿裡雲實時計算 Flink 版全托管,提供靈活的擴縮容,同時有更豐富的版本,可以根據任務需求選擇不同的 Flink 版本。阿裡雲實時計算 Flink 版全托管對版本的支援,緊跟社群,可以實作從1.10~1.13各個版本之間的靈活切換,完美解決了 Flink 更新難題。此外,實時計算 Flink 版全托管和 EMR 資源也是完全隔離的,很好地解決了實時任務和離線任務搶占資源的問題。

如何建構雲原生的開源大資料平台 | 微淼基于阿裡雲大資料生态的應用實踐

架構更新帶來的技術演進

微淼大資料研發團隊也對實時計算架構進行了更新,參考離線數倉将實時數倉根據分層設計的思想分為了4層。

實時數倉四層模型:

  • ODS 層:
    • 貼源存儲埋點資料及各種日志;

ODS 層,也就是常說的實時資料接入層。通過資料采集工具把各個業務系統的實時資料采集過來,統一進行結構化處理。這個過程不過濾資料,盡量保證資料的原貌。這層資料的主要來源包含三部分,第一部分是業務方接受的 MQ 消息,第二部分是業務資料庫的binlog 日志,第三部分是埋點日志和應用程式日志,這三部分最終統一寫入 KafKa 中。

  • DW 明細層:
    • 流資料關聯維表統一進行ETL,統一進行去重,過濾,分流等動作,生成公共行為明細表和業務行為明細表
    • 業務明細表關聯各自業務維表形成了業務主題明細表
    • 明細表寫入 OLAP 引擎,以便進行 OLAP 分析和快速彙總

DW 明細層,也就是明細中間層。這層以業務過程作為模組化驅動,基于具體的業務過程事件來建構。比如交易過程有下單事件、支付事件等,基于這些事件進行明細層的建構。在這層,明細資料參考離線數倉的主題域進行劃分,也會采用次元模組化的方式組織資料,對一些重要的次元字段做适當的備援。這層的資料來源于 ODS 層,通過 Flink 進行資料清洗,多流關聯補全次元,最終也寫入 KafKa 中。實時維表層用來存放次元資料,主要用于 DW 層寬化處理時資料補全使用。這層的資料主要存儲于 HBase 中。後續還會基于 QPS 和資料量的大小,靈活選擇更合适的存儲媒體,比如 Redis。

  • DWS 彙總層:
    • 讀取業務主題明細表計算出各業務主題關心的通用次元和名額,并存儲到 OLAP引擎中

DWS 層,也就是實時彙總層。這層通過 DW 層的資料進行多元彙總,提供給下遊業務方使用。在實際應用過程中,不同業務使用次元彙總的方式可能不同,根據不同的需求可以采用不同的技術方案去實作。第一種方案,采用 Flink 進行實時彙總,然後将結果名額寫入 HBase 或 MySQL 等資料庫中。這種方式的優點是實作邏輯比較靈活,缺點是聚合力度比較固化,不容易擴充。第二種方式,采用實時 OLAP 工具進行彙總,這種方式的優點是容易擴充,缺點是業務邏輯需要在中間層預處理。

  • ADS 層:
    • 提供 ad-hoc 查詢和實時大盤服務。

ADS 層,也就是實時應用層。這層資料已經寫入應用系統的存儲中,比如寫入 Doris 作為 BI 看闆的實時資料集,或者提供實時 OLAP 服務,寫入HBase,MySQL 用于提供統一的資料服務接口。

Flink+OLAP 實時數倉促進業務價值提升

基于新的平台架構和實時數倉架構,微淼快速穩定地支撐了業務的需求。近2個月就對公司業務進行了如下支援:

  • 研發并部署了5個大中型項目
  • 開發并排程20個任務
  • 支援了5個業務系統
  • 支援了7個實時可視化看闆

營運方面的提升:

  • “催到課”功能提升到課率10.5%
  •   直播名額實時監控提升續費率1.5%
  •   落地頁通路情況實時監控促進産品優化落地頁13個

實時産出的精準資料,給營運和投放團隊争取到了寶貴的決策時間;給老師提供了有力的實時教學資料支援,獲得了各個需求方的一緻肯定。

三、與阿裡雲未來的合作規劃

從實時計算到實時數倉,不管是資料架構還是技術方案,微淼在深度和廣度上都有了更多的積累。

随着公司業務的快速發展以及新技術的不斷推出,實時數倉也會不斷的疊代優化。比如 OLAP 引擎目前使用的是 Apache Doris,後期會在這個領域和阿裡雲有更深入的交流。此外,還會從以下方面進一步提升實時數倉的服務能力,這些也是微淼大資料将來和阿裡雲一起深入讨論的方向:

  • 持續跟進實時計算 Flink 版的使用體驗
  • 完善實時數倉血緣關系,提升任務和表的品質監控
  • 完善中繼資料管理體系
  • 完善 Flink 作業的監控,建立實時數倉價值評估體系,量化投入和産出
  • 進一步強化實時任務的魯棒性

以上就是微淼基于阿裡雲大資料生态的應用實踐,以及實時計算 Flink 版全托管在微淼的實踐總結的全部内容。

相關資訊

⭐點選連結觀看直播回放,超多活動資訊等你來

⭐更多EMR相關資訊,歡迎前往EMR産品詳情頁:    

https://www.aliyun.com/product/emapreduce

歡迎釘釘掃碼加入EMR相關産品交流群,為您提供最新的産品直播、産品活動及技術支援!

如何建構雲原生的開源大資料平台 | 微淼基于阿裡雲大資料生态的應用實踐