楊勁 龔潔華 黃鵬 黃磊 李延宏 莫龍
摘? ?要:交通一卡通是城市交通服務(wù)的基礎(chǔ)能力之一,大部分城市能在公交、地鐵、輪渡、出租車(chē)等場(chǎng)景下使用一卡通。以廣州為例,一卡通每日產(chǎn)生數(shù)千萬(wàn)頻次的交易,加上運(yùn)營(yíng)活動(dòng)數(shù)據(jù)、城市基礎(chǔ)數(shù)據(jù)等,一卡通系統(tǒng)的數(shù)據(jù)存儲(chǔ)量十分龐大。如何更好地管理和運(yùn)用這些數(shù)據(jù),是行業(yè)不斷面臨的挑戰(zhàn)。為解決該問(wèn)題,本文將大數(shù)據(jù)技術(shù)應(yīng)用到交通支付行業(yè)中。近年來(lái),大數(shù)據(jù)的分析工具在飛速地發(fā)展,處理海量數(shù)據(jù)越來(lái)越成熟,在企業(yè)的應(yīng)用也日益廣泛。一卡通清算結(jié)算需要處的理大量卡片相關(guān)數(shù)據(jù),可以借助zookeeper、kafaka和storm等大數(shù)據(jù)應(yīng)用技術(shù)搭建數(shù)據(jù)處理平臺(tái),對(duì)消費(fèi)和充值的交易數(shù)據(jù)進(jìn)行處理分析,判斷卡片的實(shí)際交易情況,產(chǎn)生商戶(hù)的結(jié)算報(bào)表,提高企業(yè)運(yùn)營(yíng)效率。
關(guān)鍵詞:大數(shù)據(jù)分析? zookeeper? kafaka? storm? 一卡通? 清算
1? 一卡通清算結(jié)算現(xiàn)狀
一卡通票卡能在城市公交、輪渡、地鐵以及延伸的便利店、超市等場(chǎng)景使用[1],為人們?nèi)粘VЦ短峁┝吮憷?,是一種便捷、綠色的支付手段[2]。
一卡通日均交易數(shù)據(jù)量以千萬(wàn)計(jì)算,歷史數(shù)據(jù)達(dá)到數(shù)百億條,其清算結(jié)算系統(tǒng)的建設(shè)需要使用到大數(shù)據(jù)工具[3],以達(dá)到功能完備、性能高效、擴(kuò)展方便的效果,實(shí)現(xiàn)數(shù)據(jù)資源的規(guī)范統(tǒng)一管理,提高開(kāi)發(fā)能力,高效處理聯(lián)機(jī)消費(fèi)和脫機(jī)消費(fèi)數(shù)據(jù),實(shí)現(xiàn)交易數(shù)據(jù)有效清分,并提供高效、安全、準(zhǔn)確的數(shù)據(jù)統(tǒng)計(jì)、數(shù)據(jù)查詢(xún)等功能[4]。系統(tǒng)作為核心的數(shù)據(jù)處理系統(tǒng),與發(fā)行、充值、消費(fèi)、客服等系統(tǒng)有良好對(duì)接,并支持其他支付方式的接入與發(fā)展。
2? 數(shù)據(jù)處理平臺(tái)
系統(tǒng)與外部的接口協(xié)議包括:FTP、SOCKET、HTTP。電腦瀏覽器可以通過(guò)HTTP HTML對(duì)系統(tǒng)進(jìn)行交互訪問(wèn)。手機(jī)移動(dòng)端可以通過(guò)socket接口查詢(xún)卡片的交易記錄。系統(tǒng)數(shù)據(jù)采集信息包括:消費(fèi)數(shù)據(jù)、充值數(shù)據(jù)、客服信息、黑名單信息和渠道商戶(hù)信息上傳和下載可以通過(guò)FTP/SOCKET/HTTP等協(xié)議進(jìn)行。
業(yè)務(wù)邏輯層包含使用socket/ws接口、HTML/JSP/Servlet、FineReport、JDBC等J2ee Web應(yīng)用,也包含數(shù)據(jù)接口FTP服務(wù)和SOCKET服務(wù)等服務(wù)組件。
數(shù)據(jù)處理層是系統(tǒng)的核心組件層,負(fù)責(zé)對(duì)消費(fèi)、充值、客服、黑名單和渠道商戶(hù)等信息進(jìn)行處理,處理包括:入庫(kù)、校驗(yàn)數(shù)據(jù)有效性、上下筆數(shù)據(jù)核查和交易數(shù)據(jù)的統(tǒng)計(jì)分析。使用實(shí)時(shí)流處理storm計(jì)算框架為系統(tǒng)數(shù)據(jù)處理引擎。zookeeper作為資源配置管理服務(wù)器,為storm做資源負(fù)載均衡調(diào)節(jié);消息隊(duì)列采用的kafaka消息中間件,以處理高吞吐的海量數(shù)據(jù)。高速緩存redis作為緩存中間件,存儲(chǔ)基本配置數(shù)據(jù)和處理過(guò)程的監(jiān)控信息;另外核查數(shù)據(jù)也存儲(chǔ)在redis中,為數(shù)據(jù)核查程序進(jìn)行各種數(shù)據(jù)核查提供基礎(chǔ)。系統(tǒng)采用oracle客戶(hù)端程序sqlloader作為數(shù)據(jù)入庫(kù)程序,以滿足快速入庫(kù)的要求[5]。
3? 關(guān)鍵設(shè)計(jì)
3.1 文件檢查拓?fù)湓O(shè)計(jì)
文件檢查是從數(shù)據(jù)包和包內(nèi)文件的角度對(duì)所有上傳到FTP的數(shù)據(jù)包進(jìn)行有效性的判斷。如出現(xiàn)無(wú)效的壓縮包,需及時(shí)通知用戶(hù)重新上傳壓縮包。對(duì)于通過(guò)文件處理的壓縮包,其內(nèi)部所有數(shù)據(jù)會(huì)交給數(shù)據(jù)預(yù)處理進(jìn)行數(shù)據(jù)的有效性校驗(yàn)。對(duì)所有文件進(jìn)行校驗(yàn)的節(jié)點(diǎn)有FTP文件完整性校驗(yàn)、文件包基礎(chǔ)校驗(yàn)、文件包內(nèi)完整性校驗(yàn)、包內(nèi)文件基礎(chǔ)校驗(yàn)、包內(nèi)文件行格式校驗(yàn)。對(duì)于交易數(shù)據(jù)文件還需要文件內(nèi)重復(fù)性校驗(yàn)以及文件內(nèi)上下筆校驗(yàn)。
3.2 數(shù)據(jù)預(yù)處理
數(shù)據(jù)預(yù)處理階段是對(duì)于經(jīng)過(guò)文件處理的文件內(nèi)的各行數(shù)據(jù)進(jìn)行校驗(yàn),主要分為交易數(shù)據(jù)和非交易數(shù)據(jù)。對(duì)于非交易數(shù)據(jù),在文件處理的行格式校驗(yàn)階段已對(duì)字段長(zhǎng)度進(jìn)行了校驗(yàn),在數(shù)據(jù)預(yù)處理階段會(huì)直接把數(shù)據(jù)保存到數(shù)據(jù)庫(kù)中。而對(duì)于交易數(shù)據(jù),則需要進(jìn)一步校驗(yàn)以判斷數(shù)據(jù)的有效性。根據(jù)校驗(yàn)類(lèi)型的不同可以把數(shù)據(jù)預(yù)處理劃分為字段基礎(chǔ)校驗(yàn)、票卡有效性校驗(yàn)、TAC碼校驗(yàn)、延遲上傳檢查、歷史數(shù)據(jù)查重。對(duì)于所有校驗(yàn)都通過(guò)的記錄判定為有效記錄,將有效的記錄根據(jù)來(lái)源文件進(jìn)行文件保存和統(tǒng)計(jì),最終生成清分結(jié)果文件返回給用戶(hù)。判定有異?;蛘邿o(wú)效的數(shù)據(jù),把數(shù)據(jù)分發(fā)到異常處理流程。
3.3 數(shù)據(jù)核查
數(shù)據(jù)核查是對(duì)通過(guò)預(yù)處理的數(shù)據(jù)做進(jìn)一步的檢查、分析過(guò)程。數(shù)據(jù)核查按照業(yè)務(wù)功能可以把核查分為SAM卡脫機(jī)交易流水號(hào)斷號(hào)核查和交易數(shù)據(jù)核查這兩個(gè)獨(dú)立的子流程。核查分為:
(1)交易設(shè)備流水號(hào)連續(xù)性核查;
(2)票卡交易計(jì)數(shù)連續(xù)性核查;
(3)票卡余額連續(xù)性核查;
(4)票卡余額溢出核查。
4? 結(jié)語(yǔ)
清算結(jié)算系統(tǒng)采用大數(shù)據(jù)處理的工具,降低了開(kāi)發(fā)的難度。系統(tǒng)的各組件模塊及標(biāo)準(zhǔn)函數(shù)保持很高的獨(dú)立性與較低的耦合度。系統(tǒng)在設(shè)計(jì)上對(duì)各類(lèi)組件模塊的易維護(hù)性、復(fù)雜性等做了平衡,使得復(fù)雜度高的模塊保持較高的可重用性與較低的維護(hù)頻率,使得相對(duì)容易隨業(yè)務(wù)變化而調(diào)整的模塊容易開(kāi)發(fā)和維護(hù),進(jìn)一步增強(qiáng)了系統(tǒng)的可維護(hù)性。
參考文獻(xiàn)
[1] 楊磊.城市一卡通系統(tǒng)的設(shè)計(jì)和實(shí)施[D].華東師范大學(xué),2010.
[2] 黃卓.城市交通卡聯(lián)機(jī)消費(fèi)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].廣東工業(yè)大學(xué),2016.
[3] 陳云龍.城市一卡通清結(jié)算系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].東南大學(xué),2016.
[4] 陳贛,陳喆.交通智能卡的結(jié)算體系[J].中國(guó)交通信息產(chǎn)業(yè),2006(11):96-99.
[5] 方秋水,陳衛(wèi)國(guó),何建兵,等.分布式計(jì)算技術(shù)在交通一卡通清分管理系統(tǒng)中的應(yīng)用研究[J].計(jì)算機(jī)應(yīng)用與軟件,2018,35(3):102-105,113.