999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于SolrCloud的銀行實時報表系統設計與實現

2019-06-10 01:01:19段文龍包崇明周麗華孔兵
軟件導刊 2019年2期
關鍵詞:系統

段文龍 包崇明 周麗華 孔兵

摘 要:為了解決傳統銀行報表系統無法滿足千萬級以上數據實時查詢、統計問題,基于SolrCloud技術提出一種新的實時報表系統,并就系統設計與實現作詳細介紹,最后使用銀行交易數據對系統進行一系列測試。實驗結果表明:該系統對數據進行實時查詢與統計操作時,耗時均在毫秒級范圍內,可以很好地完成千萬級以上數據的實時查詢與統計。

關鍵詞:SolrCloud;實時查詢;報表系統;數據處理DOI:10. 11907/rjdk. 181893

中圖分類號:TP319文獻標識碼:A文章編號:1672-7800(2019)002-0079-05

Abstract: For solving the problem that the traditional bank report system has been unable to meet the needs of real-time query and statistics for tens of millions of data, base on SolrCloud technology, this paper designs a new real-time report system and makes a detailed introduction to the construction and index design of the real-time report system. Finally, a series of tests were conducted on the system using the bank transaction data. The experimental results show that when the real-time reporting system performs real-time query and statistics operations on data, it takes time in the range of milliseconds. The experimental conclusion is obtained that the real-time reporting system based on SolrCloud technology can complete the real-time query and statistics of more than tens of millions of data well.

Key Words: SolrCloud; real-time query; report system; data processing

0 引言

報表系統作為銀行系統的重要組成部分,在其中占據重要位置。報表系統通過對銀行交易數據進行統計、分析得到有用信息,為銀行管理層決策提供了有力支持[1-2]。數據實時統計分析對銀行分析用戶交易情況和輔助銀行管理人員決策顯得更加重要[3]。

國內外銀行報表系統經過多年發展,各種報表工具相繼出現。國外報表系統主要包括早期電子報表[4] 、專業報表管理軟件、報表生成組件、基于大數據技術的報表系統等,各種報表系統雖然功能強大,但是無法對數據進行實時查詢、統計[5]。

與國外相比,我國報表工具開發起步較晚,技術發展相對滯后。到20世紀80年代末,我國財務軟件公司才開發出通用的報表系統,其中具有代表性的是用友公司開發的用友UFO[6]。到20世紀90年代,隨著Windows使用越來越廣泛,各大公司依托 Windows系統平臺開發了基于Excel的報表系統,但是該類報表系統功能比較簡單,并對Excel有很大依賴性。隨著大數據技術快速發展,各大互聯網公司開始開發自己的大數據報表系統,極大地解決了傳統報表系統對大量數據處理困難的問題,但各種報表系統仍無法實現對數據的實時查詢、統計[7]。

本文通過對部分銀行報表系統的深入分析,找到現有報表系統無法對數據進行實時查詢、統計的問題癥結。通常,部分銀行報表系統為了縮短數據查詢時間,提高客戶體驗度,往往先對數據進行離線計算,后查詢。該方法雖然在一定程度上達到了實時查詢效果,但是無法對實時交易數據進行統計分析,通常只能獲得前一天數據的統計分析結果,并且只適合數據量不大的情況。然而隨著大數據時代到來,銀行各種數據呈爆發式增長,該方法已經很難滿足數據實時統計、查詢的需求。銀行開始使用大數據處理技術進行數據計算,一定程度上緩解了海量數據的計算壓力,但是數據計算大多仍采用離線計算方式,無法實現真正意義上的實時統計、查詢[7-9]。

本文通過對銀行報表系統應用背景的分析與研究,利用SolrCloud技術可近實時搜索的特性[10],設計新的報表系統框架,開發了一個針對銀行業務的報表系統,以實現對千萬級以上數據進行實時統計、查詢的目標。本文介紹了系統開發中用到的工具、方法和技術,對類似工作有一定參考價值。

1 SolrCloud

SolrCloud是為了解決海量數據搜索及滿足高容錯需求,在Solr[11]和Zookeeper[12]基礎上設計的分布式搜索引擎。SolrCloud適用于海量數據及高并發搜索服務,可以在毫秒級時間范圍內完成千萬級以上數據的搜索服務。

