華為云數(shù)智融合驅(qū)動(dòng)智慧出行:T3出行的Lakehouse實(shí)踐

T3 出行是一家致力于成為能夠?yàn)橛脩籼峁鞍踩?、便捷、品質(zhì)”出行服務(wù)的科技創(chuàng)新型企業(yè)。截止 2022 年 8 月,T3 出行登陸全國(guó) 92 個(gè)城市,累計(jì)注冊(cè)用戶超 1.1 億,單日訂單峰值破 300 萬(wàn)單。國(guó)內(nèi)權(quán)威第三方數(shù)據(jù)機(jī)構(gòu) QuestMobile 發(fā)布的 2021 中國(guó)移動(dòng)互聯(lián)網(wǎng)秋季大報(bào)告顯示,T3出行月度活躍用戶(MAU)已經(jīng)突破 1200 萬(wàn)。

然而隨著業(yè)務(wù)規(guī)??焖僭鲩L(zhǎng),T3 出行在支撐海量的數(shù)據(jù)存儲(chǔ)與計(jì)算時(shí)面臨著:傳統(tǒng)數(shù)倉(cāng)難以解決出行場(chǎng)景的“長(zhǎng)尾支付”、TCO(Total Cost of Ownership,總體擁有成本)居高不下、運(yùn)維成本高且擴(kuò)展性受限等問(wèn)題。

為滿足業(yè)務(wù)發(fā)展,T3 出行將最初的傳統(tǒng)數(shù)倉(cāng)架構(gòu)改造成業(yè)界新興的 Lakehouse 架構(gòu),他們的研發(fā)團(tuán)隊(duì)在這個(gè)過(guò)程中走了不少“捷徑”,像華為云數(shù)智融合產(chǎn)品就為其構(gòu)建 Lakehouse 提供了不少助力。

在 8 月 16 日主題為“數(shù)智融合,云上創(chuàng)新”的華為云大咖說(shuō)數(shù)智融合專場(chǎng)中,T3 出行大數(shù)據(jù)平臺(tái)研發(fā)負(fù)責(zé)人楊華分享了 T3 出行的 Lakehouse 架構(gòu)與實(shí)踐:

2020年初 Databricks 在一篇論文中正式提出了“Lakehouse”的概念,同期三大開(kāi)源數(shù)據(jù)湖框架(Apache Hudi/Iceberg/DletaLake OS版)逐步進(jìn)入大家的視野。由于 Databricks 的 Lakehouse 是以DeltaLake作為核心 Table Format,因此,在做 Lakehouse 架構(gòu)構(gòu)建選型時(shí),這三個(gè)框架便成為了優(yōu)先選項(xiàng)。

在過(guò)去的兩年里,圍繞這三個(gè)數(shù)據(jù)湖框架構(gòu)建的 Lakehouse 架構(gòu)正在被越來(lái)越多的企業(yè)接受并付諸實(shí)踐。 Lakehouse(國(guó)內(nèi)常稱之為“湖倉(cāng)一體”) 是一個(gè)存算分離的架構(gòu),存儲(chǔ)與計(jì)算解耦,各自 scale-out。從存儲(chǔ)層來(lái)看,借助于糾刪碼技術(shù),對(duì)象存儲(chǔ)使得數(shù)據(jù)的 TCO 與成本得到進(jìn)一步的降低。從計(jì)算層來(lái)看,借助于彈性算力,計(jì)算資源從以前的長(zhǎng)期租賃,變成了按需使用、按需計(jì)費(fèi)的方式。

T3 出行由于從早期就參與 Apache Hudi 社區(qū)的源碼貢獻(xiàn),因此很早就看到了新興的這些 Table Format 的優(yōu)勢(shì)并開(kāi)始探索、實(shí)踐 Lakehouse 架構(gòu)。借助于華為云 FusionInsight 整體托管能力及其 OBS 對(duì)象存儲(chǔ),T3 出行的 Lakehouse 得以穩(wěn)健地支撐業(yè)務(wù)的快速增長(zhǎng)。

T3 出行的 Lakehouse 架構(gòu)同時(shí)支撐了面向數(shù)據(jù)分析的 BI 場(chǎng)景以及面向數(shù)據(jù)智能的 AI 場(chǎng)景,不僅使 TCO 相比技改前降低 20% 以上,更解決了傳統(tǒng)數(shù)倉(cāng)難以支持分鐘級(jí)數(shù)據(jù)攝取等難題。以一套架構(gòu)體系支撐了OLAP、AD-Hoc 查詢、離線與準(zhǔn)實(shí)時(shí)的數(shù)據(jù)加工、機(jī)器學(xué)習(xí)訓(xùn)練等BI、AI的典型場(chǎng)景,有效地支撐了“數(shù)智融合”。

