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