SolrCloud是高可靠系統,由多臺Solr服務器共同組成Solr集群,通過Zookeeper管理整個集群的運作[13]。SolrCloud將全部索引文件分布到Solr集群中不同Solr服務器上,當用戶進行信息檢索時,由SolrCloud進行任務劃分,將小的檢索任務分配給不同Solr服務器進行信息檢索,最后將多臺服務器檢索結果合并,并將結果返回。在SolrCloud中,可以為Solr服務器配置一個或多個備份服務器,當主服務器出現故障時,備份服務器可以代替主服務器對外提供搜索服務,保證搜索服務正常運行。

SolrCloud在繼承Solr基本功能的基礎上,對Solr原有功能進行了擴展,增加了新特性:①對信息進行集中配置;②自動完成系統容錯;③可以完成近實時搜索;④信息搜索時,自動完成負載均衡[14-15]。

2 系統設計

實時報表系統在詳細分析銀行業務特點的基礎上,結合SolrCloud技術的近實時搜索特性,主要分為數據抽取模塊、數據計算模塊、SolrCloud搜索模塊、數據加密模塊4個核心模塊。其中,數據抽取模塊主要功能是抽取實時交易數據和全量數據,為數據計算模塊提供原始數據源;數據計算模塊主要功能是對報表原始數據進行計算,并將計算結果整理成SolrCloud索引結構數據,為SolrCloud提供數據源;SolrCloud搜索模塊主要功能是為銀行用戶提供實時檢索服務;數據加密模塊主要功能是保證整個系統中數據傳輸、上傳及計算等過程的安全。圖1詳細展示了實時報表系統設計框架。

2.1 數據抽取模塊

數據抽取模塊作為實時報表系統的核心模塊,主要完成原始數據采集,為整個報表系統提供數據源。根據銀行業務特點,將數據源分為兩部分:增量數據源和全量數據源。增量數據源是銀行設備的實時交易數據,為整個報表系統提供實時數據源,保證報表系統可以統計任意時間段的交易情況。全量數據源是增量數據源的補充,由于增量數據需要實時更新到SolrCloud集群中,大量、頻繁的插入、更新操作,在集群中產生了大量索引碎片,占用大量存儲空間,同時影響了檢索效率。為解決該問題,每天都需刪除增量數據生成的索引,并使用當天全量數據進行SolrCloud索引重建。

數據抽取模塊根據數據源不同,可以分為增量數據抽取子模塊和全量數據抽取子模塊,前者主要進行增量數據抽取,后者主要進行全量數據抽取,并將數據導入到高可靠分布式HDFS文件系統中[16]。

2.1.1 增量數據抽取子模塊

增量數據抽取子模塊主要介紹實時數據獲取和數據計算的具體設計,可以分為4個步驟:第一步,當終端發生交易時,終端會通過加密程序處理數據,生成相應密文上送到服務器;第二步,當服務器上的監聽程序監聽到數據請求時,數據接口接收上送的密文;第三步,由于交易存在高并發量情況,為了避免數據丟失,在進行數據處理前,將密文存入數據暫存隊列中,利用多線程依次讀取數據,對密文進行解密,還原原始交易數據;第四步,提取原始交易數據中的有用信息,包含機構名、設備名、交易編碼、交易金額等多個重要信息,然后分別從SolrCloud集群中獲取設備分類寬表和機構分類寬表的數據,按照設備名稱和機構名稱分別根據交易碼對兩張寬表的數據進行重新計算及更新,并將更新后的寬表數據保存至索引更新等待隊列中。

在整個處理過程中,由于交易量較大,如果使用傳統的串行方式計算交易數據,不但占用資源多,而且耗時長、效率低。因此,采用多線程并行執行數據的計算過程,可以極大地提高計算效率,縮短整個子模塊處理時間。

2.1.2 全量數據抽取子模塊

全量數據抽取子模塊主要介紹全量數據的抽取及上傳過程,根據實際需要將整個過程分為4個步驟:第一步,Spring啟動定時任務,開始全量數據抽取,將抽取的全量數據保存到本地文件中;第二步,對全量數據文件使用DES加密模塊進行文件加密,得到加密數據文件;第三步,將加密數據文件上傳到HDFS中,從HDFS中讀取接收到的加密數據文件,并對加密文件進行解密,得到原始數據文件;第四步,將解密得到的原始數據文件加載到Hive相應表中。

在該子模塊設計過程中,為了保證全量數據抽取順利完成,針對幾個核心問題提出如下解決方案:

