“瓜子二手車直賣網,沒有中間商賺差價”,這句深入人心的廣告語掩蓋了這家公司的技術實力和探索。據悉,這是車好多大資料技術團隊第一次對外技術採訪,淺談大資料架構及對雲平臺大資料服務選型的思考,有共性也有差異,箇中原因值得探討。
提起車好多集團,可能有些人會感到陌生,但提起瓜子二手車、毛豆新車,想必都十分熟悉,膾炙人口的廣告語使得大家忽視了這家公司的技術能力。車好多集團旗下擁有瓜子二手車、毛豆新車、車速拍與瓜子養車四大品牌,協同為使用者提供新車、二手車交易服務、汽車金融、售後保障、汽車維修保養等全產業鏈服務。
對汽車而言,大部分使用者目前的消費習慣傾向於線上看車、諮詢、預約,線下進行交易,這對車好多集團的大資料架構搭建提出了諸多挑戰,比如線上與線下資料打通、海量資料分析、利用資料輔助智慧化決策等。InfoQ 有幸採訪到車好多集團旗下瓜子二手車的大資料及資料倉儲方面多位技術工程師,就上述問題展開探討並瞭解瓜子大資料技術選型歷程。
瓜子大資料架構
雖然瓜子只是一家成立 3 年多的創業公司,但業務的快速發展讓這家公司在大資料和資料倉儲建設方面投入了巨大精力。從最初的四臺服務機器到如今的五百多臺機器,毛豆供應鏈及基礎架構技術總監林正位坦言,瓜子大資料平臺建設早期更多是需求和問題驅動:資料分析需求,效率不高、穩定性較差等問題讓技術團隊不得不快速演進迭代。
在資料平臺層面,車好多資料平臺技術負責人總監劉昊植坦言,早期瓜子存在四大痛點:一是其自身的業務流程過於複雜,導致指標體系的建設很難達成一致;資料倉儲分層定義不清晰,按需構建而沒有完全契合數倉建模方法論;定製化開發的 BI 平臺難以靈活配置各業務線和事業群所需的資料視覺化能力;應用多呈點狀分佈,沒有形成一站式智慧化資料開發平臺。
起初,瓜子大資料架構主要為了滿足業務方 BI 報表相關的查詢訴求,如今幾乎承載了瓜子大資料的所有需求,大資料高階技術專家彭超表示,目前的大資料架構主要支撐了報表相關服務;使用者畫像;使用者增長、業務增長相關資料支援;所有業務線的訊息佇列;瓜子大腦,也就是人工智慧相關訴求。總體來看,瓜子大資料架構主要用於支撐自有業務基於資料的精細化運營。
其中,每一個環節又都存在需要解決的關鍵問題。舉例來說,瓜子目前的 OLAP 需求非常強烈,運營和銷售人員需要了解當天的實時資料和明細資料,這就需要瓜子 BI 具備接到報表請求後秒級響應的能力。此外,如開篇所言,瓜子的業務特點決定其需要打通線上和線下資料,將全鏈路資料化到線上,通過統一的資料處理模型對資料進行分析。
在架構層面,瓜子大資料也存在一些痛點需要解決,比如最初基於 Hortonworks 的 Hadoop 構建,未來需要逐漸過渡到CDH;結構化資料生態圈的打通;基於 Hive 的 OLAP 分析逐漸通過Presto解決跨資料來源查詢;由於Kylin和Druid不能滿足原始資料快速更新變化的需求,因此團隊決定轉向Kudu+Impala,通過 Lambda 架構提供對外的 OLAP 分析。
在實時計算層面,瓜子之前採用的是Spark Streaming,目前是 Flink 與 Spark Streaming 共存的狀態,存量使用者主要在使用 Spark Streaming,增量使用者主要使用 Flink。
在實時數倉 ETL 層面,瓜子資料倉儲團隊負責人孫強表示,瓜子需要處理的主要是業務資料,相比於日誌資料,這部分資料的處理鏈條更長、難度更大。日誌資料一旦生成基本不會更新或刪除,Flink、Storm都是相對成熟的解決方案。然而,業務資料的結構和處理邏輯相對複雜,瓜子在這方面進行了許多技術探索和演進,最早期選用的單機 Python 定製化資料處理方式,雖然有效支援了早期的業務需求,但隨之資料規模的增長,很快就已無法支撐業務需求;接下來,瓜子曾考慮使用 Java ETL 替代原始方案,雖在效能上獲得一定提升,但並沒有完全解決問題。於是,團隊開始調研當下比較熱門的 Flink。就實時性而言,Flink 是一種能夠滿足事實資料關聯維度資料需求的不錯的解決方案,但其目前不足以應對高精度場景(對資料質量要求極高,不能出現資料丟失),很難滿足瓜子業務中事實資料相互關聯的複雜需求。最終,瓜子在對資料實時性和框架易用性和可維護性直接進行的權衡做出讓步, 從真實時退到準實時,基於 Impla+Kudu 的準實時方案滿足瓜子絕大部分資料應用場景,並通過資料工程師最熟悉的 SQL 語法進行開發,很大程度上減少了開發工作量,目前排程為保證每 15 分鐘執行 Run 一次,每 Run 一次小於 15 分鐘。數倉高階專家孫強表示,如果未來企業對時效性有更高訴求,可以將該時間縮短至 10 分鐘甚至 5 分鐘之內。
此外,針對早期數倉分層不規範的問題進行改進,對每一層的設計規範和原則進行清晰定義,按照規範構建整個資料倉儲。
技術選型
綜合整個瓜子的大資料架構,不難看出選用了不少開源元件。為避免重複造輪子,如今的不少公司都傾向於開源元件,選用開源意味著需要考慮社群成熟度、改進成本、自身技術實力等諸多問題,瓜子在這之中做過哪些思考呢?
彭超透露,瓜子在大資料方面的技術選型主要考慮了四點:一是公司實際需求;二是開源元件的技術成熟度;三是生態圈是否完善;四是未來可能的發展方向。以Kafka和Hadoop為例,這兩項技術在社群發展已有十年時間,基本趨於穩定,迭代頻率相對較低且功能完備,可以考慮選用;另一類是比較前沿的技術,比如 Flink、TiDB等,瓜子也願意花費精力調研和嘗試。
林正位補充道,瓜子內部有一個“721”概念,即將 70% 的精力投入當前正在使用的核心技術研究;20% 的精力用以不斷優化、改進以提升效率;10% 的精力用以應對技術變化,投入新技術的研究。
在 70% 和 20% 的部分,彭超介紹道,瓜子對很多元件進行過改動。舉例來說,對HBase和 HDFS,做了平臺和調優方面的改進;對 Presto,做了滾動更新、滾動重啟、許可權管理、高可用等層面的更新;對 Kafka,設計了統一平臺以方便各業務線使用資料等;探索一些新的解決方案,比如 TiDB、流批處理等。
在 10% 的部分,大資料技術專家汪涉洋介紹道,瓜子會探索一些新技術,比如學習引擎、GPU 計算叢集等,並希望在能力範圍內對開源社群進行反哺,以希望對業務場景類似的公司或團隊起到積極作用和參考價值,這也是瓜子技術委員會一直在遵守和倡導的原則。劉昊植補充道,瓜子技術委員會在公司發展的各個時期可能會承擔不一樣的責任和使命。現階段,該委員會主要負責公司內部整個公司的技術棧收斂和更新,包括架構等各個維度;技術職級體系的規範化和統一;技術交流和培訓化等工作,有能力開源並對社群做貢獻一直是整個委員會要做的重點方向之一事情。
此外,上述四點技術選型標準也是未來瓜子大資料平臺技術變更的重要影響因素,但考慮到變更成本(人力成本、機器成本、學習成本)和風險,劉昊植認為,未來,整個瓜子大資料平臺會盡量採用已被驗證的開源技術,並集中力量對選定技術方案進行深入研究和探索減少變更,同時瓜子大資料團隊也會時刻保持對業界最新技術趨勢的跟進但並不拒絕變化。比如,當下 NVMe 磁碟 IO 效能未來儲存成本的大幅提升降低可能會帶來的分散式架構的變革。
雲平臺選用考量
隨著雲端計算的逐漸成熟,很多公司都開始建立高效、靈活的雲使用環境,這些環境被部署在伺服器、儲存和網路資源池中,這類方案通常更具成本效益,可以提高大資料技術和高階分析的投資回報率。
過去幾年,雲平臺大資料服務越來越成熟,單就這一項,主流雲廠商可提供的服務列表就達到數十種,本地大資料服務的聲音逐漸變小,這在 Cloudera 與 Hortonworks 合併之後尤為明顯。實際上,雲平臺大資料服務和本地大資料服務各有其生存空間和適用場景,瓜子的大資料團隊是如何考慮這一問題的呢?
實際上,瓜子云平臺總監高永超表示,瓜子云目前已經支援其內部大約三分之二左的業務執行,雲本身的彈性擴容和成本優勢讓其承載了部分瓜子大資料服務,主要是面向終端使用者的應用和 ETL 相關的系統需求。
對此,林正位提及,瓜子早期考慮過直接上雲,甚至使用過一些第三方資料服務,但最終結果是難以與瓜子的業務需求和發展節奏完全契合。其次,在瓜子的整體技術規劃中,整個技術團隊希望未來有能力為開源做貢獻並分享實踐成果,這一想法的前提是瓜子自身必須具備較強的技術實力,因此團隊決定在本地自建資料服務,而不是通過雲平臺獲取所有基礎能力,而一心撲在上層應用研發。
此外,目前很多企業的上雲姿勢未必是最佳的,這也導致很多企業沒有充分享受到雲端計算的優勢,並可能付出了巨大的成本,從而對這一技術的發展存疑。目前,瓜子已經將較容易享受到雲平臺優勢的任務搬遷上雲,而其他大資料服務依舊在本地執行。
高永超表示,瓜子云目前主要滿足企業內部對 DevOps 的需求,接下來在 PaaS 層會做出很多改進,以進一步打消業務穩定性顧慮,但目前來看,即便雲平臺足夠成熟且完善,還是存在一些特定應用無法上雲,比如網路環境受到嚴格管制的金融類應用。
未來規劃
採訪最後,彭超表示,瓜子大資料未來發展主要圍繞滿足自身業務需求、平臺化能力建設和大資料應用三方面展開。在滿足自身業務需求的同時,團隊希望有能力回饋社群;對所有大資料使用方提供平臺化能力,形成平臺化解決方案;針對大資料應用形成通用解決方案並對外提供。
在資料倉儲層面,孫強補充道,未來幾年會更加關注資料平臺化(或者說資料中臺)能力,並設計瓜子的資料開發平臺和資料治理工具,這其中需要解決資料同步、資料開發、資料運維、資料血緣管理等問題,目前已經進行了一定積累,但還處於早期探索階段,未來希望可以在這方面有所突破。
截至目前,車好多集團業務遍佈全國 200 多個城市,在業務高速發展的背後,不難看出其技術團隊做了很多思考和調整。未來,期待其可以將這些技術能力進行一定程度的開放併為行業帶來價值。
採訪嘉賓
彭超:瓜子大資料高階技術專家
汪涉洋:瓜子大資料技術專家
林正位:毛豆供應鏈及基礎架構技術總監
孫強:瓜子資料倉儲團隊負責人,向上對接資料需求方,向下對接業務系統研發和基礎架構
劉昊植:車好多資料平臺技術負責人,團隊包括 5 個方向:資料倉儲、BI、資料工場(智慧開發平臺)、資料應用、企業資料
高永超(Flex):瓜子技術總監,主要負責雲平臺、運維、資訊保安技術總監;TGO 鯤鵬會會員