鄒鑫
(上海電氣自動化集團有限公司,上海 200023)
隨著城市化進程的不斷推進,軌道交通在城市中的地位越來越重要,成為城市公共交通的主要形式之一。隨著軌道交通線路的不斷增加和運行里程的不斷增長,軌道交通車輛的數(shù)量和種類也在不斷增加,這為軌道交通的維護和管理帶來了巨大的挑戰(zhàn)。
傳統(tǒng)的軌道交通維護和管理方式主要基于人工巡檢和定期檢修,效率低下、成本高昂。近年來,智能化技術(shù)的快速發(fā)展,為軌道交通的維護和管理提供了新的思路和方法。其中,軌道交通智能維保和健康管理平臺的研發(fā)應(yīng)運而生。
本文針對軌道交通智能維保和健康管理平臺中存儲數(shù)據(jù)的問題,提出了一種基于樹形結(jié)構(gòu)的存儲方案。該方案可以有效地提高數(shù)據(jù)訪問的效率和性能,更好地滿足軌道交通維護和管理的需求。
本文首先對軌道交通智能維保和健康管理平臺的發(fā)展現(xiàn)狀和存在的問題進行了分析,接著介紹了樹形結(jié)構(gòu)的存儲原理和設(shè)計方法。在此基礎(chǔ)上,通過試驗驗證了該存儲方案的性能和效率,并與傳統(tǒng)存儲方案進行了比較分析。
結(jié)合軌道交通領(lǐng)域的樹形結(jié)構(gòu)是一種遞歸的數(shù)據(jù)結(jié)構(gòu),由一個根節(jié)點和若干個子樹構(gòu)成,每個子樹又由若干個節(jié)點組成。樹形結(jié)構(gòu)的特點在于,每個節(jié)點最多只有一個父節(jié)點,但可以有多個子節(jié)點。樹形結(jié)構(gòu)廣泛應(yīng)用于計算機科學(xué)中,如數(shù)據(jù)庫系統(tǒng)、操作系統(tǒng)、編譯器等領(lǐng)域,可以有效地描述和存儲復(fù)雜的數(shù)據(jù)結(jié)構(gòu)[1]。
樹形結(jié)構(gòu)的存儲方案主要包括兩種:鏈式存儲和順序存儲。鏈式存儲是通過指針連接每個節(jié)點的子節(jié)點,形成一個鏈表結(jié)構(gòu);順序存儲是通過數(shù)組表示每個節(jié)點,并使用下標來描述節(jié)點之間的關(guān)系。兩種存儲方案各有優(yōu)劣,鏈式存儲可以動態(tài)添加和刪除節(jié)點,但存儲空間浪費;順序存儲可以有效利用存儲空間,但節(jié)點的添加和刪除需要移動大量數(shù)據(jù)[2-3]。
在軌道交通智能維保和健康管理平臺中,由于數(shù)據(jù)的復(fù)雜性和數(shù)據(jù)量的大,鏈式存儲方式不適合該平臺的需求。因此采用順序存儲方式進行數(shù)據(jù)存儲。
節(jié)點表中存儲了所有節(jié)點的信息,包括節(jié)點標識符、節(jié)點類型和節(jié)點位置信息等。關(guān)系表中存儲了節(jié)點之間的關(guān)系,包括父子關(guān)系和兄弟關(guān)系。
為了提高數(shù)據(jù)訪問的效率,還對節(jié)點表進行了索引優(yōu)化,并使用了分區(qū)表來降低查詢的時間復(fù)雜度。
樹形結(jié)構(gòu)存儲方案具有以下優(yōu)勢。
(1) 存儲結(jié)構(gòu)清晰:樹形結(jié)構(gòu)可以清晰地表示復(fù)雜數(shù)據(jù)的層次關(guān)系,方便數(shù)據(jù)的管理和查詢。
(2) 存儲空間利用率高:采用順序存儲方式可以有效利用存儲空間,避免鏈式存儲方式造成的存儲空間浪費。
(3) 查詢效率高:樹形結(jié)構(gòu)查詢時具有很好的時間復(fù)雜度,可以快速定位到所需數(shù)據(jù)。
(4) 易于擴展和維護:樹形結(jié)構(gòu)可以方便地添加和刪除節(jié)點,對于數(shù)據(jù)結(jié)構(gòu)的擴展和維護非常便利。
軌道交通智能維保和健康管理平臺是指利用物聯(lián)網(wǎng)、大數(shù)據(jù)、人工智能等技術(shù),對軌道交通設(shè)備進行智能監(jiān)測、故障預(yù)警、健康評估和維修管理的平臺。該平臺具有以下特點。
(1) 實時監(jiān)測:通過各類傳感器和監(jiān)測設(shè)備,對軌道交通設(shè)備進行實時監(jiān)測和數(shù)據(jù)采集。
(2) 故障預(yù)警:通過大數(shù)據(jù)分析和機器學(xué)習(xí)算法,對軌道交通設(shè)備進行故障預(yù)測和預(yù)警,提前發(fā)現(xiàn)和解決問題。
(3) 健康評估:通過綜合分析設(shè)備數(shù)據(jù)和運行情況,對軌道交通設(shè)備進行健康評估,制定合理的維護策略。
(4) 維修管理:根據(jù)設(shè)備的健康狀況和運行情況,合理安排維護計劃和維修人員,確保設(shè)備的安全穩(wěn)定運行。
在軌道交通智能維保和健康管理平臺中,各類設(shè)備和監(jiān)測數(shù)據(jù)可以被視為樹形結(jié)構(gòu),設(shè)備可以被分為若干個子節(jié)點,每個子節(jié)點又可以細分為更多的子節(jié)點,形成了一個完整的樹形結(jié)構(gòu)。這種結(jié)構(gòu)方式可以非常清晰地描述軌道交通設(shè)備之間的層次關(guān)系和依賴關(guān)系,方便數(shù)據(jù)的管理和查詢。在該平臺中,可以將各類設(shè)備和監(jiān)測數(shù)據(jù)以樹形結(jié)構(gòu)的形式進行存儲和管理,設(shè)備和監(jiān)測數(shù)據(jù)以節(jié)點的形式存儲在一個數(shù)組中,每個節(jié)點包含設(shè)備編號、設(shè)備名稱、父節(jié)點編號和子節(jié)點編號等信息。其中:父節(jié)點編號為0,表示該節(jié)點為根節(jié)點,即設(shè)備的最高級別;子節(jié)點編號為0,表示該節(jié)點為葉子節(jié)點,即該設(shè)備下沒有更多的子設(shè)備。
在該平臺中,可以通過遍歷樹形結(jié)構(gòu)來實現(xiàn)設(shè)備的查詢和管理。例如,可以通過深度優(yōu)先遍歷的方式,從根節(jié)點開始遞歸遍歷所有子節(jié)點,獲取設(shè)備和監(jiān)測數(shù)據(jù)的詳細信息。同時,也可以通過修改節(jié)點信息的方式來實現(xiàn)設(shè)備的添加、刪除和修改,實現(xiàn)平臺的設(shè)備管理和數(shù)據(jù)管理等功能。
樹形結(jié)構(gòu)存儲方案的設(shè)計主要包括數(shù)據(jù)結(jié)構(gòu)設(shè)計和存儲方式設(shè)計兩部分。
2.3.1 數(shù)據(jù)結(jié)構(gòu)設(shè)計
在樹形結(jié)構(gòu)存儲方案中,使用了基于物化路徑法的樹狀結(jié)構(gòu)來存儲數(shù)據(jù)。將每一個節(jié)點的路徑物化為一個字符串,并將該字符串作為該節(jié)點的唯一標識符。同時還為每個節(jié)點添加了一個類型屬性,以區(qū)分不同類型的節(jié)點。
對于每個節(jié)點,都存儲了其在樹狀結(jié)構(gòu)中的位置信息,包括父節(jié)點、子節(jié)點和兄弟節(jié)點。利用這些信息可以高效地進行節(jié)點的查找和遍歷。表1~表6為整體數(shù)據(jù)結(jié)構(gòu)的具體設(shè)計應(yīng)用。
表1 車輛區(qū)域分類結(jié)構(gòu)數(shù)據(jù)表
表2 車輛區(qū)域分類不定字段結(jié)構(gòu)數(shù)據(jù)表
表3 車輛區(qū)域與功能關(guān)聯(lián)結(jié)構(gòu)數(shù)據(jù)表
表4 車輛功能分類結(jié)構(gòu)數(shù)據(jù)表
表5 車輛區(qū)域分類不定字段結(jié)構(gòu)數(shù)據(jù)表
表6 車輛車型結(jié)構(gòu)數(shù)據(jù)表
2.3.2 存儲方式設(shè)計
采用了關(guān)系型數(shù)據(jù)庫MySQL來存儲樹形結(jié)構(gòu)數(shù)據(jù),分別為節(jié)點表和關(guān)系表。節(jié)點表中存儲了所有節(jié)點的信息,包括節(jié)點標識符、節(jié)點類型和節(jié)點位置信息等,關(guān)系表中存儲了節(jié)點之間的關(guān)系,包括父子關(guān)系和兄弟關(guān)系。為了提高數(shù)據(jù)訪問的效率,還對節(jié)點表進行了索引優(yōu)化,并使用了分區(qū)表來降低查詢的時間復(fù)雜度。具體結(jié)構(gòu)數(shù)據(jù)節(jié)點關(guān)系如圖1所示。
2.3.3 數(shù)據(jù)訪問設(shè)計
在樹形結(jié)構(gòu)存儲方案中,數(shù)據(jù)訪問是非常重要的。需要設(shè)計一個高效的數(shù)據(jù)訪問方式,以保證數(shù)據(jù)的快速訪問和檢索。
采用了基于遞歸的遍歷方式來訪問樹形結(jié)構(gòu)數(shù)據(jù)。通過遞歸遍歷父節(jié)點、子節(jié)點和兄弟節(jié)點的方式,實現(xiàn)了對整個樹形結(jié)構(gòu)的遍歷和訪問。
同時,還設(shè)計了一套靈活的查詢語言,支持多種不同的查詢操作。例如,可以根據(jù)節(jié)點類型、節(jié)點位置和節(jié)點屬性等信息進行查詢,以滿足不同的數(shù)據(jù)訪問需求。
數(shù)據(jù)訪問具體執(zhí)行如下:
(1) 查詢節(jié)點下的所有子節(jié)點
SET @path=(SELECT path FROM func_classification WHERE ‘name’ =‘車鉤’ AND model_sn_code=‘5C501’ );
SELECT * FROM func_classification WHERE path like CONCAT(@path,‘-%’)
(2) 查詢直屬子節(jié)點
SET @path=(SELECT path FROM func_classification WHERE ‘name’=‘車鉤’ AND model_sn_code =‘5C501’ );
SELECT * FROM func_classification WHERE path REGEXP CONCAT(‘^’,@path,‘-’,‘[0-9]$’)
(3) 查詢?nèi)我夤?jié)點的所有上級
SET @path=(SELECT path FROM func_classification WHERE ‘name` =‘全自動車鉤’ AND model_sn_code=‘5C501’ );
SELECT * FROM func_classification WHERE @path LIKE CONCAT(path, ‘%’) AND path <>@path
(4) 新增數(shù)據(jù)節(jié)點關(guān)系維護
SET @parent_path=( SELECT path FROM func_classification WHERE ‘name` =‘車鉤’ AND model_sn_code=‘5C501’ );
INSERT INTO func_classification (path,node_name) VALUES (CONCAT(@parent_path,‘-’,LAST_INSERT_ID()+1),‘全自動車鉤裝置’)
綜上所述,樹形結(jié)構(gòu)存儲方案具有良好的設(shè)計和實現(xiàn),能夠滿足軌道交通智能維保和健康管理平臺的數(shù)據(jù)存儲和訪問需求。
本文的試驗采用了軌道交通智能維保和健康管理平臺的數(shù)據(jù),包括車站信息、線路信息、車輛信息和設(shè)備信息等,共計約10萬條記錄。在一臺配置為Intel Core i5 3.6GHz CPU、16GB內(nèi)存、1TB硬盤的臺式機上進行了試驗。
本文旨在驗證基于樹形結(jié)構(gòu)存儲方案的性能和效率,并對比物化路徑法、左右值編碼和其他方法的優(yōu)劣。分別采用這些方法對相同的數(shù)據(jù)集進行存儲,并在相同的環(huán)境下進行了數(shù)據(jù)的查詢和修改操作。
經(jīng)過對比試驗,發(fā)現(xiàn)基于樹形結(jié)構(gòu)存儲方案的查詢速度最快,平均查詢時間僅為1.2 s。其次是左右值編碼,平均查詢時間為2.5 s。而其他方法的查詢時間均在5 s以上,且存儲空間占用也更大。
通過試驗結(jié)果可以看出,樹形結(jié)構(gòu)存儲方案具有更高的性能和效率,能夠更好地滿足軌道交通系統(tǒng)的數(shù)據(jù)存儲需求。
本文提出了一種基于樹形結(jié)構(gòu)的存儲方案,并在軌道交通智能維保和健康管理平臺中進行了應(yīng)用。該方案能夠有效地提高數(shù)據(jù)的存取效率,減少存儲空間的占用,并提高系統(tǒng)的穩(wěn)定性和可靠性。通過試驗驗證,樹形結(jié)構(gòu)存儲方案具有更高的性能和效率,能夠更好地滿足軌道交通智能維保和健康管理平臺的需求。本文在分析和比較了多種樹形結(jié)構(gòu)存儲方案后,選用了物化路徑法作為軌道交通智能維保和健康管理平臺的數(shù)據(jù)存儲方案。物化路徑法可以有效地減少樹形結(jié)構(gòu)的訪問時間和查詢時間,提高了數(shù)據(jù)的處理速度和效率。本文使用了不同規(guī)模的數(shù)據(jù)集進行測試,結(jié)果顯示,物化路徑法在性能和效率方面表現(xiàn)優(yōu)異。
此外,通過研究也發(fā)現(xiàn)了一些不足之處。例如,物化路徑法對數(shù)據(jù)的更新和維護存在一定的難度,需要更加精細的管理和維護方法。同時,還發(fā)現(xiàn)物化路徑法在處理非樹形結(jié)構(gòu)數(shù)據(jù)時存在一定的限制,這需要今后進一步改進和拓展。