阿里資深技術專家胡月軍:大數據十年,我看到的技術變化和趨勢

計算和存儲分離是近幾年大數據架構領域頗受關注的一個技術風向。在對剛剛過去的2019天貓雙11技術進行總結時,阿里巴巴 CTO 行癲也特別提到了阿里在計算存儲分離上的進展。大數據最初興起之時,主流網絡帶寬只有100Mb,通過網絡遠程訪問數據實在太慢了。爲了解決數據快速訪問的問題,Google 創造性地提出了計算和存儲耦合的架構,而 Hadoop 延續了這個架構,風光一時無兩。但十年過去之後,如今的網絡帶寬相比當時已經增長了一百倍,達到了10G以上,IO不再是大數據的瓶頸,計算纔是。

近日,InfoQ 有幸採訪到了阿里巴巴計算平臺資深技術專家胡月軍(花名一浪),聊了聊阿里搜索與廣告引擎的技術演進脈絡、阿里新一代交互式分析引擎以及大數據領域近幾年的技術趨勢和變化。在採訪中,胡月軍表示:“計算存儲分離使存儲和計算資源可以各自根據需求進行伸縮,較好地節約了成本,但也給高效引擎的設計與實現帶來了不少挑戰。”他還將在即將召開的ArchSummit全球架構師峯會上2019(北京站)上擔任「實時計算的平臺化實踐」專題的出品人,感興趣的讀者可以關注。

InfoQ:您曾經負責阿里巴巴多個不同業務線的搜索與廣告引擎,能否請您給我們整體梳理一下這幾年阿里不同搜索與廣告引擎的技術演進脈絡?比如可以分成哪些階段?不同階段技術上的側重點有何不同?

胡月軍:近年來,伴隨着電商平臺商品量的大量豐富,基於實時推薦的智能化運營興起以及對提升購物體驗和促成交持續優化的業務背景下,搜索和推薦的引擎技術也大致經歷了三個階段。第一階段主要關注點在引擎檢索性能的提升,當時我們做了很多關於索引構建、查詢流程以及算分等組件的優化來提升引擎的 QPS;隨着業務實時化需求越來越迫切,第二階段我們引擎在在線和離線都做了不少工作,在線引擎實現了內存索引以及輔表關聯,離線基於 Flink 孵化了 Blink 的流計算引擎和 Porsche 在線機器學習平臺,大大縮短了端到端的處理延遲,大幅提升了搜索和推薦的實時性購物體驗;第三階段引擎的進步主要來自於支持算法的高效迭代和持續提升搜索和推薦的精準性,我們將引擎的召回和算分進行了分離,抽象出了 RankingService 服務,從而支持各種搜索和推薦召回場景的統一打分,同時支持在線深度學習計算,較好地提升了購物體驗和成交引導。

InfoQ:阿里雲新一代交互式分析產品誕生的背景是什麼樣的?爲什麼你們要在阿里的MaxCompute大數據計算平臺、EMR開源大數據計算平臺、實時計算平臺之外再打造一個新的交互式分析引擎?是爲了解決哪些問題?

胡月軍:阿里雲計算平臺交互式分析引擎的高效存儲在16年就開始研發了。一開始開發交互式分析引擎的目標是爲了解決 HBase 的穩定性和性能問題,基於存儲計算分離和純異步的 runtime 我們實現了高性能的存儲引擎,上線以後性能是原 HBase 的3~10倍。後來基於業務需求,演進成了兼容PG生態的大數據實時數倉系統。

它和阿里的其他大數據平臺有着不一樣的定位:MaxCompute 平臺是阿里自研的高效離線數倉系統,主要 focus 在高吞吐的批處理;EMR平臺主要是爲了方便公有云上的客戶快速搭建自己的開源大數據解決方案;實時計算平臺主要關注流處理這塊的業務;至於交互式分析,我們主要是爲解決實時數據存儲和 OLAP 分析的高效即席查詢問題,同時實現對 MaxCompute 的離線數倉進行直接查詢加速。

這些不同的平臺通常會合在一起給客戶提供一個完整的大數據解決方案。一個典型的場景是:數據通過 Flink/Blink 進行實時ETL處理後寫入交互式分析的存儲系統,然後用戶在交互式分析引擎中進行各種 Ad Hoc 的查詢;如果用戶需要執行批處理任務,再把數據導入到 MaxCompute 中進行處理;此外,對於已經在 MaxCompute 中的數據,可以使用交互式分析進行直接加速查詢。

InfoQ:阿里雲的交互式分析產品是否有對標的商業化產品或開源產品?如果有的話,它跟這些對標產品相比,有哪些技術上的差異和亮點?

胡月軍:在業界和阿里雲交互式分析對標的一些產品有 Redshift、Snowflake、GaussDB 和 Hermes。阿里雲交互式分析的主要技術亮點有:基於存儲計算分離的高效行列混合存儲,基於Orca 和支持聯邦查詢的優化器,純異步高性能的查詢引擎,以及PG11生態兼容等特性。

