李 蘇
(中國(guó)人民銀行衡陽(yáng)市中心支行科技科,湖南 衡陽(yáng) 421001)
人民銀行現(xiàn)代化支付系統(tǒng)已經(jīng)發(fā)展到第二代,是銀行資金匯劃與資金清算的重要平臺(tái)和核心樞紐,在國(guó)家經(jīng)濟(jì)發(fā)展中承擔(dān)著重要作用、處于重要地位[1]。據(jù)統(tǒng)計(jì),某省會(huì)中支清算中心2016年業(yè)務(wù)筆數(shù)達(dá)21380萬(wàn)筆,年均數(shù)據(jù)量超2億條。支付清算數(shù)據(jù)體現(xiàn)著金融經(jīng)濟(jì)的運(yùn)行情況,關(guān)系著宏觀經(jīng)濟(jì)的發(fā)展?fàn)顩r,對(duì)其進(jìn)行分析利用可以為總結(jié)和預(yù)測(cè)金融經(jīng)濟(jì)發(fā)展提供一定參考。其分析側(cè)重點(diǎn)在于資金的流量流向分析、CCPC業(yè)務(wù)量分析、重點(diǎn)監(jiān)測(cè)單位業(yè)務(wù)分析、區(qū)域業(yè)務(wù)分析、銀行業(yè)務(wù)分析、行業(yè)業(yè)務(wù)分析等。
自支付系統(tǒng)上線運(yùn)行迄今已超過(guò) 10年時(shí)間,面對(duì)年均2億條的數(shù)據(jù)規(guī)模,積累數(shù)據(jù)將超過(guò)20億條,采用傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)將面臨壓力[2-5]。通過(guò)大數(shù)據(jù)分析平臺(tái),可以有效緩解該數(shù)據(jù)存儲(chǔ)壓力、匯總統(tǒng)計(jì)運(yùn)算壓力。支付清算數(shù)據(jù)是典型的結(jié)構(gòu)化數(shù)據(jù),關(guān)鍵字段包括交易序號(hào)、業(yè)務(wù)日期、業(yè)務(wù)類型、賬號(hào)、名稱、交易金額、歸屬區(qū)域、歸屬銀行、歸屬行業(yè)等。在進(jìn)行數(shù)據(jù)清洗后,以業(yè)務(wù)關(guān)鍵字作為key值、以相關(guān)屬性作為列族,存儲(chǔ)到列式數(shù)據(jù)庫(kù)如 HBase[6]中;再通過(guò)建立區(qū)域、銀行、行業(yè)維度,保存數(shù)據(jù)到事實(shí)表中,形成維度立方體,在前臺(tái)即可進(jìn)行各種維度分析、展示各種報(bào)表。大數(shù)據(jù)平臺(tái)為此提供了完整的數(shù)據(jù)處理鏈條,工具化的展示模塊,使得對(duì)數(shù)據(jù)的理解不再停留在過(guò)去以尋找數(shù)據(jù)發(fā)生原因?yàn)橹鞯乃悸飞希钦故玖藬?shù)據(jù)發(fā)展的趨勢(shì)、找出數(shù)據(jù)相關(guān)性,以歷史數(shù)據(jù)去預(yù)測(cè)未來(lái)數(shù)據(jù)的走向。
本人參與的人民銀行某省級(jí)數(shù)據(jù)中心大數(shù)據(jù)開發(fā)項(xiàng)目,利用開源的 hadoop、hdfs、hive、hbase、kylin、kettle等技術(shù)或工具搭建了一個(gè)分布式大數(shù)據(jù)分析平臺(tái),實(shí)現(xiàn)了海量支付清算數(shù)據(jù)的分析和統(tǒng)計(jì)。
分布式大數(shù)據(jù)從萌芽開始到現(xiàn)在的蓬勃發(fā)展,涌現(xiàn)了許多的技術(shù)體系和技術(shù)框架。其中應(yīng)用最為廣泛的當(dāng)屬源于Google公司的Hadoop[7-9]分布式系統(tǒng)基礎(chǔ)架構(gòu)。本文中的分布式大數(shù)據(jù)平臺(tái),是以Hadoop架構(gòu)為基礎(chǔ),選用其中部分組件進(jìn)行搭建。

