羅顯光,胡 晨2,劉 博
(1.中車株洲電力機車有限公司產(chǎn)品研發(fā)中心,湖南 株洲 412001;2.深圳市地鐵集團有限公司運營總部車輛中心,廣東 深圳 518000)
數(shù)據(jù)溯源(data provenance)是一個新興的研究領(lǐng)域,誕生于 20 世紀 90 年代,大部分文獻將其命名為數(shù)據(jù)起源,有追蹤數(shù)據(jù)的起源和重現(xiàn)數(shù)據(jù)的歷史狀態(tài)之意[1]。智慧運維系統(tǒng)已經(jīng)實現(xiàn)對安裝WTD設(shè)備且能夠進行車地通信的全部列車的WTD數(shù)據(jù)的接收、解析、存儲、應(yīng)用和展示;為保證城軌列車數(shù)據(jù)在智慧運維系統(tǒng)中的完整性和可追溯性,對其整個鏈路的可追溯進行可視化研究,本文從應(yīng)用的角度出發(fā),強調(diào)智慧運維系統(tǒng)對城軌列車相關(guān)數(shù)據(jù)追蹤的過程和方法,根據(jù)追蹤路徑重現(xiàn)數(shù)據(jù)的歷史狀態(tài)和演變過程,實現(xiàn)數(shù)據(jù)歷史檔案的追溯和管理。
目前城軌列車WTD數(shù)據(jù)自車上WTD設(shè)備通過4G網(wǎng)絡(luò)直接傳輸至中車公司的前置接口服務(wù)器,中車公司將數(shù)據(jù)從其前置接口服務(wù)器整合后轉(zhuǎn)發(fā)至我司大數(shù)據(jù)平臺,最終對中車公司前置接口機數(shù)據(jù)進行讀取、解析和存儲,并最終在智慧運維系統(tǒng)進行展示和應(yīng)用。城軌列車WTD數(shù)據(jù)依賴于車地通信協(xié)議,以數(shù)據(jù)包方式進行傳輸,采用不同端口和位置表示列車運行狀態(tài)數(shù)據(jù)的不同類型,決定了其數(shù)據(jù)本身的特性及傳輸過程的特殊。此過程采用Kafka+Spark Streaming方式進行數(shù)據(jù)解析,并將解析后的數(shù)據(jù)緩存至Redis中,保障列車運行狀態(tài)數(shù)據(jù)的實時性;同時數(shù)據(jù)還會存入Hbase中,為在線的數(shù)據(jù)挖掘提供支持;通過Hive對Hbase中的數(shù)據(jù)進行關(guān)聯(lián)映射,基于Hive的特性,可以通過SQL的方式進行數(shù)據(jù)分析,并將分析后的結(jié)果存入Mysql中,并提供離線數(shù)據(jù)分析的展示。WTD數(shù)據(jù)傳輸流程見圖1所示。
由于應(yīng)用場景不同,更由于上述城軌列車WTD數(shù)據(jù)包特性和傳輸流程特殊,本文從實際應(yīng)用出發(fā),研究基于數(shù)據(jù)包和傳輸鏈路的逐點追溯、分析和管理的數(shù)據(jù)溯源方法,并最終在智慧運維系統(tǒng)進行可視化展示應(yīng)用。本文從數(shù)據(jù)整條傳輸鏈路出發(fā),逐步回推數(shù)據(jù)流程,實現(xiàn)數(shù)據(jù)的可追溯,并在此過程中增加數(shù)據(jù)分析和管理功能,最終實現(xiàn)數(shù)據(jù)溯源。
圖1WTD數(shù)據(jù)傳輸流程圖
數(shù)據(jù)溯源在各行各業(yè)有著相當廣泛的應(yīng)用,人們清楚地認識到實際操作中,并不是和理論上想的一樣,往往存在著誤差,而誤差的存在就需要人們對項目本身進行優(yōu)化,從而盡可能地區(qū)減少或者消除誤差,但是,某些時候,人們可能并不知道某個誤差是怎么產(chǎn)生的,影響的因素是什么;此時就有必要對初始情況做標記說明。本文重點對數(shù)據(jù)源頭進行標記,在后續(xù)的每一步傳輸過程中增加對應(yīng)的標記,最終從數(shù)據(jù)展示層出發(fā),逐步回推數(shù)據(jù)傳輸情況。
1.2.1 消息總線數(shù)據(jù)追溯處理
城軌列車WTD實時數(shù)據(jù)傳輸至前置接口服務(wù)器后,經(jīng)Kafka形成消息隊列發(fā)送給Spark實時流程序進行數(shù)據(jù)解析,在發(fā)Kafka時應(yīng)該生成唯一Rowkey,規(guī)則為:(分區(qū)序號)partirionid+"_"+(發(fā)送當前時間戳) ctime+"_"+(記錄行號)recordid,Partition的ID采用java的隨機函數(shù)生成得到。由于前置接口服務(wù)器有2臺,目前采用雙鏈路同時接收數(shù)據(jù),Phmftp1為編號為1的單數(shù)鏈路,Phmftp2為編號為0的雙數(shù)鏈路,單雙號通過文件名的文件序號計算單雙得到如圖1所示。
1.2.2 平臺數(shù)據(jù)追溯處理
數(shù)據(jù)解析程序?qū)崟r對Kafka消息服務(wù)器上的數(shù)據(jù)進行讀取、解析和存儲,而且解析后根據(jù)業(yè)務(wù)應(yīng)用場景不同,將數(shù)據(jù)存儲到不同的Hbase表中,最終供智慧運維系統(tǒng)進行展示應(yīng)用。但是僅是存儲表不同,存儲格式是一樣的,其所附加的數(shù)據(jù)追溯屬性也是一樣的。以列車歷史數(shù)據(jù)存儲為例,由于存儲在Hbase中,Rowkey的設(shè)計很重要,根據(jù)實際應(yīng)用場景設(shè)計rowkey命名規(guī)則是:(月份+車號).hash().substr(最后 4 位)_項目_線路_車號_(long.max-數(shù)據(jù)時間)。還有很重要的一點,數(shù)據(jù)包文件名和數(shù)據(jù)入庫時間作為其數(shù)據(jù)屬性存儲在一起,方便對原始數(shù)據(jù)的查詢。
城軌列車WTD數(shù)據(jù)重現(xiàn)則為數(shù)據(jù)溯源的實際應(yīng)用成果,在這不得不提到本文數(shù)據(jù)溯源過程中一車一協(xié)議配置的重要性。一車一協(xié)議配置是基于目前智慧運維系統(tǒng)已經(jīng)解析落地的不同車型的WTD車地通信協(xié)議,結(jié)合在數(shù)據(jù)解析實際過程中遇到并解決的問題,最終形成的解析配置文件。簡單的說,由于WTD數(shù)據(jù)依賴于車地通信協(xié)議并以數(shù)據(jù)包傳輸?shù)奶匦?,一車一協(xié)議實現(xiàn)以數(shù)據(jù)位置進行編碼,這看似簡單的方法為數(shù)據(jù)溯源提供便捷和基本保障。對于解析后的數(shù)據(jù)來講,只要找到其對應(yīng)的編碼,就能根據(jù)編碼找出其在數(shù)據(jù)包中的位置。
基于上述的數(shù)據(jù)溯源過程和方法,任何一個協(xié)議參數(shù)都可以首先找到其原始文件名,然后根據(jù)文件名追溯其整個傳輸鏈路涉及到的存儲節(jié)點和時間節(jié)點;在此過程中不僅可以重現(xiàn)參數(shù)的傳輸過程,也可以重現(xiàn)參數(shù)的解析過程,包括解析規(guī)則、解析前參數(shù)值、解析后參數(shù)值、解析時間等等,為城軌列車數(shù)據(jù)的標準化解析和分析提供準確性的基礎(chǔ)保障。
最終此研究與智慧運維系統(tǒng)進行有效集成,并以可視化界面進行展示推廣應(yīng)用,供相關(guān)人員根據(jù)追蹤路徑重現(xiàn)數(shù)據(jù)的歷史狀態(tài)和演變過程,實現(xiàn)數(shù)據(jù)歷史檔案的追溯和管理,提高了城軌列車檢修業(yè)務(wù)人員的工作效率。
1)本研究針對城軌列車WTD數(shù)據(jù)和智慧運維系統(tǒng)集成數(shù)據(jù)進行了數(shù)據(jù)全流程的路徑追溯,通過開發(fā)可視化界與智慧運維系統(tǒng)進行了有效集成:展示城軌列車數(shù)據(jù)所運用的協(xié)議名稱、協(xié)議版本、協(xié)議類別、協(xié)議規(guī)則,為相關(guān)人員對數(shù)據(jù)進行追溯管理提供支撐。具體成果見圖2所示。
圖2 數(shù)據(jù)追溯管理界面
2)本研究成功對WTD數(shù)據(jù)進行歷史重現(xiàn),通過智慧運維系統(tǒng)界面詳細的描述了每一個列車運行狀態(tài)參數(shù)的由來,為業(yè)務(wù)人員對數(shù)據(jù)進行核對提供有效的支持,降低了人員工作量,提升了工作效率。具體成果見圖3所示。
圖3 數(shù)據(jù)追溯詳情展示界面
數(shù)據(jù)溯源成為考究數(shù)據(jù)質(zhì)量的有效途徑,而車載WTD數(shù)據(jù)是智慧運維系統(tǒng)保障列車運行安全的基礎(chǔ),因此必須保證數(shù)據(jù)的完整性與準確性。本文的研究成果已經(jīng)成功應(yīng)用在智慧運維系統(tǒng)中,利用數(shù)據(jù)路徑追蹤實現(xiàn)對城軌列車WTD數(shù)據(jù)的全流程監(jiān)控與管理,并結(jié)合可視化技術(shù)逐步實現(xiàn)數(shù)據(jù)的歷史追溯和重現(xiàn)過程。尤其在城軌列車數(shù)據(jù)發(fā)生異常解析或者展示的情況下,業(yè)務(wù)人員可以快速定位到問題節(jié)點,并能夠清晰的解析異常問題,快速做出應(yīng)對解決方案,以提高城軌列車在智慧運維系統(tǒng)上信息展示的完整性和準確性,進而提升智慧運維系統(tǒng)運營支撐能力,為保障列車的運行安全夯實了數(shù)據(jù)基礎(chǔ)。