-更多關于數智化轉型、資料中台内容請加入 阿裡雲資料中台交流群—數智俱樂部 和關注官方微信公總号(文末掃描二維碼或 點此加入
)
-阿裡雲資料中台官網
https://dp.alibaba.com/index背景
每當雙11全球購物狂歡節鐘聲響起,上千萬使用者湧入天貓、淘寶,流暢的購物體驗背後是阿裡工程師用技術打造出的營地,支撐了每年雙11所帶來的資料洪峰。2020年11月1日至11月12日0:00,天貓“雙11”累計總交易額達4982億元,物流訂單總量達到23.21億單。這一切的背後都離不開實時計算技術。
Dataphin作為一款企業級智能資料建構與管理産品,具備全鍊路實時研發能力,從2019年開始支撐集團天貓雙11的實時計算需求。就以下文介紹Dataphin實時計算的能力。
傳統的數倉架構
在數倉建設過程中,一般來說都是先建設離線數倉,同時圍繞着離線資料建構應用。然後随着業務的發展或者體驗的優化,再建設實時計算的鍊路去提升資料的時效性。
在這個過程中相似的代碼寫兩遍就難以避免,還會出現實時和離線口徑不一緻,分别維護成本增加等各種各樣的問題。
傳統的數倉架構流與批從存儲計算中分離帶來以下的問題:
- 效率問題:流批底層資料模型不一緻,導緻應用層做大量的拼接邏輯(同比、環比、二次加工等),搭建效率低且容易出錯
- 品質問題:一個業務邏輯,兩個引擎兩套代碼,SQL邏輯不能複用,資料一緻性和品質問題難以保證
- 成本問題:
- 流批存儲系統隔離(面向不同寫入場景),提供的資料服務不一,維護成本高
- 手工建資料同步任務,開發成本/存儲成本高(兩份)
- 批處理&流處理叢集無法做到錯峰,資源使用率低
Dataphin流批一體優勢
為解決傳統數倉架構的存儲計算分離的問題,有了“流批一體”的思路:
- 流批存儲透明化,查詢邏輯完全一緻,應用端接入成本大幅降低,點查/OLAP分析統一支援
- 服務層統一存儲,無需手工同步,無重複存儲
- 一套代碼,兩種計算模式,邏輯統一,靈活切換,研發效率大幅提升
- 流批計算資源混部,資源使用率提升
Dataphin在Flink流批一體的能力之上額外提供了更多的平台能力,如資料源管理、中繼資料管理、資産血緣、資産品質控制、預編譯、調試等能力:
- 開發生産隔離:提供開發環境和生産環境隔離,保證開發環境開發的業務代碼和生産互相之間不幹擾
- 中繼資料管理:各系統元件包括資料源、元表、UDX等具備權限控制功能,敏感型配置資訊加密保護。支援資料源敏感字段通路訂閱。元表、函數、資源等全部單元化可視化的管理,支援跨項目鑒權(字段級)調用,讓使用者聚焦業務邏輯。
- 流批一體:流批存儲層的統一管理,實作模型層統一,流批代碼統一、通過流批各自專屬配置,生産獨立有協同的額排程執行個體
- 研發提效:
- 提供了預編譯的能力,提供文法校驗、權限校驗、字段血緣提取的功能;
- 容器化調試,支援上傳自定義資料或直接消費真實生産資料用來觀察作業運作、檢查各個節點的輸出結果
- 支援中繼資料檢索,作業依賴、字段血緣的可視化探查
- 穩定性及品質保障:
- 支援流量門檻值設定,防止計算資源過度競争,避免下遊系統過載
- 支援實時元表品質監測,可配置統計趨勢監測、實時多鍊路對比、實時離線資料核對。
開發生産隔離
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支援統計趨勢監測、實時多鍊路對比、實時離線資料核對。
- 統計趨勢監測:趨勢監測指的是基于資料趨勢變化以及專家經驗以捕獲波動異常的監測方式;如 實時GMV的趨勢陡增有些異常
- 實時多鍊路趨勢對比:實時多鍊路指的是在實時計算的場景中,由于資料的恢複成本較高,無法快速從起點重新計算,是以需要使用多個計算鍊路,當發生計算異常時,自動/手動切換計算鍊路,是一種用資源換穩定的政策,當有重大的保障業務時,往往會采用該種類型;如每年雙十一大屏都會采用多鍊路保障。
- 實時離線核對:實時離線核對,是保障實時資料常用的一種措施,由于實時計算處于一種持續運算狀态,計算時間持久且受資源與源資料的擾動較大;離線資料在邏輯、資料複用性方面可以被更好地操作,是以,為了保障實時資料的準确性,常用離線資料與實時資料進行對比;如每年雙十一前都會使用離線資料對實時資料進行校驗;
雙十一大屏後的Dataphin
回到文章開始的天貓雙十一,了解了Dataphin平台特有的能力,我們來具體拆解Dataphin為什麼能支撐天貓雙十一的實時資料大屏。
快
- Dataphin為實時提供研發、調試、測試、運維全鍊路一站式服務,極大降低使用者開發門檻;
- 同時提供統一進制資料管理,中繼資料僅需初始化一次,輕松做到一次建表,多次引用,讓開發聚焦業務邏輯,大幅度提升研發效率和體驗;
- 另外有資料研發經曆的同學都有這樣的體會,很多資料口徑都驚人的類似,甚至有些隻是輸入輸出表不同,典型的場景比如主備鍊路,針對這種場景我們提供了模版研發的能力,相同邏輯封裝在模版中,差異邏輯通過模版參數展現,新任務僅需引用模版配置模版參數即可,極大提升研發效率的同時也降低了口徑維護成本。
基于以上能力,在雙十一大屏的支援上,盡管業務玩法很多,需求井噴,仍然僅以2人便支撐上百需求。
穩
Dataphin提供任務監控及資料品質監控全方位保障任務穩定,快速發現問題;基于模版的主備多鍊路在異常發生時可以秒級切換,快速止血;基于實時任務血緣,快速定位問題根因;基于調試、測試、細粒度資源配置,快速驗證并修複,真正做到1min發現、5min定位、10min解決。
準
基于流批一體的能力,真正做到代碼統一,口徑統一,存儲統一,資料服務接口統一,研發提效的同時,保證資料一緻。
未來規劃
在即将釋出的Flink VVP(Ververica Platform)适配版本将支援新的VVR引擎,也将在未來支援開源Flink引擎已支援更多的部署環境。Dataphin也将持續提升實時研發的能力和體驗,幫助企業降低實時研發的門檻,挖掘更多的場景,獲得實時資料帶來的業務價值!
資料中台是企業數智化的必經之路,阿裡巴巴認為資料中台是集方法論、工具、組織于一體的,“快”、“準”、“全”、“統”、“通”的智能大資料體系。
目前正通過阿裡雲對外輸出系列解決方案,包括
通用資料中台解決方案、
零售資料中台解決方案 金融資料中台解決方案 網際網路資料中台解決方案 政務資料中台解決方案等細分場景。
其中阿裡雲資料中台産品矩陣是以Dataphin為基座,以Quick系列為業務場景化切入,包括:
- - Dataphin,一站式、智能化的資料建構及管理平台 ;
- - Quick BI,随時随地 智能決策
- - Quick Audience,全方位洞察、全域營銷、智能增長
- - Quick A+, 跨多端全域應用體驗分析及洞察的一站式資料化營運平台
- - Quick Stock, 智能貨品營運平台
- - Quick Decision,智能決策平台
官方站點:
資料中台官網
https://dp.alibaba.com釘釘溝通群和微信公衆号