鄒 丹,馬小寧,王 喆
(中國鐵道科學研究院集團有限公司 鐵路大數據研究與應用創新中心,北京 100081)
隨著信息采集手段的不斷發展,不同來源、不同類型的數據呈現指數級的爆發式增長[1]。政府、金融、餐飲、電力等行業都紛紛進入大數據的實用階段[2]。對于鐵路行業來說,各專業都在積極探索大數據應用,例如:客運專業在利用大數據構建客運產品360°立體畫像[3]、工務專業搭建了“數字工務”平臺提高設備設施維修的管理水平等[4],但是由于各系統分散建設,目前,還缺乏能夠跨專業、跨領域的大數據分析。本文旨在設計一種更合理的鐵路大數據架構模式,使鐵路數據在集中管理后,能夠統一存儲、綜合管理、有效利用,能夠使各專業除了分析本專業的數據,還能夠疊加利用其它專業數據,從數據層面挖掘潛在的經濟效益,更好地發揮數據價值,提升鐵路的綜合競爭力。
(1)缺乏數據集中管理
在鐵路信息化建設逐步發展的過程中,各專業根據自身業務需求建設了大量的信息系統。然而各系統之間多為隔離狀態,數據資源分散在各個數據孤島之中,業務系統間無法進行數據的交互和統一管理[5]。
(2)缺乏企業數據視圖
由于鐵路數據沒有集中管理,所以目前尚未形成統一的企業視圖。大數據的價值體現在多系統數據的融合和跨行業數據的聯合分析,沒有統一的企業視圖就很難實現數據的融合與分析。
(3)數據處理技術和架構不能滿足需求
大數據由于數據量大、數據類型多,需要新型數據分析技術的支撐,目前鐵路還是以傳統的關系型數據庫處理技術為主,缺乏更高效的數據處理機制和開展大數據應用的數據架構模式[5]。
(1)平臺架構需要完成數據集成整合的任務,打破各應用系統間的數據壁壘,形成數據資源的全景視圖;
(2)平臺架構考慮需要滿足數據大容量、高可用、高擴展要求;
(3)架構設計滿足海量多源復雜數據存儲、計算要求;
(4)支持實時分析、動態資源共享。
為了解決鐵路大數據目前面臨的問題,提出了面向鐵路數據的大數據平臺架構,目的是為了實現數據集中管理,并用大數據的理念和方法實現數據的高效處理。架構模式分為3層,如圖1所示。(1)數據獲取層,基于不同的數據源,區別結構化數據和非結構化數據,采用不同的采集方式和采集頻度完成數據集中;(2)數據處理層,完成數據的預處理,對采集數據進行清洗、轉換、加載,完成數據的顆粒化處理,形成鐵路數據分類,實現數據的存儲與計算分析[6];(3)數據服務層,以服務或組件等多種方式為應用方提供業務應用、數據分析和商業智能(BI)報表等智能決策支持。

圖1 鐵路數據架構分層模式
鐵路大數據平臺的數據獲取層,任務是進行數據采集,完成鐵路數據的集中管理[5]。采集過程為:(1)確定與大數據平臺對接的數據源;(2)明確數據采用哪種采集技術;(3)根據數據源特點和制定采集方案。
2.1.1 數據源
鐵路大數據的數據來源包括路內業務系統數據和來自其他行業的數據、互聯網數據、物聯網數據和其他數據等。(1)鐵路業務系統數據指來自鐵路行業的基礎數據、戰略決策數據、運輸生產數據、經營開發數據、資源管理數據等;(2)外部數據指與鐵路運輸、安全等相關的天氣數據、地質數據、災害預警數據、綜合交通類數據等;(3)互聯網數據是海量社交網絡信息、鐵路熱點話題、搜索平臺相關信息等;(4)物聯網數據包括傳感器、射頻識別(RFID)等設備采集的數據;(5)其他數據指能夠參與數據關聯分析、參與深度挖掘等大數據分析、計算過程的數據。數據類型既包括結構化的數據庫表、數據文件,也包括非結構化的視頻、圖像、文本等。
2.1.2 數據采集技術
數據源中需要采用不同的數據抽取方式,常用數據采集工具,如表1所示。
(1)對于業務應用系統中的數據,可采用分布式ETL工具將關系型數據庫中的數據導入到Hadoop分布式文件系統(HDFS)中,如Sqoop和Kettle等;
(2)對 于 圖片、音頻、視頻和日志等非結構化數據,可通過 FTP、SFTP、Chukwa等方式進行交換處理[7];
(3) 對 于 實時流式類數據,可通過分布式的海量日志系統Flume和高吞吐量的分布式發布訂閱消息系統Kafka進行采集、聚合和傳輸;
(4)對于外部網頁數據可以采取網絡爬蟲方式進行爬取。該方法可按照一定規則,自動地抓取網頁非結構化數據,并將其存儲為結構化數據文件,同時支持圖片、視頻等文件的采集并進行自動關聯。

