search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

【精品案例推薦】廣發銀行:基於國產分散式資料庫的銀行海量數據查詢平台

數據猿導讀

本文提出近線數據的概念,將全量歷史數據從離線與生產系統中統一複製到近線數據存儲區,一方面減輕了生產系統擴容在線磁碟空間的壓力,另一方面又解決了存量備份磁帶數據的管理問題,同時提供了海量歷史數據的在線查詢功能,將運維人員從繁雜的歷史數據磁帶恢復工作中解放出來

本文長度為4300字,建議閱讀9分鐘

隨著互聯網金融、直銷銀行、手機銀行等新業務形態的興起,銀行對於數據管理的需求趨於多樣化、複雜化,因此,迫切需要構建統一的高性能數據平台,以應對新業務的需求。同時,隨著技術的不斷發展,曾經看似「無價值」的存量數據,也能通過創新的技術激發新的價值。因此,利用新的分散式技術構建新的數據業務架構,是大型銀行企業的當務之急。

廣發銀行為迎接新的業務挑戰,在業務和技術的創新上走在了行業的前面。隨著廣發銀行新核心銀行系統和新信用卡核心繫統的陸續投產,為了實現歷史數據存儲與查詢功能從核心繫統剝離,同時各業務部門、渠道系統及外單位對我行歷史交易數據的查詢、提取需求越來越多,要求以較低的成本、較高的性能滿足海量歷史數據查詢需求。

考慮到金融業信息系統國產化建設的需要,我行選用國產分散式資料庫SequoiaDB巨杉資料庫,使用PC伺服器集群建設歷史數據查詢平台,在歷史數據存儲、歷史數據查詢、歷史數據管理等方面進行系統性的設計與優化,最終形成一套完整的國產化金融業歷史數據存儲與查詢解決方案,該方案能夠適應PB級海量數據存儲與查詢請求,滿足我行歷史數據歸檔與查詢的需要。

1.系統定位

系統定位於建設我行內部歷史數據歸檔和查詢服務平台,主要實現以下三大功能:

1)為各業務系統提供在線實時歷史數據查詢接入服務;

2)為科技、業務團隊提供歷史數據自由查詢和自定義報表服務;

3)根據我行數據生命周期管理的需求,面向業務系統提供近線數據歸檔備份服務。

圖丨歷史數據查詢平台功能定位

根據以上功能定位,將歷史數據查詢平台資料庫集群分為近線數據存儲區、定製查詢數據區、自由查詢數據區、沙盒驗證數據區四個資料庫子群,再通過數據加工調度層、統一數據服務層、數據管理區等三大功能模塊實現對資料庫集群的管理並提供數據服務。

完整的平台架構如下圖所示,其中在線交易服務平台與ECM內容管理平台不涉及歷史數據平台三大目標,本文不做詳述。

圖丨歷史數據查詢技術架構

2.資料庫規劃設計

歷史數據查詢平台資料庫集群由近線數據存儲區、定製查詢數據區、自由查詢數據區、沙盒驗證數據區四個資料庫模塊組成。

下面分別對這四個資料庫模塊功能進行論述:

2.1近線數據存儲區

根據業務系統歷史數據歸檔需求,建立近線數據存儲區用於存儲從源系統直接導入的原始數據,包括超出生產系統保存期限的流水數據、需要按時點備份的非流水數據。此區域以歸檔為目的,可以向其他數據服務區提供數據,但是無法從數據訪問層直接調用。

可根據源系統不同劃分多個SDB集群,集群內部使用劃分數據域的方式進行分類管理。

2.1.1數據入庫範圍

通過統一的數據傳輸通道,逐步完成新銀行核心繫統(包含新銀行核心前置系統)、POS收單系統、儲蓄國債(電子式)業務系統、單證中心繫統、電子商業匯票系統、電子支付系統、簡訊平台系統、二代支付系統、廣發門戶網站、櫃面終端系統、後台集中作業平台、呼叫中心系統、黃金交易系統、金融IC卡業務系統、開放式基金代銷系統、跨行資金管理系統、企業級客戶信息應用平台、網上銀行系統、新銀行核心繫統(海外應用)、信用卡核心繫統、銀行呼叫中心應用網關係統、銀證結算第三方存管系統、支票影像處理及電腦驗印系統、中間業務平台、自助設備前置系統等25個業務系統歷史存量數據入庫、增量數據T-2同步入庫。

