張 銘
(中國鐵道科學(xué)研究院集團(tuán)有限公司電子計(jì)算技術(shù)研究所 北京 100081)
近年大城市軌道交通快速進(jìn)入規(guī)?;途W(wǎng)絡(luò)化格局,為日常生產(chǎn)調(diào)度、運(yùn)營、管理服務(wù)的各類信息系統(tǒng)快速積累了大量的數(shù)據(jù)資源,陸續(xù)建設(shè)了數(shù)據(jù)中心或信息中心,對大數(shù)據(jù)技術(shù)和數(shù)據(jù)資源效益的挖潛日益重視[1-4]。目前城市軌道交通部分企業(yè)采用了傳統(tǒng)數(shù)據(jù)倉庫一體機(jī)的模式,以北京、廣州、深圳為代表,圍繞線網(wǎng)運(yùn)營業(yè)務(wù)建立數(shù)據(jù)結(jié)構(gòu)和主題域,該模式以數(shù)據(jù)資源的存儲為目標(biāo)。但隨著硬件設(shè)備、軟件版本的更新?lián)Q代,須同步更新歷史數(shù)據(jù)管理方式,且難以適應(yīng)于不斷變化和彈性擴(kuò)展的應(yīng)用需求,投資成本高,逐步顯現(xiàn)出它的劣勢。隨著大數(shù)據(jù)和云計(jì)算技術(shù)的探索應(yīng)用,文獻(xiàn)[5-6]總結(jié)了基于Hadoop各項(xiàng)大數(shù)據(jù)技術(shù)及應(yīng)用創(chuàng)新。池亞平等[7]研究了大數(shù)據(jù)平臺海量監(jiān)控?cái)?shù)據(jù)的存儲效率改進(jìn)方法。李敏等[8]就物聯(lián)網(wǎng)環(huán)境下的數(shù)據(jù)時空特性提出了異構(gòu)大數(shù)據(jù)處理的時效性改進(jìn)模型,這些為大數(shù)據(jù)平臺的建設(shè)和應(yīng)用優(yōu)化提供了借鑒。一些新建和規(guī)劃數(shù)據(jù)中心的軌道交通企業(yè),如上海、南京、重慶,采用了新型的大數(shù)據(jù)平臺技術(shù),如基于MPP(Massively Parallel Processor)架構(gòu)、基于虛擬化共享硬件的方式,基于Hadoop大數(shù)據(jù)平臺模式,均不同程度地兼顧了遠(yuǎn)期硬件擴(kuò)容的投入,以及數(shù)據(jù)挖掘、商務(wù)智能方面應(yīng)用的靈活擴(kuò)展性。
針對城市軌道交通數(shù)據(jù)資源在業(yè)務(wù)、生產(chǎn)、經(jīng)營、管理、服務(wù)方面的差異性,將數(shù)據(jù)運(yùn)用于不同應(yīng)用場景的需求,本文提出建立基于混合式架構(gòu)的大數(shù)據(jù)平臺模式,以可擴(kuò)展、自適應(yīng)、可定制為目標(biāo)導(dǎo)向,深化平臺的系統(tǒng)架構(gòu)、數(shù)據(jù)架構(gòu)、分層管控機(jī)制,并在運(yùn)營管理與決策支持中加以運(yùn)用,為運(yùn)營信息化基礎(chǔ)大數(shù)據(jù)平臺提供一套實(shí)用的綜合解決方案。
城市軌道交通運(yùn)營信息化類系統(tǒng)作為企業(yè)數(shù)據(jù)資產(chǎn)的基礎(chǔ)數(shù)據(jù)源,根據(jù)業(yè)務(wù)歸屬和關(guān)聯(lián)關(guān)系劃分為生產(chǎn)類、管理類、業(yè)務(wù)類、線網(wǎng)級管理與基礎(chǔ)平臺類四種類型。具體如下:
1) 生產(chǎn)信息化系統(tǒng),包括信號ATS、通信、綜合監(jiān)控ISCS、電力PSCADA、火災(zāi)報警FAS、環(huán)控BAS、自動售檢票AFC、清分中心ACC等系統(tǒng)[9],主要服務(wù)于日常的生產(chǎn)調(diào)度與安全保障。
2) 辦公管理信息化系統(tǒng),包括辦公自動化、人力資源管理、財(cái)務(wù)管理、合同管理、檔案管理等系統(tǒng)。
3) 運(yùn)營業(yè)務(wù)信息化系統(tǒng),包括票務(wù)管理、站務(wù)管理、乘務(wù)管理、資產(chǎn)管理、運(yùn)營計(jì)劃管理、施工調(diào)度、維修管理等系統(tǒng)。
4) 線網(wǎng)級管理與基礎(chǔ)平臺系統(tǒng),包括線網(wǎng)指揮中心、線網(wǎng)應(yīng)急處置、信息發(fā)布等,以及統(tǒng)一認(rèn)證、門戶網(wǎng)站、BIM系統(tǒng)等。
產(chǎn)生的數(shù)據(jù)類型包括結(jié)構(gòu)化數(shù)據(jù)、非結(jié)構(gòu)化數(shù)據(jù)、半結(jié)構(gòu)化數(shù)據(jù),例如存儲于關(guān)系型數(shù)據(jù)庫的數(shù)據(jù)表,視頻監(jiān)控的多媒體數(shù)據(jù),接口傳輸?shù)奈募悢?shù)據(jù)等,需要配置不同的存儲模式和空間與之相適應(yīng)。實(shí)時數(shù)據(jù)存儲時間要求不一,如歷史報警、突發(fā)事件等數(shù)據(jù)需要長期保存,而常規(guī)視頻數(shù)據(jù)一般存儲15~30日,接口文件一般存儲0.5~1年。數(shù)據(jù)的時空差異性決定了統(tǒng)一數(shù)據(jù)資源管理需要因地制宜,結(jié)合業(yè)務(wù)和數(shù)據(jù)本身的特性制定策略。
根據(jù)各類業(yè)務(wù)系統(tǒng)數(shù)據(jù)的時效性差異,數(shù)據(jù)采集時間和方式也不同,包括實(shí)時數(shù)據(jù)(采集周期1 s以內(nèi))、近線數(shù)據(jù)(5 min以內(nèi))、離線數(shù)據(jù)(小時、日、周不等)、隨機(jī)數(shù)據(jù)(一般不固定時間,數(shù)據(jù)產(chǎn)生時自行抽取或推送)。接口方式包括專用的接口協(xié)議或通信機(jī)制,如Modbus TCP/IP協(xié)議,文件消息隊(duì)列(Message Queue)方式、FTP文件傳輸、報文、Web service等,實(shí)現(xiàn)用于數(shù)據(jù)表交換的監(jiān)控?cái)?shù)據(jù)靜態(tài)點(diǎn)、狀態(tài)點(diǎn)、監(jiān)測點(diǎn)、控制點(diǎn),及客流文件、多媒體數(shù)據(jù)等的獲取,再根據(jù)業(yè)務(wù)特點(diǎn)統(tǒng)一清洗、抽取、加載為可共享的數(shù)據(jù)形式存儲。
共享數(shù)據(jù)資源經(jīng)過整合后為各種業(yè)務(wù)系統(tǒng)調(diào)用,同時各系統(tǒng)之間存在數(shù)據(jù)交互,如調(diào)度監(jiān)控系統(tǒng)為運(yùn)營管理和應(yīng)急處置系統(tǒng)提供設(shè)備報警的數(shù)據(jù),及時預(yù)防災(zāi)害或處理大型故障;資產(chǎn)管理系統(tǒng)為物資管理、維修管理系統(tǒng)提供統(tǒng)一的編碼;統(tǒng)一認(rèn)證和門戶系統(tǒng)為各類業(yè)務(wù)系統(tǒng)提供統(tǒng)一的企業(yè)用戶名錄和角色保障數(shù)據(jù)同步更新。分析性數(shù)據(jù)為指標(biāo)統(tǒng)計(jì)、效益核算、成本分析、線路規(guī)劃及建設(shè)后評估等提供決策依據(jù)。
平臺定位于建立面向多用戶的信息集中共享、資源高效利用的軌道交通數(shù)據(jù)服務(wù)和綜合信息管理平臺,實(shí)現(xiàn)統(tǒng)一采集、長期存儲、統(tǒng)計(jì)分析、數(shù)據(jù)挖掘的功能。根據(jù)各種業(yè)務(wù)的數(shù)據(jù)共享和使用需求,首先搭建定制化的基礎(chǔ)數(shù)據(jù)平臺,基于數(shù)據(jù)倉庫MPP架構(gòu)、大數(shù)據(jù)Hadoop架構(gòu)及關(guān)系型數(shù)據(jù)結(jié)構(gòu)混合的數(shù)據(jù)管理模式,實(shí)現(xiàn)分級分類的數(shù)據(jù)共享。構(gòu)建總體規(guī)劃的分層體系,即數(shù)據(jù)采集層、數(shù)據(jù)融合層、技術(shù)組件層、分析模型層、應(yīng)用訪問層的五層系統(tǒng)架構(gòu)。如圖1所示。
圖1 運(yùn)營信息大數(shù)據(jù)平臺的層次架構(gòu)
(1) 數(shù)據(jù)采集與融合層 完成各類系統(tǒng)基礎(chǔ)數(shù)據(jù)和設(shè)備級系統(tǒng)數(shù)據(jù)的接入,包括與車站層、線路層、車輛段、控制中心等系統(tǒng)的接口,與外部信息的邊界安全防護(hù),保障實(shí)時、非實(shí)時數(shù)據(jù)的采集和處理。按照實(shí)時庫、非實(shí)時的業(yè)務(wù)主題數(shù)據(jù)、公共數(shù)據(jù)對象抽取,并根據(jù)結(jié)構(gòu)化、非結(jié)構(gòu)化數(shù)據(jù)類型區(qū)分存儲周期和更新機(jī)制。
(2) 技術(shù)組件與分析模型層 將通用的組件和工具形成資源模型庫,將工作流、接口標(biāo)準(zhǔn)化、微服務(wù)、流計(jì)算、數(shù)據(jù)發(fā)布、單元建模、畫面組件等通用組件集以調(diào)用模式統(tǒng)一管理,并封裝便捷的調(diào)用接口。將單元業(yè)務(wù)應(yīng)用包劃分為最小單元,進(jìn)行多維度分析和業(yè)務(wù)流程建模,濃縮和匯聚主要的業(yè)務(wù)單元,成為信息化系統(tǒng)調(diào)用的最直接資源庫。
(3) 業(yè)務(wù)應(yīng)用訪問層 作為日常生產(chǎn)、管理、經(jīng)營、企業(yè)資源利用等方面數(shù)據(jù)服務(wù)的系統(tǒng)工具,實(shí)現(xiàn)信息流轉(zhuǎn)和辦公支撐,構(gòu)建標(biāo)準(zhǔn)、安全、高效的信息共享模式。面向車站、線路、線網(wǎng)各級別的系統(tǒng),覆蓋城市軌道交通數(shù)據(jù)資源需求的各個業(yè)務(wù)面。
數(shù)據(jù)處理系統(tǒng)作為大數(shù)據(jù)平臺的核心,通過對業(yè)務(wù)數(shù)據(jù)的有效集成,滿足對海量數(shù)據(jù)的存儲、管理和使用需要,需根據(jù)業(yè)務(wù)類型進(jìn)行數(shù)據(jù)流規(guī)劃與存儲機(jī)制的設(shè)計(jì),如圖2所示。
圖2 混合式數(shù)據(jù)管理模式及數(shù)據(jù)流
數(shù)據(jù)資源歸納為以下四種類型:
(1) 實(shí)時數(shù)據(jù)庫 用于采集實(shí)時數(shù)據(jù),設(shè)計(jì)快速提取和計(jì)算服務(wù)模塊,將獲取的實(shí)時數(shù)據(jù)標(biāo)準(zhǔn)化處理后轉(zhuǎn)入實(shí)時監(jiān)控的可視化展示,如設(shè)備狀態(tài)實(shí)時監(jiān)控。
(2) 關(guān)系型數(shù)據(jù)庫 設(shè)置一定存儲空間的關(guān)系型數(shù)據(jù)庫,用于多元業(yè)務(wù)流程及可擴(kuò)展應(yīng)用的數(shù)據(jù)管理和事務(wù)型分析的應(yīng)用,如資產(chǎn)、維修、調(diào)度管理等。
(3) 基于MPP架構(gòu)的數(shù)據(jù)倉庫 設(shè)置基于主題域和元數(shù)據(jù)管理的數(shù)據(jù)倉庫,圍繞定向型業(yè)務(wù)定義數(shù)據(jù)結(jié)構(gòu),如歷史報警綜合查詢、多維統(tǒng)計(jì)、客流預(yù)測、仿真回放,并統(tǒng)一進(jìn)行數(shù)據(jù)質(zhì)量、數(shù)據(jù)治理、數(shù)據(jù)模型、數(shù)據(jù)維護(hù)管理。利用數(shù)據(jù)倉庫的數(shù)據(jù)分析能力支持運(yùn)營效果評估和運(yùn)營仿真應(yīng)用。
(4) 基于Hadoop架構(gòu)的大數(shù)據(jù)應(yīng)用庫 將所有采集的數(shù)據(jù)匯總存入,非結(jié)構(gòu)化數(shù)據(jù)獨(dú)立管理,并定義索引用于智能檢索。采用分布式Kafka消息隊(duì)列的方式采集數(shù)據(jù)后,定制可擴(kuò)展的存儲邏輯單元管理,為長期數(shù)據(jù)存儲擴(kuò)容提供條件,運(yùn)用處理、查詢、讀取的各類工具集管理數(shù)據(jù),為業(yè)務(wù)系統(tǒng)提供數(shù)據(jù)服務(wù),如客流預(yù)測、云管理等。
傳統(tǒng)的數(shù)據(jù)共享方式,經(jīng)過數(shù)據(jù)采集后直接存儲,為業(yè)務(wù)系統(tǒng)提供數(shù)據(jù)時呈現(xiàn)出松散、繁雜的原始特征。由于城市軌道交通專業(yè)眾多,數(shù)據(jù)內(nèi)容和類型多樣,所以數(shù)據(jù)經(jīng)采集后處理的方式對數(shù)據(jù)分發(fā)的時效性、根據(jù)時間片存儲數(shù)據(jù)的同步性和一致性等都會產(chǎn)生影響。而接口采集的數(shù)據(jù)一般都是現(xiàn)場設(shè)備狀態(tài)及系統(tǒng)運(yùn)行數(shù)據(jù),實(shí)際業(yè)務(wù)需要呈現(xiàn)的數(shù)據(jù),往往要根據(jù)數(shù)據(jù)形式進(jìn)行數(shù)學(xué)運(yùn)算和邏輯判斷。未經(jīng)過以業(yè)務(wù)需求為出發(fā)點(diǎn)處理的數(shù)據(jù),使用的效率低,而為了單一業(yè)務(wù)需求涉及多個數(shù)據(jù)表的訪問和關(guān)聯(lián),對系統(tǒng)的負(fù)載和數(shù)據(jù)讀取的效率均產(chǎn)生不利影響。
針對這一問題,為大數(shù)據(jù)平臺的數(shù)據(jù)采集模塊設(shè)計(jì)基于數(shù)據(jù)實(shí)時計(jì)算的快速標(biāo)準(zhǔn)化的數(shù)據(jù)處理方法。數(shù)據(jù)采集后即做快速處理,以最小通用單元的形式,為業(yè)務(wù)系統(tǒng)提供便捷、可直接應(yīng)用的數(shù)據(jù)單元。通過設(shè)定統(tǒng)一的數(shù)據(jù)處理模板,將單元數(shù)據(jù)的業(yè)務(wù)需求歸納并加以屏蔽,經(jīng)過實(shí)時計(jì)算和解析為標(biāo)準(zhǔn)化的基礎(chǔ)數(shù)據(jù)單元,可大幅減輕在大規(guī)模數(shù)據(jù)接入后處理過程的繁雜性,提高數(shù)據(jù)的應(yīng)用效率。并進(jìn)一步引入統(tǒng)一的數(shù)據(jù)模型、制定報警處理規(guī)則等方式,將不同專業(yè)系統(tǒng)的業(yè)務(wù)流程歸一化。從實(shí)時數(shù)據(jù)接入后進(jìn)行標(biāo)準(zhǔn)化處理過程規(guī)劃、實(shí)時計(jì)算處理原則、功能、性能保障角度對數(shù)據(jù)處理服務(wù)設(shè)計(jì),確保數(shù)據(jù)的業(yè)務(wù)適用性、實(shí)效性和可靠性。主要包括三個階段:數(shù)據(jù)提取,數(shù)據(jù)計(jì)算及服務(wù)、自動分析與報警服務(wù)。
2.3.1 數(shù)據(jù)提取服務(wù)
數(shù)據(jù)提取模塊包括:專業(yè)數(shù)據(jù)、時間數(shù)據(jù)提取。從消息中間件獲取數(shù)據(jù)采集層提供的實(shí)時數(shù)據(jù),如設(shè)備狀態(tài)、客流監(jiān)測數(shù)據(jù),經(jīng)數(shù)據(jù)提取過濾的時間數(shù)據(jù),根據(jù)表達(dá)式進(jìn)行實(shí)時計(jì)算,并將計(jì)算結(jié)果推送給報警管理業(yè)務(wù)功能和實(shí)時可視化監(jiān)控模塊,嚴(yán)格區(qū)分各自接收的專項(xiàng)數(shù)據(jù)內(nèi)容。
數(shù)據(jù)采集層定義Producer(接口甲方),計(jì)算服務(wù)模塊定義為Consumer(接口乙方)。如果有請求信息,數(shù)據(jù)采集層接收則為Consumer(接口甲方),計(jì)算服務(wù)模塊則為Producer(接口乙方)。例如監(jiān)控系統(tǒng)的數(shù)據(jù)載入按每條地鐵線路創(chuàng)建二個通道(Topic),為多副本單分區(qū)形式。以客流數(shù)據(jù)計(jì)算服務(wù)為例說明計(jì)算方法如下。
(1) 初始化定義。定義過程(DatalogicWorker):周期性地向數(shù)據(jù)計(jì)算服務(wù)模塊提供客流數(shù)據(jù),包括:進(jìn)出站客流、斷面客流、各類客流數(shù)據(jù)排名、各類客流數(shù)據(jù)報警狀態(tài)。流程如下:
定義數(shù)據(jù)提取任務(wù)(Job):每個數(shù)據(jù)提取任務(wù)實(shí)現(xiàn)不同數(shù)據(jù)的提取,定義過程(PassengerFlowLogicJob),該任務(wù)用于提取進(jìn)出站客流、區(qū)間客流。具體業(yè)務(wù)邏輯在private static void GetPassengerFlowData()方法中實(shí)現(xiàn)。計(jì)算邏輯如下:
var pfstmeList=PassengerFlowDataCollection.GetInstance().GetPassengerFlowStation();
foreach(var pfsm in pfstmeList)
{
PfstmeMaps.Add(ConvetTools.LongTryParse(pfsm.Stationid.Trim()+pfsm.Flowtype), pfsm);
//作為字典Key,標(biāo)示客流狀態(tài)
PfstmeMaps.Add(ConvetTools.LongTryParse("10000"+pfsm.Stationid.Trim()+pfsm.Flowtype),pfsm);
}
(2) 將數(shù)據(jù)提取服務(wù)(ScheduleService)注冊為系統(tǒng)服務(wù)。
(3) 定義數(shù)據(jù)提取服務(wù)的啟動、停止方法,并在啟動方法中初始化所有數(shù)據(jù)提取任務(wù)。
定義過程(Periodic):周期性的向數(shù)據(jù)計(jì)算服務(wù)提供所需的時間數(shù)據(jù),包括:當(dāng)前時間(到s級,每隔10 s更新一次)、當(dāng)日運(yùn)營時間(到min級,每日更新一次)。
首先定義時間數(shù)據(jù)提取與發(fā)送機(jī)制:
private void StartEtlAction(SqlEtlInfo sqlEtlInfo, string timeRequest)
{
var config=sqlEtlInfo.DatabaseTypeConnQuery;
if(config.Trim().Length<1) return;
var sqlconfig=JsonHelper.DeserializeJsonToList
var sqlTimeRequest=sqlconfig.Where(s=>s.TimeRequest.ToLower()==timeRequest.ToLower());
foreach(var item in sqlTimeRequest)
{
var type=GetDbType(item.DatabaseType);
try
{
using(var db=SugarDao.GetInstance(type, item.DatabaseConn))
{
var datast=db.SqlQuery
//System.Diagnostics.Debug.WriteLine(string.Join(";",
//datast));
var sendData=string.Join(";", datast);
ServiceProvider.GetService
ActiveMqWorker.Send(sendData);
log.Info($"Send to MQ:{sendData}");
}
}
catch(Exception ex)
{
ExceptionHelper.HandleException(ex);
}
}
}
再經(jīng)初始化,將時間數(shù)據(jù)提取服務(wù)添加到服務(wù)容器。
2.3.2 數(shù)據(jù)計(jì)算服務(wù)
將各類數(shù)據(jù)調(diào)取需求歸納為統(tǒng)一、可識別的表達(dá)式模板,轉(zhuǎn)換為數(shù)據(jù)表定義,對應(yīng)不同的列形成機(jī)器識別的數(shù)據(jù)類目,并進(jìn)一步對應(yīng)到數(shù)據(jù)計(jì)算過程中。
定義過程(Bridge):接收數(shù)據(jù)提取服務(wù)模塊發(fā)送的數(shù)據(jù),實(shí)時計(jì)算相關(guān)的表達(dá)式,并將計(jì)算結(jié)果推送至消息中間件或報警管理服務(wù)。流程如下:
(1) 服務(wù)啟動入口;
(2) 將服務(wù)添加到服務(wù)容器內(nèi);
(3) 啟動數(shù)據(jù)計(jì)算服務(wù);
(4) 數(shù)據(jù)分發(fā)。
具體計(jì)算過程包括:
初始化:
public void InitialzeResultExpDict(DbType dbType, string connStr, BlockingCollection
{
try
{
resultDict.Clear();
ExpressionWithTagsDict.Clear();
SugarDao.MySqlConnString=connStr;
using(var db=SugarDao.GetInstance(dbType, connStr))
{
var expsList=db.Queryable
Parallel.ForEach(expsList, exp=>
{
NetCal(exp, blockingCollection);
ExpDict.TryAdd(exp.ConfigID.ToString(), exp);
});
}
}
catch(Exception ex)
{
Trace.TraceError(ex.ToString());
ExceptionHelper.HandleException(ex);
}
}
//表達(dá)式計(jì)算過程
var exp=new Expression(expitem.Expression);
exp.EvaluateParameter+=delegate(string name, ParameterArgs args)
{
if(NameTagsDict==null‖!NameTagsDict.ContainsKey(name)) return;
args.Result=ReactiveTagsDict[NameTagsDict[name]].Value;
};
var reactiveResultExpression=Reactive.Expression
{
var rtn=new object();
try
{
rtn=exp.Evaluate();
}
catch(Exception ex)
{
Trace.TraceError(ex.ToString());
ExceptionHelper.HandleException(ex);
}
return rtn;
});
reactiveResultExpression.Subscribe
(getResult=>
{
expitem.Value=getResult();
blockingCollection.TryAdd(expitem);Trace.TraceInformation($"blockingCollection.Count={blockingCollection.Count}");
}
);
resultDict.TryAdd(expitem, reactiveResultExpression)。
2.3.3 數(shù)據(jù)自動分析報警服務(wù)
引入大數(shù)據(jù)的處理模式解決報警數(shù)據(jù)存儲、綜合報警分析等的擴(kuò)展性和穩(wěn)定性問題,設(shè)計(jì)全新架構(gòu)的統(tǒng)一報警服務(wù)模塊。定義統(tǒng)一的分析報警的數(shù)據(jù)模型,將不同專業(yè)系統(tǒng)的報警點(diǎn)信息制定統(tǒng)一格式整理,屏蔽了各種專業(yè)特征對數(shù)據(jù)形式、格式、表達(dá)式的專有性,編譯為標(biāo)準(zhǔn)識別的數(shù)據(jù)編碼,劃分出是否報警的標(biāo)準(zhǔn),自動推送至客戶端。
此外,構(gòu)建計(jì)算服務(wù)平臺架構(gòu)中,數(shù)據(jù)提取模塊屬于邊緣計(jì)算層,將部分?jǐn)?shù)據(jù)處理過程前置,以便提升處理效率,減輕數(shù)據(jù)計(jì)算模塊的負(fù)荷,從而為各類應(yīng)用系統(tǒng)的請求提供更快的響應(yīng)。利用緩存機(jī)制,將數(shù)據(jù)提取獲得的目標(biāo)數(shù)據(jù)對象,根據(jù)時間戳,通過數(shù)據(jù)變化形式的對比邏輯,將最終需求的數(shù)據(jù)進(jìn)行過濾。將處理的中間過程設(shè)置監(jiān)聽機(jī)制,對數(shù)據(jù)的變化按照閾值評判方法作出取舍,保障了目標(biāo)數(shù)據(jù)內(nèi)容的控制和篩選。
大數(shù)據(jù)的運(yùn)用貫穿城市軌道交通全生命周期的全過程,對規(guī)劃、建設(shè)、管理起著重要的決策支撐作用,體現(xiàn)在規(guī)律挖掘、預(yù)測、預(yù)警與調(diào)控等多個方面[10]。
從企業(yè)信息化綜合數(shù)據(jù)管理角度,圍繞共享數(shù)據(jù)的核心,將結(jié)構(gòu)化數(shù)據(jù)、數(shù)據(jù)倉庫、基于Hadoop平臺的數(shù)據(jù)管理平臺化,匯集城市軌道交通企業(yè)的管理、生產(chǎn)、運(yùn)營、經(jīng)營、維護(hù)、資源等的數(shù)據(jù),對資源占用、存儲、數(shù)據(jù)規(guī)劃和配置策略統(tǒng)一管理。將面向用戶和服務(wù)調(diào)用機(jī)制獨(dú)立分層,屏蔽了復(fù)雜的數(shù)據(jù)類型和模型的處理機(jī)制。如圖3所示。
圖3 基于大數(shù)據(jù)架構(gòu)的數(shù)據(jù)資源整合
在混合式數(shù)據(jù)管理架構(gòu)下,平臺的業(yè)務(wù)管控、配置管理、進(jìn)程處理、資源池訪問、數(shù)據(jù)來源管控認(rèn)證通過邏輯化遞階管控模式實(shí)現(xiàn)。由HDFS、Zookeeper、Hbase、Kafka、Storm組合構(gòu)成。業(yè)務(wù)應(yīng)用系統(tǒng)的調(diào)取模式:通過基于JDBC API操作HBase的開源SQL引擎(Phoenix)訪問HBASE數(shù)據(jù)庫。Phoenix基于Hbase以標(biāo)準(zhǔn)SQL的方式對Hbase進(jìn)行查詢操作,支持條件運(yùn)算、分組、分頁等高級查詢。
將運(yùn)營信息化系統(tǒng)業(yè)務(wù)中運(yùn)營決策相關(guān)的功能設(shè)置為高級分析板塊,從而便捷地調(diào)用配置管控和進(jìn)程處理層的建模分析工具和大數(shù)據(jù)結(jié)果集。數(shù)據(jù)分析包括實(shí)現(xiàn)數(shù)據(jù)的深入分析挖掘功能,除了對業(yè)務(wù)數(shù)據(jù)進(jìn)行基本事務(wù)處理操作和統(tǒng)計(jì)匯總以外,還要使用在線、歷史數(shù)據(jù)進(jìn)行各種復(fù)雜分析,如長期趨勢分析和數(shù)據(jù)挖掘等,包括實(shí)現(xiàn)OLAP多維分析、運(yùn)營評估報表、預(yù)測分析等。
城市軌道交通的客流數(shù)據(jù)是占用大數(shù)據(jù)平臺存儲和業(yè)務(wù)分析的重要內(nèi)容之一,客流量及其特征分析作為運(yùn)營組織中制定列車開行方案、編制列車運(yùn)行計(jì)劃的主要決策依據(jù)?;A(chǔ)數(shù)據(jù)通常從自動售檢票系統(tǒng)(AFC)、清分中心(ACC)的源系統(tǒng)中獲取,包括以5 min為周期采集的進(jìn)/出站客流量,上/下行區(qū)間客流量,換乘客流量、乘客路徑的OD客流量,以及以日/月/年等維度統(tǒng)計(jì)的階段性匯總客流量等。首先利用大數(shù)據(jù)平臺對客流數(shù)據(jù)進(jìn)行畫像,再運(yùn)用到列車開行方案和行車調(diào)度,為運(yùn)營組織提供決策支持。
3.2.1 基于客流大數(shù)據(jù)的特征類畫像
主要使用了Hadoop、Hive等框架,通過Hive將結(jié)構(gòu)化的客流數(shù)據(jù)文件映射為一張數(shù)據(jù)庫表,實(shí)現(xiàn)對各類特征客流數(shù)據(jù)的查詢和提取功能,以SQL轉(zhuǎn)化為MapReduce任務(wù)運(yùn)行。提取一定時間段的客流數(shù)據(jù),生成客流特征分析的模型和業(yè)務(wù)數(shù)據(jù)集,將模型應(yīng)用于該數(shù)據(jù)集得到最終的客流特征識別結(jié)果。定義客流特征畫像的標(biāo)簽體系,包括基礎(chǔ)信息標(biāo)簽、動態(tài)信息標(biāo)簽。
1) 基礎(chǔ)信息標(biāo)簽:線路、車站、車站所屬行政區(qū)、票卡類型、OD路徑、進(jìn)站編碼、出站編碼、換乘路徑、換入線路、換出線路、上行區(qū)間、下行區(qū)間;
2) 動態(tài)信息標(biāo)簽:高峰時段的起止時間戳、進(jìn)/出站客流量超出閾值的車站、換乘客流量最大的車站及方向、區(qū)間客流量最大的方向及時段等。
通過深度數(shù)據(jù)融合及交叉分析,選取與運(yùn)營決策過程中相關(guān)度較高的要素集合作為客流特征畫像的分析目標(biāo),并按照分析目標(biāo)的層次關(guān)系聚類,進(jìn)一步設(shè)計(jì)權(quán)重參數(shù)E={ε1,ε2,…,εi},εi∈(0,1),來控制不同應(yīng)用場景下目標(biāo)導(dǎo)向性。如表1所示,聚類功能縱向分為8個類別,每一類客流特征按照客流行為標(biāo)簽統(tǒng)計(jì),再根據(jù)當(dāng)前場景下的權(quán)重值均衡化,形成綜合客流畫像。在數(shù)據(jù)挖掘過程中,將進(jìn)出站客流、區(qū)間客流、換乘客流的數(shù)據(jù)設(shè)置聚類輸出數(shù)目或中心點(diǎn),再選擇目標(biāo)后,應(yīng)用聚類算法和收斂參數(shù),從而得到關(guān)注點(diǎn)的特征畫像,輸出結(jié)果集。
表1 客流特征聚類參數(shù)
客流特征分析在不同運(yùn)營場景下策略調(diào)整或需求的動態(tài)變化時,支持多級標(biāo)簽的疊加,如②和⑧疊加的客流分析結(jié)果,用于特殊運(yùn)營場景下各行政區(qū)域的交通系統(tǒng)的樞紐接駁與線網(wǎng)運(yùn)營組織調(diào)整計(jì)劃的配合方案;③、⑤、⑥疊加則作為針對日間通勤上班高峰期客流的疏解策略和編制列車開行計(jì)劃優(yōu)化的依據(jù)。
3.2.2 基于特殊運(yùn)營場景大數(shù)據(jù)的運(yùn)營計(jì)劃調(diào)整
特殊運(yùn)營場景一般指車站限流、城市大型活動保障下對客流變化的影響,相應(yīng)的常規(guī)列車運(yùn)行計(jì)劃不再適用,包括上線列車數(shù)量、列車開行間隔、列車在站停靠時間等均需調(diào)整。但這種客流的影響具有動態(tài)性、傳播性、演化性,只有借助大數(shù)據(jù)實(shí)時監(jiān)控客流在線網(wǎng)中的分布,通過運(yùn)能和運(yùn)量的匹配度計(jì)算,同步調(diào)整運(yùn)營計(jì)劃方案,從而與實(shí)際客流的需求相匹配。首先將5 min為單位的客流數(shù)據(jù)持續(xù)導(dǎo)入大數(shù)據(jù)平臺中,與線網(wǎng)基礎(chǔ)數(shù)據(jù)、運(yùn)營計(jì)劃關(guān)聯(lián),具體算法如下:
Step1從AFC、ACC系統(tǒng)側(cè)獲取客流data文件到FTP服務(wù)器中。
Step2由數(shù)據(jù)采集層解析data文件并以JSON(UTF-8)的形式發(fā)布到Kafka中間件平臺。
Step3從Kafka取得數(shù)據(jù)并解析為對應(yīng)數(shù)據(jù)對象,通過調(diào)用Java-API的方式實(shí)現(xiàn)寫入Hadoop大數(shù)據(jù)平臺中的HDFS文件系統(tǒng)中。
Step4使用hive-SQL建立Hive表,將HDFS的數(shù)據(jù)加載到Hive大數(shù)據(jù)平臺的客流庫中。
Step5將線路基礎(chǔ)數(shù)據(jù)文件,包括線路圖、車站線路部署信息、線路設(shè)備設(shè)施參數(shù)、乘務(wù)人員配備、線路供電區(qū)段能力參數(shù)、車輛屬性參數(shù)等載入。
Step6讀入列車運(yùn)行計(jì)劃數(shù)據(jù)文件,選取某一運(yùn)力配置計(jì)劃,編制列車運(yùn)行計(jì)劃,加載計(jì)劃的基本條件和配置參數(shù),包括適用的線路、首末車時間、交路方案、停站方案、列車編組方案、全日分時開行對數(shù)表,繪制特殊場景下的日列車運(yùn)行圖。
Step7在實(shí)時客流大數(shù)據(jù)提取的基礎(chǔ)上,疊加列車運(yùn)行圖,并實(shí)時動態(tài)更新客流量,計(jì)算與運(yùn)力配置的匹配程度,用不同的色帶表示實(shí)際列車的運(yùn)能利用情況。
根據(jù)上述算法,疊加大客流數(shù)據(jù)仿真的動態(tài)運(yùn)能評估效果如圖4所示。中部區(qū)域淺色運(yùn)行線顯示,7:30-8:50的高峰時段內(nèi)客流量遠(yuǎn)超過運(yùn)能,滿載率大于1,體現(xiàn)出部分列車運(yùn)力明顯不足,急需增加列車數(shù)量減小開行間隔,緩解客流壓力。
圖4 運(yùn)輸能力匹配仿真評估效果
此外,還可根據(jù)換乘樞紐多方向間的換乘關(guān)系,計(jì)算乘客下車后經(jīng)換乘走行至換乘方向列車是否能在一定換乘等待時間范圍內(nèi)完成換乘銜接過程,輔助調(diào)整列車運(yùn)行圖的多列車接續(xù)、減少換乘樞紐乘客集聚量和運(yùn)營組織效率評估。
以某城市軌道交通運(yùn)營公司建設(shè)的企業(yè)級信息化大數(shù)據(jù)中心為例,采用混合式架構(gòu)的大數(shù)據(jù)平臺,根據(jù)運(yùn)營業(yè)務(wù)系統(tǒng)、生產(chǎn)調(diào)度系統(tǒng)、經(jīng)營管理、網(wǎng)絡(luò)化運(yùn)營決策系統(tǒng)等四類業(yè)務(wù)數(shù)據(jù),應(yīng)用數(shù)據(jù)管理體系和數(shù)據(jù)挖掘功能。業(yè)務(wù)板塊劃分如圖5所示。
圖5 大數(shù)據(jù)平臺的業(yè)務(wù)應(yīng)用構(gòu)成
此外,基礎(chǔ)數(shù)據(jù)處理系統(tǒng)包括以下模塊:
1) 數(shù)據(jù)源管理:包括對原始數(shù)據(jù)源系統(tǒng)的數(shù)據(jù)抽取,通過數(shù)據(jù)治理和清洗,保障輸入計(jì)算服務(wù)系統(tǒng)的數(shù)據(jù)質(zhì)量。
2) 數(shù)據(jù)提取、實(shí)時計(jì)算服務(wù)、結(jié)果輸出:面向各類業(yè)務(wù)的數(shù)據(jù)調(diào)取需求的輸入項(xiàng)設(shè)置為系統(tǒng)前端面向用戶,將數(shù)據(jù)計(jì)算服務(wù)等設(shè)置為后端模塊,實(shí)現(xiàn)數(shù)據(jù)交互,在滿足各類業(yè)務(wù)系統(tǒng)數(shù)據(jù)調(diào)取需求的基礎(chǔ)上,保證數(shù)據(jù)質(zhì)量和時效性。
3) 過程監(jiān)控、數(shù)據(jù)質(zhì)量管理:管理數(shù)據(jù)提取、計(jì)算過程、數(shù)據(jù)輸出過程中的通信、協(xié)議、連接、計(jì)算節(jié)點(diǎn)等是否正確、及時地響應(yīng),并發(fā)出報警和容錯處理。以及針對臟數(shù)據(jù)處理、數(shù)據(jù)質(zhì)量的統(tǒng)計(jì),數(shù)據(jù)修復(fù)的補(bǔ)救措施,如數(shù)據(jù)發(fā)送出錯時的回滾和補(bǔ)錄等。
選取運(yùn)營信息大數(shù)據(jù)平臺分析6個月的客流數(shù)據(jù),根據(jù)乘客出行時間、票卡類型、集中路徑方向等生成城市的客運(yùn)交通走廊和潮汐流向,在線網(wǎng)客流畫像的基礎(chǔ)上,針對客流與運(yùn)輸能力的比較,通過高峰時段的線路最大斷面客流與該斷面相應(yīng)時段的運(yùn)能的適應(yīng)性做出評估,超過閾值就發(fā)出絕對預(yù)警。跨行政區(qū)域的高峰客流畫像示例如圖6所示。
圖6 大數(shù)據(jù)平臺的客流畫像應(yīng)用
由結(jié)果可見,該城市中心跨行政區(qū)域塊(虛線劃分)間的地鐵線路客流在早高峰期間呈現(xiàn)潮汐式流動,原因是商業(yè)CBD、辦公區(qū)集中在該區(qū)域,城市南部工業(yè)區(qū)分散,客流基本均衡分布。
在客流特征畫像和大數(shù)據(jù)分析結(jié)果的基礎(chǔ)上,進(jìn)一步合理配置運(yùn)營計(jì)劃,如上線列車數(shù)量,區(qū)間運(yùn)行時分、最大/小發(fā)車間隔、追蹤間隔、車站停站時間、首末班車時間等。經(jīng)過實(shí)時動態(tài)客流大數(shù)據(jù)的加載,實(shí)現(xiàn)線網(wǎng)客流的多維度、多粒度分析,實(shí)際運(yùn)能運(yùn)量的適應(yīng)性分析,從而評估線網(wǎng)的承載能力,指導(dǎo)線網(wǎng)運(yùn)營計(jì)劃調(diào)整。
隨著城市軌道交通運(yùn)營企業(yè)內(nèi)大數(shù)據(jù)的廣泛應(yīng)用,對平臺的搭建方式、選用的架構(gòu)和采用的技術(shù),逐步隨著業(yè)務(wù)需求和企業(yè)的戰(zhàn)略規(guī)劃定位向著更科學(xué)、更實(shí)用和因地制宜的方向發(fā)展。本文提出的混合式架構(gòu)適用于目前已建有運(yùn)營業(yè)務(wù)系統(tǒng),對大數(shù)據(jù)應(yīng)用業(yè)務(wù)需求已有初步探索的企業(yè)構(gòu)建的綜合信息平臺,為運(yùn)營決策和商務(wù)智能做進(jìn)一步的挖掘。經(jīng)在國內(nèi)軌道交通企業(yè)的運(yùn)營信息化大數(shù)據(jù)平臺運(yùn)營效果良好,從投資成本降低、便捷擴(kuò)展應(yīng)用方面體現(xiàn)出卓越特性,為企業(yè)進(jìn)一步將數(shù)據(jù)資源效益真正發(fā)揮提供決策支持。