華為雲數智融合驅動智慧出行:T3 出行的 Lakehouse 實踐

語言: CN / TW / HK

T3 出行是一家致力於成為能夠為使用者提供“安全、便捷、品質”出行服務的科技創新型企業。截止 2022 年 8 月,T3 出行登陸全國 92 個城市,累計註冊使用者超 1.1 億,單日訂單峰值破 300 萬單。國內權威第三方資料機構 QuestMobile 釋出的 2021 中國移動網際網路秋季大報告顯示,T3 出行月度活躍使用者(MAU)已經突破 1200 萬。

然而隨著業務規模快速增長,T3 出行在支撐海量的資料儲存與計算時面臨著:傳統數倉難以解決出行場景的“長尾支付”、TCO(Total Cost of Ownership,總體擁有成本)居高不下、運維成本高且擴充套件性受限等問題。

為滿足業務發展,T3 出行將最初的傳統數倉架構改造成業界新興的 Lakehouse 架構,他們的研發團隊在這個過程中走了不少“捷徑”,像華為雲數智融合產品就為其構建 Lakehouse 提供了不少助力。

在 8 月 16 日主題為“數智融合,雲上創新”的華為雲大咖說數智融合專場中,T3 出行大資料平臺研發負責人楊華分享了 T3 出行的 Lakehouse 架構與實踐:

2020 年初 Databricks 在一篇論文中正式提出了“Lakehouse”的概念,同期三大開源資料湖框架(Apache Hudi/Iceberg/DletaLake OS 版)逐步進入大家的視野。由於 Databricks 的 Lakehouse 是以 DeltaLake 作為核心 Table Format,因此,在做 Lakehouse 架構構建選型時,這三個框架便成為了優先選項。

在過去的兩年裡,圍繞這三個資料湖框架構建的 Lakehouse 架構正在被越來越多的企業接受並付諸實踐。Lakehouse(國內常稱之為“湖倉一體”) 是一個存算分離的架構,儲存與計算解耦,各自 scale-out。從儲存層來看,藉助於糾刪碼技術,物件儲存使得資料的 TCO 與成本得到進一步的降低。從計算層來看,藉助於彈性算力,計算資源從以前的長期租賃,變成了按需使用、按需計費的方式。

T3 出行由於從早期就參與 Apache Hudi 社群的原始碼貢獻,因此很早就看到了新興的這些 Table Format 的優勢並開始探索、實踐 Lakehouse 架構。藉助於華為雲 FusionInsight 整體託管能力及其 OBS 物件儲存,T3 出行的 Lakehouse 得以穩健地支撐業務的快速增長。

T3 出行的 Lakehouse 架構同時支撐了面向資料分析的 BI 場景以及面向資料智慧的 AI 場景,不僅使 TCO 相比技改前降低 20% 以上,更解決了傳統數倉難以支援分鐘級資料攝取等難題。以一套架構體系支撐了 OLAP、AD-Hoc 查詢、離線與準實時的資料加工、機器學習訓練等 BI、AI 的典型場景,有效地支撐了“數智融合”。

從上面的整體架構圖中,我們可以看到:

  • 資料層:是一個以物件儲存為核心的中心化的儲存層,藉助於低成本、接近無限橫向擴充套件且支援冷熱溫分層儲存等諸多優勢,再結合 Hudi Table Format 在事務語義、檔案佈局智慧管理、多模索引能力、版本化的資料查詢等諸多特性的加持,讓它成為了 T3 海量資料儲存的基礎設施;

  • 計算層:在 BI、AI 方向下各細分的場景有很多的框架/引擎選型來滿足需要。而不同的引擎擁有異構的計算模式與負載,基於資料層中心化的儲存,計算層得以跟資料層完全解耦,在此基礎上,可以依據不同的計算模式與負載,將他們在物理上拆分為一個個獨立的小叢集,從而使得計算層各種場景擁有絕對的獨立性。

在計算與儲存之間引入的 Hudi Table Format,是 Lakehouse 架構的核心,起到“承上啟下”的作用。目前國內的主流雲廠商都在圍繞它封裝一些開箱即用的能力,如華為雲數智融合平臺就是其中之一,除此之外,華為雲數智融合平臺還提供了更進一步的“融合”能力:

  • 三層分離:通過儲存-快取-記憶體三層分離,兼顧儲存成本和計算效能,讓價效比更高,計算更靈活。

  • 統一元資料:打破原有大資料、數倉、AI 的資料孤島,將資料目錄、資料許可權、事務一致性等能力統一到一箇中心點,實現一數多用,讓一份資料在多個引擎間自由流動共享,避免資料來回遷移。

  • DataOps 和 MLOps 融合:企業不同部門、不同角色可以以擅長的方式敏捷用數。資料工程師可以使用熟悉的工具來呼叫 AI 能力,使大資料開發和 AI 開發協同起來。例如,讓資料工程師用 SQL、Python 互動式 Notebook 做資料清洗、特徵工程、模型訓練,幾行程式碼就能直接呼叫平臺內預置的 AI 演算法,使資料和模型開發週期從天級降為分鐘級。

  • 全流程的自動化和智慧化:華為雲數智融合平臺將人工智慧演算法模型應用到資料整合、資料質量、資料建模、資料安全、資料訪問控制、資料關聯、資料關係和資料洞察的資料全生命週期治理。讓繁重的資料治理變得簡單。

