馮樂(lè)樂(lè)
(國(guó)能鐵路裝備有限責(zé)任公司滄州分公司,河北滄州 061100)
鐵路貨車運(yùn)用在線修工作是確保鐵路運(yùn)輸安全和暢通的重要環(huán)節(jié),也是鐵路運(yùn)輸?shù)闹匾M成部分。隨著近年來(lái)我國(guó)鐵路全面提速、重載運(yùn)輸技術(shù)更迭、運(yùn)輸生產(chǎn)能力布局調(diào)整等帶來(lái)的新業(yè)態(tài)的變化,鐵路貨車運(yùn)用維修業(yè)務(wù)正在經(jīng)歷從業(yè)務(wù)數(shù)字化轉(zhuǎn)型到數(shù)據(jù)業(yè)務(wù)化模式的創(chuàng)新轉(zhuǎn)變,從而對(duì)鐵路貨車運(yùn)用在線修的技術(shù)作業(yè)手段和作業(yè)能力提出更高要求。
隨著狀態(tài)修業(yè)務(wù)在全網(wǎng)的開(kāi)展,車列、車輛的技術(shù)狀態(tài)、歷次檢修信息、多T 故障信息、運(yùn)行過(guò)程中人工檢查的故障信息、運(yùn)行軌跡、過(guò)車信息等與貨車運(yùn)用維修相關(guān)業(yè)務(wù)數(shù)據(jù)均已全面采集,并進(jìn)行實(shí)時(shí)存儲(chǔ)形成海量實(shí)時(shí)數(shù)據(jù)。上述海量數(shù)據(jù)為重載鐵路智能在線修技術(shù)研究提供重要保障基礎(chǔ),因此,實(shí)時(shí)數(shù)據(jù)應(yīng)用關(guān)鍵技術(shù)研究對(duì)鐵路貨車運(yùn)用在線修效率的提升意義重大。
智能在線修以鐵路貨車運(yùn)行安全監(jiān)控系統(tǒng)預(yù)報(bào)故障為主要依據(jù),其基礎(chǔ)數(shù)據(jù)量大,實(shí)時(shí)性強(qiáng),且數(shù)據(jù)采集時(shí)具有頻次高、規(guī)模大、時(shí)間短、吞吐量大、寫(xiě)多讀少等特點(diǎn),同時(shí),由于鐵路貨車運(yùn)用在線修工作的復(fù)雜性,決定使用數(shù)據(jù)存儲(chǔ)、處理與應(yīng)用技術(shù)模式,正面臨巨大挑戰(zhàn)。文章分析分布式數(shù)據(jù)庫(kù)與實(shí)時(shí)數(shù)據(jù)在貨車運(yùn)行在線修過(guò)程中采集、處理、應(yīng)用中的關(guān)鍵應(yīng)用技術(shù),為解決傳統(tǒng)的列檢業(yè)務(wù)模式已無(wú)法滿足在線狀態(tài)修管理模式難題進(jìn)行探索,為在線修業(yè)務(wù)模式創(chuàng)新賦能,支撐鐵路貨車在線修的進(jìn)一步推進(jìn)。
在1983 年,ACM SIGMOD Record 一期 ???正式確立實(shí)時(shí)數(shù)據(jù)庫(kù)作為新的研究領(lǐng)域[1]。此后,實(shí)時(shí)數(shù)據(jù)庫(kù)迅速在電力、石油、食品加工等行業(yè)的工業(yè)控制、自動(dòng)控制和通信控制領(lǐng)域中得到應(yīng)用與發(fā)展。分布式實(shí)時(shí)數(shù)據(jù)庫(kù)是實(shí)時(shí)數(shù)據(jù)庫(kù)技術(shù)與網(wǎng)絡(luò)技術(shù)相結(jié)合的產(chǎn)物,從邏輯上屬于同一套系統(tǒng),但在物理上分散在按照一定規(guī)則連接的多個(gè)數(shù)據(jù)庫(kù)節(jié)點(diǎn)上。這些節(jié)點(diǎn)的數(shù)據(jù)庫(kù)共同構(gòu)成一個(gè)分布式實(shí)時(shí)數(shù)據(jù)庫(kù),支持全局實(shí)時(shí)事務(wù)處理。分布式實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)包括全局事務(wù)管理系統(tǒng)、局部實(shí)時(shí)數(shù)據(jù)庫(kù)管理系統(tǒng)和歷史數(shù)據(jù)庫(kù)三個(gè)部分[2],系統(tǒng)結(jié)構(gòu)如圖1 所示。
圖1 分布式實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)架構(gòu)
其一,全局事務(wù)管理系統(tǒng)主要負(fù)責(zé)確保所有局部實(shí)時(shí)數(shù)據(jù)庫(kù)管理系統(tǒng)的全局唯一性,并監(jiān)控各系統(tǒng)的運(yùn)行狀態(tài)。其二,局部實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)主要負(fù)責(zé)建立和管理當(dāng)?shù)氐膶?shí)時(shí)數(shù)據(jù)庫(kù),用于存儲(chǔ)從數(shù)據(jù)源獲取的實(shí)時(shí)數(shù)據(jù),執(zhí)行當(dāng)?shù)貞?yīng)用和全局查詢,并處理和控制當(dāng)?shù)厥聞?wù)。其三,歷史數(shù)據(jù)庫(kù)用于存儲(chǔ)歷史數(shù)據(jù)信息,提供數(shù)據(jù)訪問(wèn)能力,為訪問(wèn)者統(tǒng)計(jì)分析歷史數(shù)據(jù)。
實(shí)時(shí)數(shù)據(jù)庫(kù)的數(shù)據(jù)和事務(wù)具有實(shí)時(shí)性,系統(tǒng)的正確性不僅依賴于邏輯結(jié)果,且取決于該結(jié)果產(chǎn)生的時(shí)間[3-4]。因此,實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)能夠接受時(shí)間限制內(nèi)的錯(cuò)誤數(shù)據(jù),但不會(huì)接受超出時(shí)間限制的準(zhǔn)確數(shù)據(jù)。
實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)最重要的特征是實(shí)時(shí)性,包括數(shù)據(jù)的實(shí)時(shí)性和事務(wù)的實(shí)時(shí)性。因此,必須在保證數(shù)據(jù)的實(shí)時(shí)性、可用性與一致性的基礎(chǔ)上,分析和討論實(shí)時(shí)數(shù)據(jù)的應(yīng)用關(guān)鍵技術(shù)。
事務(wù)調(diào)度策略是實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)讀寫(xiě)正確性的關(guān)鍵要素之一,主要包括事務(wù)優(yōu)先級(jí)分派策略和基于時(shí)標(biāo)的定時(shí)調(diào)度策略。
事務(wù)優(yōu)先級(jí)策略將待調(diào)度的事務(wù)在調(diào)度隊(duì)列中排隊(duì),由調(diào)度程序按照一定的規(guī)則組織事務(wù)運(yùn)行,并分配事務(wù)的優(yōu)先級(jí)。常見(jiàn)的分配事務(wù)優(yōu)先級(jí)的算法包括先到先服務(wù)(FCFS)、最早截止時(shí)間優(yōu)先(EDF)、最小松弛度優(yōu)先(LSF)和價(jià)值最高優(yōu)先(HVF)[5-6]。
基于時(shí)標(biāo)的定時(shí)調(diào)度策略是能夠讓事務(wù)在到達(dá)指定時(shí)間點(diǎn)進(jìn)行執(zhí)行的一種機(jī)制,根據(jù)每個(gè)事務(wù)的開(kāi)始時(shí)間戳和結(jié)束時(shí)間戳,以及它們的運(yùn)行時(shí)間來(lái)決定調(diào)度順序。該策略可以保證每個(gè)事務(wù)在規(guī)定的時(shí)間內(nèi)完成,從而滿足實(shí)時(shí)性要求。
鐵路貨車智能在線修業(yè)務(wù)應(yīng)用中,事務(wù)處理數(shù)據(jù)的過(guò)程必須考慮數(shù)據(jù)有效期[7],通常會(huì)將兩種調(diào)度策略結(jié)合起來(lái)使用,即對(duì)時(shí)效要求非常高的事務(wù)或者子事務(wù),可采用帶時(shí)標(biāo)的調(diào)度策略執(zhí)行;而對(duì)于時(shí)間要求比較輕松的事務(wù),可采用相應(yīng)優(yōu)先級(jí)調(diào)度來(lái)處理。
沖突是實(shí)時(shí)數(shù)據(jù)在其數(shù)據(jù)庫(kù)中的一種常見(jiàn)的問(wèn)題,它可以分為三種主要類型:寫(xiě)寫(xiě)沖突、讀寫(xiě)沖突、寫(xiě)讀沖突。以上沖突均可能破壞事務(wù)的隔離性,導(dǎo)致數(shù)據(jù)的不一致。因此,并發(fā)控制則是要用正確的方法來(lái)管理事務(wù)并發(fā),從而使一個(gè)事務(wù)在未提交時(shí),其他事務(wù)的執(zhí)行不受到干擾。
并發(fā)控制的策略主要包括鎖式并發(fā)控制、樂(lè)觀并發(fā)控制、時(shí)標(biāo)排序并發(fā)控制三種方式。其中,鎖式并發(fā)控制是一種悲觀控制,通常采用兩階段封鎖算法進(jìn)行并發(fā)控制,即讀鎖與讀鎖、寫(xiě)鎖與寫(xiě)鎖之間相互排斥。樂(lè)觀并行控制將事務(wù)拆分為讀段、驗(yàn)證和寫(xiě)段[8]三個(gè)分別進(jìn)行驗(yàn)證的階段,通常使用OCC、silo、Matt、sundial 算法,以降低事務(wù)沖突或者對(duì)于通過(guò)延遲阻塞的方式解決少量事務(wù)沖突。
對(duì)于頻次比較高的、數(shù)據(jù)量大的時(shí)空數(shù)據(jù)、位置數(shù)據(jù)、儀表等產(chǎn)生的數(shù)據(jù),通常會(huì)使用鎖式并發(fā)控制;而對(duì)于鐵路貨車故障類型的業(yè)務(wù)數(shù)據(jù),通常采用樂(lè)觀并發(fā)控制或者時(shí)標(biāo)排序并發(fā)控制相結(jié)合的策略進(jìn)行事務(wù)并發(fā)管控。
數(shù)據(jù)分片是通過(guò)分片技術(shù)將數(shù)據(jù)庫(kù)表分成多個(gè)不相交的子表,并在不同的存儲(chǔ)設(shè)備進(jìn)行存儲(chǔ)和管理,主要類型有水平分片、垂直分片和混合分片三種方式[9]。
完整性、重構(gòu)性和不相交原則[10]是數(shù)據(jù)分片時(shí)重點(diǎn)考慮的因素,同時(shí)還要保持?jǐn)?shù)據(jù)一致性和可用性。5T、故障檢驗(yàn)、施修方法、行車軌跡、車型、車次等智能在線修相關(guān)基礎(chǔ)業(yè)務(wù)數(shù)據(jù)存儲(chǔ),主要是依據(jù)業(yè)務(wù)需求屬性的車型、車次來(lái)制定數(shù)據(jù)水平分片的規(guī)則,而不是采用某一時(shí)間屬性或者關(guān)鍵字取模的方式進(jìn)行分片。
實(shí)時(shí)數(shù)據(jù)恢復(fù)對(duì)于確保數(shù)據(jù)的一致性和完整性至關(guān)重要?;謴?fù)的時(shí)機(jī)選擇必須恰到好處,過(guò)遲可能導(dǎo)致數(shù)據(jù)資源失效,事務(wù)截止時(shí)間超期,且對(duì)于大多數(shù)實(shí)時(shí)數(shù)據(jù)應(yīng)用來(lái)說(shuō)不允許靜態(tài)恢復(fù)。因此,實(shí)時(shí)數(shù)據(jù)的恢復(fù)需要滿足可預(yù)見(jiàn)性、時(shí)間一致性以及數(shù)據(jù)或事務(wù)特征的可識(shí)別性。
實(shí)時(shí)數(shù)據(jù)的恢復(fù)通常采用兩種策略:基于日志記錄和基于影子恢復(fù)方法。傳統(tǒng)日志恢復(fù)按照日志記錄的順序進(jìn)行,但沒(méi)有考慮數(shù)據(jù)和事務(wù)的優(yōu)先級(jí),因此不適合用于實(shí)時(shí)數(shù)據(jù)的恢復(fù)。針對(duì)該問(wèn)題,出現(xiàn)幾種基于日志記錄的實(shí)時(shí)數(shù)據(jù)恢復(fù)方法,包括分區(qū)日志、實(shí)時(shí)日志和遠(yuǎn)程日志的恢復(fù)方法。其中,分區(qū)日志能夠克服傳統(tǒng)按照順序日志記錄恢復(fù)的缺陷,但在實(shí)踐中,實(shí)時(shí)日志的方法在保證數(shù)據(jù)值與時(shí)間信息一致性方面更優(yōu)越。然而,基于日志恢復(fù)的方法會(huì)增加恢復(fù)時(shí)間,并延長(zhǎng)事務(wù)執(zhí)行時(shí)間,在一定程度上會(huì)影響實(shí)時(shí)事務(wù)定時(shí)限制的約束。因此,在學(xué)術(shù)上,相關(guān)人員開(kāi)始對(duì)基于影子恢復(fù)方法進(jìn)行研究與探索,并取得一定成效,但該方法在實(shí)時(shí)數(shù)據(jù)恢復(fù)時(shí)對(duì)資源開(kāi)銷比較大,從而在應(yīng)用時(shí)沒(méi)有被大范圍采用。
實(shí)時(shí)數(shù)據(jù)統(tǒng)一標(biāo)識(shí)是訪問(wèn)分布式數(shù)據(jù)的基礎(chǔ),能夠快速確定實(shí)時(shí)數(shù)據(jù)所在系統(tǒng)中的信息。在訪問(wèn)者需要訪問(wèn)實(shí)時(shí)數(shù)據(jù)時(shí),訪問(wèn)條件被數(shù)據(jù)接口機(jī)制處理成數(shù)據(jù)區(qū)域和標(biāo)識(shí)ID。首先確定訪問(wèn)者所在的數(shù)據(jù)的位置,然后由數(shù)據(jù)服務(wù)將存儲(chǔ)在當(dāng)?shù)鼗蛘弋惖氐臄?shù)據(jù)進(jìn)行數(shù)據(jù)轉(zhuǎn)換后,通過(guò)接口將數(shù)據(jù)匯總后統(tǒng)一返回。
鐵路貨車智能在線修業(yè)務(wù)應(yīng)用中,分布式數(shù)據(jù)庫(kù)提供標(biāo)準(zhǔn)統(tǒng)一的數(shù)據(jù)接口,將各個(gè)集群作為邏輯整體進(jìn)行訪問(wèn),實(shí)現(xiàn)同時(shí)訪問(wèn)不同物理位置的數(shù)據(jù)。數(shù)據(jù)安全是數(shù)據(jù)訪問(wèn)時(shí)首要考慮的問(wèn)題,除數(shù)據(jù)庫(kù)應(yīng)用環(huán)境進(jìn)行物理隔離外,還要通過(guò)權(quán)限管理,禁止非法用戶訪問(wèn)系統(tǒng)數(shù)據(jù),并在數(shù)據(jù)傳輸過(guò)程中,采用加密技術(shù),防止核心數(shù)據(jù)被截獲,造成數(shù)據(jù)泄露。
高可用技術(shù)是指通過(guò)減少數(shù)據(jù)庫(kù)系統(tǒng)中斷時(shí)間,屏蔽數(shù)據(jù)庫(kù)故障,以保證業(yè)務(wù)的連續(xù)性與業(yè)務(wù)數(shù)據(jù)可恢復(fù)性的關(guān)鍵應(yīng)用技術(shù)。
高可用技術(shù)主要用于以下三種情況:計(jì)劃外停機(jī)、計(jì)劃內(nèi)停機(jī)和災(zāi)難恢復(fù)。通過(guò)主機(jī)的集群高可用架構(gòu),可以防止數(shù)據(jù)庫(kù)故障的出現(xiàn),主要包括主-主模式、主-從模式、一主-多從和中間件模式四種方式。
鐵路貨車智能在線修業(yè)務(wù)應(yīng)用中,主-主模式主要應(yīng)用于數(shù)據(jù)庫(kù)的讀寫(xiě)量較少的場(chǎng)景;主-從模式應(yīng)用于讀寫(xiě)量都不是非常高的場(chǎng)景;一主-多從主要應(yīng)用于寫(xiě)少讀多的場(chǎng)景;中間件模式主要應(yīng)用于讀寫(xiě)并發(fā)都很大并且數(shù)據(jù)量非常大的場(chǎng)景。
文章以分布式時(shí)序數(shù)據(jù)庫(kù)為基礎(chǔ),實(shí)現(xiàn)國(guó)能裝備公司自備車的車列、車輛的技術(shù)狀態(tài)、歷次檢修信息、多T 故障信息、運(yùn)行過(guò)程中人工檢查的故障信息、運(yùn)行軌跡、過(guò)車信息等實(shí)時(shí)數(shù)據(jù)的采集,并通過(guò)基于物聯(lián)網(wǎng)專網(wǎng)構(gòu)建的鐵路智能在線修系統(tǒng),以實(shí)踐分布式實(shí)時(shí)數(shù)據(jù)庫(kù)應(yīng)用關(guān)鍵技術(shù),實(shí)現(xiàn)HCCBM(狀態(tài)修監(jiān)測(cè)維修系統(tǒng))數(shù)據(jù)中心基礎(chǔ)數(shù)據(jù)互聯(lián),通過(guò)鐵路貨車檢修數(shù)據(jù)輔助智能在線修業(yè)務(wù)的高效開(kāi)展。
鐵路貨車智能在線修系統(tǒng)的實(shí)時(shí)數(shù)據(jù)庫(kù)部署架構(gòu)如圖2 所示。
圖2 數(shù)據(jù)庫(kù)部署架構(gòu)
第一,通過(guò)物聯(lián)網(wǎng)專網(wǎng)將系統(tǒng)所需的數(shù)據(jù)進(jìn)行實(shí)時(shí)在線集成與獲取,采集服務(wù)器按照一主一從的集群模式進(jìn)行部署,通過(guò)實(shí)時(shí)數(shù)據(jù)高可用架構(gòu),保證系統(tǒng)實(shí)時(shí)數(shù)據(jù)連續(xù)性與可靠性。
第二,實(shí)時(shí)數(shù)據(jù)庫(kù)分布式部署,使用事務(wù)優(yōu)先級(jí)實(shí)現(xiàn)對(duì)各種事務(wù)的調(diào)度,使用OCC 算法來(lái)支撐多業(yè)務(wù)場(chǎng)景的樂(lè)觀并發(fā)控制和時(shí)標(biāo)排序并發(fā)控制,同時(shí)系統(tǒng)可通過(guò)任意節(jié)點(diǎn)通過(guò)遠(yuǎn)程管理實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)系統(tǒng)的遠(yuǎn)程配置和管理。
第三,按照車型和車號(hào)編碼為特征值,對(duì)各類數(shù)據(jù)進(jìn)行數(shù)據(jù)水平分片存儲(chǔ)。采集的實(shí)時(shí)數(shù)據(jù),在各業(yè)務(wù)節(jié)點(diǎn)采集服務(wù)器暫存時(shí)間為24h。
第四,在各節(jié)點(diǎn)部署歷史數(shù)據(jù)庫(kù),實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)定時(shí)轉(zhuǎn)入歷史數(shù)據(jù)庫(kù),按照統(tǒng)一的接口標(biāo)準(zhǔn),將數(shù)據(jù)通過(guò)物聯(lián)網(wǎng)專網(wǎng)采集和公司局域網(wǎng)進(jìn)行采集。數(shù)據(jù)在采集、傳輸、存儲(chǔ)與訪問(wèn)過(guò)程中,均采用MD5 加密,保證數(shù)據(jù)安全。
文章對(duì)實(shí)時(shí)數(shù)據(jù)在鐵路貨車智能在線修業(yè)務(wù)中的關(guān)鍵技術(shù)進(jìn)行討論,并分析各項(xiàng)關(guān)鍵技術(shù)的特點(diǎn)。通過(guò)構(gòu)建智能在線修系統(tǒng),將相關(guān)關(guān)鍵技術(shù)進(jìn)行應(yīng)用探索和實(shí)踐,對(duì)實(shí)時(shí)數(shù)據(jù)庫(kù)在鐵路智能在線修業(yè)務(wù)中的應(yīng)用具有一定參考意義。目前系統(tǒng)在國(guó)能裝備公司進(jìn)行試點(diǎn)應(yīng)用,在提升貨車智能在線修實(shí)時(shí)數(shù)據(jù)處理能力的同時(shí),為鐵路貨車智能在線修模式的升級(jí)和優(yōu)化提供技術(shù)保障。