随着開源技術與雲原生的高度融合,阿裡雲開源大資料平台在功能性、易用性、安全性上積累了豐富的實踐經驗,已成功服務數千家企業,助力其聚焦自身核心業務優勢,縮短開發周期、簡化運維難度,拓展更多業務創新。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相關産品交流群,為您提供最新的産品直播、産品活動及技術支援!