田海熠,張青青
(南京審計大學 金審學院,江蘇 南京 210000)
在互聯網的高速滲透下,數據管理已經成為重中之重。數據庫技術是組成應用系統的重要的一部分,幾乎所有的計算機應用都沒有辦法離開數據庫系統的支持,尤其是金融行業[1]。數據量的提升,促使人們去創建一個可以降低成本,滿足線性擴容以及能夠處理交易事務的新型數據庫,提升數據的儲存能力成為不得不去面對的挑戰。互聯網的快速發展也要求金融數據庫系統的性能有所提升,其必須具備高性能、高容錯性以及可擴展性能。為了應對這些挑戰,分布式數據庫成了金融行業發展和創新的主流。
數據庫系統的萌芽出現于20世紀60年代,數據庫技術從起源以來,在這短短的不到半個世紀的時間里,形成了較為成熟的商業產品、一定的理論基礎以及產生了廣泛的應用領域,它的起源和發展給計算機信息管理以及技術管理帶來了一場翻天覆地的變化。
數據庫的發展歷程一共經歷了3個階段,分別是人工管理階段、文件系統階段和數據庫系統階段[2]。具體各階段的發展特點如表1所示,每個階段的使用模型如圖1所示。

圖1 數據庫的發展歷程

表1 各階段的發展特點
總之,在不同階段,為了解決產生的新問題,數據庫的功能需要不斷提升,不斷在其發展的領域做出適應大眾的改變。
商業銀行業務的模式和特點使它使用的信息系統和普通企業使用的信息系統產生了區別,如果所要處理的數據很多,就可以考慮DB2,因為它擁有很強的擴展性。Oracle可以在目前較為流行的操作系統上運行,而且它具有性能較為完備的數據庫存儲服務。MySQL在互聯網公司中使用的較多,在銀行業中使用的并不多,因為它沒有成熟的高可用可解決方案,但是有一些銀行會將一些可用的成熟組件和MySQL聯合起來使用,也取得了想要得到的效果。目前比較常用的數據庫有以下幾種,如表2所示。

