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

基于鍵值對存儲的水電數據中心編碼系統

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

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

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

0 引言

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

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

1 水電數據中心編碼系統

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

1.1 標準化命名

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

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

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

1.2 鍵值對存儲

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

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

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

表1 編碼系統的數據存儲方式Tab.1 Data storage method of the encoding system

1.3 微服務接口

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

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

2 關鍵技術

2.1 唯一性和雙向映射

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

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

2.2 分布式鎖和彈性擴展

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

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

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

2.3 編碼重用

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

狀態標記位作為一個新屬性,存儲于鍵值對存儲的對象數據中。

3 系統開發和運行

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

3.1 系統實現

3.1.1 存儲設計

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

全局命名的鍵值對

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

值:字符串“026301170000401126”

全局編碼的鍵值對

鍵:字符串“GlobalID/026301170000401126”

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

值:哈希表,其內容如表2所示例,對象數據中的屬性并不限于表中所示的哈希鍵值。

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

3.1.2 高可用設計和備份機制

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

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

3.2 系統測試

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

3.2.1 功能測試

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

3.2.2 性能測試

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

模擬某水電站的水電監控系統、水情水調系統共約100萬對象數據的存儲條件下,進行10萬次查詢重復實驗,求得平均時間對比如表3所示。

表3 編碼系統的性能測試Tab.3 Performance of the encoding system

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

4 結論和展望

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

猜你喜歡
系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
基于UG的發射箱自動化虛擬裝配系統開發
半沸制皂系統(下)
FAO系統特有功能分析及互聯互通探討
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
一德系統 德行天下
PLC在多段調速系統中的應用
主站蜘蛛池模板: 毛片视频网址| 久久人人爽人人爽人人片aV东京热| 一级做a爰片久久免费| 丰满人妻被猛烈进入无码| 久久中文字幕不卡一二区| 中文字幕日韩视频欧美一区| 91在线无码精品秘九色APP | 97视频免费看| 九九热在线视频| 色婷婷电影网| 国产日韩欧美精品区性色| 婷婷色狠狠干| 国产精品yjizz视频网一二区| 亚洲无码精品在线播放| 国产在线观看一区精品| 99久久亚洲精品影院| 色综合天天娱乐综合网| 亚洲无线国产观看| 国产精品欧美激情| 国产丰满大乳无码免费播放| 九色视频一区| 久久国产香蕉| 99在线视频精品| 亚洲第一成人在线| 99久久精品国产综合婷婷| 亚洲一区国色天香| 极品国产在线| 精品欧美一区二区三区在线| 亚洲精品在线91| 成人一区在线| 国产三级视频网站| 国内精品小视频福利网址| 欧美精品成人一区二区在线观看| 亚洲精品另类| 欧美精品在线视频观看 | 91福利国产成人精品导航| 亚洲国产成人超福利久久精品| 精品少妇人妻无码久久| 国内精品小视频在线| 在线观看国产一区二区三区99| 国产91成人| 999国产精品| 青青国产视频| 亚洲免费三区| 婷婷伊人五月| 欧美另类视频一区二区三区| 亚洲欧美另类日本| 亚洲三级电影在线播放| 成年女人a毛片免费视频| 国产精品永久不卡免费视频 | 香蕉精品在线| 婷婷五月在线视频| 71pao成人国产永久免费视频| 91无码国产视频| 精品91视频| 亚洲激情99| 亚洲精品高清视频| 男女男免费视频网站国产| 国产精品爽爽va在线无码观看| 国产在线一二三区| 久久婷婷色综合老司机| 国产美女一级毛片| 亚洲自偷自拍另类小说| 久久精品只有这里有| 97在线国产视频| 秋霞国产在线| 亚洲成A人V欧美综合天堂| 免费无遮挡AV| 欧美a级完整在线观看| 日韩精品毛片| 国产精品久久久精品三级| 91精品国产情侣高潮露脸| 成人在线观看不卡| 国产午夜看片| 亚洲三级影院| 无码中文字幕乱码免费2| 亚洲黄网在线| 强乱中文字幕在线播放不卡| 亚洲国产成人精品无码区性色| 亚洲成综合人影院在院播放| 国产精品无码一二三视频| 亚洲床戏一区|