2.1.2數據入庫方式

近線數據存儲區採用以下入庫方式:

1)存量歷史數據導入使用FTP和NAS共享兩種方式;

2)每日增量數據以ODS供數為標準入庫方式,CD作為補充手段;

3)支持通用流程與用戶自定義流程;

4)支持自動調度、斷點續跑、數據校驗。

圖丨近線數據存儲區入庫方式

近線數據存儲區的數據入庫流程由行內的統一調度平台進行統一調度。ODS增量數據按規則導出到近線數據存儲區中各集群節點上的高速SSD磁碟上,由各節點完成由GBK文件到UTF-8文件的轉碼處理,並直接調用巨杉資料庫提供的批量數據導入工具sdbimprt直接進行數據批量載入,將數據導入SDB集群近線數據存儲區。

2.1.3數據歸檔存儲方式

近線數據存儲區的入庫數據包括流水類數據與非流水類數據。流水數據指類似「交易流水」這類典型按時間遞增的數據,包括以下兩個部分:

1)超出生產系統歷史表、歷史庫保存期限範圍的流水數據;

2)業務定製化查詢和自由查詢需求涉及的部分流水類在線數據(如:公檢法),非流水指類似「賬戶」、「客戶」這類沒有典型時間順序的數據。

圖丨近線數據存儲區數據存儲方式圖

如上圖所示,其中流水數據採用以下方式存儲:

1)流水數據使用主子表機制,主表不含數據,僅鏈接所有的子表分區;

2)流水數據按交易日期或賬務日期寫入按年/月劃分的子表中;

3)各流水子表按時間段存入相同的數據域,如金融子表2015和非金融子表2015同屬於流水數據2015域。

以新核心金融流水表為例,全年流水需要1T磁碟空間即可完成數據歸檔存儲。

對於非流水數據,則按照業務類型劃分域,T-2日同步生產數據,同時保留最近三天的全量數據,逢自然月底自動生成當月歸檔數據。

根據目標表數據量大小可選用全量歸檔和鏈式歸檔兩種方式:

1)全量歸檔:月底生成全量歸檔數據。例如新核心客戶資料檔,大小22G,每年存12份全量數據,需264G磁碟空間;

2)鏈式歸檔:每年只保留一份全量數據,每月底生成增量差異數據鏈表。例如客戶合約檔,大小72G,鏈式歸檔僅需要100G以內磁碟空間。

圖丨非流水數據存儲方式示意圖

2.2定製查詢數據區

根據各系統歷史數據查詢和業務制定化查詢需要,建立定製查詢數據區,為業務系統提供超過生產保留期限的歷史數據查詢服務,同時具備一定的數據加工能力,根據業務規則提供加工后的定製化數據查詢服務。

2.2.1數據入庫範圍

定製查詢數據區的數據來源為近線數據存儲區的原始數據和部分按業務需求加工后的數據,提供在線、中高併發,小結果集的數據處理能力,根據業務需要提供2-30年不等數據保留期限。根據定製查詢的業務需要,數據加工調度層從近線數據存儲區調取相關數據進入定製查詢區。

如下圖所示:存儲兩類數據域

1)原始數據鏡像:提供業務需要直接訪問的原始數據表查詢(TB1、TB2、TB3……),如:公檢法查詢、歷史賬單等;

2)加工后的數據:提供上游系統加工過後的數據查詢(TB10……),如:委外催收、貼心服務等。

圖丨定製查詢數據區數據入庫流程

2.2.2定製查詢數據服務流程

1)數據寫入近線存儲區;

2)數據經加工調度層進入定製查詢服務區;

3)部分數據加工后寫入定製查詢數據區目標表;

4)用戶提交查詢請求;

5)中間件通過SQL或SDB API讀取數據;

6)中間件將結果返回給應用。

2.3自由查詢數據區

根據科技部門、業務團隊歷史數據多表關聯自由查詢和自定義報表的需要,建立自由查詢數據區,提供靈活數據查詢、檢索、自定義報表服務。

2.3.1數據入庫範圍

根據自由查詢的頻率,數據加工調度層從近線數據存儲區調取相關數據進入自由查詢數據區,提供離線、低併發、高運算、大結果集的數據處理能力。

2.3.2數據服務流程

由於用戶對於自由查詢提交的請求結果是不可預知的,為防止不必要的複雜計算和大結果集查詢請求消耗系統資源,自由數據查詢引入了沙盒存儲區的概念。用戶提交的自由查詢請求要先經過沙盒區的驗證,一方面驗證語法效率,另一方面提供一個小結果集的樣本數據供用戶判斷本次請求是否能得到需要的數據結果。

整個自由查詢的流程如下圖所示:

圖丨自由查詢服務流程圖

其中,第八步的詳細過程如下:

1)服務層解析用戶提供的自由查詢SQL所需要的表名及其相關信息,包括:表類型(流水數據、非流水數據)、時間戳(針對非流水數據)、時間段(針對流水數據)等;

2)系統確認SQL所需表的數據範圍是否已在自由查詢區;

3)如不在,服務層向數據加工調度層的作業隊列中提交數據同步複製任務,通過數據加工調度層提供的數據加工API介面從近線數據存儲區向自由查詢區複製相應缺失部分的數據;

4)服務層向數據加工調度層的作業隊列中提交數據查詢任務,以最終執行自由查詢SQL語句。

2.4沙盒區

如上節所述,建立沙盒區用於自由查詢請求驗證,存放近線數據存儲區中數據表的最新樣本數據,驗證查詢請求可行性。通過定期ETL任務,從近線數據存儲區提取樣本記錄放入沙盒區,自由查詢服務請求線進入沙盒區進行語法效率驗證,防止低效、錯誤的查詢請求進入自由查詢執行區。提供在線、中低併發、超高運算、小結果集的數據處理能力。

3. 數據應用管理

歷史數據查詢平台通過數據加工調度層、統一數據服務層、數據管理區等三大功能模塊實現對資料庫集群的管理並提供數據服務。

3.1數據加工調度

通過SDB API建立數據加工調度層實現從近線數據存儲區統一向各數據服務區提供數據加工、調度服務。任務分為以下兩種:

1)數據複製任務:實現歷史數據查詢平台中各區域間的批量數據複製,以及存量數據更新的同步操作(如流水類數據沖正後的各區域間的數據同步),支持多個源數據表調度任務的并行處理;

2)數據加工任務:對於定製化查詢區常用的固定邏輯數據處理,採用後台數據加工的形式一次性把各相關原始數據表打平為一張寬表,簡化定製查詢的交易邏輯,減少定製查詢區計算資源消耗,提高查詢交易的響應時間。

3.2統一服務層

建立統一服務層,實現定製化查詢、自由查詢兩類查詢對外統一發布。

1)在線業務查詢介面:提供業務邏輯固定的查詢服務,根據具體業務設置相應的查詢條件,輸出要素,定製查詢服務。目前該介面已經提供歷史流水、櫃檯列印、司法查詢多個數據應用;

2)提供行內科技人員靈活多變的SQL類查詢服務,包括簡單sql查詢,複雜的多表關聯查詢等功能,通過在web頁面錄入標準SQL查詢,內部根據規則協議將標準SQL語法解析為SparkSQL語法或SdbApi查詢數據,以提升科技自由查詢效率。

3.3管理區

建立管理區實現數據複製及自由查詢任務的監控、各區域的數據表的元數據管理、展示各區域的數據表的已有數據範圍等功能。

總結

隨著銀行業務的不發展累積,海量歷史數據存儲與查詢服務,是銀行需要解決的一個難題。

目前我行使用歷史數據查詢平台方案已經實現司法查詢、櫃面綜合賬單列印、信用卡委外催收、歷史流水查詢等功能。這些應用的成功投產極大的提升了我行客戶請求歷史明細查詢的滿意度,同時大幅節省歷史數據存儲的費用,提升運營科技相關人員工作效率。

同時,隨著我行將海量結構化、非結構化歷史離線數據在線化,為行內提供了高性能的實時查詢業務服務。這也為廣發銀行未來支撐互聯網金融、直銷銀行、網上銀行等創新業務打下了堅實的基礎。

SequoiaDB分散式資料庫,結合分散式內存計算框架Spark,是Hadoop大數據分析架構的有力補充。這一創新分散式解決方案,提供高可用、高併發、高性價比的PB級海量歷史數據存儲與查詢服務,是銀行業面對海量歷史數據問題時的一個優秀解決方案。

數據猿超聲波

相關閱讀:

歡迎更多大數據企業、愛好者投稿數據猿,來稿請直接投遞至:[email protected]



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