作者 | Kitty
採訪嘉賓 | 沈春輝
Gartner 曾在 2017 年預測多模數據管理將成為未來的主要趨勢,並在隨後幾年逐漸成為主流資料庫的選擇。當前多模資料庫的發展到底處於一個什麼樣的階段?主要在哪些場景下使用?未來將會有怎樣的突破?近日,InfoQ 有幸邀請到阿里巴巴資深技術專家沈春輝(天梧),請他聊一聊多模資料庫的構建和發展。他還將在QCon 全球軟體開發大會(深圳站)「現代數據架構」專題中進行《阿里雲 Lindorm 面向多模數據管理的技術創新與實踐》的分享,敬請關注。
以下是採訪實錄:
InfoQ:您從 2011 年就開始從事面向大數據場景的分布式資料庫研發工作,這期間您經歷了大數據領域哪些新老技術的更迭和演進?
沈春輝:在大數據發展史上,有兩個影響深遠的標誌事件,一個是 2004 年前後,谷歌發表 GFS、MapReduce、Bigtable 三篇論文,證明了大數據從理論概念到生產實踐的業務價值,並給出了架構典範;另一個是 2008 年,Hadoop 正式成為 Apache 頂級項目,把大數據帶入到各大企業尤其是網際網路企業的 IT 基礎設施中。
在過去的十多年,隨著對數據規模、處理速度、易用性、成本、效率等越來越多的需求,我們看到大數據架構和產品不斷地推陳出新。起初,Hadoop 作為大數據的代名詞,支持存儲和計算能力的水平擴展,很好地解決了規模化的挑戰,但隨著大數據應用到各個場景,各種需求開始井噴,Hadoop 也從單一系統走向一個多元化生態。比如:
Hive,讓 SQL 進入到 Hadoop,大大降低了使用門檻;
HBase,通過 LSM 架構,滿足了海量數據的高並發吞吐;
Spark,通過基於內存的分布式計算,大幅提升了數據處理的效率;
Storm、Flink、Spark Streaming 等流計算系統,有效提升了數據處理的實時性;
還有 Presto、Kylin、Impala 等,在不同場景下,加速大數據複雜分析。
所以,現代企業的大數據平臺大多都是基於 Hadoop 生態構建的「一存多算」的多元化架構,即以 HDFS 為統一存儲,通過 HBase、Spark、Flink、Presto 等多種計算引擎滿足不同場景的處理需求,這個架構的優點是適用範圍廣、靈活性強,但缺點是成本高、維護複雜、體驗較差,這也會是未來技術繼續向前演進的方向。
InfoQ:您將在 QCon 深圳 2020 分享的話題是「面向多模數據管理的技術創新與實踐」,在您看來,當前多模資料庫的發展整體處於一個什麼樣的階段?
沈春輝:在網際網路發展之前,資料庫可以說基本就是在關係模型上發展,比如發展了幾十年的 Oracle、DB2,而 NoSQL 的出現打破了這一慣性,KV、寬表、文檔、圖、時序等多種模型都得到了廣泛應用和快速發展,但這個趨勢也會使得應用開發變得越來越複雜,記得在 2012 年的 NoSQL 大會上,有大佬提出了「多模資料庫」的概念,設想一個系統可處理多種類型數據,以簡化應用數據架構,減少開發維護成本。隨著 NoSQL 系統在單模能力上的成熟,以及應用數據需求的多樣化,業界開始進入對多模資料庫的探索和實踐,通過 db-engine 網站,我們可以看到越來越多的流行資料庫已經走向多模資料庫。
多模資料庫,其目標是將多個系統組合使用的解決方案下沉為資料庫內置能力,與傳統分庫分表方案升級為分布式資料庫能力相似,所以,這是一個相對漫長的建設過程,我們為其定義了四個階段,也可以說是系統開發的四個路標,分別是多種類型、垂直引擎、跨模融合、統一訪問,如果按此看,那麼大部分業界多模資料庫現在可能處於第一、二階段,其能力主要是提供多種類型的數據接口,在不同模型的處理效率上有所側重傾斜,在數據聯接上有所缺失,還是很難在生產中真正替換多套系統組合使用的方案。
InfoQ:是什麼原因驅動阿里從 HBase 轉到多模資料庫的?整體架構設計是如何考量的?
沈春輝:阿里 HBase 的發展已經有比較長的時間,過去主要聚焦在成本、性能、可用性等通用能力的深度自研,所以,在這個方向上算比較成熟了。然而,現代應用場景的玩法和功能變得越來越豐富,除了高擴展、低延時、高可用、低成本等核心需求之外,簡單分析、多維檢索等高級數據處理正在成為越來越多應用的基本需求,為此,我們看到當數據量小的時候,一個關係資料庫基本能解所有問題,但數據量大的時候,很多場景需要混用 HBase、ES、TSDB、SQL 等系統,像是監控、IoT、畫像、社交等等,每一個應用都需要開發數據中間層來對接多種資料庫,去處理模型轉換、數據分發、數據同步、查詢合併等一系列問題,最終期望這多個異構系統組合成為一個資料庫系統工作,面向上層的業務邏輯提供統一存儲、統一訪問並保證數據正確。
針對這種普遍存在的共性需求,我們期望使用多模資料庫的思路進行解決,打造一個同時具備寬表、時序、搜索等多種模型處理能力的資料庫,幫助業務重新聚焦於應用邏輯,這就是我們 2020 年 9 月上線的雲原生多模資料庫 Lindorm(中文名:靈動)。
Lindorm 目前主要聚焦於第三階段跨模融合的能力建設,在業務需求滿足上,可以達到及超過多套系統組合使用的效果,並相比有明顯更低的開發維護成本,隨著系統能力的逐漸完善,對業務的價值優勢也會越來越明顯。Lindorm 在系統架構上主要考慮了雲原生、多模原生兩個方面,核心是構建彈性按需伸縮、多模融合處理、高效低成本等能力,具體的架構設計也將在此次的 QCon 會議上分享,歡迎大家的關注。
InfoQ:哪些場景適合用 Lindorm,您認為多模資料庫帶來的最大改善和提升是什麼?下一步的計劃是什麼?可以給想要做或者正在做這些事情的同學一些建議嗎?
沈春輝:多模資料庫 Lindorm 目前支持寬表、時序、搜索、文件四種模型,我們在選擇模型時主要考慮面對海量數據的實際場景需求和自身過去的技術積累。比如,對於監控、IoT、廣告、社交、風控等數據驅動型業務,目前可能混合使用了 MySQL、HBase、ElasticSearch、OpenTSDB、Ceph、Hive 等類似系統,這中間的數據鏈路會是比較複雜的,通過 Lindorm 則可以替換其中的多個組件,大幅簡化架構,實現降本增效。
具體來說,對於一個監控系統,Metrics、Logging、Tracing、參數屬性、報警視頻等這些數據都各自需要一個系統進行存儲,數據的關聯、分析、同步和低成本處理都需要業務側進行方案設計和實施,沒有一個十幾人團隊很難把這樣一個大型監控應用做好,其中大部分精力投入在數據層的設計、開發和維護,這還不包括背後的四五個資料庫系統團隊支撐,一句話總結就是協同成本和冗餘成本巨高,而通過 Lindorm 的多模融合處理能力,將多種數據的操作管理需求下沉到資料庫系統,使得應用在效率、成本、體驗上可以獲得非常明顯的提升。
在技術上,Lindorm 吸取了阿里過去多年在寬表、時序、搜索等垂直領域的能力,如果僅僅將其當成一個單模系統使用,那麼已經比較成熟了,而在多個數據模型之間的融合打通方面,還有不少工作要做,比如模型轉換、統一訪問、統一管理、資源共享等。另外,前面也提到,雲原生是我們另一個關鍵方向,Serverless、雲原生存儲、智能運維等都是重點攻堅的工作。
如果要建設一個多模資料庫系統,個人認為有兩個選擇是比較關鍵的:
系統支持哪些模型?
可能會有一個誤區,多模資料庫的發展會進入到「All In One」,這可以看成是一種理想,但軟體工程的自身能力是有限制的,隨著數據種類支持的添加,其複雜性會大幅增加,並且對上層的統一抽象難度也會加大,其可實現性是未知的,或者說現有能力是不可實現的,所以,系統需選擇有限的模型進行支持,具體的選擇可以結合需求,比如 Lindorm 主要是根據業務場景的實際混合使用情況進行選擇,你也可以根據被使用的規模大小和可結合性;
多模技術中哪些共享,哪些獨立?
共享的厚一點,工程迭代效率會更高,但可能會犧牲一定地運行效率,目前業界選擇主要是兩種,一種是在 KV 層共享,類似基於 HBase 構建 OpenTSDB、JanusGraph,另一種是在文件層共享,比如 Lindorm 的寬表引擎、時序引擎、搜尋引擎都是構建在分布式文件系統之上,這樣數據的組織索引就可以有更大的設計空間,在性能上可以有更大優勢,從而除了多模混合使用場景之外,在獨立的垂直場景,也無需換用專用資料庫。
InfoQ:您認為大數據領域還有哪些值得關注的技術方向?
沈春輝:個人目前比較關注云原生、一體化這兩個技術趨勢,這也是目前很多大型企業正在大力投入資源推進落地的方向,不管是學習,還是實踐到自己的企業,都值得了解:
雲原生:上雲已經成為企業數位化的共識,上雲之後如何用好雲是當前大家的重點討論和思考,如果仍然按照過去線下機房的模式去部署和使用大數據,不僅無法獲得雲計算的紅利,甚至在成本效率上可能面臨諸多不適。所以,以「存儲計算分離 + 彈性 Serverless」為代表的雲原生大數據架構,實現存儲計算的獨立伸縮、資源彈性按需使用,大幅提升資源利用率、系統運維靈活性,成為接下來的主要趨勢。在阿里雲平臺,我們以 Lindorm(兼容 HDFS、HBase 等多模的 Serverless 存儲)+DLA(提供 Spark、Presto 等多模態的 Serverless 計算)向企業提供了雲原生的大數據最佳實踐,大家有興趣可以關注交流。
一體化:開源大數據技術經過十多年的快速發展,在採集、存儲、計算、調度、管理等各個方面的整體版圖已經相當完善,同時面向各個場景的存儲計算引擎也呈現出百花齊放的景象,但這也加大了用戶的使用門檻和維護複雜度,多種系統的一體化也越來越成為下一個大的發展趨勢,比如多種模型資料庫的一體化、大數據與資料庫的一體化、批計算與流計算的一體化、數據湖與數據倉庫的一體化等,這些技術上的整合,可以幫助企業更加經濟高效的用好數據。
想了解更多阿里雲多模資料庫的發展和技術實踐細節,可以來 12 月 6-7 日的 QCon 全球軟體開發大會(深圳站)的現場,與沈春暉老師當面交流。除了沈春輝老師的演講內容外,本專題還有以下技術分享,感興趣的朋友可以關注下: