羅顯光,胡 晨2,劉 博
(1.中車株洲電力機車有限公司產品研發中心,湖南 株洲 412001;2.深圳市地鐵集團有限公司運營總部車輛中心,廣東 深圳 518000)
數據溯源(data provenance)是一個新興的研究領域,誕生于 20 世紀 90 年代,大部分文獻將其命名為數據起源,有追蹤數據的起源和重現數據的歷史狀態之意[1]。智慧運維系統已經實現對安裝WTD設備且能夠進行車地通信的全部列車的WTD數據的接收、解析、存儲、應用和展示;為保證城軌列車數據在智慧運維系統中的完整性和可追溯性,對其整個鏈路的可追溯進行可視化研究,本文從應用的角度出發,強調智慧運維系統對城軌列車相關數據追蹤的過程和方法,根據追蹤路徑重現數據的歷史狀態和演變過程,實現數據歷史檔案的追溯和管理。
目前城軌列車WTD數據自車上WTD設備通過4G網絡直接傳輸至中車公司的前置接口服務器,中車公司將數據從其前置接口服務器整合后轉發至我司大數據平臺,最終對中車公司前置接口機數據進行讀取、解析和存儲,并最終在智慧運維系統進行展示和應用。城軌列車WTD數據依賴于車地通信協議,以數據包方式進行傳輸,采用不同端口和位置表示列車運行狀態數據的不同類型,決定了其數據本身的特性及傳輸過程的特殊。此過程采用Kafka+Spark Streaming方式進行數據解析,并將解析后的數據緩存至Redis中,保障列車運行狀態數據的實時性;同時數據還會存入Hbase中,為在線的數據挖掘提供支持;通過Hive對Hbase中的數據進行關聯映射,基于Hive的特性,可以通過SQL的方式進行數據分析,并將分析后的結果存入Mysql中,并提供離線數據分析的展示。WTD數據傳輸流程見圖1所示。
由于應用場景不同,更由于上述城軌列車WTD數據包特性和傳輸流程特殊,本文從實際應用出發,研究基于數據包和傳輸鏈路的逐點追溯、分析和管理的數據溯源方法,并最終在智慧運維系統進行可視化展示應用。本文從數據整條傳輸鏈路出發,逐步回推數據流程,實現數據的可追溯,并在此過程中增加數據分析和管理功能,最終實現數據溯源。

圖1WTD數據傳輸流程圖
數據溯源在各行各業有著相當廣泛的應用,人們清楚地認識到實際操作中,并不是和理論上想的一樣,往往存在著誤差,而誤差的存在就需要人們對項目本身進行優化,從而盡可能地區減少或者消除誤差,但是,某些時候,人們可能并不知道某個誤差是怎么產生的,影響的因素是什么;此時就有必要對初始情況做標記說明。本文重點對數據源頭進行標記,在后續的每一步傳輸過程中增加對應的標記,最終從數據展示層出發,逐步回推數據傳輸情況。
1.2.1 消息總線數據追溯處理
城軌列車WTD實時數據傳輸至前置接口服務器后,經Kafka形成消息隊列發送給Spark實時流程序進行數據解析,在發Kafka時應該生成唯一Rowkey,規則為:(分區序號)partirionid+"_"+(發送當前時間戳) ctime+"_"+(記錄行號)recordid,Partition的ID采用java的隨機函數生成得到。由于前置接口服務器有2臺,目前采用雙鏈路同時接收數據,Phmftp1為編號為1的單數鏈路,Phmftp2為編號為0的雙數鏈路,單雙號通過文件名的文件序號計算單雙得到如圖1所示。
1.2.2 平臺數據追溯處理
數據解析程序實時對Kafka消息服務器上的數據進行讀取、解析和存儲,而且解析后根據業務應用場景不同,將數據存儲到不同的Hbase表中,最終供智慧運維系統進行展示應用。但是僅是存儲表不同,存儲格式是一樣的,其所附加的數據追溯屬性也是一樣的。以列車歷史數據存儲為例,由于存儲在Hbase中,Rowkey的設計很重要,根據實際應用場景設計rowkey命名規則是:(月份+車號).hash().substr(最后 4 位)_項目_線路_車號_(long.max-數據時間)。還有很重要的一點,數據包文件名和數據入庫時間作為其數據屬性存儲在一起,方便對原始數據的查詢。
城軌列車WTD數據重現則為數據溯源的實際應用成果,在這不得不提到本文數據溯源過程中一車一協議配置的重要性。一車一協議配置是基于目前智慧運維系統已經解析落地的不同車型的WTD車地通信協議,結合在數據解析實際過程中遇到并解決的問題,最終形成的解析配置文件。簡單的說,由于WTD數據依賴于車地通信協議并以數據包傳輸的特性,一車一協議實現以數據位置進行編碼,這看似簡單的方法為數據溯源提供便捷和基本保障。對于解析后的數據來講,只要找到其對應的編碼,就能根據編碼找出其在數據包中的位置。
基于上述的數據溯源過程和方法,任何一個協議參數都可以首先找到其原始文件名,然后根據文件名追溯其整個傳輸鏈路涉及到的存儲節點和時間節點;在此過程中不僅可以重現參數的傳輸過程,也可以重現參數的解析過程,包括解析規則、解析前參數值、解析后參數值、解析時間等等,為城軌列車數據的標準化解析和分析提供準確性的基礎保障。
最終此研究與智慧運維系統進行有效集成,并以可視化界面進行展示推廣應用,供相關人員根據追蹤路徑重現數據的歷史狀態和演變過程,實現數據歷史檔案的追溯和管理,提高了城軌列車檢修業務人員的工作效率。
1)本研究針對城軌列車WTD數據和智慧運維系統集成數據進行了數據全流程的路徑追溯,通過開發可視化界與智慧運維系統進行了有效集成:展示城軌列車數據所運用的協議名稱、協議版本、協議類別、協議規則,為相關人員對數據進行追溯管理提供支撐。具體成果見圖2所示。

圖2 數據追溯管理界面
2)本研究成功對WTD數據進行歷史重現,通過智慧運維系統界面詳細的描述了每一個列車運行狀態參數的由來,為業務人員對數據進行核對提供有效的支持,降低了人員工作量,提升了工作效率。具體成果見圖3所示。

圖3 數據追溯詳情展示界面
數據溯源成為考究數據質量的有效途徑,而車載WTD數據是智慧運維系統保障列車運行安全的基礎,因此必須保證數據的完整性與準確性。本文的研究成果已經成功應用在智慧運維系統中,利用數據路徑追蹤實現對城軌列車WTD數據的全流程監控與管理,并結合可視化技術逐步實現數據的歷史追溯和重現過程。尤其在城軌列車數據發生異常解析或者展示的情況下,業務人員可以快速定位到問題節點,并能夠清晰的解析異常問題,快速做出應對解決方案,以提高城軌列車在智慧運維系統上信息展示的完整性和準確性,進而提升智慧運維系統運營支撐能力,為保障列車的運行安全夯實了數據基礎。