從上面的整體架構(gòu)圖中,我們可以看到:

· 數(shù)據(jù)層:是一個(gè)以對(duì)象存儲(chǔ)為核心的中心化的存儲(chǔ)層,借助于低成本、接近無(wú)限橫向擴(kuò)展且支持冷熱溫分層存儲(chǔ)等諸多優(yōu)勢(shì),再結(jié)合 Hudi Table Format 在事務(wù)語(yǔ)義、文件布局智能管理、多模索引能力、版本化的數(shù)據(jù)查詢等諸多特性的加持,讓它成為了 T3 海量數(shù)據(jù)存儲(chǔ)的基礎(chǔ)設(shè)施;

· 計(jì)算層:在 BI、AI 方向下各細(xì)分的場(chǎng)景有很多的框架/引擎選型來(lái)滿足需要。而不同的引擎擁有異構(gòu)的計(jì)算模式與負(fù)載,基于數(shù)據(jù)層中心化的存儲(chǔ),計(jì)算層得以跟數(shù)據(jù)層完全解耦,在此基礎(chǔ)上,可以依據(jù)不同的計(jì)算模式與負(fù)載,將他們?cè)谖锢砩喜鸱譃橐粋€(gè)個(gè)獨(dú)立的小集群,從而使得計(jì)算層各種場(chǎng)景擁有絕對(duì)的獨(dú)立性。

在計(jì)算與存儲(chǔ)之間引入的 Hudi Table Format,是 Lakehouse 架構(gòu)的核心,起到“承上啟下”的作用。目前國(guó)內(nèi)的主流云廠商都在圍繞它封裝一些開(kāi)箱即用的能力,如華為云數(shù)智融合平臺(tái)就是其中之一,除此之外,華為云數(shù)智融合平臺(tái)還提供了更進(jìn)一步的“融合”能力:

· 三層分離:通過(guò)存儲(chǔ) - 緩存 - 內(nèi)存三層分離,兼顧存儲(chǔ)成本和計(jì)算性能,讓性價(jià)比更高,計(jì)算更靈活。

· 統(tǒng)一元數(shù)據(jù):打破原有大數(shù)據(jù)、數(shù)倉(cāng)、AI 的數(shù)據(jù)孤島,將數(shù)據(jù)目錄、數(shù)據(jù)權(quán)限、事務(wù)一致性等能力統(tǒng)一到一個(gè)中心點(diǎn),實(shí)現(xiàn)一數(shù)多用,讓一份數(shù)據(jù)在多個(gè)引擎間自由流動(dòng)共享,避免數(shù)據(jù)來(lái)回遷移。

· DataOps 和 MLOps 融合:企業(yè)不同部門、不同角色可以以擅長(zhǎng)的方式敏捷用數(shù)。數(shù)據(jù)工程師可以使用熟悉的工具來(lái)調(diào)用 AI 能力,使大數(shù)據(jù)開(kāi)發(fā)和 AI 開(kāi)發(fā)協(xié)同起來(lái)。例如,讓數(shù)據(jù)工程師用 SQL、Python 交互式 Notebook 做數(shù)據(jù)清洗、特征工程、模型訓(xùn)練,幾行代碼就能直接調(diào)用平臺(tái)內(nèi)預(yù)置的 AI 算法,使數(shù)據(jù)和模型開(kāi)發(fā)周期從天級(jí)降為分鐘級(jí)。

· 全流程的自動(dòng)化和智能化:華為云數(shù)智融合平臺(tái)將人工智能算法模型應(yīng)用到數(shù)據(jù)集成、數(shù)據(jù)質(zhì)量、數(shù)據(jù)建模、數(shù)據(jù)安全、數(shù)據(jù)訪問(wèn)控制、數(shù)據(jù)關(guān)聯(lián)、數(shù)據(jù)關(guān)系和數(shù)據(jù)洞察的數(shù)據(jù)全生命周期治理。讓繁重的數(shù)據(jù)治理變得簡(jiǎn)單。