InfoQ:近3年來,您主要從事存儲與計算引擎的設計與研發工作,如果從大數據存儲層和計算引擎這兩個層面來看,您認爲最近這三年有哪些值得一提的新技術或項目?技術趨勢上有哪些變化?

胡月軍:個人認爲近3年大數據存儲和計算領域比較有意義的新技術就是存儲和計算分離的興起,比如 Snowflake 等,它使存儲和計算資源可以各自根據需求進行伸縮,較好地節約了成本,當然這也給高效引擎的設計與實現帶來了不少挑戰。比如怎麼設計專門的存儲機型和高效I/O實現?怎麼優化網絡連接?怎麼在計算節點I/O延遲可能會增大的情況下保證 query 處理的低延遲?

技術趨勢上,個人看到的一個趨勢就是大家對存儲層的重視,比如 Databricks 開源了 Delta Lake,對於阿里雲的交互式分析引擎來說底層存儲引擎也是一個非常重要的競爭力,事實上只有做好了存儲引擎和數據的統一管理才能使得上層的計算更高效和統一。

InfoQ:有觀點認爲“17-18年是計算引擎火熱的一年,現在這塊已經是紅海了”,您是否認同這一觀點?您認爲當前大數據計算引擎處於什麼樣的發展階段?市場是否已經飽和?接下來計算引擎這塊還有什麼值得關注的技術方向?

胡月軍:這兩年各種開源的計算引擎確實發展得很快,比如 Flink SQL 的流批統一處理,Spark Structured Streaming 的完善以及 MPP 引擎 Greenplum 的6.0的發佈。但紅海可能還不至於,據我們調查瞭解,目前很多公司的大數據解決方案還是基於 Hadoop/Hive,新引擎的市場普及度還處於早期階段。

對於計算引擎本身,個人認爲圖計算和圖像、視頻處理的高效支持可能會是值得關注的技術方向。隨着當下推薦、信用和安全等需求的興起,對於關係的存儲和處理越來越重要,目前各家引擎對圖計算的支持還處在各顯神通的階段,後面的發展值得關注;圖形和視頻處理帶來向量計算應用目前也原來越來廣泛,目前已經有幾家陸續將自己的技術開源。

InfoQ:計算引擎之外,大數據存儲層今年出現了不少熱門話題,比如數據湖、實時數倉。您怎麼看今年實時數倉和數據湖的火熱?

胡月軍:實時數倉的火熱本質上還是來自於業務的驅動。當下,智能推薦和精準運營等業務都依賴於對實時數據的快速挖掘。小時級別,或者天級別的數據分析對於很多業務來說再也回不去了。

再說數據湖,當前的數據倉庫一般存儲的是經過 ETL 清洗過的數據,原始的數據信息會有一定的缺失,所以現在有人提倡也存儲各種原始的數據,從而進行各種靈活的分析。數據湖就是這樣一個解決方案,提供統一的數據同步、存儲和管理機制,以及計算任務的提交和調度,它強調對數據更全面和系統化的管理和應用。按我個人的理解,數據湖就是一個概念,像數據倉庫一樣,只不過其提倡保存更多的原始數據以及加強對數據管理的控制。底層的相關技術應該還是基於當下的存儲和計算技術,沒有太大的革命性變化。

InfoQ:2019年6月,谷歌以26億美元收購數據分析公司Looker。同月,Salesforce宣佈以157億美元收購BI企業Tableau。2019年9月,Cloudera宣佈收購商業智能實時分析廠商Arcadia Data。這幾場收購對於大數據領域來說意味着什麼?統一數據分析平臺會是大數據領域下一個技術爆發點嗎?

胡月軍:個人理解這些收購反映的是大數據公司對上層數據分析業務系統的滲透和把控,這樣的整合應該會給用戶帶來更好的分析系統使用體驗,比如數據分析服務的雲化,從而使得公司能更好地佔領 PaaS 和 SaaS 市場。

一體化的數據分析平臺會實現數據的統一存儲和管理,以及各種分析任務的調度和執行,在避免數據搬遷開銷的同時給用戶提供統一的使用體驗,個人認爲這將會是一個水到渠成的結果。

活動推薦:

流批處理合一的時代,多數公司還停留在實時計算平臺化的起步階段,要解決很多技術問題。12月6日北京 ArchSummit 全球架構師峯會上,由胡月軍老師出品的實時計算平臺專題,邀請了網易、阿里、Uber、Freewheel 公司的講師來分享 Kudu 應用、數據中臺、Kafka、Flink 實踐內容,幫助大家更好地理解平臺搭建、實時數據處理等技術內容。感興趣參會的可以聯繫票務經理 灰灰 15600537884(同微信)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章