張 昊 張健欽 王家川 石睿軒 陸 浩 張 安
(1、北京建筑大學測繪與城市空間信息學院,北京102616 2、北京市交通信息中心 綜合交通運行監測與服務北京市重點實驗室,北京100161)
近年來,隨著衛星定位技術、LBS 技術以及互聯網的不斷發展,位置數據被以各種方式收集,交通出行大數據呈爆發式增長。如何高效存儲與管理交通大數據、解決交通數據多結構化難題已成為政府管理部門亟待解決的重要問題[1]。
基于Hadoop 的分布式存儲技術:
HDFS(Hadoop Distributed File System)是Hadoop 抽象文件系統的一種實現。它可以與本地系統集成并且可以通過Web 協議來操作[2]。在HDFS 中存儲的文件分布在每一臺集群計算機中,同時自動創建多個備份防止數據丟失。其設計目標為存儲超大體積的文件,并且采用流式訪問方式讀取海量數據。其數據讀取流程如圖1 所示。

圖1 HDFS 數據讀取流程
HBase 以表的形式存儲數據,數據存儲邏輯模型如表1 所示。HBase 與NoSQL 數據庫類似,HBase 由Row Key 作為檢索記錄的主鍵表中的每個列,都歸屬于某個列族,每個列是由名為單元格(cell)的最小存儲單元組成。

表1 HBase 數據存儲邏輯模型
本系統整體框架總共由4 部分組成,主要采用B/S 架構,如圖2 所示。主體分為數據庫存儲層、后臺服務層和基于Web 瀏覽器的表現層。

圖2 系統框架圖
通過對多源交通大數據的整理及分析,現將系統劃分為公交車數據分析模塊、出租車數據分析模塊、共享單車數據模塊和地鐵數據模塊共4 個模塊。
2.2.1 公交車數據分析模塊
本模塊通過對原始刷卡數據的站點字段進行提取,然后結合線路站點經緯度,最后通過MapReduce 計算每個站位的上車刷卡總量,即該站登量。

圖3 公交站點OD 查詢
2.2.2 出租車數據分析模塊
通過對出租車的時空軌跡挖掘及基于區域的OD 分析,實現更準確的掌握本市的出租車運營特征,如各時段載客熱點區域,為出租車管理分析提供技術支撐。

圖4 出租車時空軌跡
2.2.3 共享單車數據模塊
通過對南鑼地區共享單車數據進行OD 提取、騎行時長分布以及某月租車數量分布日歷圖進行可視化展示與分析,為共享單車投放點與回收點、投放數量等提供輔助決策,從而一定程度上緩解用戶找不到車、找錯車等現象。

圖5 共享單車圖表
2.2.4 地鐵數據模塊
通過地圖服務在地圖上展示各個站點的位置及其信息,站點的大小由該日的客流數量確定,同時設計多站點同時段客流比對以及單站點多時段比對,為實現優化站點服務能力提供輔助決策。

圖6 地鐵客流模塊示意圖
系統開發采用B/S 架構,同時在服務端結合了Mapreduce 計算框架,在存儲中使用PostgerSQL 與Hadoop 分布式存儲框架結合的存儲方式。結構數據如地鐵客流數據采用Postgresql 進行基礎業務數據的存儲,非結構數據如公交車刷卡數據、出租車軌跡數據采取使用HDFS 分布式文件系統進行存儲,通過搭建SSM后臺框架實現數據庫管理。最終在Web 瀏覽器端采用開源地圖庫Mapbox、Openlayers,以及ArcGIS API 和Echarts 圖表等前端開發技術進行北京市各類交通數據的展示與數據分析結果的表達。
該平臺使用Hadoop 分布式存儲與PostgreSQL 數據庫相結合的存儲方式,解決了多源數據存儲時的數據結構與數據容量擴展的問題;建立Mapreduce 分布式計算框架,挖掘出租車、公交車等交通數據的信息價值,為城市交通大數據的信息挖掘及可視化分析等提供關鍵技術。