陳莉莉,狄穎琪
(南瑞軌道交通技術有限公司,江蘇 南京 210038)
2020年,中國城市軌道交通協會發布了《中國城市軌道交通智慧城軌發展綱要》,提出運營業務全面上云的目標。根據目前國內城市軌道交通新建設線路情況,不但業務普遍采用云上部署,而且線路中也越來越多地采用大數據平臺提供數據存儲和服務。依據該《發展綱要》,大數據平臺的定位更接近于數據中臺,即整合多個業務系統的數據,形成數據資產,并向高級智慧應用提供數據共享服務。
國內軌道交通大數據平臺的建設歷史不長[1]。經過近幾年的迅速發展,目前已建設的大數據平臺暴露出以下問題:首先是未實現完全的數據開放共享,對大數據的分析挖掘都僅圍繞或支撐具體的幾項數據應用;其次是不具備實時數據分析和共享能力,都只是對歷史數據的離線數據分析。隨著城軌智慧應用需求的不斷提升,數據應用的類型越來越多。很多應用場景,比如雜散電流分析、在線供電監測等,采用機器挖掘和深度學習時的實時模型,要求實時數據與離線數據相結合以進行計算和分析。因此,當新的智慧應用業務不斷產生并提出各種靈活的數據服務需求時,大數據平臺往往無法提供有效的數據服務。因此,必須對大數據平臺進行系統升級[2]。
本文基于某城軌云項目的建設過程,構建云數融合的系統框架,對大數據平臺按照云的數據即服務(data-as-a-service,DaaS)層進行系統構建。本文設計注重提供靈活通用的數據服務能力。本文在項目經驗的基礎上形成云數融合的城軌大數據平臺方案。該方案響應了中國城市軌道交通協會的《中國城市軌道交通智慧城軌發展綱要》,解決了現有大數據平臺數據服務和共享能力不足的問題,為高級應用提供了低代碼的可配置式歷史數據服務,以及基于斷面和變化推送的實時數據共享服務,實現了數據的高可用性[3]。
城軌生產業務系統架構經歷了三個發展階段,從應用部署在各自裸金屬服務器上的傳統架構,到業務系統部署在云平臺上,再隨著技術的成熟發展出云數融合的平臺架構。在傳統架構下,各系統在各自的服務器上部署應用業務,而數據從各源端重復接入。到了第一代云平臺,各應用系統部署在云平臺,使用云上虛擬化資源,并出現了跨系統的高級智慧應用。但是這一階段的數據接入方式并沒有優化。隨著智慧應用需求的增多,需要對數據和資源進行整合,由此產生了新一代的云數融合的平臺架構。云數融合的平臺搭建數據中臺和業務中臺,實現數據與服務的共享[4]。數據一次接入后,即可重復使用。
云平臺納管大數據服務器,為大數據平臺提供網絡和安全支撐,并提供平臺即服務(platform-as-a-service,PaaS)層公有組件。大數據平臺在邏輯功能上嵌入云平臺,作為云平臺的DaaS層,部署在云內的虛擬數據中心(virtual data center,VDC),為云上業務提供數據服務。
在云數融合的基礎支撐平臺上,基礎設施即服務(infrastructure-as-a-service,IaaS)層提供全面的虛擬化服務,如計算、存儲、網絡和安全等; PaaS層實現資源整合共享,提供平臺級統一組件服務;DaaS層負責所有應用的數據采集、存儲、標準化,并提供數據服務給各高級應用進行分析處理和數據展現;軟件即服務(software-as-a-service,SaaS)層為運營提供各種智慧應用服務。
云數融合基礎支撐平臺系統架構如圖1所示。

