看大咖解讀2022版《分散式資料庫發展趨勢研究報告》

qing_yun發表於2022-09-07

7月底,國家工業資訊保安發展研究中心的2022版《分散式資料庫發展趨勢研究報告》釋出後,我仔細研讀了一番。從報告中瞭解到了不少國產分散式資料庫發展的一些前沿性的資訊。雖然國外有不少資料庫產業發展的而分析報告,不過其分析的內容大多數與我們國家的資料庫產業相去甚遠,我們國家的產業界也確實需要有一份我們自己的國別資料庫產業研究報告。

報告是對分散式資料庫的發展前景持極為樂觀的態度的,確實在國內外的分散式資料庫市場近些年的趨勢來看,其增長也是相當迅猛的。對此,我也感同身受,分散式資料庫的未來有相當廣闊的前景。特別是在一些特殊業務場景的支撐上,分散式資料庫有著比傳統集中式資料庫沒有的優勢。

雖然國內外的產業界都比較認可分散式資料庫必然迎來爆發性增長,真正能夠讓分散式資料庫在未來的資料庫競爭中獲得優勢的,還應該是分散式資料庫在產品所表現出來的符合使用者應用場景需求的特性。只有符合使用者應用場景需要,並在競爭中表現出真正的優勢,才能夠真正讓分散式資料庫在未來的資料庫競爭中獲得優勢。今天我就分散式資料庫發展趨勢報告中的一些資訊,以及我所瞭解的使用者需求來分析一下分散式資料庫怎樣才能在這場競爭中勝出。

多年來,資料庫行業內討論得比較多的一個話題,就是選擇分散式資料庫還是集中式資料庫。實際上這個討論已經超出了“企業應該選擇什麼樣的資料庫產品“這個話題。受到網際網路企業在在資料庫應用方面的成功的影響,大多數企業都表示對分散式資料庫比較感興趣。目前對於分散式資料庫,以及在企業中使用分散式資料庫,在不同企業、不同的IT從業人員中是存在兩個極端的。一部分人認為企業資料庫應用必須用分散式資料庫,一部分人認為分散式資料庫無法在自己企業裡大規模應用。實際上,出現這兩種極端認知也是正常的,因為不同的企業的應用場景不同,因此也會對分散式資料庫有兩種截然不同的看法。

要想來探究分散式資料庫的問題,首先我們必須回答一個問題,那就是分散式資料庫解決了企業的什麼問題?或者說企業希望用分散式資料庫來解決什麼問題?實際上並不是客戶天生需要使用分散式資料庫,而使用者選擇分散式資料庫一定是分散式資料庫有著集中式資料庫無法替代的一些能力,否則這個客戶的選擇就出現了問題。

我和很多金融企業的IT人員交流過他們選擇資料庫的依據,安全可靠,高可用是決定他們選擇資料庫產品的最重要的要素。哪怕這個資料庫在SQL語句上有些限制,效能上有些問題,這些都不是大問題,都是可以透過應用最佳化來解決的。而安全可靠一旦不能保證,那麼金融系統的最根本的安全就受到了極大的影響。分散式資料庫的資料多副本儲存、自動故障切換等都是金融行業企業所關注的。目前分散式資料庫的三種主要的形態,在這方面都下了大功夫。

形態一:分散式中介軟體+單機資料庫透過資料庫本身的主從複製實現資料的高可用,國產資料庫此形態的資料庫包括GoldenDB、HotDB、TDSQL、StarDB等,openGauss與ShardingSphere元件整合後,也可以近似等同於此類形態的分散式資料庫;形態二:非對稱計算節點+分散式儲存本身在底層的分散式儲存上實現了資料的多副本,而只讀備庫可以隨時快速升級為主庫,替代故障的主庫,從而確保資料的可靠性,這種形態與集中式資料庫十分類似,國產資料庫中,阿里PolarDB,騰訊TDSQL-C/TDSTOREdeng都採用此形態;形態三:原生分散式資料庫則天然設計為資料多副本,並透過分散式選舉協議自動選主,實現透明故障切換,國產資料庫中OceanBase、TiDB、HubbleDb等採用此形態。

從這三種形態上看,分散式中介軟體架構和非對稱計算節點架構的故障切換時間會因為待複製的WAL的數量而變得不太固定。如果切換髮生在大量UPDATE發生時,可能會出現較長的切換延時。相對來說,原生分散式資料庫在控制副本複製上更有優勢。實現可確保的30秒以內主副本切換,甚至進一步壓縮到10秒以內,對於金融使用者的高可用要求來說,是十分關鍵的。

實際上金融使用者所需要的高可用也是很多其他行業使用者選擇分散式資料庫的一個主因。除此之外,大部分選擇分散式資料庫的客戶都是被HTAP的能力所吸引的。HTAP到底是不是偽需求的問題,實際上已經不需要討論了,無論是網際網路企業還是傳統企業,都湧現出了一大批HTAP應用場景。而如何將AP/TP兩種截然不同的工作負載在一個資料庫裡實現,分散式資料庫有天然的優勢,利用讀副本做查詢與分析,利用租戶與資源管理器隔離使用者之間的工作負載,使用行列混合儲存或者行存列存雙副本,可以為各種HTAP場景提供有力的支撐。

