999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于鍵值對存儲的水電數(shù)據(jù)中心編碼系統(tǒng)

2018-12-25 07:02:46翟桂鋒
水電與抽水蓄能 2018年6期
關鍵詞:系統(tǒng)

翟桂鋒,徐 丹,錢 鋒,夏 晨

(南京南瑞繼保電氣有限公司,江蘇省南京市 211102)

0 引言

隨著智能電網(wǎng)建設的不斷深入,對水電廠運行的可靠性、源網(wǎng)協(xié)調(diào)能力及智能決策能力提出全新的要求[1]。現(xiàn)有的水電廠自動化系統(tǒng)由于發(fā)展階段和技術條件限制,各類業(yè)務應用系統(tǒng)的信息和數(shù)據(jù)相對獨立、一體化程度低、標準差異性大、信息孤島現(xiàn)象嚴重,將不同系統(tǒng)的數(shù)據(jù)進行整合,建立一體化的數(shù)據(jù)中心成為進行水電廠大數(shù)據(jù)分析和智能化決策的先決條件。但水電廠內(nèi)各系統(tǒng)對同一設備在命名和編碼方式上存在差異,必須通過全局統(tǒng)一的設備命名和編碼來保證各系統(tǒng)接入數(shù)據(jù)的一致性。

本文提出并實現(xiàn)了一種基于鍵值對存儲的水電廠一體化數(shù)據(jù)中心全局編碼系統(tǒng),用來管理水電廠各類業(yè)務系統(tǒng)中對象的全局命名和統(tǒng)一編碼,為數(shù)據(jù)中心和各業(yè)務系統(tǒng)提供統(tǒng)一的對象編碼、查詢、更改等操作服務,從技術上保證數(shù)據(jù)中心內(nèi)對象全局命名和編碼的標準化、統(tǒng)一化,保證數(shù)據(jù)中心接入各業(yè)務系統(tǒng)數(shù)據(jù)的一致性,解決數(shù)據(jù)中心數(shù)據(jù)集成及各業(yè)務系統(tǒng)之間數(shù)據(jù)交互的問題。

1 水電數(shù)據(jù)中心編碼系統(tǒng)

水電數(shù)據(jù)中心編碼系統(tǒng)是水電廠一體化數(shù)據(jù)中心內(nèi)對象全局編碼的統(tǒng)一管理系統(tǒng),是實現(xiàn)水電廠內(nèi)各業(yè)務系統(tǒng)數(shù)據(jù)接入一致性的技術保證。其主要作用體現(xiàn)在兩個方面:一是不同系統(tǒng)內(nèi)的同一設備對象通過統(tǒng)一的全局編碼進行一一對應,數(shù)據(jù)中心全景建模時來源于不同應用系統(tǒng)的模型可以更好地拼接和擴展,數(shù)據(jù)中心進行數(shù)據(jù)集成時也可將不同系統(tǒng)的數(shù)據(jù)根據(jù)設備對象的全局編碼進行數(shù)據(jù)聚合;二是各類業(yè)務系統(tǒng)間進行數(shù)據(jù)交互時,利用全局編碼標識同一個設備對象,有利于系統(tǒng)間的數(shù)據(jù)交互。

1.1 標準化命名

水電數(shù)據(jù)中心編碼系統(tǒng)的核心功能是對所有業(yè)務系統(tǒng)的對象進行全局編碼。為存儲全局編碼和實體對象的一對一映射關系,必須對實體對象進行全局唯一的標準化命名。當前,IEC61970標準已經(jīng)成為電力系統(tǒng)信息標準化的技術規(guī)范[2,3]。編碼系統(tǒng)對象的全局命名也遵循IEC61970標準中的CIM模型來實施。圖1是基于IEC61970標準構建的水電廠監(jiān)控、水情監(jiān)視、水電調(diào)度等應用系統(tǒng)設備對象和量測的層次結構圖。

圖1 水電數(shù)據(jù)中心多應用系統(tǒng)對象的層次結構示意圖Fig.1 Hierarchical structure of objects from multiple systems in data center of hydropower plant

依據(jù)層次式的分類結構,水電數(shù)據(jù)中心對象的全局命名也呈現(xiàn)層次式方式。例如水電廠設備對象“中國長江電力股份有限公司成都梯級調(diào)度向家壩水電廠1號機組”的全局命名可定義為“長江電力/成都梯調(diào)/向家壩水電廠/#1機”。

1.2 鍵值對存儲