圖1 云數融合基礎支撐平臺系統架構
云平臺作為大數據平臺的基座,具有以下優點。云的虛擬化資源池可以進行靈活配置,避免了傳統架構的硬件局限,使數據接入更加簡單方便、可擴展性更強。PaaS層的組件支持簡化了業務部署和整合的過程。云平臺納管大數據平臺,提供了數據安全保障。云平臺給各業務系統提供唯一的基準時鐘源,使來自不同數據源的數據可以實現時間上的對齊[5-6]。
大數據平臺的主要功能如下。大數據平臺接入軌道交通各生產業務系統的數據,并進行清洗、轉換、整合、標準化、壓縮和存儲,使數據形成資產。大數據平臺對這些數據資產進行服務化封裝,以低代碼的靈活方式,向上層高級應用提供數據服務。所建立的各高級應用可以自由訪問獲取數據的數據服務平臺[7]。大數據平臺從數據采集、數據緩存、數據治理到數據集市的各大主題庫為應用系統提供數據服務支撐。這屏蔽了數據源系統的變化,減少了應用的實現難度和技術風險。
DaaS的主要功能如下。
①數據采集和存儲。
大數據平臺采集來自于各子系統的數據,并作清洗、轉換、壓縮、存儲。各種數據接入方式都通過接口服務器轉成消息中間件(Kafka)發送到大數據平臺。
②數據資產化。
在大數據平臺的建設過程中制定符合軌道交通行業規范的標準化規則,對存儲的數據進行數據治理,以形成數據資產。
③數據服務化。
通過網絡應用編程、Kafka、 安全文件傳輸協議(secure file transfer protocol,SFTP)等數據接口,使第三方數據消費者能夠選擇合適的方式獲取和使用數據。
DaaS是目前比較先進的技術理念。大數據平臺集中存儲云上數據,進行數據清洗、標準化、集成等操作,并向不同的業務用戶提供數據服務。各智慧應用可以通過這些服務獲取數據,以實現分析處理和數據展現。作為數據消費者的高級應用,DaaS無需考慮數據來源,實現了數據的源端隔離[8]。
大數據平臺存儲來自不同源系統的數據。在數據生命周期內,通過數據治理對元數據、主數據、數據質量、數據安全等進行管理,以形成數據資產地圖。
數據治理必須先建立數據標準。未經標準化處理的數據無法在各應用系統之間進行共享。因此,需要建立一整套數據規范、治理流程,并使用技術工具,以確保各種重要的運營數據在各線路之間以及地鐵各部門之間的使用和交換具有一致性和準確性。
首先,數據標準化要實現主數據的身份標識(identity document,ID)編碼全線網統一。大數據平臺建立主數據ID與各業務系統內部ID的映射表,實現主數據在原系統與大數據平臺內存儲對象的一致性關聯。其次,數據標準化要實現通用數據對象建模。其從通用性角度出發,對車輛、信號、供電、通信、綜合監控、火災、電扶梯、售檢票等各系統相關元素的數據對象進行總結提煉,劃分業務主題并建模。同時,按照數倉的業務分層模型,對數據表按照數據運營層到應用層進行明確劃分。根據業務需要實現模型的按需擴展時,需在遵循標準化設計規則下建立新的業務數據表。這就兼顧了統一性和靈活性的原則[9]。最后,數據標準化要統一元數據管理,建立數據對象及其屬性表之間的關聯,整理各源系統的數據,建立數據字典。
大數據平臺對加工處理過的數據資產進行服務化封裝,以微服務的方式提供一系列通用服務接口。數據服務提供的方式有Restful 應用程序接口(application program interface,API)、Kafka,以及SFTP大批量數據傳送。
數據服務的關鍵在于通用性、靈活性以及安全性。對此,需要先確立數據安全管理工作流程,使數據消費者需要獲得授權才能訪問數據。這樣,大數據平臺提供通用的標準接口,則得到授權的數據消費者可以很方便地從平臺獲取數據。在技術上,這要求實現低代碼維護方式,從而在新需求出現時可以通過配置生成新服務接口,以避免系統的二次開發。
某些城軌智慧應用中采用機器挖掘和深度學習的實時模型,需要大數據平臺同時提供實時數據與離線數據,并將其結合起來進行計算分析。因此,大數據平臺采用了一些實時流處理組件,如Kafka、Flink、Redis等,以實現實時數據共享。
大數據平臺流處理的數據流如圖2所示。

圖2 大數據平臺流處理的數據流圖
大數據平臺的任務管理模塊通過切分和調度使各數據同步作業。每個作業都是處理不同線路系統數據的單獨流任務。這些數據同步作業接收來自各主題的實時Kafka信息,并根據時間戳校驗將信息實時同步到作業內部維護相關數據的Map以及Redis中。這樣就保證了數據服務的實時性。
大數據平臺提供以下三種方式的數據訪問接口,以滿足高級智慧應用的數據服務需求。
①歷史數據Restful API共享服務。
存儲在大數據平臺的歷史數據采用API網關發布Restful API。數據消費者通過大數據平臺提供的服務目錄,選擇并調用API,通過主動查詢獲得數據。為避免API服務的二次開放,本文方案采用了動態API網關技術。這不僅使低代碼的API編輯成為可能,而且即時生效。在API的編輯過程中,大部分場合通過界面拖拽來配置,少部分需要靈活查詢的場合通過填寫結構化查詢語句(structured query language,SQL),即可提供API服務。
②實時數據共享服務。
實時數據共享有兩種方式:一種是基于Kafka消息的實時變化數據推送;另一種是實時斷面數據Restful API服務。
大數據平臺提供管理工具進行變化數據訂閱配置,以配置數據消費者需要推送的數據點,以及推送的數據主題。負責數據推送的流任務監控各數據接入主題。當感知到某個主題中有訂閱數據發生變化時,流任務通過Kafka向相應主題發出消息,并主動推送變化數據。基于Kafka的數據推送利用大數據平臺的流處理功能,采用Flink組件,可以達到秒級延時。這就滿足了有實時性需求的應用,比如電網信號分析、雜散電流監控的實時數據需求。
在Redis組件中存儲各源系統的實時斷面數據,實時數據微服務通過管道方式一次批量讀取源系統的斷面數據,向擁有數據訪問權限的消費者提供Restful接口,以進行實時斷面數據共享服務。
③基于SFTP的大量歷史數據共享。
在需要提供大量歷史數據共享服務的場合,大數據平臺提供相應的微服務。該服務先把大批量歷史數據導出為csv文件,然后采用SFTP方式把文件傳給數據消費者。
DaaS功能實現了云上數據服務,為能效管理、在線電流監測等系統提供了歷史和實時數據共享。DaaS進行設備、行車、客流、能效等4大主題的離線和實時指標計算,為商業智能(business intelligence,BI)工具提供了數據展示的接口。
本文闡述了在城軌云項目的建設過程中構建的云數融合的城軌大數據平臺方案。大數據平臺通過“統一采集、統一存儲、統一管理、統一運營、統一服務”的方法,對來自各源系統的結構化、半結構化、非結構化數據進行歸整和存儲,并提供數據服務給數據消費者使用[10]。大數據平臺在功能上嵌入云內。其角色定義是數字資產的提供方,作為DaaS層向云上各高級智慧應用提供數據服務,實現了數據生產者和消費者之間的隔離。該方案在業內創新性地實現了可配置式實時和低代碼的微服務接口方式。云數融合避免了將來新數據接入時的硬件改動,將其簡化為云上虛擬化資源的配置問題。大數據平臺可配置式的微服務接口,在面對將來新的智慧應用需求時,避免了系統二次開發的復雜性。該方案實現了服務的高可用性,提升了資產利用價值,促進了行業的數字化升級。