官术网_书友最值得收藏!

1.6 新技術運用和輸出

近年來,數據庫新技術層出不窮。

從數據庫發展來說,已經經歷三代。第一代是支持SQL的關系數據庫;第二代是支持非結構化數據、強擴展能力,但不保證ACID事務特性的NoSQL數據庫;第三代是NewSQL數據庫,提供了與NoSQL相同的可擴展性,基于關系模型,保留了SQL作為查詢語言,保證了ACID事務特性等。

從支持SQL的關系數據庫本身以及周邊生態圈的成熟度、數據查詢的靈活度、開發工程師以及DBA對其的掌控程度等方面來看,無論是NoSQL還是NewSQL,實難于近期完全取而代之。

另外,在微服務和云原生大潮的卷席之下,服務化一直以來是人們關注的重點。那么,對于微服務架構中越來越多的數據庫垂直拆分,以及數據量急劇膨脹后的數據庫水平拆分,是否存在行之有效的方案來管理呢?當今大為流行的服務網格(Service Mesh)理念又能否對數據庫的服務治理帶來一些啟示呢?

數據庫網格(Database Mesh,DBMesh)是一個搭乘Service Mesh浪潮衍生出來的新興詞匯。Database Mesh使用一個中間層,將散落在系統各個角落的數據庫統一治理起來,提供應用與數據庫之間的交互網絡,就像蜘蛛網一樣復雜而有序。

這些數據庫新技術和當前商業銀行的科技興行戰略不謀而合。基于這個戰略,商業銀行應積極擁抱NoSQL和NewSQL新技術,并持續推進數據庫的服務化運用,完成向傳統+互聯網混合架構的轉型,以提升信息科技的核心競爭力,并在合適的時機開展對外科技輸出行動。

1.6.1 NoSQL數據庫

傳統的關系數據庫基于關系代數和元組(Tuple)操作,這樣的數據被稱為結構化數據。同時還有很多半結構化數據,例如文檔類型的數據,通常數據量很大,具有一定的結構,但是結構會經常變化。關系數據庫在處理此類非結構化或者半結構化數據時遇到很大挑戰,此時NoSQL數據庫應運而生。

NoSQL最常見的解釋是“non-relational”,“Not Only SQL”也被很多人接受。NoSQL泛指非關系型的數據庫,區別于關系型的數據庫,它們不保證關系數據的ACID特性。NoSQL是一項全新的數據庫革命性運動,其擁護者們提倡運用非關系型的數據存儲,相對關系數據庫,這是一種全新的思維。

NoSQL數據庫具有下面的特點。

1.靈活的可擴展性

傳統的關系數據庫由于自身設計機理的原因,通常很難實現“橫向擴展”,在面對數據庫負載大規模增加時,往往只能選擇開銷很大的縱向擴展。但是,對于NoSQL數據庫,在設計之初就是為了滿足橫向擴展的需求,橫向擴展僅需要非常廉價的標準化x86服務器,因此天生具備良好的水平擴展能力。

2.靈活的數據模型

NoSQL數據庫天生就旨在擺脫關系數據庫的各種束縛條件,摒棄了流行多年的關系數據模型,轉而采用鍵/值、列族等非關系模型,允許在一個數據元素中存儲不同類型的數據。

3.良好的讀寫性能

關系數據庫為了維護數據的一致性付出了巨大的代價,面對海量數據的時候效率較低。NoSQL存儲的格式都是Key-Value類型的,并且存儲在內存中,容易存儲,而且對于數據的一致性是弱要求,具有非常高的讀寫性能。

4.與云計算緊密融合

云計算具有很好的水平擴展能力,可以根據資源使用情況進行自由伸縮,各種資源可以動態加入或退出,NoSQL數據庫可以憑借自身良好的橫向擴展能力,充分自由利用云計算基礎設施,很好地融入到云計算環境中,構建基于NoSQL的云數據庫服務。

商業關系數據庫都是付費的,并且價格昂貴,成本較大;主流的NoSQL數據庫有Redis、MemCache、MongoDB、BigTable、HBase等,這些NoSQL數據庫都是開源免費的。

早期隨著緩存的發展,例如10年前最早的TC/TT,發展到后來的MemCached和Redis,應用可以通過Key-Value結構在內存里操作經常使用的數據。