鍵值對存儲是數(shù)據(jù)庫最簡單的組織方式,其結構是一個“鍵-值”的集合。鍵值對存儲中鍵是全局唯一的。Redis是一個使用ANSI C編寫的開源、支持網(wǎng)絡、基于內(nèi)存、可選持久性的鍵值對存儲數(shù)據(jù)庫,是目前最流行的鍵值對存儲數(shù)據(jù)庫[4]。Redis由一個鍵、值映射的字典構成。Redis中值的類型不僅限于字符串,還支持抽象的數(shù)據(jù)類型,如字符串列表、無序不重復的字符串集合、有序不重復的字符串集合、鍵值都為字符串的哈希表等。

水電數(shù)據(jù)中心編碼系統(tǒng)存儲的核心數(shù)據(jù)是對象的全局命名和全局編碼,同一對象的全局命名和全局編碼在編碼系統(tǒng)內(nèi)保持唯一。此外,編碼系統(tǒng)還存儲對象的其他屬性如類型、編碼信息、編碼時間等。編碼系統(tǒng)的數(shù)據(jù)存儲方式如表1所示。

將全局命名和全局編碼設計為鍵,可以通過鍵的唯一性來保證對象的全局命名和全局編碼的唯一性。此外,對象的全局命名和全局編碼的互相映射關系也通過鍵值對的形式來保證,具體細節(jié)參考2.1的內(nèi)容。

表1 編碼系統(tǒng)的數(shù)據(jù)存儲方式Tab.1 Data storage method of the encoding system

1.3 微服務接口

根據(jù)水電一體化數(shù)據(jù)中心和各業(yè)務系統(tǒng)訪問編碼系統(tǒng)的需求,編碼系統(tǒng)提供了對象編碼、查詢、更改及刪除等相關操作接口。在水電一體化數(shù)據(jù)中心建立過程中,各業(yè)務系統(tǒng)通過編碼系統(tǒng)提供的接口,將本系統(tǒng)接入數(shù)據(jù)中心的所有模型對象進行統(tǒng)一編碼。數(shù)據(jù)中心通過統(tǒng)一的全局編碼接入各業(yè)務系統(tǒng)的數(shù)據(jù),對不同業(yè)務系統(tǒng)的數(shù)據(jù)進行聚合,為后續(xù)基于數(shù)據(jù)中心的數(shù)據(jù)挖掘和智能決策提供一致的數(shù)據(jù)模型和數(shù)據(jù)訪問方式。

水電一體化數(shù)據(jù)中心編碼系統(tǒng)基于Spring/Spring MVC框架[5]實現(xiàn)操作接口的微服務化,接口形式上采用HTTPS傳輸協(xié)議與JSON報文格式相結合的方式。微服務通用的接口形式易于數(shù)據(jù)中心和各業(yè)務系統(tǒng)進行改造和開發(fā)。微服務化使得對編碼系統(tǒng)的訪問更加靈活、方便,開放性和通用性更好。同時,微服務架構的輕量級、易擴展的特性,使得編碼系統(tǒng)在并發(fā)訪問和彈性擴展上更具優(yōu)勢,易于承載更高數(shù)據(jù)量級的對象數(shù)據(jù)。

2 關鍵技術

2.1 唯一性和雙向映射

全局命名和全局編碼都通過鍵值對存儲的鍵的唯一性來保證其唯一性。因此,在鍵值對存儲中存在著以全局命名為鍵和以全局編碼為鍵的兩個鍵值對數(shù)據(jù),而這兩個鍵值對數(shù)據(jù)的值實際上對應的是同一個對象的數(shù)據(jù)。

為了避免對象數(shù)據(jù)重復和不一致,在具體的存儲設計時,對象的完整數(shù)據(jù)只存儲在以全局編碼為鍵對應的值數(shù)據(jù)中,以全局命名為鍵對應的值數(shù)據(jù)中只保存對象的全局編碼。同時,為了能夠從全局編碼直接查詢到全局命名,全局命名也作為對象的屬性之一,存儲于全局編碼為鍵對應的值數(shù)據(jù)中。具體的鍵值對映射關系示意如圖2所示。

2.2 分布式鎖和彈性擴展

圖2 全局命名和全局編碼的映射關系示意圖Fig.2 Mappings between global name and global ID

原子服務是提供數(shù)據(jù)和業(yè)務邏輯的一個最小的單元。根據(jù)編碼系統(tǒng)的特點,將編碼系統(tǒng)提供的注冊、查詢、刪除和更新操作進行原子化,形成注冊原子服務、查詢原子服務、刪除原子服務和更新原子服務,并基于Spring/Spring MVC框架實現(xiàn)微服務化。

微服務的優(yōu)勢在于通過彈性擴展支持大量并發(fā)訪問。在編碼系統(tǒng)提供的四個原子服務中,查詢服務是無狀態(tài)的,可以直接進行擴展。而注冊服務、刪除服務和更新服務是有狀態(tài)的,必須要保證這些有狀態(tài)的服務能夠按照服務調(diào)用的順序先后執(zhí)行。為了解決這一問題,在實現(xiàn)過程中,本文基于Redis的SETNX命令實現(xiàn)了一個分布式鎖。通過分布式鎖的獲取和釋放,解決了有狀態(tài)服務調(diào)用的串行化。

