楊勁 龔潔華 黃鵬 黃磊 李延宏 莫龍

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