- 人閱讀
- 2021-04-20 10:18:00
來源:科技云報道
- 相關關鍵詞
科技云報道原創(chuàng)。
面對互聯網業(yè)務的不斷深化以及業(yè)務量的爆發(fā)式增長,傳統(tǒng)數據庫架構迎來了前所未有的挑戰(zhàn)和變革。在傳統(tǒng)數據庫領域,Oracle一直占據了很大的市場份額,很多企業(yè)的業(yè)務系統(tǒng)基于此實現OLTP交易場景。近年來,隨著分布式技術的發(fā)展,分布式數據庫逐漸占據了OLTP領域較大的市場,尤其在互聯網領域,MYSQL、PG等分布式數據庫的應用非常廣泛。在中國,軟件國產化、自主可控戰(zhàn)略的提出,“去Oracle”逐漸被提上日程,非互聯網企業(yè)也開始考慮數據庫轉型。其中,分布式數據庫即是一個重要轉型方向。然而,分布式數據庫應該如何在企業(yè)中正確地落地,一直是業(yè)界討論的焦點,首當其沖的問題就是:分布式數據庫是否能替換Oracle?在回答這個問題之前,先來看看分布式數據庫的發(fā)展歷程和特點。20世紀80年代,伴隨著關系數據庫理論的誕生,IBM和Oracle兩家公司開始提供商業(yè)化的數據庫產品,服務于各類大型企業(yè)。初期的數據庫都是單機軟件,跑在專有的硬件之上,比如IBM的大機、小型機,如果業(yè)務量或者數據量增加,只能進行垂直擴展,即采用增加CPU、存儲的方式。這套體系的優(yōu)點是非常穩(wěn)定,缺點是開放性不夠,與通用x86服務器體系之上的開發(fā)環(huán)境兼容性差,另外當業(yè)務量增長過快時,其擴展能力有限,而且這套系統(tǒng)的造價非常昂貴。2000年以后,隨著互聯網在線業(yè)務的發(fā)展,業(yè)務系統(tǒng)訪問的并發(fā)度呈指數級上升,海量數據計算和分析需求越來越普遍,傳統(tǒng)單機系統(tǒng)在業(yè)務支撐、成本、開放性等方面均面臨巨大挑戰(zhàn),數據庫垂直擴展的模式也無法維系。以支付業(yè)務為例,隨著在線購物、在線繳費方式的普及,支付業(yè)務系統(tǒng)的并發(fā)量迅速增長,尤其是在“雙十一”“618”“春節(jié)搶紅包”等場景下,每秒有上百萬筆支付交易。互聯網企業(yè)開始探索新的水平擴展的方案,最常見的就是應用系統(tǒng)通過分庫分表進行解決。但是,這種解決方案的應用系統(tǒng)需要做大量改造,需要感知數據存儲位置,增加了運維的復雜性,并因此出現了中間件的方式,如Mycat等。這種方式雖實現了數據對應用的透明,但未解決數據庫運維的痛點。隨著大數據技術的發(fā)展,以Hadoop、Greenplum為代表的非結構化大規(guī)模數據處理技術崛起。這些技術主要采用Shared-nothing架構,在分析領域率先實現了分布式的擴展,分析的主要任務是數據的查詢,其應對的挑戰(zhàn)主要是海量數據的存儲、計算,對于事務的要求較低。2010年后,谷歌Spanner、Tidb采用Paxos或Raft等一致性協(xié)議來解決中間件方案的單點瓶頸問題,這為事務數據庫的分布式化提供了新的理論依據。之后,分布式數據庫發(fā)展迎來了熱潮,各類分布式數據庫百花齊放。相比于傳統(tǒng)的單機或主備模式的集中式數據庫,分布式數據庫是傳統(tǒng)數據庫技術與計算機網絡的有機結合,在平滑擴展、高性能、高可靠、高可用、低成本等方面具有優(yōu)勢,特別是當數據量上升到一定程度,在性能方面可突破集中式數據庫的瓶頸。回顧過去10年,分布式數據庫經歷了從行業(yè)質疑、小規(guī)模試水、到如今在金融、互聯網等行業(yè)的探索和應用,有一些甚至在生產系統(tǒng)中得到大量應用,可以說分布式數據庫的春天已經到來。那么,分布式數據庫足以替代Oracle這樣的傳統(tǒng)數據庫了嗎?傳統(tǒng)關系型數據庫在核心交易等領域深耕了40多年,到目前為止,大部分純交易場景不論從數據量還是商業(yè)模式都沒有本質的變化,其業(yè)務的擴展空間的確十分有限。在企業(yè)數字化轉型的過程中,數據量隨著業(yè)務發(fā)展快速膨脹,為數據庫帶來全新的市場機遇。而分布式數據庫的設計初衷,正是為了解決全新的數字化業(yè)務問題。在Oracle所無法滿足的場景中,分布式數據庫成為了理想的落地方案。但值得注意的是,在替代Oracle的問題上,并沒有一刀切的答案。分布式數據庫的誕生,首先是為了解決傳統(tǒng)數據庫不擅長的場景,在關系型數據庫做到極致的領域同樣需要很長的時間才能完善,并不是為了單純替換某個原有系統(tǒng)。如果只是為了使用及推廣新技術,而進行固有架構的替換,將會面臨極大的技術風險與挑戰(zhàn)。可以看到,目前國內絕大部分的分布式數據庫的產品試用,都是在一些非核心系統(tǒng)的應用。例如:在金融機構,分布式數據庫常用于渠道類業(yè)務如:網聯、第三方支付對接等,在生產環(huán)境中驗證產品功能和穩(wěn)定性,并沒有實現真正的替代。相比較于DB2、Oracle等商業(yè)數據庫和MySQL 等開源數據庫,分布式數據庫產品在生態(tài)圈、技術手冊、技術支持等多個方面,還是稍遜一等,仍然有大量可提升的空間。由于尚無統(tǒng)一的業(yè)界標準,也沒有哪一款分布式數據庫產品,是這個領域不可爭議的第一名,就如同Oracle一樣。對于分布式數據庫而言,想要替代Oracle,更大難點在于如何從Oracle遷移出來。很多企業(yè)原本都是傳統(tǒng)數據庫一體化解決方案,其設計與運維經驗不一定完全適合分布式數據庫。從Oracle遷移至分布式數據庫就會遇到各種障礙,例如:不同數據庫之間的異構數據如何做到無損遷移?遷移過程中如何保障系統(tǒng)穩(wěn)定性?如何設置異構數據庫并行過渡期?Oracle數據庫往往和應用耦合度較高,遷移過程還會涉及到應用遷移和改造,如何評估改造量和改造難度?兼容性如何保障?數據庫遷移完成后如何成功建轉運?傳統(tǒng)運維方案中的網絡、存儲、監(jiān)控告警、備份恢復等等應該如何規(guī)劃?除此之外,盡管分布式數據庫比原來各業(yè)務系統(tǒng)獨立使用數據庫更加易于運維,但是剛引入分布式數據庫,難免碰到運維技術和人力跟不上的階段。從全球數據量發(fā)展的方向來看,其爆發(fā)性增長,主要集中在基于數字化創(chuàng)新的多樣化業(yè)務場景。因此,單純替代傳統(tǒng)Oracle占據核心優(yōu)勢的固有領域,并非是分布式數據庫未來的增長方向。分布式數據庫的最佳落地與使用方式,是從海量數據業(yè)務到核心的逐步迭代過程。先從存在海量數據彈性擴展的新興業(yè)務需求入手,隨著業(yè)務革新不斷的深入,逐漸滲透進傳統(tǒng)業(yè)務及應用中。企業(yè)在選擇分布式數據庫落地場景時,也應該選擇適當的應用場景,以真正發(fā)揮其優(yōu)勢能力,并持續(xù)打磨技術團隊的運維能力,并逐步推向核心。
免責聲明:本網站內容主要來自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網站出現的信息,均僅供參考。本網站將盡力確保所提供信息的準確性及可靠性,但不保證有關資料的準確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責。本網站對有關資料所引致的錯誤、不確或遺漏,概不負任何法律責任。任何單位或個人認為本網站中的網頁或鏈接內容可能涉嫌侵犯其知識產權或存在不實內容時,應及時向本網站提出書面權利通知或不實情況說明,并提供身份證明、權屬證明及詳細侵權或不實情況證明。本網站在收到上述法律文件后,將會依法盡快聯系相關文章源頭核實,溝通刪除相關內容或斷開相關鏈接。