(1)全量數據過大、存儲難。由于每天產生的全量數據量很大,隨著時間增加,其存儲問題極大地限制了系統拓展。因此,在該子模塊設計時,利用分布式文件HDFS的存儲優勢完成全量數據存儲。全量數據采用文件形式保存,然后存儲在分布式文件系統HDFS中。全量數據由數據庫中多張表的數據組成,包括交易數據流水表、設備信息表、機構信息表和交易碼信息表等。因此,全量數據從數據庫導出時不再進行數據處理,直接將每個表的數據保存為本地數據文件,其中每一行保存數據庫中的一條信息,同一行中使用逗號分隔不同字段,便于以后對數據文件進行解析,最后將生成的全量數據文件加密后上傳到HDFS中。

(2)數據在網絡傳輸過程中傳輸錯誤。由于數據在網絡傳輸過程中存在傳輸錯誤,為了保證數據傳輸順利完成,設計了數據重傳機制。當數據文件導入HDFS文件系統后,返回導入結果字段,根據結果字段進行是否重傳判斷,如果導入成功則完成全量數據抽取,否則進行數據文件重傳。

(3)數據在網絡傳輸中丟失信息。數據文件通過網絡進行傳輸時面臨信息丟失風險,而數據丟失可能給銀行和客戶帶來極大損失。因此,采用DES加密算法對文件數據加密,以保證數據在傳輸過程中的安全。

2.2 數據計算模塊

數據計算模塊根據數據源不同,可分為增量數據計算子模塊和全量數據計算子模塊兩個部分。

2.2.1 增量數據計算子模塊

增量數據計算子模塊在進行增量數據計算時,由于數據并發量高,采用多線程隊列進行數據接收、計算。增量數據計算具體過程如圖2所示。

第一步,從終端設備獲得實時交易數據并使用DES加密算法對數據進行加密處理,然后將加密數據上送到報表系統后臺。當后臺線程監聽到上送數據時,調用空閑線程接收上送數據并加入等待隊列。第二步,當后臺檢測到等待隊列處于非空狀態時,調用空閑線程從等待隊列獲取待處理數據,空閑線程對數據使用DES算法進行解密,得到原始數據信息。第三步,從原始數據信息中篩選出需要的數據進行計算。第四步,將計算結果按照最初設計好的索引格式保存到Solr索引文件中。

2.2.1 增量數據計算子模塊

全量數據計算子模塊進行全量數據計算時,由于數據量太大,傳統的存儲方式很難滿足系統需要,系統設計時引入適合海量數據離線計算的Hadoop[12]平臺,進行數據的分布式存儲和計算[17]。全量數據計算具體過程如圖3所示。

第一步,對全量數據文件使用DES算法進行加密,然后將加密文件上送到Hadoop平臺中的分布式文件系統HDFS中。文件上送結束后,系統會返回上送結果標識,根據結果標識判斷下一步執行操作。若標識是0,表示上送失敗,后臺程序啟動重傳機制不斷進行數據文件上送,直至數據上送成功。第二步,數據文件上送成功后,后臺啟動解密程序對數據文件進行解密,得到原始數據文件,將原始數據文件加載到Hive中。第三步,當加載結束后,Hive開始對新加載的數據文件進行計算,整個計算根據交易碼、機構名稱、設備名稱等進行分類,將分類計算結果保存在不同中間文件中。第四步,根據規則將多個中間文件按照Solr索引格式進行合并,合并結果保存在相應的Solr索引文件中。第五步,計算完成后,需要將相關信息存儲到Oracle操作日志中,主要包括文件信息、上送時間、計算結束時間等。

2.3 SolrCloud搜索模塊

SolrCloud搜索模塊主要為整個系統提供數據實時查詢、統計功能,同時還提供索引創建、更新及刪除等功能。在該模塊中,索引結構設計對SolrCloud的檢索效率會產生很大影響。由于系統中所需報表數據由多張數據庫表的有用信息組成,為了提高搜索效率,采用寬表結構對多張表的信息進行融合[18]。同時,該設計的另一個優勢是,寬表結構與SolrCloud索引結構一致,創建索引時,只用創建一條索引而不用創建多條索引,減少了索引數量,同時避免跨表檢索,縮短了檢索時耗,提高了檢索效率。系統中寬表結構設計的方法一致,本文介紹其中一個寬表結構,圖4描述了報表系統中設備統計報表的寬表結構。

從圖4可以看到,寬表中字段由設備信息表、機構信息表、交易流水表的有用信息共同構成,該設計使原來需要創建多條SolrCloud索引,變為只需創建一條索引。同時,也不需要跨域檢索信息,只需檢索一條索引信息即可,極大地提高了效率。

2.4 數據加密模塊