針對很多半結構化的數據,例如文檔類型的數據,它們具有一定的結構,但是這些結構可能經常變化,隨時可以需要調整,這就出現了文檔數據庫,例如MongoDB和CouchDB。

近年來,越來越多的NoSQL數據庫加入了列式存儲的能力。大部分傳統的關系數據庫是面向行組織數據。基于列式存儲,每一列本身就相當于索引,在做一些需要索引的操作時,就不需要額外的數據結構來為此列創建合適的索引;另外,列式存儲利于數據壓縮,大部分列數據其實是重復的,而且數據類型一致,這樣利于數據結構填充的優化和壓縮。典型的使用列式存儲的NoSQL數據庫,包括BigTable、HBase等。

針對NoSQL數據庫,建議在數據量大但數據模型簡單、對數據一致性無要求、對擴展性要求高的應用場景下選擇使用。

1.6.2 NewSQL數據庫

NoSQL數據庫提供了良好的擴展性和靈活性,很好地彌補了傳統關系數據庫的缺陷,但是它也存在自己的不足之處,不具備高度結構化查詢等特性,查詢效率尤其是復雜查詢方面不如關系數據庫,而且不支持數據庫事務ACID特性。

在這個背景下,NewSQL數據庫開始逐漸升溫。NewSQL一詞是由451 Group的分析師Matthew Aslett在研究論文中提出的,它代指對老牌數據庫廠商做出挑戰的一類新型數據庫系統。NewSQL數據庫不僅具有NoSQL對海量數據的存儲管理能力,還保持了傳統數據庫支持ACID和SQL等特性。不同的NewSQL數據庫的內部結構差異很大,但是它們有兩個顯著的共同特點:都支持關系數據模型,都使用SQL作為其主要的接口。

如表1-3所示,NewSQL數據庫就是在傳統關系數據庫上集成了NoSQL強大的可擴展性。傳統的SQL架構設計基因中是沒有分布式的,而NewSQL生于云時代,天生就是分布式架構。NewSQL的主要特性如下。

(1)支持關系模型,支持對傳統SQL數據庫的繼承。

(2)支持SQL接口,支持復雜查詢和大數據分析。

(3)支持ACID事務,支持多種隔離級別。

(4)水平擴展,擴容縮容對應用完全透明。

表1-3 傳統SQL、NoSQL和NewSQL數據庫區別

1.6.3 數據庫網格

服務網格(Service Mesh)是近年來一個熱門話題,主要關注服務發現、負載均衡、動態路由、降級熔斷、調用鏈路等。不同于常見的Apache Dubbo或者Spring Cloud微服務方案,在服務網格里把所有對服務的通信、控制等基礎設施和策略,從應用系統中抽離出來,下放到更基礎的組件中(稱作Sidecar)。這樣,就把系統劃分成了應用服務所在的數據面,以及控制節點所在的控制面。

同樣地,把這些概念應用到數據庫領域,就產生了一個新組件,可以先稱為Sharding-Sidecar。這樣應用就不用去管數據是通過什么協議傳輸、具體存儲在什么地方,而僅需要把所有數據都當作本地數據,向Sharding-Sidecar組件申請使用即可。所有跟數據庫本身相關的配置,所有的數據質量、安全、流控和治理的策略,也不需要應用系統直接感知。

相應地,可以把Sharding-Sidecar加入到數據面板,把分布式數據庫治理和UI加入到控制面板,把對應用系統完全透明的數據庫節點例如MySQL實例、GoldenDB分布式數據庫實例、Db2實例等都作為一個新的層,稱為存儲面板。

此時,一個完備的云原生的數據庫中間件解決方案就產生了,稱為數據庫網格(Database Mesh,DBMesh),如圖1-1所示。

通過數據庫網格,可以實現統一數據源、統一接口和統一事務的目標,具體如下。

(1)統一數據源。該目標旨在屏蔽分布式系統下的通信復雜性,按照服務規范,應用以庫名和表名直接訪問數據,開發人員只需關心如何實現具體的業務邏輯即可,無須知道屬于哪個數據源;數據面通過語句分析得到語句所涉及的表,查詢控制中心,得到其歸屬的數據源以及連接信息。

