1. 程式人生 > >巨杉Talk | 拒絕資料碎片化,原生分散式資料庫靈活應對資料管理需求

巨杉Talk | 拒絕資料碎片化,原生分散式資料庫靈活應對資料管理需求

2019年7月19-20日,以“運籌帷幄,數攬未來”為主題的DAMS中國資料智慧管理峰會在上海青浦區成功舉辦。在DAMS峰會上,巨杉資料庫為大家帶來了題為“雲架構下的分散式資料庫設計與實踐”的主題分享。

微服務下資料庫架構的演進

 

 

應用開發從傳統架構向分散式轉型,最先面臨改造的自然就是應用程式框架。如今的微服務框架已經非常成熟,其代表性架構往往包括協議處理、服務拼裝、原子服務、以及底層持久化四層。業務邏輯從傳統的單一中介軟體被拆解成眾多微服務模組,每個微服務模組由完全對等的一系列容器構成,可以簡單通過增加容器的方式實現對該服務吞吐處理能力的擴容。

 

但是微服務的拆分即意味著每個服務都擁有自己獨立的執行邏輯與儲存。從資料庫的角度來看,微服務體系的拆分對資料庫儲存提出了極大的挑戰。如果每個微服務依然將資料存放在傳統的單點資料庫中,其儲存與處理能力均無法隨著微服務容器數量的上升提供同樣的擴充套件能力。在這種情況下,資料庫將會成為微服務體系框架中效能與擴充套件性的最大制約瓶頸。

 

而如果每個微服務使用獨立的資料庫進行存放,整個企業IT的資料架構將會變得支離破碎。資料庫的數量從過去的幾百被拆分為上萬個數據庫,整個運維團隊的管理成本與資料庫採購成本面臨幾何級數的提升。

 

因此,分散式資料庫的目標不僅僅作為傳統Oracle或DB2的單一替代,將一個數據庫存放不下的資料放到多個物理機存放。在實際環境中,大部分銀行都有著較為完善的資料生命週期管理策略,一般不會在生產環境中堆積大量的歷史資料,因此資料量一般來說不會是使用分散式資料庫的最重要原因。

 

 

新一代分散式資料庫技術特性

 

為了支撐未來IT微服務框架,分散式交易型資料庫的引入需要從傳統技術相容性、以及新技術前瞻性兩個維度進行評估。

 

“當應對微服務應用框架,原生分散式資料庫架構優勢在於兩點。第一,是解決資料的彈性擴張,使每個微服務不受底層資料儲存限制。第二,解決微服務應用架構中資料嚴重碎片化的問題。”

 

 

ACID的支援與SQL完整性的支援是評估一款新型分散式資料庫是否能夠提供與傳統資料庫技術相容的兩大關鍵指標。

 

>>> ACID的支援

從安全性上來看,不論採用新技術或傳統技術,資料不錯不丟是所有資料庫的必備基礎。在分散式資料庫業界中,一些針對網際網路技術設計的產品以分散式(Partition Tolerance)加高可用(Availability)作為目標,在安全一致性(Consistence)上無法保證資料的正確,很難在金融業務中被廣泛使用。因此,銀行所關注的新型分散式資料庫必須首先保證資料的安全和一致性,其中分散式事務、分散式鎖、四種隔離級別的支援等都是該指標中的關鍵技術點。

 

>>> SQL完整性支援

SQL完整性指的是新型分散式資料庫與傳統關係型資料庫的開發友好性。越是成熟的分散式資料庫,其SQL語法越能做到與傳統關係型資料庫相容,同時其資料切分對應用程式則越發透明。如今大部分分散式資料庫技術都號稱支援MySQL語法,而主流新型應用程式也都將MySQL作為其預設支援的資料庫選項。因此,對MySQL語法協議支援的強弱則成為分散式資料庫SQL完整性支援的評判關鍵。

 

新技術前瞻性指的是分散式資料庫與未來開發方式和IT架構是否吻合。

 

>>> 分散式與彈性擴充套件能力

作為資料服務資源池,分散式資料庫必須做到可彈性擴張,才能在服務於上層不斷增加微服務型別與數量。同時對於每個微服務來說,其資料存放在一臺物理裝置還是多臺物理裝置,必須對其中的應用程式碼完全透明。

 

>>> 多模式引擎

服務於上層來自不同開發商、不同業務場景、不同資料型別的微服務,分散式資料庫必然需要支援多種SQL協議與計算引擎。從儲存引擎來看,結構化與半結構化資料都可能將會在應用中同時使用。因此,新一代分散式資料庫需要從訪問介面到儲存結構均支援多模(Multi-Model)引擎。

 

>>> HTAP(Hybrid Transactional/Analytical Processing)