圖1 基于HDFS的平臺(tái)物理架構(gòu)Fig.1 Physical architecture based on HDFS
構(gòu)成該平臺(tái)的 HDFS集群[10]的主要有兩類節(jié)點(diǎn),并以主從(Master/Slave)模式,或者說(shuō)是管理者-工作組模式運(yùn)行,即一個(gè)NameNode(管理者)和多個(gè)DataNode(工作者)。SecondaryNameNode是NameNode的鏡像數(shù)據(jù)備份。對(duì)應(yīng)到HDFS分布式文件系統(tǒng),NameNode是主服務(wù)器,管理文件系統(tǒng)的命名空間和客戶端對(duì)文件系統(tǒng)的訪問(wèn)操作;DataNode負(fù)責(zé)管理存儲(chǔ)的數(shù)據(jù)。同時(shí),Master主節(jié)點(diǎn)負(fù)責(zé)調(diào)度構(gòu)成一個(gè)作業(yè)的所有任務(wù),這些任務(wù)分布在不同的 Slave從節(jié)點(diǎn)上。Master主節(jié)點(diǎn)監(jiān)控它們的執(zhí)行情況,并且重新執(zhí)行之前的失敗任務(wù);Slave從節(jié)點(diǎn)僅負(fù)責(zé)由主節(jié)點(diǎn)指派的任務(wù)。另外,主節(jié)點(diǎn)要在可靠性和性能上優(yōu)于從節(jié)點(diǎn),并且要保證NameNode和SecondaryNameNode節(jié)點(diǎn)在配置和環(huán)境上要一致,方便在 NameNode不可用的情況下,可以以最快的速度替換。由于 Hadoop的作業(yè)基本上都是數(shù)據(jù)密集型,在進(jìn)行作業(yè)時(shí),有大量的中間結(jié)果需要通過(guò)交換機(jī)進(jìn)行傳輸,為了不讓帶寬成為瓶頸,建議使用萬(wàn)兆交換機(jī)。
平臺(tái)操作系統(tǒng)為L(zhǎng)inux CenteOS 7.3.1611版本,Hadoop版本為CDH5.10,JDK版本1.8,YARN版本 2.8.0,Hive版本2.1.1,HBase版本 1.2.5。從業(yè)務(wù)系統(tǒng)導(dǎo)出的 XML半結(jié)構(gòu)化的海量支付清算數(shù)據(jù)經(jīng)過(guò)簡(jiǎn)單的清洗都存儲(chǔ)到HDFS中。
Apache Hadoop Yarn是一種Hadoop集群環(huán)境的通用資源管理系統(tǒng),通過(guò)它可以為上層應(yīng)用提供統(tǒng)一的資源管理和調(diào)度,提高集群的資源利用率和數(shù)據(jù)共享能力。
HBase是一個(gè)高可靠性、面向列、可伸縮的分布式數(shù)據(jù)存儲(chǔ)系統(tǒng),與傳統(tǒng)的基于行的關(guān)系型數(shù)據(jù)不同,它是基于列存儲(chǔ)的。HBase利用 Hadoop HDFS作為其文件存儲(chǔ)系統(tǒng),Hadoop MapReduce[11]為HBase處理海量數(shù)據(jù)提供高性能的計(jì)算能力。
Hive[12-14]被認(rèn)為是 MapReduce2.0,它將用戶從編寫繁瑣的map和reduce函數(shù)中解脫出來(lái),采用類似 SQL語(yǔ)句方式進(jìn)行數(shù)據(jù)運(yùn)算,極大提高了應(yīng)用部署效率。Hive可以將結(jié)構(gòu)化文本文件映射到它自身的表結(jié)構(gòu)中,然后將用戶提交的QL查詢語(yǔ)句自動(dòng)轉(zhuǎn)化為 MapReduce過(guò)程進(jìn)行運(yùn)算處理,返回結(jié)果。

圖2 平臺(tái)軟件架構(gòu)Fig.2 The software architecture of platform
在完成大數(shù)據(jù)平臺(tái)環(huán)境搭建后,針對(duì)具體的應(yīng)用場(chǎng)景,我們?cè)O(shè)計(jì)了這樣的處理流程:

圖3 數(shù)據(jù)處理流程Fig.3 Data processing flow
① 來(lái)自各個(gè)渠道的大數(shù)據(jù)源,通過(guò)定時(shí)任務(wù),以批量傳遞的方式,主動(dòng)推送、被動(dòng)采集到 Hadoop平臺(tái)中,在HDFS分布式文件系統(tǒng)中進(jìn)行保存。
② 通過(guò) MapReduce/Hive對(duì)原始數(shù)據(jù)進(jìn)行提取、分析、清洗,完成ETL過(guò)程,形成結(jié)構(gòu)化的數(shù)據(jù),以鍵值對(duì)的形式,保存到HBase列數(shù)據(jù)庫(kù)中。
③ 對(duì)數(shù)據(jù)分析目標(biāo)進(jìn)行分析、建模,在MySQL中建立立方體結(jié)構(gòu),建立事實(shí)表、維度表;從HBase中讀取鍵值對(duì)數(shù)據(jù),抽取、運(yùn)算得到立方體的數(shù)據(jù)并插入到MySQL立方體中。
④ 建立 Web應(yīng)用,調(diào)用 HBase進(jìn)行明細(xì)數(shù)據(jù)查詢;調(diào)用Kylin立方體展示接口,對(duì)MySQL立方體數(shù)據(jù)進(jìn)行展示,可供自定義行列、鉆取、追溯;調(diào)用潤(rùn)乾等報(bào)表工具,建立常規(guī)固定格式報(bào)表。
央行范一飛副行長(zhǎng)在 2017年科技工作會(huì)議上指出,要“加強(qiáng)分布式架構(gòu)轉(zhuǎn)型研究與規(guī)劃,構(gòu)建以大數(shù)據(jù)為支撐的央行決策平臺(tái)”[15]。目前,人民銀行已經(jīng)建成、運(yùn)行了多個(gè)重要業(yè)務(wù)系統(tǒng),基本實(shí)現(xiàn)了中央銀行業(yè)務(wù)的全覆蓋,但各個(gè)的業(yè)務(wù)系統(tǒng)之間的數(shù)據(jù)并未實(shí)現(xiàn)互聯(lián)互通,數(shù)據(jù)利用水平較低,同時(shí),傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)無(wú)法處理海量數(shù)據(jù)的存儲(chǔ)和快速查詢。因此,以云計(jì)算、大數(shù)據(jù)、分布式技術(shù)為基礎(chǔ),建立中央銀行的大數(shù)據(jù)標(biāo)準(zhǔn)體系和金融大數(shù)據(jù)分析平臺(tái)勢(shì)在必行。本人參與開發(fā)的支付清算大數(shù)據(jù)分析平臺(tái)是大數(shù)據(jù)技術(shù)在人民銀行業(yè)務(wù)上應(yīng)用的初步探索,通過(guò)對(duì)新技術(shù)架構(gòu)的運(yùn)用、與業(yè)務(wù)數(shù)據(jù)的結(jié)合,力爭(zhēng)形成和打造出規(guī)模適中、應(yīng)用廣泛、架構(gòu)靈活的分布式大數(shù)據(jù)平臺(tái),對(duì)金融系統(tǒng)開展大數(shù)據(jù)平臺(tái)建設(shè)有一定借鑒意義。
[1] 高晴. 淺析人民銀行支付系統(tǒng)在全國(guó)支付系統(tǒng)中的地位[J].時(shí)代金融, 2017(35): 137+142.
[2] 2016年支付體系運(yùn)行總體情況[J].金融會(huì)計(jì), 2017(03):23-26.
[3] 宋現(xiàn)鋒. 基于Linux的高可用性集群管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].西安電子科技大學(xué), 2012.
[4] 周彩冬,潘維民.大數(shù)據(jù)在商業(yè)銀行反洗錢的應(yīng)用[J]. 軟件,2016, 37(2): 1-7.
[5] 王琪, 鄂海紅, 宋美娜, 黃叒. 論大數(shù)據(jù)技術(shù)對(duì)保險(xiǎn)行業(yè)的影響[J]. 軟件, 2017, 38(5): 7-11.
[6] 馮曉普. HBase存儲(chǔ)的研究與應(yīng)用[D]. 北京郵電大學(xué),2014.
[7] 馬凱航, 高永明, 吳止鍰, 李磊.大數(shù)據(jù)時(shí)代數(shù)據(jù)管理技術(shù)研究綜述[J]. 軟件, 2015, 36(10): 46-49+56.
[8] 張丹. HDFS中文件存儲(chǔ)優(yōu)化的相關(guān)技術(shù)研究[D]. 南京師范大學(xué), 2013.
[9] Kambatla K, Pathak A, Pucha H. Towards optimizing hadoop provisioning in the cloud[C]//Proc. of the First Workshop on Hot Topics in Cloud Computing. 2009: 118.
[10] 蔣鴻斌. 基于HDFS的分布式存儲(chǔ)的研究與優(yōu)化[D]. 電子科技大學(xué), 2017.
[11] Chu C T, Kim S K, Lin Y A, et al. Map-reduce for machine learning on multicore[C]//NIPS. 2006, 6: 281-288.
[12] 王正也, 李書芳. 一種基于Hive日志分析的大數(shù)據(jù)存儲(chǔ)優(yōu)化方法[J]. 軟件, 2014, 35(11): 94-100.
[13] 江三鋒, 王元亮. 基于Hive的海量web日志分析系統(tǒng)設(shè)計(jì)研究[J]. 軟件, 2015, 36(4): 93-96.
[14] 陳慧, 龔婷雨. 大數(shù)據(jù)分析與Apache-Kylin應(yīng)用[J].江西通信科技, 2016(4): 26-29.
[15] 張瑞懷. 構(gòu)建以大數(shù)據(jù)為支撐的央行決策平臺(tái)[J]. 金融電子化, 2017(5): 42-44.