(2)統一接口。應用無須關心各數據源的語法差異,數據面統一控制轉換為各數據源的語法;數據面提供一個受限制的語法集合,作為其標準語法,同時定義其標準的JDBC訪問,支持R2DBC訪問;數據面訪問數據源時,需要時依據語義轉換為具體的訪問語句。

圖1-1 數據庫網格示意圖

(3)統一事務。全局流水號唯一標識跨微服務事務,微服務事務的執行,由控制面與數據面控制統一提交或回滾。

1.6.4 新技術運用建議

對于新技術領域的布局,商業銀行不能被動等待,要積極投入資源、追蹤引進世界金融科技前沿技術,加大對金融科技重大科學前沿問題的前瞻性與戰略性研究攻關,打造自主、安全、可控的“技術硬實力”。

在商業銀行數據庫轉型實踐中,可以利用NewSQL、數據庫網格、人工智能、大數據等新技術,實現使用數據庫服務就像使用自來水和電一樣簡單。新技術的運用充滿機遇,但也在銀行這樣嚴監管的組織中存在挑戰。

針對新興技術在商業銀行數據庫轉型實踐中的運用,有以下建議。

(1)建議提前布局新興技術,力爭實現自主掌控。由于歷史原因,我國商業銀行的技術創新主要集中在應用技術層面,但核心技術也包括新興技術依賴國外廠商。銀行需要加速實現數據庫核心技術研發和掌控,才能在數字化轉型實踐中建立競爭優勢。

(2)新興技術的研發,建議以需求為導向,產學研深度融合,這既是技術發展的內在需求,也是我國金融信息科技安全穩定的要求。

(3)建議繼續加大對金融科技的資金投入。例如,建議金融科技投入占到營業收入的3%以上;建議每年用凈利潤的1%以上支持新興技術孵化。

(4)建議繼續加大數據庫技術的知識管理。隨著數據庫技術的推廣和使用,很多商業銀行都積累了相當多的經驗知識,建議將這些經驗知識都納入知識庫管理。

(5)建議加大知識產權保護和激勵機制。對前瞻性的創新技術或者產品,特別是原創性和獨創性的創新,要善于利用知識產權進行保護。對知識產權的創造與個人績效全面掛鉤。

1.6.5 新技術輸出建議

從目前趨勢來看,商業銀行與科技產業相互融合更加緊密。已有多家商業銀行相繼成立金融科技公司,并出臺金融科技發展戰略落地舉措;央行也宣告成立“成方金融科技有限公司”。國內外頭部科技公司、基礎技術廠商不斷加碼與金融機構的戰略合作及聯合孵化,多方參與、競爭合作、融合發展的態勢已然形成。未來仍會有更多的銀行同業及其他行業機構參與布局金融科技,形態也將越來越豐富。

如表1-4所示,工商銀行、建設銀行、中國銀行、招商銀行、民生銀行、興業銀行、光大銀行等成立了金融科技公司,專門負責對外數字化技術輸出。

表1-4 各大銀行金融科技公司清單

針對金融科技公司對外數字化技術輸出方面,有以下建議。

(1)傳統銀行成立金融科技子公司,是銀行業市場化體制創新的重要平臺,也是傳統銀行未來業務支撐點之一,建議各大銀行積極試點和推廣。

(2)金融科技公司在組織架構、管理機制等方面可以擔當技術輸出,在對外輸出科技能力上可以輕裝上陣,建議各大銀行將這種能力加以深挖,最終形成獨特的核心競爭力。

(3)金融科技公司在對象選擇上,建議優先選擇大金融業,包括銀行、證券和保險。這樣向同屬行業輸出,成本最低,見效最快。

主站蜘蛛池模板: 宁南县| 平果县| 广元市| 姚安县| 新郑市| 台南市| 建宁县| 丹东市| 西昌市| 额敏县| 溧阳市| 崇仁县| 大英县| 华蓥市| 阿勒泰市| 昌乐县| 慈利县| 左贡县| 澄城县| 泽州县| 五寨县| 枣强县| 杂多县| 灯塔市| 重庆市| 涪陵区| 大丰市| 临漳县| 仁怀市| 祁阳县| 平谷区| 金川县| 翁源县| 凉城县| 文安县| 商河县| 阿克苏市| 陇西县| 新野县| 崇义县| 河西区|