整個報表系統中所有數據均是銀行每個客戶交易的具體信息,數據通過網絡傳輸到分布式Hadoop集群的HDFS文件系統存在很大風險,一旦出現數據泄露,會給銀行和客戶造成不可預期的嚴重后果,因此在報表系統中數據的安全性顯得尤為重要。

DES算法作為分組密碼算法的一種,算法公開、安全級別高、密鑰獲取容易、運算過程簡潔[19]。因此,DES算法在通信領域得到廣泛運用[20]。系統采用DES算法對全部數據文件加密,然后通過網絡傳輸到分布式Hadoop集群,并存儲在HDFS文件系統中,最后對新上傳的數據文件使用解密算法處理,將其寫入新的數據文件中,同時刪除原有加密數據文件。

3 系統實現

系統設計從安全性和穩定性考慮,采用多數生產環境所用的Linux系統,主要部署在安裝有Linux系統的集群中。實驗開發環境是基于VMware技術構建的系統環境[21]。為了實現Linux集群環境,首先需要創建多個VMware虛擬機,然后為其搭建Linux集群,最后配置集群所需各種軟硬件環境。針對系統各模塊,環境搭建主要分為Hadoop環境搭建、離線數據計算所需Hive搭建、Solr集群環境搭建等幾個模塊。下文介紹系統安裝和部署。

3.1 系統開發環境搭建

主要介紹報表系統在開發前環境的搭建。搭建系統所需的軟硬件環境,主要步驟如下:①創建VMware虛擬機,安裝Centos系統;②搭建分布式Hadoop集群;③在Hadoop集群中搭建Hive,然后搭建Mysql數據庫并存儲Hive元數據;④搭建Zookeeper集群,進行Solr集群管理;⑤搭建Tomcat服務器,并完成Solr與Tomcat的集成;⑥搭建分布式SolrCloud集群。

表1詳細描述了系統搭建過程中所用軟件相關信息。整個系統環境基于Linux集群,每一臺Linux主機的環境配置基本相同。因此,主要對一臺Linux主機進行環境配置,完成一臺配置后將其Linux主機克隆到不同Linux主機中,最后對每臺Linux進行必要調整。

3.2 系統實現及展示

在數據計算模塊,全量數據計算由于數據量太大,因此本文設計了兩種計算方式提高其計算效率:①采用“分治”思想,將全量數據文件分類別計算,并將計算結果保存在中間文件中,最后將所有中間文件合并為特定寬表結構的數據文件;②采用MapReduce并行計算框架對數據進行計算。圖5展示了機構分類報表對機構交易數據統計的情況。

實驗證明,實時報表系統可以在毫秒級時間范圍內完成千萬級以上數據的統計、查詢。

4 結語

本文針對銀行報表千萬級以上數據無法實時統計、查詢的問題,基于SolrCloud分布式搜索框架近實時查詢的特點,設計了一個適合銀行的實時報表系統。通過實驗證明,基于SolrCloud技術實現的實時報表系統在毫秒級時間范圍內,很好地實現了千萬級以上數據的實時統計、查詢,為銀行實時報表系統設計提供了一定參考。現階段該實時系統也存在一些不足,如全量數據文件在HDFS中進行存儲時效率不高,下一階段需針對此問題著重改進存儲方法,以提高文件存儲效率。

參考文獻:

[1] 王文欣. 中資銀行境外分行報表系統分析[J]. 現代商貿工業,2013,25(3):117-118.

[2] 宋華. 企業數據統計分析報表系統的設計分析[J]. 決策與信息:下半月,2013 (5):132-133.

[3] 馬文慶,王晉生,張少華. 基于Web的實時報表系統研究[J]. 中國科技信息,2011(21):60.

[4] 頎桓. 基于數據倉庫的商業銀行報表系統基礎數據分析設計[J]. 企業技術開發,2011,30(23):127-129.

[5] 周豪. 大數據量下的實時數據報表系統的設計與實現[D]. 北京:北京交通大學,2016.

[6] 馮鑫永. 用友UFO報表系統存在的問題及對策[J]. 財會月刊,2014(3):96-98.

[7] 周志陽,陳飛. 大數據實時計算平臺技術綜述[J]. 中國新通信,2017,19(4):47.

[8] 楊東芳,王少英. 面向大數據的計算框架研究[J]. 河南科技,2015(1X):20-22.

[9] 王磊,張真,王胤然. 實時云計算數據庫——數據立方[J]. 中興通訊技術, 2013,19(4):25-31.

