陳莉莉,狄穎琪
(南瑞軌道交通技術(shù)有限公司,江蘇 南京 210038)
2020年,中國城市軌道交通協(xié)會發(fā)布了《中國城市軌道交通智慧城軌發(fā)展綱要》,提出運營業(yè)務全面上云的目標。根據(jù)目前國內(nèi)城市軌道交通新建設線路情況,不但業(yè)務普遍采用云上部署,而且線路中也越來越多地采用大數(shù)據(jù)平臺提供數(shù)據(jù)存儲和服務。依據(jù)該《發(fā)展綱要》,大數(shù)據(jù)平臺的定位更接近于數(shù)據(jù)中臺,即整合多個業(yè)務系統(tǒng)的數(shù)據(jù),形成數(shù)據(jù)資產(chǎn),并向高級智慧應用提供數(shù)據(jù)共享服務。
國內(nèi)軌道交通大數(shù)據(jù)平臺的建設歷史不長[1]。經(jīng)過近幾年的迅速發(fā)展,目前已建設的大數(shù)據(jù)平臺暴露出以下問題:首先是未實現(xiàn)完全的數(shù)據(jù)開放共享,對大數(shù)據(jù)的分析挖掘都僅圍繞或支撐具體的幾項數(shù)據(jù)應用;其次是不具備實時數(shù)據(jù)分析和共享能力,都只是對歷史數(shù)據(jù)的離線數(shù)據(jù)分析。隨著城軌智慧應用需求的不斷提升,數(shù)據(jù)應用的類型越來越多。很多應用場景,比如雜散電流分析、在線供電監(jiān)測等,采用機器挖掘和深度學習時的實時模型,要求實時數(shù)據(jù)與離線數(shù)據(jù)相結(jié)合以進行計算和分析。因此,當新的智慧應用業(yè)務不斷產(chǎn)生并提出各種靈活的數(shù)據(jù)服務需求時,大數(shù)據(jù)平臺往往無法提供有效的數(shù)據(jù)服務。因此,必須對大數(shù)據(jù)平臺進行系統(tǒng)升級[2]。
本文基于某城軌云項目的建設過程,構(gòu)建云數(shù)融合的系統(tǒng)框架,對大數(shù)據(jù)平臺按照云的數(shù)據(jù)即服務(data-as-a-service,DaaS)層進行系統(tǒng)構(gòu)建。本文設計注重提供靈活通用的數(shù)據(jù)服務能力。本文在項目經(jīng)驗的基礎上形成云數(shù)融合的城軌大數(shù)據(jù)平臺方案。該方案響應了中國城市軌道交通協(xié)會的《中國城市軌道交通智慧城軌發(fā)展綱要》,解決了現(xiàn)有大數(shù)據(jù)平臺數(shù)據(jù)服務和共享能力不足的問題,為高級應用提供了低代碼的可配置式歷史數(shù)據(jù)服務,以及基于斷面和變化推送的實時數(shù)據(jù)共享服務,實現(xiàn)了數(shù)據(jù)的高可用性[3]。
城軌生產(chǎn)業(yè)務系統(tǒng)架構(gòu)經(jīng)歷了三個發(fā)展階段,從應用部署在各自裸金屬服務器上的傳統(tǒng)架構(gòu),到業(yè)務系統(tǒng)部署在云平臺上,再隨著技術(shù)的成熟發(fā)展出云數(shù)融合的平臺架構(gòu)。在傳統(tǒng)架構(gòu)下,各系統(tǒng)在各自的服務器上部署應用業(yè)務,而數(shù)據(jù)從各源端重復接入。到了第一代云平臺,各應用系統(tǒng)部署在云平臺,使用云上虛擬化資源,并出現(xiàn)了跨系統(tǒng)的高級智慧應用。但是這一階段的數(shù)據(jù)接入方式并沒有優(yōu)化。隨著智慧應用需求的增多,需要對數(shù)據(jù)和資源進行整合,由此產(chǎn)生了新一代的云數(shù)融合的平臺架構(gòu)。云數(shù)融合的平臺搭建數(shù)據(jù)中臺和業(yè)務中臺,實現(xiàn)數(shù)據(jù)與服務的共享[4]。數(shù)據(jù)一次接入后,即可重復使用。
云平臺納管大數(shù)據(jù)服務器,為大數(shù)據(jù)平臺提供網(wǎng)絡和安全支撐,并提供平臺即服務(platform-as-a-service,PaaS)層公有組件。大數(shù)據(jù)平臺在邏輯功能上嵌入云平臺,作為云平臺的DaaS層,部署在云內(nèi)的虛擬數(shù)據(jù)中心(virtual data center,VDC),為云上業(yè)務提供數(shù)據(jù)服務。
在云數(shù)融合的基礎支撐平臺上,基礎設施即服務(infrastructure-as-a-service,IaaS)層提供全面的虛擬化服務,如計算、存儲、網(wǎng)絡和安全等; PaaS層實現(xiàn)資源整合共享,提供平臺級統(tǒng)一組件服務;DaaS層負責所有應用的數(shù)據(jù)采集、存儲、標準化,并提供數(shù)據(jù)服務給各高級應用進行分析處理和數(shù)據(jù)展現(xiàn);軟件即服務(software-as-a-service,SaaS)層為運營提供各種智慧應用服務。
云數(shù)融合基礎支撐平臺系統(tǒng)架構(gòu)如圖1所示。
圖1 云數(shù)融合基礎支撐平臺系統(tǒng)架構(gòu)
云平臺作為大數(shù)據(jù)平臺的基座,具有以下優(yōu)點。云的虛擬化資源池可以進行靈活配置,避免了傳統(tǒng)架構(gòu)的硬件局限,使數(shù)據(jù)接入更加簡單方便、可擴展性更強。PaaS層的組件支持簡化了業(yè)務部署和整合的過程。云平臺納管大數(shù)據(jù)平臺,提供了數(shù)據(jù)安全保障。云平臺給各業(yè)務系統(tǒng)提供唯一的基準時鐘源,使來自不同數(shù)據(jù)源的數(shù)據(jù)可以實現(xiàn)時間上的對齊[5-6]。
大數(shù)據(jù)平臺的主要功能如下。大數(shù)據(jù)平臺接入軌道交通各生產(chǎn)業(yè)務系統(tǒng)的數(shù)據(jù),并進行清洗、轉(zhuǎn)換、整合、標準化、壓縮和存儲,使數(shù)據(jù)形成資產(chǎn)。大數(shù)據(jù)平臺對這些數(shù)據(jù)資產(chǎn)進行服務化封裝,以低代碼的靈活方式,向上層高級應用提供數(shù)據(jù)服務。所建立的各高級應用可以自由訪問獲取數(shù)據(jù)的數(shù)據(jù)服務平臺[7]。大數(shù)據(jù)平臺從數(shù)據(jù)采集、數(shù)據(jù)緩存、數(shù)據(jù)治理到數(shù)據(jù)集市的各大主題庫為應用系統(tǒng)提供數(shù)據(jù)服務支撐。這屏蔽了數(shù)據(jù)源系統(tǒng)的變化,減少了應用的實現(xiàn)難度和技術(shù)風險。
DaaS的主要功能如下。
①數(shù)據(jù)采集和存儲。
大數(shù)據(jù)平臺采集來自于各子系統(tǒng)的數(shù)據(jù),并作清洗、轉(zhuǎn)換、壓縮、存儲。各種數(shù)據(jù)接入方式都通過接口服務器轉(zhuǎn)成消息中間件(Kafka)發(fā)送到大數(shù)據(jù)平臺。
②數(shù)據(jù)資產(chǎn)化。
在大數(shù)據(jù)平臺的建設過程中制定符合軌道交通行業(yè)規(guī)范的標準化規(guī)則,對存儲的數(shù)據(jù)進行數(shù)據(jù)治理,以形成數(shù)據(jù)資產(chǎn)。
③數(shù)據(jù)服務化。
通過網(wǎng)絡應用編程、Kafka、 安全文件傳輸協(xié)議(secure file transfer protocol,SFTP)等數(shù)據(jù)接口,使第三方數(shù)據(jù)消費者能夠選擇合適的方式獲取和使用數(shù)據(jù)。
DaaS是目前比較先進的技術(shù)理念。大數(shù)據(jù)平臺集中存儲云上數(shù)據(jù),進行數(shù)據(jù)清洗、標準化、集成等操作,并向不同的業(yè)務用戶提供數(shù)據(jù)服務。各智慧應用可以通過這些服務獲取數(shù)據(jù),以實現(xiàn)分析處理和數(shù)據(jù)展現(xiàn)。作為數(shù)據(jù)消費者的高級應用,DaaS無需考慮數(shù)據(jù)來源,實現(xiàn)了數(shù)據(jù)的源端隔離[8]。
大數(shù)據(jù)平臺存儲來自不同源系統(tǒng)的數(shù)據(jù)。在數(shù)據(jù)生命周期內(nèi),通過數(shù)據(jù)治理對元數(shù)據(jù)、主數(shù)據(jù)、數(shù)據(jù)質(zhì)量、數(shù)據(jù)安全等進行管理,以形成數(shù)據(jù)資產(chǎn)地圖。
數(shù)據(jù)治理必須先建立數(shù)據(jù)標準。未經(jīng)標準化處理的數(shù)據(jù)無法在各應用系統(tǒng)之間進行共享。因此,需要建立一整套數(shù)據(jù)規(guī)范、治理流程,并使用技術(shù)工具,以確保各種重要的運營數(shù)據(jù)在各線路之間以及地鐵各部門之間的使用和交換具有一致性和準確性。
首先,數(shù)據(jù)標準化要實現(xiàn)主數(shù)據(jù)的身份標識(identity document,ID)編碼全線網(wǎng)統(tǒng)一。大數(shù)據(jù)平臺建立主數(shù)據(jù)ID與各業(yè)務系統(tǒng)內(nèi)部ID的映射表,實現(xiàn)主數(shù)據(jù)在原系統(tǒng)與大數(shù)據(jù)平臺內(nèi)存儲對象的一致性關(guān)聯(lián)。其次,數(shù)據(jù)標準化要實現(xiàn)通用數(shù)據(jù)對象建模。其從通用性角度出發(fā),對車輛、信號、供電、通信、綜合監(jiān)控、火災、電扶梯、售檢票等各系統(tǒng)相關(guān)元素的數(shù)據(jù)對象進行總結(jié)提煉,劃分業(yè)務主題并建模。同時,按照數(shù)倉的業(yè)務分層模型,對數(shù)據(jù)表按照數(shù)據(jù)運營層到應用層進行明確劃分。根據(jù)業(yè)務需要實現(xiàn)模型的按需擴展時,需在遵循標準化設計規(guī)則下建立新的業(yè)務數(shù)據(jù)表。這就兼顧了統(tǒng)一性和靈活性的原則[9]。最后,數(shù)據(jù)標準化要統(tǒng)一元數(shù)據(jù)管理,建立數(shù)據(jù)對象及其屬性表之間的關(guān)聯(lián),整理各源系統(tǒng)的數(shù)據(jù),建立數(shù)據(jù)字典。
大數(shù)據(jù)平臺對加工處理過的數(shù)據(jù)資產(chǎn)進行服務化封裝,以微服務的方式提供一系列通用服務接口。數(shù)據(jù)服務提供的方式有Restful 應用程序接口(application program interface,API)、Kafka,以及SFTP大批量數(shù)據(jù)傳送。
數(shù)據(jù)服務的關(guān)鍵在于通用性、靈活性以及安全性。對此,需要先確立數(shù)據(jù)安全管理工作流程,使數(shù)據(jù)消費者需要獲得授權(quán)才能訪問數(shù)據(jù)。這樣,大數(shù)據(jù)平臺提供通用的標準接口,則得到授權(quán)的數(shù)據(jù)消費者可以很方便地從平臺獲取數(shù)據(jù)。在技術(shù)上,這要求實現(xiàn)低代碼維護方式,從而在新需求出現(xiàn)時可以通過配置生成新服務接口,以避免系統(tǒng)的二次開發(fā)。
某些城軌智慧應用中采用機器挖掘和深度學習的實時模型,需要大數(shù)據(jù)平臺同時提供實時數(shù)據(jù)與離線數(shù)據(jù),并將其結(jié)合起來進行計算分析。因此,大數(shù)據(jù)平臺采用了一些實時流處理組件,如Kafka、Flink、Redis等,以實現(xiàn)實時數(shù)據(jù)共享。
大數(shù)據(jù)平臺流處理的數(shù)據(jù)流如圖2所示。
圖2 大數(shù)據(jù)平臺流處理的數(shù)據(jù)流圖
大數(shù)據(jù)平臺的任務管理模塊通過切分和調(diào)度使各數(shù)據(jù)同步作業(yè)。每個作業(yè)都是處理不同線路系統(tǒng)數(shù)據(jù)的單獨流任務。這些數(shù)據(jù)同步作業(yè)接收來自各主題的實時Kafka信息,并根據(jù)時間戳校驗將信息實時同步到作業(yè)內(nèi)部維護相關(guān)數(shù)據(jù)的Map以及Redis中。這樣就保證了數(shù)據(jù)服務的實時性。
大數(shù)據(jù)平臺提供以下三種方式的數(shù)據(jù)訪問接口,以滿足高級智慧應用的數(shù)據(jù)服務需求。
①歷史數(shù)據(jù)Restful API共享服務。
存儲在大數(shù)據(jù)平臺的歷史數(shù)據(jù)采用API網(wǎng)關(guān)發(fā)布Restful API。數(shù)據(jù)消費者通過大數(shù)據(jù)平臺提供的服務目錄,選擇并調(diào)用API,通過主動查詢獲得數(shù)據(jù)。為避免API服務的二次開放,本文方案采用了動態(tài)API網(wǎng)關(guān)技術(shù)。這不僅使低代碼的API編輯成為可能,而且即時生效。在API的編輯過程中,大部分場合通過界面拖拽來配置,少部分需要靈活查詢的場合通過填寫結(jié)構(gòu)化查詢語句(structured query language,SQL),即可提供API服務。
②實時數(shù)據(jù)共享服務。
實時數(shù)據(jù)共享有兩種方式:一種是基于Kafka消息的實時變化數(shù)據(jù)推送;另一種是實時斷面數(shù)據(jù)Restful API服務。
大數(shù)據(jù)平臺提供管理工具進行變化數(shù)據(jù)訂閱配置,以配置數(shù)據(jù)消費者需要推送的數(shù)據(jù)點,以及推送的數(shù)據(jù)主題。負責數(shù)據(jù)推送的流任務監(jiān)控各數(shù)據(jù)接入主題。當感知到某個主題中有訂閱數(shù)據(jù)發(fā)生變化時,流任務通過Kafka向相應主題發(fā)出消息,并主動推送變化數(shù)據(jù)?;贙afka的數(shù)據(jù)推送利用大數(shù)據(jù)平臺的流處理功能,采用Flink組件,可以達到秒級延時。這就滿足了有實時性需求的應用,比如電網(wǎng)信號分析、雜散電流監(jiān)控的實時數(shù)據(jù)需求。
在Redis組件中存儲各源系統(tǒng)的實時斷面數(shù)據(jù),實時數(shù)據(jù)微服務通過管道方式一次批量讀取源系統(tǒng)的斷面數(shù)據(jù),向擁有數(shù)據(jù)訪問權(quán)限的消費者提供Restful接口,以進行實時斷面數(shù)據(jù)共享服務。
③基于SFTP的大量歷史數(shù)據(jù)共享。
在需要提供大量歷史數(shù)據(jù)共享服務的場合,大數(shù)據(jù)平臺提供相應的微服務。該服務先把大批量歷史數(shù)據(jù)導出為csv文件,然后采用SFTP方式把文件傳給數(shù)據(jù)消費者。
DaaS功能實現(xiàn)了云上數(shù)據(jù)服務,為能效管理、在線電流監(jiān)測等系統(tǒng)提供了歷史和實時數(shù)據(jù)共享。DaaS進行設備、行車、客流、能效等4大主題的離線和實時指標計算,為商業(yè)智能(business intelligence,BI)工具提供了數(shù)據(jù)展示的接口。
本文闡述了在城軌云項目的建設過程中構(gòu)建的云數(shù)融合的城軌大數(shù)據(jù)平臺方案。大數(shù)據(jù)平臺通過“統(tǒng)一采集、統(tǒng)一存儲、統(tǒng)一管理、統(tǒng)一運營、統(tǒng)一服務”的方法,對來自各源系統(tǒng)的結(jié)構(gòu)化、半結(jié)構(gòu)化、非結(jié)構(gòu)化數(shù)據(jù)進行歸整和存儲,并提供數(shù)據(jù)服務給數(shù)據(jù)消費者使用[10]。大數(shù)據(jù)平臺在功能上嵌入云內(nèi)。其角色定義是數(shù)字資產(chǎn)的提供方,作為DaaS層向云上各高級智慧應用提供數(shù)據(jù)服務,實現(xiàn)了數(shù)據(jù)生產(chǎn)者和消費者之間的隔離。該方案在業(yè)內(nèi)創(chuàng)新性地實現(xiàn)了可配置式實時和低代碼的微服務接口方式。云數(shù)融合避免了將來新數(shù)據(jù)接入時的硬件改動,將其簡化為云上虛擬化資源的配置問題。大數(shù)據(jù)平臺可配置式的微服務接口,在面對將來新的智慧應用需求時,避免了系統(tǒng)二次開發(fā)的復雜性。該方案實現(xiàn)了服務的高可用性,提升了資產(chǎn)利用價值,促進了行業(yè)的數(shù)字化升級。