表1 數據采集工具
2.1.3 數據采集方案
針對不同數據源以及不同應用的分析要求,需要制定不同的采集方案,其中包括:
(1)采集頻次。數據采集方案在采集頻次方面采用批量或實時方式。需要根據數據實時性要求、數據所處生命周期的不同進行規劃[8]。對于需要提供實時處理的數據和在數據生命周期中處于活躍期的數據,采用實時采集;對于用來支撐未來分析決策和趨勢預測的數據、或歷史數據等實時性要求不高的數據,可進行批量采集或準實時采集。
(2)采集方式。 采用前置機的方式,可由既有業務系統主動將數據放入前置機,也可以由數據獲取層主動發起采集任務;采用數據接口方式,通過雙方協定的接口服務進行數據采集;企業服務總線方式,以服務的方式進行實時數據采集。數據采集無論以何種方式進行,采集數據的任務都不能夠對既有系統的生產庫和系統運行產生影響。
(3)其他。匯集方案中還需要包括匯集的周期、網絡通道、主要負責人等,嚴格按照數據匯集計劃執行數據的上傳或下載,尤其是實時采集數據,需要通過制度和技術手段保證數據的及時性[9]。
2.2.1 數據預處理
數據預處理是將數據源的數據進行整合,在這個過程中,需要完成以下幾項工作。
(1)數據區分結構化與非結構化,由于結構化數據和非結構化數據處理過程完全不同,所以在數據整合的過程中,首先需要對數據進行歸類。
(2)結構化數據進行數據ETL(Extract-Transform-Load,數據抽取(extract)、交互轉換(transform)、加載(load)),去掉空數據、重復數據和錯誤數據,去掉與數據分析、挖掘無關的數據,調整數據格式,對數據進行轉換和加載等工作,提高數據的正確和有效性。
(3)非結構化數據進行歸類,結構化等工作。
(4)數據分類,從鐵路信息化總體規劃的角度出發,對鐵路數據進行分類,形成鐵路統一的數據視圖,便于數據的共享與分析應用。
(5)數據建模,將數據進行細粒度劃分,減少數據冗余。
2.2.2 數據存儲與計算
在鐵路大數據平臺的架構設計中,數據的存儲與計算需要同時具備3種模式,即:基于關系型數據庫的數據存儲與計算、基于大規模并行處理架構模式的數倉和基于Hadoop的大數據處理架構。
(1)關系型數據庫
關系數據庫部分,適用于存儲實時性要求較高,經常需要進行寫入的數據,適用于響應速度快、準確性較高、規模較小的數據。在鐵路大數據平臺的架構設計中,用來存儲實時數據、計算結果數據、衍生數據等,方便服務層隨時調用。
(2)基于大規模并行處理架構模式的數據倉庫
在大規模并行處理架構模式的數據倉庫中,每個節點都有獨立的存儲系統和內存系統,業務數據根據數據模型和應用特點劃分到各個節點上,彼此協同計算,作為整體提供數據庫服務。其特點是數據準確性較高,易于擴展,用來存放較大量結構化歷史數據。將數據批量導出后執行數據分批計算任務。數據倉庫中還包括數據管控模塊,提供數據處理過程中的數據質量管理、數據稽查、主數據管理等。
(3) Hadoop架構
Hadoop是一個開源的編程架構,采用分布式存儲系統,能夠清洗、存儲和處理海量數據。在Hadoop架構區域,數據存儲在Hive、HDFS或者Hbase中,通過分布式系統在成千上萬的節點中讀取數據。由于大數據的分析計算非常復雜,因此在Hadoop架構中需要包括數據挖掘的專用工具、算法庫和流式計算引擎等,用以支撐大量復雜數據的計算和分析。Hadoop架構易于擴展,具有無限的可伸縮性,適合于用存儲數據量增長較快,但準確性要求相對不高的非結構化數據和部分結構化數據。
以上3種模式不存在互相取代的關系,而是彼此互為另外兩部分的有益補充和促進,在數據處理層扮演著不同的角色,相互之間存在大量的數據流轉。
數據處理層根據不同的應用場景,將大數據平臺的數據處理能力以服務的形式提供給用戶,主要包括以下幾種服務:
(1)可視化分析。對數據進行智能分析,并將結果以可視化報表的形式展示,以直觀的圖表形式支持用戶決策分析[10]。
(2)數據挖掘算法。大數據分析的核心就是數據挖掘算法,數據服務層為用戶提供包括數據多維分析算法、決策樹算法和聚類分析算法等算法服務。
(3)預測分析模型。數據服務層將數據挖掘過程中發現的數據特點和規律,形成預測分析模型,支持將用戶數據帶入模型,對未來結果進行預測分析。
(4)業務應用。各業務系統可利用數據服務層的大數據處理能力進行業務數據的計算和處理,支撐業務系統需要。
(1)數據采集功能。完成數據采集任務,匯集全路各業務系統數據、與數據分析相關的路外數據和其他來源數據,滿足各類型數據采集需求。
(2)數據處理功能。通過數據處理工具將采集后的數據進行分類,進行數據的清洗、轉換等工作。
(3)數據目錄功能。為平臺數據建立數據的分級分類目錄,形成企業數據視圖,集成數據使用的申請、審批和開放權限等功能。
(4)大數據存儲與分析功能。主要提供統計分析、數據模型算法、數據挖掘服務和可視化服務等功能。
(5)數據治理。實現對基礎數據的管理和數據質量的管控,使平臺數據質量不斷提高。
本文通過對鐵路大數據的研究,設計了一種鐵路大數據架構模式,希望能夠以更為合理的數據架構進行數據的組織,達到鐵路數據集中管理與綜合利用的要求。隨著大數據技術的不斷發展與完善,未來對于鐵路數據資產的應用將朝著更加高效、安全、智能的方向發展。通過對鐵路數據資產的合理利用,鐵路行業將會更高效地管理數據、應用數據、發揮數據應有的價值,進一步提升鐵路的核心競爭力,更好地服務于社會。