丁賢
摘要:近年來(lái),在傳統(tǒng)銀行業(yè)務(wù)增長(zhǎng)乏力及互聯(lián)網(wǎng)金融沖擊等多重壓力下,中國(guó)銀行業(yè)積極向智能化轉(zhuǎn)型的趨勢(shì)日漸明顯。銀行業(yè)務(wù)服務(wù)理念也正逐漸從“服務(wù)為王”向“體驗(yàn)為王”轉(zhuǎn)變。作為智能化轉(zhuǎn)型的一個(gè)重要環(huán)節(jié) , 大數(shù)據(jù)分析通過(guò)對(duì)海量數(shù)據(jù)的挖掘提煉出有價(jià)值的信息,從而幫助銀行做出有競(jìng)爭(zhēng)性的決策。但是,數(shù)據(jù)分析的過(guò)程具有很強(qiáng)的專業(yè)性,對(duì)使用人員的技能要求較高。如何將專業(yè)性很強(qiáng)的數(shù)據(jù)分析和易用性結(jié)合,讓各級(jí)用戶都能分享到大數(shù)據(jù)建設(shè)的成果是一個(gè)業(yè)內(nèi)都在研究的課題。該文以”體驗(yàn)好、操作易、可用性高和服務(wù)復(fù)用”的設(shè)計(jì)理念為切入點(diǎn),結(jié)合雙數(shù)據(jù)源架構(gòu)設(shè)計(jì)、異步查詢框架、參數(shù)化界面配置和聯(lián)機(jī)構(gòu)件等技術(shù)手段的支撐,闡述了基于服務(wù)的數(shù)據(jù)分析平臺(tái)的構(gòu)建思路。
關(guān)鍵詞: 數(shù)據(jù)分析;易用性;基于服務(wù);可定制;大數(shù)據(jù)可視化
中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2015)01-0001-04
The Practice of the Big Data Analysis Service Platform
DING Xian
(Software Development Center, Industrial Commercial Bank of China Ltd, Shanghai 201206,China)
Abstract: In recent years, under the multiple pressure of the weak growth in the traditional banking business and the Internet financial impact, the trend that the service of Chinese banking is actively updated to the intelligent level is increasingly obvious. The concept of the Banking service is gradually changing from "service is the god" to "the experience is the god" . As an important part of intelligent transformation, the analysis of large data can extract valuable information by mining among the massive data, which can help the bank to make competitive decisions. However, the process of the data analysis is very professional and requires higher skills. How to combine the highly professional data analysis and the ease of use in order to share the achievements of the large data construction among the users is a widely studied topic. This paper takes the design concept of " good experience , ease of operation, high availability and the resue of service" as the starting point, combining some key technical measures which include the design of dual data souce and the framework of the asynchronous query ,etc, parameterized interface configuration and the on-line component techniques, expounds the idea of constructing the service-based platform of the data analysis.
Key words: data analysis; usability; service-based; customization; large data visualization
大數(shù)據(jù)作為一種重要企業(yè)資產(chǎn),其重要性已深入人心。隨之涌現(xiàn)了大批挖掘平臺(tái)和工具,幫助業(yè)務(wù)部門挖掘大數(shù)據(jù)的潛在業(yè)務(wù)價(jià)值。由于數(shù)據(jù)挖掘工作本身有很強(qiáng)的專業(yè)性,對(duì)分析人員技能要求比較高,且存在重算法而輕交互的情況,一定程度上制約了大數(shù)據(jù)分析的推廣。“如何降低使用門檻,使更多業(yè)務(wù)人員都能分享到大數(shù)據(jù)建設(shè)成果并應(yīng)用到實(shí)際業(yè)務(wù)中”是大數(shù)據(jù)建設(shè)過(guò)程中所面臨的一個(gè)重要課題。
作為以上問(wèn)題的一種解決對(duì)策,該文敘述了一個(gè)基于服務(wù)的數(shù)據(jù)分析平臺(tái)的構(gòu)建思路。以”易“為切入,結(jié)合”提升用戶體驗(yàn)”、“整合資源”、“系統(tǒng)靈活可訂制”這3個(gè)主要著眼點(diǎn)展開平臺(tái)的設(shè)計(jì)和構(gòu)建工作,綜合運(yùn)用了消息隊(duì)列、多級(jí)緩存、數(shù)據(jù)可視化、批量聯(lián)機(jī)和負(fù)載均衡等技術(shù)手段。
1 總體框架
整個(gè)框架根據(jù)數(shù)據(jù)的流轉(zhuǎn)進(jìn)行了分層,具體包括資源層、核心功能層,基礎(chǔ)服務(wù)層,服務(wù)構(gòu)件層和應(yīng)用領(lǐng)域?qū)樱ㄈ鐖D1所示)。
各層的定位和技術(shù)實(shí)現(xiàn)如下:
資源層:數(shù)據(jù)分析平臺(tái)的資源包括2大類,一類是數(shù)據(jù)資源,包括數(shù)據(jù)倉(cāng)庫(kù)、hadoop等,平臺(tái)對(duì)于這類資源訪問(wèn)的技術(shù)手段以“數(shù)據(jù)是否落地”為標(biāo)準(zhǔn)分為2種,1種是通過(guò)消息隊(duì)列的異步聯(lián)機(jī)查詢,另1種是通過(guò)下數(shù)加載的方式實(shí)現(xiàn)本地庫(kù)的訪問(wèn); 平臺(tái)訪問(wèn)的另一類資源是系統(tǒng)資源,比如:SAS EG 等分析工具,對(duì)于該類資源的訪問(wèn)采用門戶的方式進(jìn)行集成,提供入口鏈接或基于服務(wù)的調(diào)用方式進(jìn)行整合。
基礎(chǔ)服務(wù)層:作為平臺(tái)的服務(wù)基礎(chǔ),圍繞著“提高聯(lián)機(jī)響應(yīng)、簡(jiǎn)化用戶操作、確保系統(tǒng)穩(wěn)定、降低維護(hù)成本和監(jiān)控”等設(shè)計(jì)原則,綜合運(yùn)行了各類技術(shù)和算法為核心功能層提供保障。具體技術(shù)方式包括:基于雙數(shù)源的消息隊(duì)列、基于內(nèi)存混存和文件緩存的多級(jí)緩存、基于雙線程的預(yù)約定制功能、實(shí)現(xiàn)批量和聯(lián)機(jī)資源動(dòng)態(tài)調(diào)優(yōu)的作業(yè)調(diào)度以及為減少維護(hù)成本而基于監(jiān)聽器的日志統(tǒng)計(jì)功能。
核心功能層:本層提供了與用戶存在交互的聯(lián)機(jī)功能。功能的設(shè)置貼近數(shù)據(jù)分析工作,以簡(jiǎn)潔的操作為設(shè)計(jì)目標(biāo)。具體技術(shù)方面,包括跨hadoop&TD數(shù)據(jù)庫(kù)的向?qū)焦δ堋⒖伸`活在線定制的模型、集成挖掘工具的分析工具集等。
服務(wù)構(gòu)件層:數(shù)據(jù)分析平臺(tái)對(duì)服務(wù)展現(xiàn)方式和服務(wù)提供方式也進(jìn)行了構(gòu)件化。具體技術(shù)包括:基于會(huì)話同步的界面嵌入、基于接口調(diào)用的異步查詢以及基于echarts的大數(shù)據(jù)可視化構(gòu)件應(yīng)用。
應(yīng)用領(lǐng)域?qū)樱悍治銎脚_(tái)的服務(wù)對(duì)象,可以是各業(yè)務(wù)領(lǐng)域的業(yè)務(wù)人員,也可以是相關(guān)業(yè)務(wù)領(lǐng)域的其它應(yīng)用。
2 技術(shù)實(shí)現(xiàn)
2.1 綜述
數(shù)據(jù)分析平臺(tái)力求將高深的大數(shù)據(jù)挖掘以一種更加簡(jiǎn)潔的方式提供給廣大用戶并提供門戶式的訪問(wèn)路徑,使更多基層用戶能分享到大數(shù)據(jù)建設(shè)的成果并應(yīng)用到工作中。圖2列出了本文的總體業(yè)務(wù)價(jià)值和技術(shù)體系,接下來(lái)將圍繞著“提升用戶體驗(yàn)”、“整合資源”、”系統(tǒng)靈活可訂制”這3個(gè)方面深入進(jìn)行探討。
2.2提升數(shù)據(jù)分析用戶體驗(yàn)方面的技術(shù)實(shí)現(xiàn)
2.2.1 基于OLAP+OLTP的雙數(shù)據(jù)源消息隊(duì)列設(shè)計(jì)助力數(shù)據(jù)分析
數(shù)據(jù)服務(wù)平臺(tái)是基于OLAP系統(tǒng)開展數(shù)據(jù)分析工作。相較OLTP系統(tǒng),OLAP的特點(diǎn)是存放海量數(shù)據(jù),但聯(lián)機(jī)響應(yīng)效率相對(duì)較慢。為了確保數(shù)據(jù)分析平臺(tái)有良好的用戶體驗(yàn),綜合OLAP+OLTP的特點(diǎn),構(gòu)建了基于雙數(shù)據(jù)源的消息隊(duì)列處理機(jī)制。
該處理機(jī)制的核心思想是, 利用oracle數(shù)據(jù)庫(kù)聯(lián)機(jī)響應(yīng)能力強(qiáng)的特點(diǎn),將模型管理、查詢隊(duì)列等涉及聯(lián)機(jī)交互的操作數(shù)據(jù)部署在oracle上,海量的業(yè)務(wù)數(shù)據(jù)仍保留在數(shù)據(jù)數(shù)據(jù)庫(kù)上。通過(guò)ETL調(diào)度+消息隊(duì)列的方式,將oracle的“快”數(shù)據(jù)以及數(shù)據(jù)倉(cāng)庫(kù)的”海量“數(shù)據(jù)粘合起來(lái)。
具體流程是: 用戶通過(guò)前臺(tái)提交查詢請(qǐng)求,該查詢請(qǐng)求存放在oracle數(shù)據(jù)庫(kù)中;在ETL 調(diào)度服務(wù)器起服務(wù),每間隔一段時(shí)間(可參數(shù)配置)掃描oracle的隊(duì)列表,若發(fā)現(xiàn)待處理的請(qǐng)求,則根據(jù)優(yōu)先級(jí)和并發(fā)數(shù)抓取一定數(shù)量的請(qǐng)求進(jìn)行查詢;ETL服務(wù)器上查詢完成后,生成文件放到外置存儲(chǔ),同時(shí)更新oracle上消息隊(duì)列表中的執(zhí)行狀態(tài),供前臺(tái)聯(lián)機(jī)訪問(wèn)。
2.2.2 通過(guò)多級(jí)緩存設(shè)計(jì)提高數(shù)據(jù)分析采樣訪問(wèn)效率
在數(shù)據(jù)分析的實(shí)際操作時(shí),為確保樣本數(shù)據(jù)的代表性,采樣結(jié)果集往往非常大,如何對(duì)結(jié)果集進(jìn)行有效管理,提高類似查詢的效率也是平臺(tái)在建設(shè)過(guò)程中需要解決的問(wèn)題。
為實(shí)現(xiàn)結(jié)果的復(fù)用,提高業(yè)務(wù)數(shù)據(jù)的訪問(wèn)效率,數(shù)據(jù)分析平臺(tái)對(duì)緩存進(jìn)行了分層設(shè)計(jì)和實(shí)現(xiàn)。
根據(jù)使用特點(diǎn),分為以下3個(gè)層次。
1) 本地緩存:定位為用于保存一些靜態(tài)的參數(shù),比如:字典類參數(shù)。在應(yīng)用服務(wù)器啟服務(wù)時(shí)讀取oracle參數(shù)表的數(shù)值加載到本地內(nèi)存中,供聯(lián)機(jī)訪問(wèn)。
2) 分布式緩存:定位為存放一些動(dòng)態(tài)變化且訪問(wèn)頻次較高的數(shù)據(jù)。比如:用戶最關(guān)心的模型信息,考慮到該信息訪問(wèn)頻繁且由于用戶可以實(shí)時(shí)部署模型存在動(dòng)態(tài)變化的特點(diǎn),為此在向數(shù)據(jù)庫(kù)新增模型數(shù)據(jù)的同時(shí)向分布式緩存中寫入模型信息,既提高了訪問(wèn)效率同時(shí)也減輕了數(shù)據(jù)庫(kù)的壓力。
3) 文件緩存:定位用于保存每次模型的查詢結(jié)果。為提高查詢結(jié)果的復(fù)用性,數(shù)據(jù)分析平臺(tái)采用文本的方式保留查詢結(jié)果。后續(xù)再次查詢歷史結(jié)果則可直接訪問(wèn)文件緩存即可,減少了再次查詢的開銷,提高了查詢效率。
2.2.3 通過(guò)大數(shù)據(jù)可視化技術(shù)直觀展現(xiàn)數(shù)據(jù)的內(nèi)在聯(lián)系
對(duì)于大數(shù)據(jù)分析而言,傳統(tǒng)的表格形式無(wú)法直觀的發(fā)現(xiàn)隱藏在復(fù)雜、多維數(shù)據(jù)后的規(guī)律,需要有一種直覺的、可交互的可視化環(huán)境來(lái)幫助深度挖掘數(shù)據(jù)價(jià)值。
大數(shù)據(jù)可視化的工作分為2個(gè)層面:靜態(tài)展示和交互性。
其中,靜態(tài)展示的實(shí)踐可按照以下3個(gè)場(chǎng)景有針對(duì)性的開展:
1) 將數(shù)值圖形化:當(dāng)1個(gè)指標(biāo)時(shí),將數(shù)據(jù)的大小以圖形的方式表現(xiàn)
2) 指標(biāo)關(guān)系圖形化:當(dāng)存在多個(gè)指標(biāo)時(shí),挖掘指標(biāo)之間的關(guān)系并將其圖形化,可提升圖表的可視化深度。
3) 按空間可視化:當(dāng)圖表數(shù)據(jù)存在地域信息并需要突出表現(xiàn)時(shí),可用地圖將空間可視化。
2.3 系統(tǒng)靈活可定制方面的技術(shù)實(shí)現(xiàn)
2.3.1 基于”雙線程調(diào)度+用戶在線定制“的數(shù)據(jù)分析預(yù)約采樣功能
預(yù)約采樣功能提供給分析人員在將來(lái)某個(gè)時(shí)間點(diǎn)或某段時(shí)間內(nèi)周期性運(yùn)行取數(shù)模型的功能。主要解決數(shù)據(jù)分析過(guò)程中2個(gè)業(yè)務(wù)問(wèn)題:
1) 需定期獲取采樣數(shù)據(jù)的任務(wù),免除了用戶反復(fù)提交的重復(fù)勞動(dòng)。
2) 充分利用計(jì)算資源空閑的特點(diǎn),實(shí)現(xiàn)”晚上定時(shí)預(yù)約,白天看數(shù)”的工作模式,提高工作效率。
預(yù)約采樣功能的具體技術(shù)實(shí)現(xiàn)由3部分組成:基于雙線程的調(diào)度框架、 時(shí)間頻度表達(dá)式和預(yù)定義時(shí)間變量和解析。
2.3.1.1 雙線程調(diào)度框架
應(yīng)用服務(wù)器上啟動(dòng)兩個(gè)線程ScheduleCheck和ScheduleScan。 其中,線程 ScheduleCheck屬于守護(hù)線程,負(fù)責(zé)監(jiān)控線程ScheduleScan是否處于活動(dòng)狀態(tài),若發(fā)現(xiàn)未啟動(dòng)則會(huì)通過(guò)new ScheduleScan().start() 自動(dòng)啟動(dòng)ScheduleScan線程。線程ScheduleScan是工作線程,作為定時(shí)任務(wù)掃描預(yù)約規(guī)則表,根據(jù)時(shí)間頻度表達(dá)式的計(jì)算,將達(dá)到執(zhí)行周期的查詢記錄添加到查詢隊(duì)列中。該工作線程的掃描頻度目前為10分鐘,通過(guò)配置文件靈活配置。
2.3.1.2 時(shí)間頻度表達(dá)式和解析
參照Quartz的Cron 表達(dá)式對(duì)頻度定義的格式,通過(guò)自定義程序進(jìn)行解析。
具體實(shí)現(xiàn)步驟如下:
①定義頻度格式:在預(yù)約功能使用到了以下表的6個(gè)域,粒度到分鐘
例如 每月15號(hào)的 10:15 AM 表示 0 15 10 15 * ?
②解析表達(dá)式,計(jì)算下次預(yù)約時(shí)間點(diǎn):對(duì)于周期性運(yùn)行的預(yù)約,將解析表達(dá)式后得到的頻度與最后一次運(yùn)行時(shí)間結(jié)合計(jì)算出下次預(yù)約的具體時(shí)間點(diǎn)。
③對(duì)滿足時(shí)間窗口的預(yù)約觸發(fā)查詢:將前一步計(jì)算出的下次預(yù)約的具體時(shí)間點(diǎn)和當(dāng)前掃描時(shí)間進(jìn)行比較,若誤差在10分鐘以內(nèi),則認(rèn)為達(dá)到預(yù)約窗口(考慮到輪詢存在時(shí)間間隔),則將其對(duì)應(yīng)的預(yù)約的查詢?nèi)蝿?wù)添加到查詢隊(duì)列中并執(zhí)行。
2.3.1.3 預(yù)先定義時(shí)間變量和解析
為解決周期性執(zhí)行腳本中只是時(shí)間變量在變化的特點(diǎn),預(yù)先定義了一批日期變量并應(yīng)用到模型腳本中。當(dāng)預(yù)約時(shí)間點(diǎn)到達(dá)并執(zhí)行時(shí),系統(tǒng)解析腳本中的時(shí)間變量替換成實(shí)際的日期后完成查詢。例如:當(dāng)系統(tǒng)讀取到變量${TX_MONTH_END}時(shí),系統(tǒng)用日期函數(shù)Calendar的getActualMaximum方法得到當(dāng)前月份的最大日期,拼接當(dāng)前年份和月份后組成當(dāng)前月末的時(shí)間格式(yyyy-MM-dd),之后用這個(gè)時(shí)間替換掉查詢腳本中的${TX_MONTH_END},然后執(zhí)行。
2.4 整合第三方數(shù)據(jù)分析資源的技術(shù)實(shí)現(xiàn)
分析工具集實(shí)現(xiàn)了對(duì)各類第三方分析工具的資源整合,以門戶的方式作為工具訪問(wèn)的統(tǒng)一入口。
根據(jù)工具的特點(diǎn)不同,資源整合可分以下幾種:
1) 若工具本身是WEB應(yīng)用,則通過(guò)URL進(jìn)行調(diào)用。比如:配置聯(lián)接"location.href=http://IP:6401/AnalyticsPlatform/Status"來(lái)訪問(wèn)SAS EM
2) 若工具本身是C/S軟件,則在頁(yè)面上通過(guò)windows的shell命令來(lái)調(diào)用客戶端
var fso = new ActiveXObject("Scripting.FileSystemObject");
...
if (fso.FileExists(egPath)) {
var objShell = new ActiveXObject("Wscript.Shell");
objShell.exec(egPath);}
3) 若涉及其他類型的異構(gòu)資源,則通過(guò)基于SOA的Webservice來(lái)進(jìn)行異構(gòu)系統(tǒng)的服務(wù)集成.具體方式是: 相關(guān)資源封裝為webserivce,通過(guò)UDDI進(jìn)行服務(wù)的發(fā)布(同步發(fā)布 WSDL web服務(wù)描述), 數(shù)據(jù)分析平臺(tái)通過(guò)http協(xié)議檢索WSDL獲取對(duì)應(yīng)的web service信息,然后通過(guò)SOAP協(xié)議進(jìn)行遠(yuǎn)程調(diào)用;將調(diào)用結(jié)果在數(shù)據(jù)分析平臺(tái)側(cè)進(jìn)行頁(yè)面整合,然后提供給用戶訪問(wèn).
3 結(jié)束語(yǔ)
數(shù)據(jù)分析平臺(tái)的業(yè)務(wù)價(jià)值是解決大數(shù)據(jù)分析過(guò)程中使用”易”的問(wèn)題。數(shù)據(jù)分析平臺(tái)力求將高深的大數(shù)據(jù)挖掘以一種更加簡(jiǎn)潔的方式提供給廣大用戶并提供門戶式的訪問(wèn)路徑,使更多基層用戶能分享到我大數(shù)據(jù)的成果并應(yīng)用到工作中。走出一條有特色的大數(shù)據(jù)分析業(yè)務(wù)推廣之路:即因“使用易”到“受眾廣”,繼而到大數(shù)據(jù)分析“應(yīng)用深”的升華。
參考文獻(xiàn):
[1] 張良均,陳俊德,劉名軍,陳榮.數(shù)據(jù)挖掘:實(shí)用案例分析[M].北京:機(jī)械工業(yè)出版社,2013.
[2] 陳哲.數(shù)據(jù)分析:企業(yè)的賢內(nèi)助[M].北京:機(jī)械工業(yè)出版社,2013.
[3] 彭淵.大規(guī)模分布式系統(tǒng)架構(gòu)與設(shè)計(jì)實(shí)戰(zhàn)[M].北京:機(jī)械工業(yè)出版社,2014.
[4] IT架構(gòu)設(shè)計(jì)研究組.大數(shù)據(jù)時(shí)代的IT架構(gòu)設(shè)計(jì)[M].北京:電子工業(yè)出版社,2014.
[5] 陳康賢.大型分布式網(wǎng)站架構(gòu)設(shè)計(jì)與實(shí)踐[M].北京:電子工業(yè)出版社,2014.
[6] 李智慧.大型網(wǎng)站技術(shù)架構(gòu):核心原理與案例分析[M].北京:電子工業(yè)出版社,2013.
[7] 趙勇等.大數(shù)據(jù)革命——理論、模式與技術(shù)創(chuàng)新[M].北京:電子工業(yè)出版社,2014.
[8] 涂子沛.數(shù)據(jù)之巔:大數(shù)據(jù)革命,歷史、現(xiàn)實(shí)與未來(lái)[M].北京:中信出版社,2014.