“熱搜”中的分散式資料庫
近日,InfoQ 2021中國數字經濟燈塔獎-資料庫創新最佳實踐獎公佈,四川省農村信用社(以下簡稱“四川農信”)聯合社憑藉其分散式資料庫改造實踐斬獲該獎項。在西南區域起到了良好的樣板點效應,奠定了四川農信的安全數字底座,為全行業的分散式資料庫實踐和數字化發展提供了參考。
InfoQ 也對四川農信資訊科技中心高階工程師桂俊鴻進行了採訪。在採訪中,桂俊鴻先生就四川農信的國產分散式資料庫實踐分享了自己的親身體會。以下內容轉載自微信公眾號 InfoQ(ID:infoqchina)。
“一個資料庫包打天下的時代已經結束了。”四川省農村信用社聯合社資訊科技中心高階工程師桂俊鴻在採訪中表示。
事務型、聯機型、NoSQL、文件型、列式儲存、時序資料庫、圖資料庫……在近年來這些資料庫熱詞背後,是資料庫技術及產品在面向不同業務場景逐漸細化分類,發揮長處,最終助力企業實現數字化目標。由於傳統資料庫在擴充套件性、容量等方面不能滿足日益增長的數字化需求,架構層面從集中式向分散式轉型的分散式資料庫及相關產品備受關注。
01 話題中心的分散式資料庫
2021 年以來,業內關於分散式資料庫的訊息不休。GaussDB(for openGauss)全網商用、TiDB 5.0 版本釋出、浪潮釋出開源國產資料庫 ZNBase 2021 發展規劃、騰訊雲釋出首款全自研分散式分析型資料庫 TDSQL-A、螞蟻集團自研資料庫 OceanBase 釋出 3.0 產品及宣佈開源、阿里雲開源雲原生分散式資料庫 PolarDB-X 的原始碼、OceanBase 透過工信部電子標準院首批開源專案成熟度評估……
相容、開源、雲……如今,行業內關於分散式資料庫的討論熱點已經從是否會替代 Oracle,到底要不要替代 Oracle,分散式資料庫是否可行,轉為資料庫遷移的最佳路徑是什麼,有哪些行業實踐或者說高效做分散式資料庫叢集運維的手段、監控的手段等。
應用場景的不斷豐富推動這種轉變的發生,來自更多資本的關注也促進了分散式資料庫產品的工業化程度在不斷提高。桂俊鴻談道:“從交易的角度來看,網際網路資料在飛速增長,所以大家開始考慮分庫分表、在分庫分表的中介軟體中比如 MySQL 叢集上做分散式,這種狀態也可以理解為分散式資料庫的一種形態。後來到原生分散式資料庫,如 OceanBase、TiDB 開始出現。”
如果從技術維度上來看,資料庫的核心技術其實一直以來都沒有太大的變化。“谷歌三駕馬車”的衝擊讓人們的關注度從傳統資料庫向 NoSQL 轉移,後來由於 NoSQL 在聯機事務性上的一些欠缺,SQL 開始在一些專案中慢慢迴歸。如今,資料庫技術開始向聯機和分析型結合的方向演進。“總體來講,一個資料庫場景包打天下的時代已經結束了,現在企業更多是透過企業級的資料架構進行整合,根據不同的場景選取不同的資料庫產品,最後實現整個企業的數字化”。桂俊鴻表示。
02 為什麼企業都在關注分散式資料庫
桂俊鴻目前就職的四川省農村信用社聯合社資訊科技中心對資料庫的選擇上,也遵循著這樣的發展規律。
2018 年,四川農信開始考慮全行 IT 架構向分散式轉型。作為四川農信資訊科技中心的高階工程師,桂俊鴻的工作內容也逐步從開發崗調整到了雲平臺的技術崗。作為團隊核心技術專家,他參與到了分散式平臺的選型。“這塊涉及我們的 IaaS、PaaS、中介軟體、分散式資料庫和雲安全等方面,很榮幸,我是行內較早一批去學習、研究分散式選型的人之一,那個時候就瞭解到原生分散式資料庫有很大的優勢,未來可能會對我們的傳統資料庫有很多的衝擊或者改變。”
2019 年對於四川農信的技術團隊而言是關鍵的一年。這一年四川農信正式啟動了分散式雲平臺實施專案,拉開了全行分散式 IT 架構轉型的序幕。同樣是在這一年的 10 月,一則訊息引起了資料庫行業的廣泛關注:國際事務處理效能委員會(TPC)宣佈,在最新發布的 TPC-C 排行榜中,螞蟻集團自研資料庫 OceanBase 位列第一。此時金融行業開始充分嘗試分散式資料庫的大型企業也越來越多,比如工商銀行、建設銀行、交通銀行、民生銀行等。多方面原因下,四川農信增強了對分散式資料庫,特別是 OceanBase 的信心。
如今,OceanBase 是四川農信自有云平臺“蜀信雲”的重要資料庫之一,支撐著雲上重要交易型系統的穩定執行,是目前四川農信使用頻次最高的分散式資料庫產品。桂俊鴻也成為了阿里雲 OBCP 的認證專家。在他看來,OceanBase 主要為四川農信解決了 5 方面的難題:
-
異地強一致性和高可用性,可以支撐異地多活單元化架構(容災、突破地域機房瓶頸);
-
多租戶帶來的資料資源池化管理,能夠節省資源,並且橫向擴充套件靈活;
-
備份恢復更方便,更高效;
-
OMS 和 DataX 結合起來,基本解決了跨叢集、跨資料庫的資料同步問題;
-
Oracle 相容性方面,為後續存量系統遷移上雲做了預先的技術儲備。
舉例而言,在四川農信未來的“三地四中心五節點單元化”資料中心規劃中,客戶相關資料按照客戶號做了百庫百表的水平拆分,每一個資料分片都有 5 個副本,儲存在三個城市四個資料中心的五個資料庫節點中,每次寫操作都至少同步 3 個副本,從而實現異地容災;同時,每個分片的 leader 都分散在四個機房,關聯分片的絕大部分交易也都收斂在 leader 所在機房進行處理,避免了跨中心的資料訪問,從而可以達到異地多活。
桂俊鴻介紹道:“比如說成都整個機房故障後,因為 OceanBase 提供了多副本強一致和高可用能力,可以透過 Paxos 選主,將成都兩個資料中心的資料主節點切到雅安機房;然後,透過流量調撥把流量從成都機房切到雅安機房,這樣整個流量就全部到雅安去了。雅安可以接管成都的流量,實現了異地容災和高可用。”
從個人的實踐經驗來看,他更關注資料庫產品的相容性、儲存引擎的型別、資料庫的架構和技術生態。根據四川農信的技術實踐經驗,他也提供了一些企業選擇分散式資料庫產品的選擇指標,比如 RPO、RTO、分散式事務能力、效能、SQL 相容性、橫向擴充套件能力、資料負載均衡和動態遷移能力、副本粒度(資料分割槽)、運維管理能力(配套工具的成熟度)等。
當然,不同企業對資料庫的關注點不同,傳統企業更關注資料庫的穩定性、容災等,網際網路企業更關注成本、開源生態、高效能等。資料庫作為對企業而言承載著資料資產的重要軟體產品,需要保證資料的安全可靠、系統在高併發下的穩定性、資料的強一致性等。在桂俊鴻看來,分散式資料庫備受關注根本原因在於容災、多活和強一致性的特性。
03 傳統到分散式,傳承還是升級?
不過,對比傳統資料庫,分散式資料庫由於自身架構的特點,在事務保障能力、SQL 引擎的成熟度、批次能力等方面,會稍有弱項。“相對於傳統資料庫,分散式資料庫對應用開發人員的要求更高,對 SQL 的限制性和規範性要求更多。應用開發人員在設計中需考慮分散式資料庫的優勢和劣勢,儘量將複雜的邏輯放在應用層處理,SQL 儘量簡單,避免使用儲存過程、觸發器等複雜的特性”。桂俊鴻談道。
目前傳統資料庫依然在很多企業中發揮作用,儘管分散式資料庫的技術先進性不可忽視,兩者之間的關係也並非已有勝負之分。不同的企業、不同的行業、不同的業務場景下,企業在按照自身的業務訴求,選擇不同的資料庫技術或者資料庫產品。
隨著分散式資料庫的不斷迭代和大規模應用,相信上面提到的一些弱項會在未來進一步得到完善,分散式資料庫的應用也會越來越廣泛。值得一提的是目前 OceanBase 原生分散式資料可以透過 PC 伺服器實現絕大多數原來傳統資料庫的功能,同時透過 LSM 壓縮技術等,單這一點為企業帶來的成本節省就非常可觀。
在雲端計算的大趨勢下,資料庫行業正迎來蓬勃的發展時機。在桂俊鴻看來,面臨這麼大的市場,那麼多的場景等著開拓,資料庫是大有可為的,但是更需要練內功。
桂俊鴻表示:“關係型資料庫多少年來從技術上來說很多年沒有大的進展了。一是和新型硬體的結合上,在專用場景的支撐上,是否可以努力做創新。我覺得每個產品應該有一個自己的定位,不要盲目跟風,做精自己最擅長的領域,做好客戶體驗,真正幫客戶解決痛點,與客戶一起成長。”
*本文轉載自微信公眾號 InfoQ(ID:infoqchina),作者:張俊寶 。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69909943/viewspace-2856231/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 分散式資料庫分散式資料庫
- 圖資料庫中的“分散式”和“切圖”資料庫分散式
- 圖資料庫中的“分散式”和“資料切分”(切圖)資料庫分散式
- 分散式資料庫 ZNBase 的分散式計劃生成分散式資料庫
- openGauss 分散式資料庫能力分散式資料庫
- 分散式資料庫的健康評估分散式資料庫
- 分析型資料庫:分散式分析型資料庫資料庫分散式
- 聊聊分散式資料庫中單節點故障的影響分散式資料庫
- 真正硬核分散式資料庫:開發分散式SQL資料庫的6種技術挑戰 - YugaByte分散式資料庫SQL
- 分散式資料庫拆表拆庫的常用策略分散式資料庫
- 分散式資料庫的需求與場景分散式資料庫
- 聊聊Oracle的分散式資料庫技術Oracle分散式資料庫
- 幾款分散式資料庫的對比分散式資料庫
- 資料庫的未來:雲原生+分散式資料庫分散式
- 分散式資料庫的複製原理 - Quastor分散式資料庫AST
- 《分散式資料庫HBase案例教程》分散式資料庫
- 分散式資料庫火了 開源填補資料庫空白分散式資料庫
- 【大資料】BigTable分散式資料儲存系統分散式資料庫 | 複習筆記大資料分散式資料庫筆記
- 分散式資料庫的定義和特點分散式資料庫
- 分散式資料庫運維有啥特殊的?分散式資料庫運維
- 分散式資料庫的架構演變之路分散式資料庫架構
- 資料庫分散式事務的實現原理!資料庫分散式
- 聊聊分散式 SQL 資料庫Doris(四)分散式SQL資料庫
- 聊聊分散式 SQL 資料庫Doris(三)分散式SQL資料庫
- 聊聊分散式 SQL 資料庫Doris(七)分散式SQL資料庫
- 聊聊分散式 SQL 資料庫Doris(八)分散式SQL資料庫
- 聊聊分散式 SQL 資料庫Doris(六)分散式SQL資料庫
- 分散式資料庫排序及優化分散式資料庫排序優化
- 分散式資料庫技術論壇分散式資料庫
- 分散式資料庫系統(DDBS) 概述分散式資料庫
- (二) MdbCluster分散式記憶體資料庫——分散式架構1分散式記憶體資料庫架構
- 集中式資料庫與分散式資料庫的戰場與戰爭資料庫分散式
- 亞信安慧AntDB資料庫開啟分散式資料庫的新篇章資料庫分散式
- 區塊鏈與分散式資料庫的比較區塊鏈分散式資料庫
- 分散式圖資料庫 Nebula Graph 的 Index 實踐分散式資料庫Index
- ChiselStore:Rust編寫的Raft分散式SQLite資料庫RustRaft分散式SQLite資料庫
- 分散式 SQL:資料庫的未來發展方向分散式SQL資料庫
- NoSQL資料庫的分散式演算法講解SQL資料庫分散式演算法