2.3 編碼重用

全局編碼重用指當某個對象刪除后,同樣全局命名的對象再次編碼時重用原有的全局編碼。這就要求在編碼系統(tǒng)在處理對象刪除時,對象全局名和全局編碼的對應關系必須被保留。因此,編碼系統(tǒng)引入一個狀態(tài)標記位,用來標記對象是否為停用狀態(tài)。當對象被編碼時,狀態(tài)標記位被置為“啟用”;當對象被刪除后,狀態(tài)標記位被置為“停用”。

狀態(tài)標記位作為一個新屬性,存儲于鍵值對存儲的對象數(shù)據(jù)中。

3 系統(tǒng)開發(fā)和運行

基于上述研究,本文依托開源軟件Redis作為鍵值對存儲,基于Spring/Spring MVC框架實現(xiàn)了一個水電數(shù)據(jù)中心的編碼系統(tǒng)。

3.1 系統(tǒng)實現(xiàn)

3.1.1 存儲設計

根據(jù)1.2和2.1的內(nèi)容所述,以電廠設備對象“中國長江電力股份有限公司成都梯級調(diào)度向家壩水電廠1號機組”為例,設計如下的鍵值對存儲方案:

全局命名的鍵值對

鍵:字符串“GlobalName/長江電力/成都梯調(diào)/向家壩水電廠/#1機”

值:字符串“026301170000401126”

全局編碼的鍵值對

鍵:字符串“GlobalID/026301170000401126”

表2 全局編碼鍵值對的值中哈希表的內(nèi)容Tab.2 Contents of the hash table as the value of the KV pair

值:哈希表,其內(nèi)容如表2所示例,對象數(shù)據(jù)中的屬性并不限于表中所示的哈希鍵值。

通過在鍵的字符串中增加“GlobalName”和“GlobaID”的前綴,可以避免命名和編碼在極端情況下重復,引發(fā)系統(tǒng)異常。

3.1.2 高可用設計和備份機制

在高可用方面,鍵值對存儲通過Redis集群方式進行部署。Redis集群存在多個實例和數(shù)據(jù)端口,客戶端請求對應的數(shù)據(jù),如果被請求的實例中沒有對應的數(shù)據(jù),該請求會轉發(fā)給對應的實例來處理。Redis集群通過Gossip協(xié)議同步節(jié)點信息。

為了提高編碼系統(tǒng)的可用性,編碼系統(tǒng)通過自定義腳本的方式實現(xiàn)定時數(shù)據(jù)備份,備份方式默認按照最近三天、最近一周、最近一月的方式進行數(shù)據(jù)全備份。備份的數(shù)據(jù)通過JSON文件的方式存放在磁盤上,可用于編碼系統(tǒng)的數(shù)據(jù)恢復和數(shù)據(jù)遷移。

3.2 系統(tǒng)測試

采用模擬某水電站的水電監(jiān)控系統(tǒng)、水情水調(diào)系統(tǒng)的對象作為數(shù)據(jù)來源進行測試。水電數(shù)據(jù)中心模擬編碼系統(tǒng)運行在華為FusionCube云平臺的兩臺虛擬機上,配置均為8核2.4G,內(nèi)存32G,操作系統(tǒng)為RHEL7.3,測試程序運行在一臺HPZ400工作站上,機器配置為雙核2.4G,內(nèi)存8G,操作系統(tǒng)RHEL7.3。

3.2.1 功能測試

功能測試主要驗證水電數(shù)據(jù)中心編碼系統(tǒng)的功能是否達到預期目標。通過分別對水電監(jiān)控系統(tǒng)、水情水調(diào)系統(tǒng)的對象進行編碼、查詢、更改、刪除等一系列測試,證實基于鍵值對存儲的水電數(shù)據(jù)中心編碼系統(tǒng)可以根據(jù)對象的信息進行統(tǒng)一命名和編碼,并提供相應的接口供不同業(yè)務系統(tǒng)進行編碼、查詢等功能,解決多業(yè)務系統(tǒng)的數(shù)據(jù)互操作問題。

3.2.2 性能測試

理論上,基于鍵值對存儲構建的編碼系統(tǒng),其查詢速度比傳統(tǒng)的關系數(shù)據(jù)庫要快上幾個數(shù)量級。為便于性能對比,本文以相同的數(shù)據(jù)來源,基于MySQL實現(xiàn)了一個編碼系統(tǒng)原型。該原型系統(tǒng)使用關系數(shù)據(jù)庫的外鍵機制來描述對象的層次關系,通過視圖的方式進行多表訪問。