前些天我和一個客戶討論資料庫XC的問題,他提出了一個需求。他們覺得資料庫信創對業務的風險還是挺大的,能不能讓資料庫一部分跑在X86節點上,一部分跑在信創節點上,根據使用的情況,逐步把X86節點下線,無縫切換到純信創環境中。實際上這些需求也為我們的分散式資料庫廠商提供了一些產品設計的思路,在目前這個特殊歷史環境中,能夠具備這種能力的資料庫,肯定也是能夠獲得大量的市場的。

針對分散式資料庫所面臨的挑戰,報告中提出五點,我們先來看前三點。一個是資料庫遷移時的相容性問題,實際上信創遷移都會面臨相容性的問題,因為以前我們的應用要麼跑在商用資料庫ORACLE,SQLSERVER ,DB2等上面,要麼跑在開源的MySQL、PostgreSQL等上面。如果不考慮SQL語法的相容性就是耍流氓,系統遷移的成本太高也會制約了資料庫XC遷移。除此之外,與集中式資料庫不同的是,分散式資料庫本身對SQL就有一些天然的約束,有些分散式資料庫限制表必須有SHARDING KEY,或者對全域性索引有些限制,另外事務隔離級別、每個交易最大的記錄數、多表連線的數量,SQL複雜程度等都有一定的約束。還有些分散式資料庫不支援儲存過程,或者說儲存過程的語法上與商用資料庫的能力上差距較大。這些問題都會對XC遷移造成了阻礙。

安全合規其實是一個更大的問題,目前大部分分散式資料庫產品都大量使用了開源的程式碼,程式碼的安全性,甚至程式碼的智慧財產權合規性都存在較大的風險。不過這些問題普通的使用者極難把握,需要我們的管理部門出臺具有實用價值的規範與稽核和評測手段,避免讓不具備專業能力的使用者來判斷一些合規與法律方面的問題。

實際上這三條挑戰並不能涵蓋使用者以及使用者應用場景對分散式資料庫產品的需求。分散式資料庫產品的文件完善度、易用性,可觀測性,運維成本、售後服務水平等都是客戶十分關注的問題,這些也都是目前絕大多數國產分散式資料庫還存在問題的地方。

另外一個制約分散式資料庫進入尋常百姓家的因素就是成本。目前的很多分散式資料庫產品的最小部署單元還是過於龐大,只能讓一些有錢的客戶成為玩家。分散式資料庫小型化一直是客戶所期望的,只不過目前我們的很多分散式資料庫廠家依然沒有看到客戶的這種需求。在當前300多種國產資料庫橫空出世的時代,國產資料庫市場內卷是必然趨勢。如果只盯著一些有錢的大客戶,恐怕是不行的。前陣子OceanBase 4.0釋出時推出了單機版分散式資料庫,讓人眼前一亮。一個分散式資料庫可大可小,大型的可以支撐大型網際網路業務,小型的可以在雲平臺的兩臺ECS虛擬機器上構建一個主從高可用叢集,如果今後業務發展了,還可以平滑升級到真正的分散式環境。這讓很多中小企業也能夠玩得起了。

在分散式資料庫中也存在一個種類,天生就比較容易小型化的,那就是非對稱計算節點的分散式資料庫。這種以日誌就是資料庫理念的分散式資料庫產品最早的典型就是亞馬遜的Aurora,今年4月份,谷歌也推出了類似架構的AlloyDB。在國產資料庫方面,阿里的PolarDB-O/PolarDB-PG,以及騰訊的TDSQL-C/TDSTORE等都是採用這種架構的。雖然這些資料庫在高可擴充套件性方面存在一些不足,不過因為其具備的小型化特性,以及易用性,反而在目前一些使用者場景中獲得了較好的應用效果。

在報告中對於分散式資料庫的應用場景與生態也提出了一些挑戰。其中提出了客服實驗室場景與實際應用場景之間的效能差異的問題十分尖銳。這一點也是我們的使用者在具體應用實踐中遇到的問題。往往一些分散式資料庫產品在實驗室的測試資料十分漂亮,但是在應用實踐中的效果不太理想。這也是實際應用場景的複雜性決定的。大部分使用者是希望資料庫能幫他們解決應用中的問題,而不希望透過加大應用的投入來解決資料庫存在的缺陷。這需要分散式資料庫廠家能夠提供大量的技術手段,讓使用者能夠面對各種各樣的應用廠家。透過HINT、OUTLINES等技術手段優選執行計劃,透過多模引擎讓各種非結構化資料的訪問變得更為簡單,DB4AI/AI4DB等技術的引入等,都會大大擴充資料庫的應用場景支援,同時讓資料庫變得更加易用。

最後一點,開源生態是十分重要的,開源生態可以彌補目前國產資料庫中存在的研發能力、服務支撐能力不足的問題,也可以緩解使用者轉向開源資料庫的成本壓力。因此“開源是基礎軟體的必經之路”這句話我是十分贊同的。

不論如何,分散式資料庫要想在未來國產資料庫發展中佔據主導地位,必須在更好地解決使用者應用場景痛點上下功夫,並且在更易用、更低的使用成本、更好的可觀測性、更強大的售後服務支撐體系等方面下足功夫才行。我想在目前長長的國產分散式資料庫清單裡,最終能夠成功的也可能只是一個短名單。

來自 “ 白鱔的洞穴 ”, 原文作者:白鱔;原文連結:白鱔,如有侵權,請聯絡管理員刪除。

相關文章