而這一切都是因?yàn)锳pache Hudi 的生態(tài)很豐富(見(jiàn)下圖),(左側(cè))不僅能夠支持多種多樣的Data Sources 并將數(shù)據(jù)從其中攝取到 Hudi 表中來(lái)。(右側(cè))而且最底層能夠支持主流的、開(kāi)源的及兼容 HDFS 接口的商業(yè)化存儲(chǔ)系統(tǒng)。而在存儲(chǔ)系統(tǒng)之上的是 Hudi 數(shù)據(jù)湖框架內(nèi)核,它支持基于主流計(jì)算引擎如 Spark/Flink 以對(duì)數(shù)據(jù)進(jìn)行 ETL 的能力。在更上層,可以基于 Hudi 框架所映射的表來(lái)進(jìn)行查詢與構(gòu)建數(shù)據(jù)處理 Pipeline。

下面介紹一下,T3 出行在 Lakehouse 架構(gòu)下 BI 方向的幾個(gè)實(shí)踐。

第一個(gè)實(shí)踐是數(shù)據(jù)入湖。即將業(yè)務(wù)的關(guān)鍵數(shù)據(jù)(尤其指核心關(guān)系型數(shù)據(jù)庫(kù)中“會(huì)產(chǎn)生”增量變更的數(shù)據(jù))攝取到數(shù)據(jù)湖中。全量入湖階段采用Spark將業(yè)務(wù)庫(kù)表中的存量數(shù)據(jù)一次性攝取到 Hudi 表中。增量入湖則主要將業(yè)務(wù)庫(kù)的變更數(shù)據(jù),借助于 Binlog CDC 的能力,先將 Binlog 采集到 Kafka,然后通過(guò) Flink對(duì)分庫(kù)分表的數(shù)據(jù)做一層輕粒度的匯聚后通過(guò) Spark 或者 Flink 再將數(shù)據(jù)增量地回放到數(shù)據(jù)湖中。

全量與增量在實(shí)際操作過(guò)程中沒(méi)辦法無(wú)縫銜接,而Hudi支持的 Upserts 能力便解決了這個(gè)問(wèn)題,它允許全量與增量銜接過(guò)程中的部分重復(fù)數(shù)據(jù)可以被正確地回放到 Hudi 表中并保證了“最終一致性”的語(yǔ)義。

第二個(gè)實(shí)踐是在湖倉(cāng)中的 ETL。(見(jiàn)下圖)最下面的存儲(chǔ)層是一些 Hudi 表,這里由于 Hudi 表支持增量查詢,因此很多派生表都可以基于原始表來(lái)驅(qū)動(dòng)增量 ETL。而在計(jì)算層,主要的引擎是 Spark SQL,考慮到湖倉(cāng)中的表被分層分域,因此 ETL 的資源與作業(yè)也需要相應(yīng)的隔離。經(jīng)過(guò)充分地選型,T3 出行使用了 Apache Kyuubi(Incubating)  框架來(lái)解決多租戶間的資源隔離問(wèn)題。


第三個(gè)實(shí)踐是關(guān)于湖倉(cāng)中的 OLAP 以及 AD Hoc 查詢。從下圖我們看到,整體的分層與上圖中的ETL 類似。T3 出行仍然選擇將 Apache Kyuubi(Incubating) 作為引擎層之上的 SQL Gateway,并在此之上進(jìn)行了一些能力擴(kuò)展。在引擎層,為了支持多樣化的查詢分析需求,除 Spark 之外,又引入了 Presto、Doris 等查詢引擎。Kyuubi 除了對(duì)不同租戶的資源進(jìn)行了有效的隔離外,對(duì)于同一租戶內(nèi)的不同用戶,又可以很好地 share 上下文,從而避免了重復(fù)創(chuàng)建的時(shí)間與資源開(kāi)銷。

在 AI 方向,T3 出行的很多業(yè)務(wù)早就實(shí)現(xiàn)了算法驅(qū)動(dòng)決策,而這些能力都構(gòu)建在以 Lakehouse 為基礎(chǔ)的機(jī)器學(xué)習(xí)平臺(tái)上,因此也積累了不少實(shí)踐。

在計(jì)算資源管理方面,借助 Kuberentes 面向不同的訓(xùn)練場(chǎng)景,抽象出了 CPU 集群、GPU 集群,在上層使用微眾開(kāi)源的 Prophecis 的機(jī)器學(xué)習(xí)平臺(tái)來(lái)做資源及機(jī)器學(xué)習(xí)環(huán)境的管理,內(nèi)置了一些開(kāi)箱即用的算法庫(kù)及相關(guān)環(huán)境。最上層提供了 Jupyter 集成開(kāi)發(fā)環(huán)境,將算法與數(shù)據(jù)分析師從環(huán)境等問(wèn)題中解脫出來(lái),從而專注于業(yè)務(wù)開(kāi)發(fā)。

在數(shù)據(jù)管理方面,構(gòu)建了面向數(shù)據(jù)與AI的一體化的數(shù)據(jù)管理體系。整體上,將數(shù)據(jù)劃分為非結(jié)構(gòu)化的數(shù)據(jù)與結(jié)構(gòu)化的數(shù)據(jù)兩大類:

· 對(duì)于非結(jié)構(gòu)化的數(shù)據(jù),如車載終端的音視頻數(shù)據(jù),采用基于目錄的形式進(jìn)行管理;

· 對(duì)于結(jié)構(gòu)化的數(shù)據(jù)(含部分半結(jié)構(gòu)化),統(tǒng)一以“表”的形式定義 Schema 來(lái)進(jìn)行管理。

T3 出行在這兩大類數(shù)據(jù)基礎(chǔ)上,采集描述信息以形成一體化的元數(shù)據(jù)。之后再對(duì)數(shù)據(jù)統(tǒng)一進(jìn)行標(biāo)注、打標(biāo)簽等治理工作,從而形成有價(jià)值的數(shù)據(jù)資產(chǎn)。

由于絕大部分的數(shù)據(jù)都可以抽象為“表”來(lái)進(jìn)行管理,而他們都基于 Hudi 這一“表格式”。T3 出行在機(jī)器學(xué)習(xí)平臺(tái)中引入了 Feature Store,F(xiàn)eature Store 的 offline store 的表格式即為 Hudi。借助于 Hudi 一次“提交”可以看作一個(gè)“版本”的機(jī)制,使特征數(shù)據(jù)得以被版本化地管理起來(lái)。在這樣的 Feature Store 基礎(chǔ)上結(jié)合 CI/CD 體系可以很好地實(shí)現(xiàn)業(yè)界流行的 MLOps,目前 T3 出行正在這個(gè)方向上深度探索。

T3 出行構(gòu)建的 Lakehouse 架構(gòu)很好地支撐了當(dāng)下業(yè)務(wù)的發(fā)展,但其實(shí)還有很多需要繼續(xù)調(diào)優(yōu)的地方。比如,在計(jì)算層追求更好的彈性往云原生的方向快速前進(jìn)、在計(jì)算與存儲(chǔ)層之間引入高效的緩存機(jī)制來(lái)降低存算分離帶來(lái)的性能衰減、統(tǒng)一元數(shù)據(jù)體系等。

而華為云已經(jīng)在這些方面做了許多技術(shù)探索并形成了能力層與產(chǎn)品化的沉淀。T3出行將持續(xù)與華為云一同合作與探索,通過(guò)華為云數(shù)智融合平臺(tái),更好地實(shí)現(xiàn)數(shù)據(jù)與智能的融合與統(tǒng)一,共同賦能智慧出行。 我們有理由相信,在華為云數(shù)智融合平臺(tái)的加持下,會(huì)有越來(lái)越多的企業(yè)能夠通過(guò) AI 重新定義數(shù)據(jù)治理,讓數(shù)據(jù)高效激發(fā)出更多 AI 創(chuàng)新能力。

極客網(wǎng)企業(yè)會(huì)員

免責(zé)聲明:本網(wǎng)站內(nèi)容主要來(lái)自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁(yè)或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書面權(quán)利通知或不實(shí)情況說(shuō)明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開(kāi)相關(guān)鏈接。

2022-09-16
華為云數(shù)智融合驅(qū)動(dòng)智慧出行:T3出行的Lakehouse實(shí)踐
T3 出行是一家致力于成為能夠?yàn)橛脩籼峁?ldquo;安全、便捷、品質(zhì)”出行服務(wù)的科技創(chuàng)新型企業(yè)。截止 2022 年 8 月,T3 出行登陸全國(guó) 92 個(gè)城市,累計(jì)注冊(cè)用戶超 1.1 億,單日訂單峰值破 300 萬(wàn)單。國(guó)內(nèi)權(quán)威第三方數(shù)據(jù)機(jī)構(gòu) QuestMobile 發(fā)布的 2021 中國(guó)移動(dòng)互聯(lián)網(wǎng)秋季大報(bào)...

長(zhǎng)按掃碼 閱讀全文