模擬某水電站的水電監(jiān)控系統(tǒng)、水情水調(diào)系統(tǒng)共約100萬對象數(shù)據(jù)的存儲條件下,進行10萬次查詢重復實驗,求得平均時間對比如表3所示。

表3 編碼系統(tǒng)的性能測試Tab.3 Performance of the encoding system

為了精準測試編碼系統(tǒng)存儲的性能,微服務相關的額外時間開銷均未計入測試結果。實驗證明,基于鍵值對存儲的編碼系統(tǒng)比基于MySQL的編碼系統(tǒng)查詢操作快了大約1個數(shù)量級以上。

4 結論和展望

本文提出并實現(xiàn)了一種基于鍵值對存儲的水電廠一體化數(shù)據(jù)中心全局編碼系統(tǒng),解決水電廠建立一體化數(shù)據(jù)中心時,各類業(yè)務應用的自動化系統(tǒng)由于設備命名和編碼方式差異大,造成數(shù)據(jù)集成與互相操作困難的問題。水電廠一體化數(shù)據(jù)中心全局編碼系統(tǒng)通過對各業(yè)務系統(tǒng)的對象進行全局命名和全局編碼,為一體化數(shù)據(jù)中心和各系統(tǒng)提供統(tǒng)一的微服務接口,從技術上保證數(shù)據(jù)中心內(nèi)對象命名和編碼的標準化和一致性,為后續(xù)基于數(shù)據(jù)中心的大數(shù)據(jù)分析和智能化決策提供了先決條件。

猜你喜歡
系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
WJ-700無人機系統(tǒng)
ZC系列無人機遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統(tǒng)
基于UG的發(fā)射箱自動化虛擬裝配系統(tǒng)開發(fā)
半沸制皂系統(tǒng)(下)
FAO系統(tǒng)特有功能分析及互聯(lián)互通探討
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
一德系統(tǒng) 德行天下
PLC在多段調(diào)速系統(tǒng)中的應用
主站蜘蛛池模板: 国产chinese男男gay视频网| 亚洲日本中文字幕乱码中文| 无码区日韩专区免费系列| 欧美爱爱网| 毛片视频网址| 国产美女无遮挡免费视频网站| 91久久青青草原精品国产| 天堂岛国av无码免费无禁网站 | 午夜老司机永久免费看片| 毛片久久久| 精品国产Av电影无码久久久| 欧美日韩中文国产| 国产99免费视频| 国产精品视频导航| AⅤ色综合久久天堂AV色综合| 精品成人免费自拍视频| 国产精品成人不卡在线观看| 亚洲无码高清视频在线观看 | 欧美www在线观看| 国产微拍一区| 欧美成人国产| 久久五月天综合| 手机精品视频在线观看免费| 久热99这里只有精品视频6| 国产制服丝袜91在线| 国产成人麻豆精品| 亚洲熟妇AV日韩熟妇在线| 日本一本正道综合久久dvd| 岛国精品一区免费视频在线观看| 欧美.成人.综合在线| 波多野结衣AV无码久久一区| 国产在线小视频| 手机在线免费毛片| 中文毛片无遮挡播放免费| 日韩精品亚洲精品第一页| 四虎AV麻豆| 国产香蕉在线视频| 精品久久蜜桃| 91麻豆精品国产91久久久久| 久久不卡国产精品无码| 午夜少妇精品视频小电影| 五月激激激综合网色播免费| 精品国产美女福到在线直播| 亚洲成年人网| 亚洲日本中文综合在线| 国产毛片高清一级国语| 亚洲精品自拍区在线观看| 99精品高清在线播放| 国产精品一区在线观看你懂的| 九九视频免费在线观看| 国产浮力第一页永久地址| 熟女日韩精品2区| 久青草网站| 国产精品女人呻吟在线观看| 亚洲无线国产观看| 操操操综合网| 干中文字幕| 欧美乱妇高清无乱码免费| 日本欧美视频在线观看| 波多野结衣无码视频在线观看| 一级毛片在线播放| 国产精品久久自在自线观看| 国产精品久久久久久久久| 99热国产在线精品99| 国产91在线|日本| 国产亚洲现在一区二区中文| 波多野结衣一区二区三区四区视频| 国产一区二区三区免费观看| 欧美国产日产一区二区| www精品久久| 狠狠亚洲五月天| 狼友视频一区二区三区| 在线不卡免费视频| 亚洲无码电影| 美女被躁出白浆视频播放| 国内99精品激情视频精品| 99久久精品无码专区免费| 狼友视频一区二区三区| 日韩成人免费网站| 亚洲中文无码h在线观看| 国产乱子伦精品视频| 亚洲a级毛片|