HTAP即混合交易分析處理能力。在傳統銀行IT架構中,聯機交易與統計分析系統往往採用不同的技術與物理裝置,通過定期執行的ETL將聯機交易資料向分析系統中遷移。而作為資料服務資源池,同一份資料可能被不同型別的微服務共享訪問。當一些聯機交易與審計類業務針對同一份資料同時執行時,必須保證請求在完全隔離的物理環境中執行,做到交易分析業務無干擾。

 

總體來說,分散式資料庫技術趨勢需要從傳統技術相容性以及新技術前瞻性兩個維度進行評判,其中ACID資料安全與SQL完整性是傳統技術相容性的重要指標,而彈性擴充套件能力、多模式引擎、以及HTAP則是新技術前瞻性的幾個重要衡量標準。

 

 

SequoiaDB巨杉資料庫技術優勢

 

 

>>> 微服務架構下雲化的管理

在未來微服務化應用開發以及雲化平臺的趨勢下,應用不再以“煙囪式”的中介軟體加資料庫模式進行構建,而是採用數千甚至上萬的微服務程式構建成的複雜網狀模型。

 

新一代分散式資料庫針對微服務架構,將會提供資料庫的例項化部署,幫助資料庫與上層微服務實現更好的對接,資料庫也將提供雲化管理方式,保證龐大複雜的微服務能夠實現更細粒度管理。

 

針對微服務應用架構,使用者可以在同一個叢集中建立成百上千個不同的關係型資料庫例項。資料庫例項的訪問與使用方式和傳統關係型資料庫100%相容,同時其底層所使用的資料從邏輯上完全獨立,每個例項擁有自己獨立的許可權管理、資料管控、甚至可以選擇部署在獨立的硬體環境或共享裝置中。

 

SequoiaDB巨杉資料庫支援資料庫服務例項化。從應用程式開發者與DBA的角度看,SequoiaDB巨杉資料庫所提供的關係型資料庫例項,與傳統MySQL、PostgreSQL和SparkSQL保持全相容。

 

>>> 儲存資源池化,彈性擴充套件

隨著海量資料管理需求不斷增加,資料庫儲存的擴充套件性也成為支撐整個資料平臺的重要核心能力。SequoiaDB採用分片技術為系統提供了彈性的橫向擴充套件機制,可以根據應用需求調整儲存;實現了儲存引擎的多模資料管理,支援非結構化、結構化和半結構化資料全覆蓋並統一管理,讓資料庫平臺場景更多樣,也能符合雲資料架構下對於多樣化業務資料的統一管理與運維要求。

 

SequoiaDB的分片過程對於應用程式來說完全透明。該機制解決了單臺伺服器硬體資源(如記憶體、CPU、磁碟 I/O)受限的問題,並不會增加應用程式開發的複雜性。巨杉資料庫通過原生分散式架構,可以輕鬆實現PB級別資料管理,目前生產環境最大支援超過1500個節點叢集,實現全量資料全生命週期管理。

 

同時,在一個大型叢集中,SequoiaDB提供了多維度、多層級的邏輯與物理隔離能力。在一個典型的資料資源池型別基礎資料服務平臺(DBaas,DataBase As A Service)中,SequoiaDB巨杉資料庫能夠同時服務於成百上千個不同SLA服務級別、優先順序、業務特性、與資料量的應用程式,並保證應用程式之間的資料邏輯與物理隔離。

 

>>> 分散式交易與事務

從安全性上來看,不論採用新技術或傳統技術,資料不錯不丟是所有資料庫的必備基礎。在分散式資料庫業界中,一些針對網際網路技術設計的產品以分散式(Partition Tolerance)加高可用(Availability)作為目標,在安全一致性(Consistence)上無法保證資料的正確,很難在銀行業務中被廣泛使用。因此,大型企業使用者會所關注的新型分散式資料庫必須首先保證資料的安全和一致性,其中分散式事務、分散式鎖、四種隔離級別的支援等都是該指標中的關鍵技術點。

 

雲化和微服務架構下,SequoiaDB分散式架構下,提供完整的ACID支援,完整的事務支援和一致性保障,充分保證資料安全,滿足核心交易業務的嚴苛要求。

 

>>> 傳統應用相容

作為新一代分散式資料庫,其架構與功能特性需要保證在與傳統資料庫全相容的基礎上,擁抱微服務與雲端計算框架。因此,分散式資料庫對於分散式交易與ACID必須保證與傳統技術完全相容。同時,在面向微服務應用開發與雲端計算基礎架構時,新一代分散式資料庫必須支援彈性擴張、資源隔離、多租戶、可配置一致性、多模式(支援各類SQL協議)、叢集內可配置容災策略等一系列功能。

 

其中,SQL的支撐是資料庫產品最為重要的技術特性。SequoiaDB提供了原生