楊素花 楊 潔 祝 琴
(北京市智慧水務(wù)發(fā)展研究院,北京 100036)
北京市南水北調(diào)水進京后,形成了外調(diào)水、本地地表水、地下水、再生水、雨洪水五水共濟的水源保障和供水體系。截至2020年底,利用南水北調(diào)中線水累計超61億m3,直接受益人口1300多萬。在五水調(diào)度的業(yè)務(wù)工作中,通過北京市南水北調(diào)智能調(diào)度、水資源統(tǒng)一調(diào)度平臺等信息系統(tǒng)的建設(shè),積累了大量的信息資源,形成了體系化的水資源調(diào)度業(yè)務(wù)數(shù)據(jù),包括結(jié)構(gòu)化數(shù)據(jù):配置信息、調(diào)度水量信息、調(diào)度指令信息;非結(jié)構(gòu)化數(shù)據(jù):調(diào)度規(guī)程、調(diào)度方案,以及各實體對象的關(guān)系數(shù)據(jù)。為了更好地發(fā)揮數(shù)據(jù)價值,梳理分析水資源調(diào)度關(guān)系,構(gòu)建基于圖數(shù)據(jù)庫的數(shù)據(jù)、關(guān)系存儲,實現(xiàn)調(diào)度信息的可視化展示及關(guān)系分析,為下一步水資源知識圖譜構(gòu)建提供數(shù)據(jù)基礎(chǔ)。
業(yè)務(wù)信息存儲體系選擇時需考慮知識可靠、可融合、可應(yīng)用等問題,為表示多樣性、復(fù)雜化的水資源調(diào)度業(yè)務(wù),選用Neo4j圖數(shù)據(jù)庫作為存儲體系[1]。Neo4j圖數(shù)據(jù)庫是一種高性能的圖形數(shù)據(jù)庫,它是可以將結(jié)構(gòu)化的數(shù)據(jù)保存在網(wǎng)絡(luò)中,而不是關(guān)系數(shù)據(jù)庫中的數(shù)據(jù)表中[2]。
1.1.1 靈活性和適用性
傳統(tǒng)的關(guān)系型數(shù)據(jù)庫通過多張數(shù)據(jù)庫表來存儲結(jié)構(gòu)化數(shù)據(jù),當數(shù)據(jù)的關(guān)系復(fù)雜時,需要關(guān)聯(lián)查詢多張數(shù)據(jù)庫表,數(shù)據(jù)應(yīng)用服務(wù)較為繁瑣和低效。而Neo4j圖數(shù)據(jù)庫是通過圖結(jié)構(gòu)的方式進行數(shù)據(jù)存儲,對于關(guān)聯(lián)數(shù)據(jù)的存儲優(yōu)勢較為明顯,可以直接表現(xiàn)數(shù)據(jù)的關(guān)聯(lián)性,不需要進行復(fù)雜的關(guān)聯(lián)操作,提高了數(shù)據(jù)存儲和檢索性能[3]。而且隨著業(yè)務(wù)的調(diào)整,避免了傳統(tǒng)數(shù)據(jù)庫的重構(gòu)導(dǎo)致建設(shè)成本增加等問題,因為Neo4j圖數(shù)據(jù)庫采用非結(jié)構(gòu)化的圖數(shù)據(jù)格式,它具有很好的可擴展性,只需要根據(jù)需求的調(diào)整進行節(jié)點、關(guān)系以及屬性的調(diào)整,不會影響原有數(shù)據(jù)信息的正常使用[4]。
1.1.2 圖結(jié)構(gòu)存儲
對于水資源調(diào)度業(yè)務(wù),由于調(diào)度規(guī)程的復(fù)雜性,需要對調(diào)度工程、調(diào)度實施單位等實體對象進行關(guān)聯(lián),因此選擇適合表示實體對象之間關(guān)系的數(shù)據(jù)庫,存儲相關(guān)的關(guān)系信息,更有利于多水源聯(lián)合調(diào)度的數(shù)據(jù)挖掘。傳統(tǒng)的關(guān)系型數(shù)據(jù)庫采用表結(jié)構(gòu)的方式存儲數(shù)據(jù),不能很好地存儲關(guān)系信息,Neo4j就很好地解決了這種問題,可以將數(shù)據(jù)存儲在靈活的網(wǎng)絡(luò)結(jié)構(gòu)中而不是表格中,具備了完整的數(shù)據(jù)庫特性,實現(xiàn)了專業(yè)數(shù)據(jù)庫級別的圖數(shù)據(jù)模型存儲[5]。
1.1.3 圖遍歷式查詢
Neo4j存儲的是一種原生的圖數(shù)據(jù),它使用圖遍歷的算法進行數(shù)據(jù)查詢,從一個節(jié)點開始,按照之間的關(guān)聯(lián)關(guān)系查詢所有與它有關(guān)系的節(jié)點和屬性。而在傳統(tǒng)的關(guān)系型數(shù)據(jù)庫中,數(shù)據(jù)庫的查詢會通過大量的數(shù)據(jù)進行檢索查詢,很多數(shù)據(jù)的檢索與結(jié)果并無關(guān)系,在復(fù)雜的水資源調(diào)度業(yè)務(wù)和數(shù)據(jù)量較大的水資源監(jiān)測數(shù)據(jù)場景下,傳統(tǒng)數(shù)據(jù)庫的查詢性能不能很好地支撐應(yīng)用。應(yīng)用Neo4j圖數(shù)據(jù)庫可以極大地提高查詢效率,查詢速度是傳統(tǒng)關(guān)系型數(shù)據(jù)庫的數(shù)倍[6]。提高查詢效率的同時也可以對Neo4j圖數(shù)據(jù)庫的查詢語言進行擴展,使其可以進行模糊查詢,有效解決了水資源調(diào)度業(yè)務(wù)中的模糊查詢相關(guān)應(yīng)用需求[7]。
1.1.4 圖論算法支持
由于Neo4j 是一個基于圖論算法,完全兼容ACID的圖形數(shù)據(jù)庫[8],在基于Neo4j的應(yīng)用中,可以根據(jù)設(shè)計選擇相應(yīng)的圖操作算法,為業(yè)務(wù)應(yīng)用提供更深入的挖掘和操作,這些是傳統(tǒng)的關(guān)系型數(shù)據(jù)庫所不具有的優(yōu)勢。
1.2.1 節(jié)點
節(jié)點(Node)即實體對象,可以分為起始節(jié)點和終止節(jié)點,并且兩個節(jié)點通過關(guān)系進行連接[9],節(jié)點相對于傳統(tǒng)數(shù)據(jù)庫中E-R圖中的實體,主要通過實體的標簽信息進行區(qū)別,節(jié)點可以包含屬性信息或者不包含屬性信息,屬性信息是描述實體的信息,例如:表示水利工程調(diào)度的圖數(shù)據(jù)庫中,水庫可以當作一個節(jié)點,可以包含多個屬性信息。節(jié)點在圖數(shù)據(jù)庫中用圓圈表示。
1.2.2 關(guān)系
關(guān)系(Relationship)用于表示實體與實體間的聯(lián)系,例如:調(diào)度實施單位與調(diào)度工程之間的關(guān)系是調(diào)度和被調(diào)度的關(guān)系。關(guān)系在圖數(shù)據(jù)庫中用箭頭表示,關(guān)系可以是單向關(guān)系,也可以使是雙向關(guān)系。
1.2.3 屬性
屬性(Property)用于表示節(jié)點或者關(guān)系的特征信息,屬性通過Key-Value (鍵值對)表示,節(jié)點可以設(shè)置節(jié)點屬性,關(guān)系可以設(shè)置關(guān)系屬性,但是不能共享屬性[10],屬性的鍵名是由字符串來表示,屬性值可以用一個原始值表示,也可以用原始的數(shù)組表示。
參照圖數(shù)據(jù)庫節(jié)點、關(guān)系及屬性構(gòu)建方法,結(jié)合水資源調(diào)度業(yè)務(wù)信息,在水資源調(diào)度圖數(shù)據(jù)庫構(gòu)建過程中,主要包括數(shù)據(jù)梳理、圖數(shù)據(jù)庫構(gòu)建、圖數(shù)據(jù)庫查詢應(yīng)用等流程,具體的流程見圖1。
圖1 水資源調(diào)度數(shù)據(jù)庫構(gòu)建流程
a.數(shù)據(jù)梳理。數(shù)據(jù)梳理主要包括水資源調(diào)度業(yè)務(wù)流程梳理、節(jié)點梳理、關(guān)系梳理。節(jié)點主要包括調(diào)度參與人、調(diào)度工程對象等節(jié)點;關(guān)系主要包括調(diào)度參與人與調(diào)度工程之間的關(guān)系。
b.圖數(shù)據(jù)庫構(gòu)建。圖數(shù)據(jù)庫構(gòu)建主要包括節(jié)點構(gòu)建和關(guān)系構(gòu)建,在構(gòu)建水資源調(diào)度節(jié)點和關(guān)系構(gòu)建中進行屬性的定義。
c.圖數(shù)據(jù)庫查詢應(yīng)用。根據(jù)構(gòu)建的水資源調(diào)度業(yè)務(wù)信息圖數(shù)據(jù)庫按需查詢,實現(xiàn)查詢結(jié)構(gòu)的可視化展示。
本文中水資源調(diào)度數(shù)據(jù)庫以北京市水資源調(diào)度相關(guān)規(guī)程為主要數(shù)據(jù)來源,包括調(diào)度參與人及其職責(zé),調(diào)度工程對象以及調(diào)度實施單位與調(diào)度工程關(guān)系。
a.調(diào)度參與人梳理。調(diào)度參與人主要包括總調(diào)度長、調(diào)度長、副調(diào)度長、執(zhí)行副調(diào)度長、調(diào)度實施單位。
b.調(diào)度工程對象梳理。調(diào)度工程對象主要包括自來水廠、再生水廠、管網(wǎng)、引水工程、輸水工程、水庫、河道、水利工程等。
c.調(diào)度實施單位與調(diào)度工程關(guān)系。指各單位涉及的工程調(diào)度管理權(quán)屬。調(diào)度實施單位工程調(diào)度管轄范圍見表1。
表1 調(diào)度實施單位與調(diào)度工程關(guān)系
2.3.1 節(jié)點構(gòu)建
水資源調(diào)度業(yè)務(wù)流程主要包括的節(jié)點有總調(diào)度長、調(diào)度長、副調(diào)度長、執(zhí)行調(diào)度長、調(diào)度實施單位、調(diào)度工程。
其中 “總調(diào)度長”節(jié)點的定義見表2。
表2 總調(diào)度長節(jié)點屬性
表2中“總調(diào)度長”節(jié)點定義了兩個屬性:總調(diào)度長名稱和總調(diào)度長主要職責(zé)。通過命令創(chuàng)建了一個“總調(diào)度長”節(jié)點,節(jié)點名稱為n,標簽為ZDDZ,節(jié)點包含屬性“name:總調(diào)度長”,“duty:負責(zé)決策重大水資源調(diào)度工作事項、年度用水計劃和調(diào)配方案等,簽發(fā)重要調(diào)度事項”。
create(n:ZDDZ{name:‘總調(diào)度長’, duty:‘負責(zé)決策重大水資源調(diào)度工作事項、年度用水計劃和調(diào)配方案等,簽發(fā)重要調(diào)度事項’})。
根據(jù)各節(jié)點屬性,應(yīng)用上述create命令,定義調(diào)度長、副調(diào)度長、執(zhí)行調(diào)度長。
2.3.2 關(guān)系構(gòu)建
按照水資源調(diào)度業(yè)務(wù)數(shù)據(jù)挖掘及應(yīng)用需求,根據(jù)調(diào)度業(yè)務(wù)現(xiàn)狀,創(chuàng)建了3種關(guān)系:調(diào)度、調(diào)度需求申請、調(diào)度通知單。
a.“調(diào)度”關(guān)系:實施單位與調(diào)度工程,總調(diào)度長與調(diào)度長、調(diào)度長與副調(diào)度長、副調(diào)度長與執(zhí)行調(diào)度長的關(guān)系為“調(diào)度”關(guān)系。
b.“調(diào)度需求申請”關(guān)系:實施單位與執(zhí)行副調(diào)度長調(diào)度中心的關(guān)系為“調(diào)度需求申請”關(guān)系。
c.“調(diào)度通知單”關(guān)系:執(zhí)行副調(diào)度長調(diào)度中心與實施單位的關(guān)系為“調(diào)度通知單”的關(guān)系。
部分構(gòu)建結(jié)果示例見圖2。
圖2 水資源調(diào)度圖數(shù)據(jù)庫構(gòu)建結(jié)果示意圖
圖數(shù)據(jù)庫查詢具有較強的靈活性,對象關(guān)系查詢結(jié)果可視化相對于傳統(tǒng)數(shù)據(jù)庫具有很好的應(yīng)用效果。
例如:應(yīng)用構(gòu)建的水資源調(diào)度圖數(shù)據(jù)庫,查詢京密引水管理處所調(diào)度的工程的方法如下。
查詢語句:
MATCH (a:SSDW{name:‘京密引水管理處‘})-[r:調(diào)度]-(b:DDGC) return a,b
查詢結(jié)果見圖3。
圖3 水資源調(diào)度關(guān)系可視化查詢結(jié)果示意圖
查詢結(jié)果導(dǎo)出見表3。
表3 關(guān)系查詢結(jié)構(gòu)
查詢結(jié)果可以通過圖表的方式展示,為業(yè)務(wù)應(yīng)用提供友好的可視化服務(wù),同時為數(shù)據(jù)資源管理提供可視化的操作頁面。
Neo4j圖數(shù)據(jù)庫是目前挖掘?qū)嶓w關(guān)系較為優(yōu)秀的圖數(shù)據(jù)庫,在實體關(guān)系挖掘方面及知識圖譜構(gòu)建等方面有著廣泛的應(yīng)用。本文采用Neo4j研究了水資源調(diào)度圖數(shù)據(jù)庫的構(gòu)建方法,通過梳理業(yè)務(wù)信息,選取節(jié)點,定義關(guān)系及屬性,最后通過構(gòu)建結(jié)果的查詢,非常便捷地實現(xiàn)了水資源調(diào)度業(yè)務(wù)信息的按需查詢及可視化展示,這為后續(xù)水資源調(diào)度知識圖譜的構(gòu)建、調(diào)度預(yù)案的智能推薦以及調(diào)度智能問答提供了有效的數(shù)據(jù)支持及指導(dǎo)方法。