而這一切都是因為 Apache Hudi 的生態很豐富(見下圖),(左側)不僅能夠支援多種多樣的 Data Sources 並將資料從其中攝取到 Hudi 表中來。(右側)而且最底層能夠支援主流的、開源的及相容 HDFS 介面的商業化儲存系統。而在儲存系統之上的是 Hudi 資料湖框架核心,它支援基於主流計算引擎如 Spark/Flink 以對資料進行 ETL 的能力。在更上層,可以基於 Hudi 框架所對映的表來進行查詢與構建資料處理 Pipeline。

下面介紹一下,T3 出行在 Lakehouse 架構下 BI 方向的幾個實踐。

第一個實踐是資料入湖。即將業務的關鍵資料(尤其指核心關係型資料庫中“會產生”增量變更的資料)攝取到資料湖中。全量入湖階段採用 Spark 將業務庫表中的存量資料一次性攝取到 Hudi 表中。增量入湖則主要將業務庫的變更資料,藉助於 Binlog CDC 的能力,先將 Binlog 採集到 Kafka,然後通過 Flink 對分庫分表的資料做一層輕粒度的匯聚後通過 Spark 或者 Flink 再將資料增量地回放到資料湖中。

全量與增量在實際操作過程中沒辦法無縫銜接,而 Hudi 支援的 Upserts 能力便解決了這個問題,它允許全量與增量銜接過程中的部分重複資料可以被正確地回放到 Hudi 表中並保證了“最終一致性”的語義。

第二個實踐是在湖倉中的 ETL。(見下圖)最下面的儲存層是一些 Hudi 表,這裡由於 Hudi 表支援增量查詢,因此很多派生表都可以基於原始表來驅動增量 ETL。而在計算層,主要的引擎是 Spark SQL,考慮到湖倉中的表被分層分域,因此 ETL 的資源與作業也需要相應的隔離。經過充分地選型,T3 出行使用了 Apache Kyuubi(Incubating)  框架來解決多租戶間的資源隔離問題。

第三個實踐是關於湖倉中的 OLAP 以及 AD Hoc 查詢。從下圖我們看到,整體的分層與上圖中的 ETL 類似。T3 出行仍然選擇將 Apache Kyuubi(Incubating) 作為引擎層之上的 SQL Gateway,並在此之上進行了一些能力擴充套件。在引擎層,為了支援多樣化的查詢分析需求,除 Spark 之外,又引入了 Presto、Doris 等查詢引擎。Kyuubi 除了對不同租戶的資源進行了有效的隔離外,對於同一租戶內的不同使用者,又可以很好地 share 上下文,從而避免了重複建立的時間與資源開銷。

在 AI 方向,T3 出行的很多業務早就實現了演算法驅動決策,而這些能力都構建在以 Lakehouse 為基礎的機器學習平臺上,因此也積累了不少實踐。

在計算資源管理方面,藉助 Kuberentes 面向不同的訓練場景,抽象出了 CPU 叢集、GPU 叢集,在上層使用微眾開源的 Prophecis 的機器學習平臺來做資源及機器學習環境的管理,內建了一些開箱即用的演算法庫及相關環境。最上層提供了 Jupyter 整合開發環境,將演算法與資料分析師從環境等問題中解脫出來,從而專注於業務開發。

在資料管理方面,構建了面向資料與 AI 的一體化的資料管理體系。整體上,將資料劃分為非結構化的資料與結構化的資料兩大類:

  • 對於非結構化的資料,如車載終端的音視訊資料,採用基於目錄的形式進行管理;

  • 對於結構化的資料(含部分半結構化),統一以“表”的形式定義 Schema 來進行管理。

T3 出行在這兩大類資料基礎上,採集描述資訊以形成一體化的元資料。之後再對資料統一進行標註、打標籤等治理工作,從而形成有價值的資料資產。

由於絕大部分的資料都可以抽象為“表”來進行管理,而他們都基於 Hudi 這一“表格式”。T3 出行在機器學習平臺中引入了 Feature Store,Feature Store 的 offline store 的表格式即為 Hudi。藉助於 Hudi 一次“提交”可以看作一個“版本”的機制,使特徵資料得以被版本化地管理起來。在這樣的 Feature Store 基礎上結合 CI/CD 體系可以很好地實現業界流行的 MLOps,目前 T3 出行正在這個方向上深度探索。

T3 出行構建的 Lakehouse 架構很好地支撐了當下業務的發展,但其實還有很多需要繼續調優的地方。比如,在計算層追求更好的彈性往雲原生的方向快速前進、在計算與儲存層之間引入高效的快取機制來降低存算分離帶來的效能衰減、統一元資料體系等。

而華為雲已經在這些方面做了許多技術探索並形成了能力層與產品化的沉澱。T3 出行將持續與華為雲一同合作與探索,通過華為雲數智融合平臺,更好地實現資料與智慧的融合與統一,共同賦能智慧出行。 我們有理由相信,在華為雲數智融合平臺的加持下,會有越來越多的企業能夠通過 AI 重新定義資料治理,讓資料高效激發出更多 AI 創新能力。