【产品动态】解读Dataphin流批一体的实时研发
簡介:?Dataphin作為一款企業級智能數據構建與管理產品,具備全鏈路實時研發能力,從2019年開始就支撐可集團天貓雙11的實時計算需求,文章將詳細介紹Dataphin實時計算的能力。
背景
每當雙11全球購物狂歡節鐘聲響起,上千萬用戶涌入天貓、淘寶,流暢的購物體驗背后是阿里工程師用技術打造出的營地,支撐了每年雙11所帶來的數據洪峰。2020年11月1日至11月12日0:00,天貓“雙11”累計總交易額達4982億元,物流訂單總量達到23.21億單。這一切的背后都離不開實時計算技術。
Dataphin作為一款企業級智能數據構建與管理產品,具備全鏈路實時研發能力,從2019年開始支撐集團天貓雙11的實時計算需求。就以下文介紹Dataphin實時計算的能力。
傳統的數倉架構
在數倉建設過程中,一般來說都是先建設離線數倉,同時圍繞著離線數據構建應用。然后隨著業務的發展或者體驗的優化,再建設實時計算的鏈路去提升數據的時效性。
在這個過程中相似的代碼寫兩遍就難以避免,還會出現實時和離線口徑不一致,分別維護成本增加等各種各樣的問題。
傳統的數倉架構流與批從存儲計算中分離帶來以下的問題:
Dataphin流批一體優勢
為解決傳統數倉架構的存儲計算分離的問題,有了“流批一體”的思路:
?Dataphin在Flink流批一體的能力之上額外提供了更多的平臺能力,如數據源管理、元數據管理、資產血緣、資產質量控制、預編譯、調試等能力:
開發生產隔離
Dataphin支持開發生產隔離的項目,支持開發和生產雙環境的數據源配置。這樣在開發模式下,任務就會自動使用開發數據源和開發環境下的物理表;而當發布到生產環境時,Datpahin則會自動切換為生產數據源及生產環境的物理表。這個過程完全自動化,不用手動修改代碼或配置。
元數據管理
Dataphin創造性的引入了實時元表和鏡像表的概念,將實時研發過程中的表進行了平臺化、資產化的統一管理,并簡化了研發,提升研發效率和體驗。
傳統實時任務研發工具需要用戶重復寫Create table建表語句,需要進行繁瑣的輸入輸出表映射等操作。實時元表將實時開發任務中所有用到的數據表進行了統一表構建與管理,統一維護了所有實時元表和相關schema信息。開發者在開發過程中不用重復寫DDL語句;同時,也不需要進行繁雜的輸入、輸出、維表映射,采用簡單的純代碼研發模式,簡單的SET語句及權限申請,即可引用表數據,進行直接查詢或寫入數據,輕松做到一次建表,多次引用,大幅度提升研發效率和體驗。
鏡像表顧名思義則是用于維護離線表與實時表之間字段的映射關系。創建鏡像表并提交發布后,就可以在流批一體的Flink任務中使用鏡像表的字段,Datpahin會在編譯時自動映射到流表和批表上,實現一份代碼,兩種計算,代碼邏輯、口徑變更強一致。
流批一體的代碼任務
除了引入實時元表與鏡像表,Dataphin也支持了流批一體的任務,使用Flink引擎作為統一的流批計算引擎,在一份代碼上可同時配置流+批的任務配置,基于同一份代碼生成不同模式下的實例。而對于流批差異化的代碼,Dataphin也提供了不同的方式給與支持。
流批一體任務中會廣泛使用鏡像表,而鏡像表在最終使用時會翻譯為對應的流表/批表,為了適應流表/批表的多樣性(流表/批表的數據源可能不一樣,帶來with參數中key可能不一樣;流表/批表的某些設置可能不一樣,比如batchSize等),可以利用tableHints進行流表/批表的對應。方法如下:
set project.table.${mode}.${key} --mode: 流任務:`stream` 批任務:batch
舉個例子,設置批任務的起停時間:
set project.table.batch.startTime='2020-11-11 00:00:00'; set project.table.batch.endTime='2020-11-12 00:00:00';
第二種是在Dataphin的任務配置實時和離線模式分別任務參數的方式是利用任務參數進行替換。
?
?
實時質量監控
Dataphin實時數據質量主要面向開發者,針對產品中實時產出的數據表,通過對產出結果進行數據質量分析和校驗,來保障數據的最終有效與準確。Dataphin支持統計趨勢監測、實時多鏈路對比、實時離線數據核對。
雙十一大屏后的Dataphin
回到文章開始的天貓雙十一,了解了Dataphin平臺特有的能力,我們來具體拆解Dataphin為什么能支撐天貓雙十一的實時數據大屏。
快
基于以上能力,在雙十一大屏的支持上,盡管業務玩法很多,需求井噴,仍然僅以2人便支撐上百需求。
穩
Dataphin提供任務監控及數據質量監控全方位保障任務穩定,快速發現問題;基于模版的主備多鏈路在異常發生時可以秒級切換,快速止血;基于實時任務血緣,快速定位問題根因;基于調試、測試、細粒度資源配置,快速驗證并修復,真正做到1min發現、5min定位、10min解決。
準
基于流批一體的能力,真正做到代碼統一,口徑統一,存儲統一,數據服務接口統一,研發提效的同時,保證數據一致。
未來規劃
在即將發布的Flink VVP(Ververica Platform)適配版本將支持新的VVR引擎,也將在未來支持開源Flink引擎已支持更多的部署環境。Dataphin也將持續提升實時研發的能力和體驗,幫助企業降低實時研發的門檻,挖掘更多的場景,獲得實時數據帶來的業務價值!
原文鏈接
本文為阿里云原創內容,未經允許不得轉載。?
總結
以上是生活随笔為你收集整理的【产品动态】解读Dataphin流批一体的实时研发的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 面对DNS劫持,只能坐以待毙吗?
- 下一篇: Effective Java 在工作中的