[10] SOLR WIKI. Welcome to the Apache SolrWiki[DB/OL].? https://wiki.apache.org/solr.

[11] TREY G,TIMOTHY P. Solr in action[M]. New York:Manning Publications Co,2014.

[12] WHITE T. Hadoop權威指南[M]. 周敏,曾大聃,周傲,譯. 北京:清華大學出版社,2011.

[13] 趙璞,朱志祥,張康益. 高性能分布式搜索引擎Solr的研究與實現[J]. 電子科技,2015,28(4):73-75.

[14] RAFAL K. Apache Solr 4 cookbook[M]. Birmingham:Packt Publishing,2013.

[15] 李戴維,李寧. 基于Solr的分布式全文檢索系統的研究與實現[J]. 計算機與現代化,2012(11):172-173.

[16] 曹卉.? Hadoop分布式文件系統原理[J]. 軟件導刊,2016,15(3):15-17.

[17] 許吳環,顧瀟華. 大數據處理平臺比較研究[J]. 軟件導刊,2017,16(4):212-214.?

[18] 馬寧,杜武倫,王勇. 面向大數據的商業銀行監管報送系統研究[J]. 軟件導刊,2016,15(4):157-160.

[19] 沈鑫剡. 計算機網絡安全[M]. 北京:人民郵電出版社,2011.

[20] 馮登國. 網絡安全原理與技術[M]. 北京:科學出版社,2003.

[21] 王春海. VMware Workstation與ESX Server典型應用指南[M]. 北京:中國鐵道出版社,2011.

(責任編輯:何 麗)

猜你喜歡
系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
基于UG的發射箱自動化虛擬裝配系統開發
半沸制皂系統(下)
FAO系統特有功能分析及互聯互通探討
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
一德系統 德行天下
PLC在多段調速系統中的應用
主站蜘蛛池模板: 亚洲天堂视频在线免费观看| 国产97公开成人免费视频| 91在线无码精品秘九色APP| 久久大香伊蕉在人线观看热2| 日韩不卡高清视频| 国产精品任我爽爆在线播放6080| 2020亚洲精品无码| 国产极品美女在线| 国产精品va免费视频| 国产精品主播| 亚洲成A人V欧美综合天堂| 99久久精品视香蕉蕉| 日韩欧美网址| 九色在线视频导航91| 久久精品亚洲中文字幕乱码| 亚洲欧美日韩动漫| 全免费a级毛片免费看不卡| 亚洲国产精品一区二区第一页免 | 亚洲婷婷在线视频| 亚洲视频四区| 欧美成人精品在线| 青青操视频在线| 国产美女在线观看| 国产欧美日韩va| 波多野结衣爽到高潮漏水大喷| 亚洲日本中文字幕乱码中文| 日本a级免费| 亚洲一区毛片| 影音先锋丝袜制服| 亚洲成人黄色网址| 五月六月伊人狠狠丁香网| 国产国产人成免费视频77777 | 欧美日韩福利| 亚洲黄网在线| 亚洲国产清纯| 国产精品第一区在线观看| 熟女日韩精品2区| 成人免费一区二区三区| 亚洲美女操| 亚洲欧洲日本在线| 国产精品自在自线免费观看| 麻豆精品在线播放| 日韩天堂视频| 亚洲床戏一区| 97影院午夜在线观看视频| 亚洲日韩精品欧美中文字幕| 亚洲人成人无码www| 久久99这里精品8国产| 综合色在线| 婷婷综合色| 亚洲天堂日韩在线| 国产成人综合亚洲网址| 国产精彩视频在线观看| 思思热在线视频精品| 欧美日韩国产综合视频在线观看| 久久毛片网| 91成人免费观看在线观看| 欧美亚洲国产一区| 大学生久久香蕉国产线观看| 又黄又湿又爽的视频| 日韩欧美91| 日本免费高清一区| 青青草原国产一区二区| 99久久免费精品特色大片| 国产美女视频黄a视频全免费网站| 亚洲Av综合日韩精品久久久| 亚洲 日韩 激情 无码 中出| 在线免费a视频| 久久国产成人精品国产成人亚洲| 欧美区国产区| 久久情精品国产品免费| 高清不卡毛片| 一本久道久久综合多人| 69综合网| 国产不卡网| 波多野结衣在线se| 国产玖玖玖精品视频| 亚洲成人在线免费观看| 国产成人福利在线| 亚洲最黄视频| 国产精品无码AV中文| 丁香婷婷久久|