表2 常用的數據庫
總而言之,銀行端在進行業務系統開發時,應該要根據需要處理的業務的特點來選擇不同的數據庫類型,這樣可以提高數據處理的效率,也可以縮短系統所做出的反應時間。同時可以提高客戶體驗感,也可以節約相應的成本。而傳統數據庫在面對銀行業務需求時,不同的數據庫暴露了不同的性能弱勢,很難完全迎合業務需求,所以目前很多銀行都采用分布式數據庫。
這些年來,隨著海量交易數據的出現以及交易復雜度的增加,傳統數據庫在處理這些問題時,在擴展性、性能、吞吐量和可靠性方面遇到了明顯的瓶頸,并且只能通過拆分業務、升級軟件的方式來提升相關方面的性能,導致了設備和人員方面成本的提升[3-6]。面對互聯網金融行業的發展,數據的交互和存儲呈大幅度增長,這樣是無法保證業務連續性的。因此,許多商業銀行紛紛展開了對分布式數據庫的研發應用。分布式數據庫的應用場景主要特征是海量并發,所以從理論上來說,業務規模越大,使用分布式數據庫的需求也就更加的急迫。相對于傳統數據庫來說,分布式數據庫具有靈活的體系結構,高可靠性和可用性以及優越的可擴展性和易于集成現有的系統。
(1)何為分布式數據庫。分布式數據庫是由一組數據組成的,這組數據分布在計算機網絡的不同計算機上,網絡中每個節點具有獨立處理的能力[7],每個節點也能通過網絡通信子系統執行全局應用。銀行業中常見的分布式數據庫有:MySQL,Redis,MongoDB以及Hadoop。
(2)分布式數據庫的優點。可擴展性:隨著銀行業務數據不斷擴大,原來的傳統數據庫性能方面出現瓶頸,無法通過增加硬件資源獲得提升時,分布式數據庫可以通過將數據拆分橫向擴充的方法來解決問題。可靠性:分布式數據庫具備多副本的特性,并且基于協議可以確保副本中數據的一致性。可用性[8]:節點發生故障時,可以自動切換,不需要人工進行操控,對于應用是透明的。
(3)分布式數據庫的不足[9-11]。對于帶寬要求高:由于分布式數據庫是通過網絡來連接各數據節點的,對網絡帶寬的要求較高,任何一種因為網絡延遲而造成的問題都會被放大。有一定損耗:由于分布式事物大部分是使用2PC(二階段提交協議,一種分層式通信算法)的方式,雖然產品都做過優化,但是仍受原理、性能的牽制,還是會有一定的損耗。存在限制:對特定的對象和語法存在限制,對開發來說有一定的改造成本。技術不夠成熟:成熟度相對較低,學習和運維成本較高。
在大數據時代的需求下,工商銀行對數據庫實現轉型。通過構架轉型,他們在自主能力方面,初步建立了企業級的基于MySQL的分布式解決的自主能力:首先是分布式框架+MySQL的應用及分布式解決方案,承載了很多從主機下來的應用[12]。其次是基于分布式中間件構成了所謂聯機交易的數據庫,在應對一些不是很復雜的場景時,通過良好設計的分庫分表方案就可以滿足需求。
在信息輔助服務中,通過DBLE實現分布式數據庫。這是一個數據量很大的系統,它的交易特征是:高并發、低延時、日均交易量2億,交易相應延時小于10 ms,業務數據量20 T,并且要求7×24小時的聯機服務。工商銀行通過分布式中間件做MySQL的分庫分表,共計128個分片,并對分片進行合并部署,使資源使用上的收益增加。
通過轉型可以看到,工商銀行在主機上的成本投入明顯下降,雖然業務交易量每年以20%的速度增長,但是主機并沒有進行擴容,投入還逐年降低。商業產品的數據庫的使用不僅實現零增長,還有所下降。總的來看,經費下降幅度很大。
在AI技術和大數據技術的推動下,招商銀行正向數據驅動的方向發展,因此對數據庫的要求也發生了變化,但由于現在市場上缺乏滿足要求的成熟產品,通常情況下是會采取在開源數據庫上進行分表,但是仍然有明顯的不足。另一方面,各種新型數據庫也都存在著缺陷,所以招商銀行和華為公司雙方共同合作打造了一款數據庫產品,名為GaussDB。
使用GaussDB分布式聯機事務處理過程(On-Line Transaction Processing,OLTP)數據庫后,招商銀行的綜合交易流水平臺、風險預警平臺以及重資產營銷平臺的管理數據容量提升了10倍,AI的故障恢復速度提升了30倍,相較其他產品30秒的恢復時間目標,Gauss可以在1秒以內做到。
隨著大數據時代的到來,江蘇銀行在數據存儲方面也遇到了問題,傳統數據庫迎來了性能瓶頸時期。江蘇銀行原有的事后監督系統是基于Oracle開發的,在大數據量下,存在性能瓶頸,于是開始使用分布式數據庫GoldenDB,進行遷移改造。
GoldenDB通過完善的導數工具和并行處理架構,實現了對數據的高性能處理。與此同時,他還提供兼容結構化查詢語言(Structured Query Language,SQL)和Oracle語法的業務。在江蘇銀行使用分布式數據庫GoldenDB后,系統性能高于原有系統的3倍。
分布式數據庫給銀行業所帶來的益處是肉眼可見的,在費用方面,他一改傳統數據庫增加硬件資源的做法,而是對數據結構進行劃分,橫向擴充,這大大地降低了對硬件設施的投資,從而達到了降低經費的標準。在數據處理方面,他不僅擁有大數據存儲容量還具有很快的數據處理速度。
大部分銀行在選擇所使用的分布式數據庫時,會結合自身需求,在現階段所存在的數據庫中進行選擇。若沒有符合要求的,他們會尋找技術商進行合作,共同打造一個全新的、全面符合自身要求的分布式數據庫。雖然分布式數據庫出現的時間不夠長,但是相對于之前的傳統數據庫來說,他能夠提供之前傳統數據庫所不能提供的便利和快捷,而且也能夠在降低成本的同時做到滿足銀行各項業務所需要的基本性能。現在所存在的分布式數據庫可能還存在一些不足,但是在未來的發展過程中,是值得期待的。
分布式數據庫從研發到應用這個過程的時間是很短的,不管是從建設還是成熟度上來說,它相對于傳統數據庫是遠遠不足以相提并論的。大部分的分布式數據庫都是應運而生,是為了滿足生產者的自身業務要求而產生的,所以還是需要在以后的使用過程中逐步完善,補齊差距。
(1)對于產品硬件方面可以提高兼容性,分布式數據庫對于傳統Oracle和DB2等數據庫的兼容能力很低,這是須需技術人員去改善的一大缺陷,盡快提高兼容性,降低使用者在轉換方面的難度,提高兼容性的同時,也需要提供一套能夠幫助使用者遷移的工具。
(2)對于產品性能方面可以提高安全性能,完整的安全能力是目前國產分布式數據庫產品相對不足的地方,在數據加密、數據審計、精細權限管理方面,都需要進行相應的優化和提高,防止敏感數據泄露,杜絕誤操作行為。
(3)對于管理方面可以提高管理能力,大部分的分布式數據庫都是由互聯網廠商研發的,所以在運營維護方面欠缺較多,研發時一般只為了迎合業務需求,并沒有考慮到后續的管理問題,所以需要加強完整的管理能力,使操作該數據庫的數據庫管理人員、負責人以及相關團隊能夠擁有良好的掌控能力。
隨著互聯網金融高潮的襲來,銀行業中的數據管理已經開始變得復雜和多樣化,所以需要利用新的分布式構架所構建的數據業務來適應發展業務所提出的要求。相信在不斷地改進和完善中,分布式數據庫的應用會和傳統數據庫一樣為金融業廣泛、熟練地使用。