亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2018-12-25 07:02:46翟桂鋒
        水電與抽水蓄能 2018年6期
        關(guān)鍵詞:鍵值水電廠命名

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

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

        0 引言

        隨著智能電網(wǎng)建設的不斷深入,對水電廠運行的可靠性、源網(wǎng)協(xié)調(diào)能力及智能決策能力提出全新的要求[1]?,F(xiàn)有的水電廠自動化系統(tǒng)由于發(fā)展階段和技術(shù)條件限制,各類業(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ù)上保證數(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ù)接入一致性的技術(shù)保證。其主要作用體現(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)的對象進行全局編碼。為存儲全局編碼和實體對象的一對一映射關(guān)系,必須對實體對象進行全局唯一的標準化命名。當前,IEC61970標準已經(jīng)成為電力系統(tǒng)信息標準化的技術(shù)規(guī)范[2,3]。編碼系統(tǒng)對象的全局命名也遵循IEC61970標準中的CIM模型來實施。圖1是基于IEC61970標準構(gòu)建的水電廠監(jiān)控、水情監(jiān)視、水電調(diào)度等應用系統(tǒng)設備對象和量測的層次結(jié)構(gòu)圖。

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

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

        1.2 鍵值對存儲

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

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

        將全局命名和全局編碼設計為鍵,可以通過鍵的唯一性來保證對象的全局命名和全局編碼的唯一性。此外,對象的全局命名和全局編碼的互相映射關(guān)系也通過鍵值對的形式來保證,具體細節(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)提供了對象編碼、查詢、更改及刪除等相關(guān)操作接口。在水電一體化數(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報文格式相結(jié)合的方式。微服務通用的接口形式易于數(shù)據(jù)中心和各業(yè)務系統(tǒng)進行改造和開發(fā)。微服務化使得對編碼系統(tǒng)的訪問更加靈活、方便,開放性和通用性更好。同時,微服務架構(gòu)的輕量級、易擴展的特性,使得編碼系統(tǒng)在并發(fā)訪問和彈性擴展上更具優(yōu)勢,易于承載更高數(shù)據(jù)量級的對象數(shù)據(jù)。

        2 關(guān)鍵技術(shù)

        2.1 唯一性和雙向映射

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

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

        2.2 分布式鎖和彈性擴展

        圖2 全局命名和全局編碼的映射關(guān)系示意圖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)在處理對象刪除時,對象全局名和全局編碼的對應關(guān)系必須被保留。因此,編碼系統(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ù),該請求會轉(zhuǎn)發(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 性能測試

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

        模擬某水電站的水電監(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)存儲的性能,微服務相關(guān)的額外時間開銷均未計入測試結(jié)果。實驗證明,基于鍵值對存儲的編碼系統(tǒng)比基于MySQL的編碼系統(tǒng)查詢操作快了大約1個數(shù)量級以上。

        4 結(jié)論和展望

        本文提出并實現(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ù)上保證數(shù)據(jù)中心內(nèi)對象命名和編碼的標準化和一致性,為后續(xù)基于數(shù)據(jù)中心的大數(shù)據(jù)分析和智能化決策提供了先決條件。

        猜你喜歡
        鍵值水電廠命名
        命名——助力有機化學的學習
        非請勿進 為注冊表的重要鍵值上把“鎖”
        有一種男人以“暖”命名
        東方女性(2018年3期)2018-04-16 15:30:02
        為一條河命名——在白河源
        散文詩(2017年17期)2018-01-31 02:34:08
        一鍵直達 Windows 10注冊表編輯高招
        電腦愛好者(2017年9期)2017-06-01 21:38:08
        GMH550測振測擺系統(tǒng)在株溪口水電廠的實踐與應用
        iP9000水電廠智能平臺
        南水電廠擴容后過渡過程分析
        北斗通信在小型水電廠電量采集中的應用
        注冊表值被刪除導致文件夾選項成空白
        在线视频精品少白免费观看| 99久久精品费精品国产一区二| 青青草原亚洲| 欧美性开放bbw| japanese无码中文字幕| 亚洲色欲久久久综合网| 日本精品人妻一区二区三区| 亚洲成人av在线蜜桃| 任我爽精品视频在线播放| 国产精品6| 国产人成在线免费视频| 国产日产久久高清ww| 欧美做受又硬又粗又大视频| 丁香花在线影院观看在线播放| 亚洲人成人一区二区三区| 天堂女人av一区二区| 精品国产精品三级在线专区| 国产又色又爽又黄刺激在线视频 | 亚洲av综合国产av日韩| av色欲无码人妻中文字幕| 国产成人综合久久精品免费 | 一二区视频免费在线观看| 成人影院在线视频免费观看| 免费人妻无码不卡中文字幕系| 国产成人乱色伦区| 亚洲精品美女自拍偷拍| 日本在线中文字幕一区二区| 久久中文字幕人妻淑女| 在线精品国产一区二区三区| 中文字幕亚洲无线码高清| 男生自撸视频在线观看| 亚洲色图片区| 国产精品v欧美精品v日韩精品 | 无码国产69精品久久久孕妇| 在线视频你懂的国产福利| 成av人片一区二区三区久久| 在线一区二区三区国产精品| 人妻影音先锋啪啪av资源| 2021久久精品国产99国产精品| 久久无码人妻一区=区三区| 91热久久免费频精品99|