一種分布式內(nèi)存電網(wǎng)系統(tǒng)構(gòu)建方法
【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明涉及一種分布式內(nèi)存電網(wǎng)系統(tǒng)構(gòu)建方法,屬于電網(wǎng)技術(shù)領(lǐng)域。
【背景技術(shù)】
[0002] 為解決大數(shù)據(jù)的存儲、計算及分析問題,Google公司提出了分布式文件系統(tǒng)、面向 列的分布式數(shù)據(jù)庫、MapReduce分布式編程模型。Google公司的分布式存儲、分布式計算技 術(shù)為大型互聯(lián)網(wǎng)站系統(tǒng)大數(shù)據(jù)量的存儲和分析提出了解決方案,提升了性能。在大數(shù)據(jù)實 時分析方面,SAP推出了HANA內(nèi)存計算平臺,它通過內(nèi)存計算技術(shù)以及軟硬件結(jié)合的一體 機(jī)技術(shù),實現(xiàn)高性能的數(shù)據(jù)查詢與分析,滿足用戶對大數(shù)據(jù)處理的實時性需求。在大容量、 高速存儲方面,Oracle推出了Exadata數(shù)據(jù)庫一體機(jī),它通過高性能硬件、高速網(wǎng)絡(luò)接口, 采用智能掃描、智能存儲、智能索引、混合列壓縮等技術(shù),提高大數(shù)據(jù)和多并發(fā)應(yīng)場景下的 系統(tǒng)處理效率。Exadata數(shù)據(jù)庫一體機(jī)能夠使得基于oracle數(shù)據(jù)庫的已有系統(tǒng)的性能得到 10倍左右性能提升。另外,也有一些內(nèi)存數(shù)據(jù)庫技術(shù),如:為應(yīng)用程序提供即時響應(yīng)和高吞 吐量的OracleTimesTen產(chǎn)品;將基于內(nèi)存和磁盤的全事務(wù)處理數(shù)據(jù)庫引擎,可用性強(qiáng)的 數(shù)據(jù)復(fù)制功能緊密地融為一體的IBMSolidDB產(chǎn)品;用于各種需要高性能、小尺寸、緊密存 儲、零內(nèi)存分配的eXtremeDB;占用資源低、能夠跟很多程序語言相結(jié)合、輕量級的SQLite 內(nèi)存數(shù)據(jù)庫;采用高性能的鍵-值存儲、內(nèi)存數(shù)據(jù)集方式的開源Redis內(nèi)存數(shù)據(jù)庫,都提出 了數(shù)據(jù)的實時存儲方案,避免解決頻繁的磁盤1/0操作,使得數(shù)據(jù)存取效率提高。
[0003]在分布式計算領(lǐng)域,常見的分析方法利用Hadoop框架,由于大量的磁盤1/0操作 以及復(fù)雜的MapReduce過程,使得系統(tǒng)性能和運(yùn)行效率低下,不能滿足實時性的要求,只能 用于非實時的數(shù)據(jù)分析應(yīng)用場景。在分布式緩存領(lǐng)域,通常采用Key-Value的存儲方式和 基于Key哈希散列的數(shù)據(jù)劃分方式,這種方式使得多種數(shù)據(jù)連接查詢時緩存節(jié)點(diǎn)需要交換 大量數(shù)據(jù),性能低下,且一般用于結(jié)構(gòu)簡單的數(shù)據(jù),很難處理模型復(fù)雜的電網(wǎng)資源數(shù)據(jù)。目 前主流的分布式和內(nèi)存計算產(chǎn)品由于其通用性設(shè)計,使得其在面對復(fù)雜電網(wǎng)資源模型和海 量資源數(shù)據(jù),無法發(fā)揮最大優(yōu)勢,甚至存在無法解決的工程應(yīng)用問題。
【發(fā)明內(nèi)容】
[0004]針對現(xiàn)有技術(shù)存在的不足,本發(fā)明目的是提供一種分布式內(nèi)存電網(wǎng)系統(tǒng)構(gòu)建方 法,在實現(xiàn)資源訪問和計算時能夠最大程度減少分布式節(jié)點(diǎn)間的數(shù)據(jù)傳輸,大幅提升效率。
[0005]為了實現(xiàn)上述目的,本發(fā)明是通過如下的技術(shù)方案來實現(xiàn):
[0006]本發(fā)明的一種分布式內(nèi)存電網(wǎng)系統(tǒng)構(gòu)建方法,具體包括以下幾個步驟:
[0007] (1)構(gòu)建內(nèi)存電網(wǎng)資源模型:內(nèi)存電網(wǎng)資源建模遵循IEC61970標(biāo)準(zhǔn)中的公共信息 模型規(guī)范,利用面向?qū)ο蟮姆庋b、繼承和對象應(yīng)用,建立樹型的內(nèi)存電網(wǎng)資源模型;
[0008] (2)確定內(nèi)存存儲結(jié)構(gòu):采用數(shù)組方式對資源所有屬性數(shù)據(jù)進(jìn)行存儲,通過定義 屬性名稱標(biāo)識符與數(shù)組下標(biāo)的映射關(guān)系,確定屬性數(shù)據(jù)在數(shù)組中的位置,實現(xiàn)數(shù)據(jù)存取;
[0009] (3)水平拆分電網(wǎng)資源數(shù)據(jù):將具有不同業(yè)務(wù)屬性值的電網(wǎng)資源數(shù)據(jù)映射到不同 的數(shù)據(jù)塊,將具有相同業(yè)務(wù)屬性值的電網(wǎng)資源數(shù)據(jù)映射到一同數(shù)據(jù)塊;
[0010] ⑷加載并緩存電網(wǎng)資源數(shù)據(jù):系統(tǒng)第一次啟動時,根據(jù)數(shù)據(jù)的水平劃分方式,將 電網(wǎng)資源數(shù)據(jù)庫中的數(shù)據(jù)按照內(nèi)存電網(wǎng)資源模型進(jìn)行加載,然后分布式緩存到集群中多個 服務(wù)器內(nèi)存中;數(shù)據(jù)加載完成后,將緩存中的電網(wǎng)資源數(shù)據(jù)進(jìn)行序列化,形成二進(jìn)制文件保 存到磁盤,當(dāng)再次啟動系統(tǒng)時,從文件直接讀取電網(wǎng)數(shù)據(jù),并從電網(wǎng)資源數(shù)據(jù)庫讀取從上次 序列化到目前的增量數(shù)據(jù);電網(wǎng)資源分布式緩存后,將緩存服務(wù)器IP地址、電網(wǎng)資源的區(qū) 域?qū)傩灾?、電網(wǎng)資源電壓等級值、占用空間、緩存所用時間信息發(fā)送到電網(wǎng)資源管理服務(wù)器 中進(jìn)行統(tǒng)一管理;
[0011] (5)同步內(nèi)存電網(wǎng)數(shù)據(jù):將電網(wǎng)數(shù)據(jù)庫中的資源數(shù)據(jù)同步到內(nèi)存電網(wǎng)、省內(nèi)存電 網(wǎng)的資源數(shù)據(jù)同步到總部內(nèi)存電網(wǎng),使得數(shù)據(jù)庫和內(nèi)存電網(wǎng)、總部內(nèi)地電網(wǎng)和省內(nèi)存電網(wǎng) 的數(shù)據(jù)保持一致;
[0012] (6)確定內(nèi)存電網(wǎng)斷面:內(nèi)存電網(wǎng)斷面以對象化并行計算框架持久化功能作為支 撐,各省及總部的所有斷面數(shù)據(jù)保存在各自的內(nèi)存電網(wǎng)服務(wù)器,采用與內(nèi)存電網(wǎng)服務(wù)器共 享內(nèi)存的方式,加載本地歷史斷面數(shù)據(jù);
[0013] (7)確定內(nèi)存電網(wǎng)訪問接口:內(nèi)存電網(wǎng)接口用于向電網(wǎng)業(yè)務(wù)信息系統(tǒng)提供數(shù)據(jù)物 理位置無關(guān)的電網(wǎng)資源訪問方式,包括電網(wǎng)斷面接口、電網(wǎng)數(shù)據(jù)統(tǒng)計分析接口、數(shù)據(jù)查詢接 □〇
[0014] 步驟(1)中,進(jìn)行樹型展示時,首先要確定內(nèi)存電網(wǎng)資源模型中電網(wǎng)資源的層次 關(guān)系,要求必須有一個根節(jié)點(diǎn),且每一個子節(jié)點(diǎn)的父節(jié)點(diǎn)是唯一的。
[0015] 步驟(2)中,內(nèi)存存儲結(jié)構(gòu)具體的確定方法如下:
[0016] 設(shè)資源數(shù)據(jù)為A,包含4個屬性,記錄條數(shù)為:3,則為每條記錄分配一個長度為4 的Object對象數(shù)組,
[0017] 屬性1屬性2屬性3屬性4
[0018]
[0019] 采用Key-Value方式建立屬性標(biāo)識符與數(shù)組下標(biāo)的映射關(guān)系如下:
[0020] 屬性(key)對應(yīng)數(shù)組下標(biāo)(value)
[0021]
[0022] 訪問某條記錄的某個屬性值時,首先找到該條記錄對應(yīng)的數(shù)組,然后根據(jù)屬性標(biāo) 識符與數(shù)組下標(biāo)關(guān)系,找到該屬性對應(yīng)的數(shù)組下標(biāo),根據(jù)數(shù)組下標(biāo)訪問對應(yīng)的屬性值。
[0023] 步驟(3)中,電網(wǎng)資源數(shù)據(jù)水平拆分方法如下:
[0024] (3-1)由計算任務(wù)對象模型根據(jù)業(yè)務(wù)邏輯和所使用的數(shù)據(jù),分析最優(yōu)的N個數(shù)據(jù) 切分屬性字段;
[0025] (3-2)將N個待切分業(yè)務(wù)數(shù)據(jù)對象屬性的類型和屬性值范圍,作為數(shù)據(jù)切分的原 始輸入;
[0026] (3-3)將對象的N個屬性視作N維空間的軸,根據(jù)對象屬性值范圍映到多維空間區(qū) 域,形成多維空間的數(shù)據(jù)超平面;
[0027] (3-4)每個數(shù)據(jù)超平面被映射到分布式計算集群中的不同計算節(jié)點(diǎn)的內(nèi)存,形成 數(shù)據(jù)的分布式內(nèi)存存儲。
[0028] 步驟(6)中,內(nèi)存電網(wǎng)斷面利用HDFS分布式文件系統(tǒng)進(jìn)行永久、可靠存儲,數(shù)據(jù)持 久化時的序列化采用開源的Hession組件實現(xiàn)。
[0029] 步驟(6)中,所述內(nèi)存電網(wǎng)斷面提供斷面管理、斷面生成和多斷面載入;所述斷面 管理提供斷面數(shù)據(jù)的查詢、斷面生成計劃任務(wù)的制定、斷面載入指令的下達(dá);所述斷面生成 根據(jù)計劃任務(wù)定期將內(nèi)存電網(wǎng)的數(shù)據(jù)進(jìn)行持久化,生成電網(wǎng)數(shù)據(jù)斷面;所述多斷面載入根 據(jù)斷面指令,載入多個歷史斷面到內(nèi)存;內(nèi)存電網(wǎng)提供斷面管理工具用于查詢所有歷史斷 面信息,同時可以向數(shù)據(jù)斷面處理器發(fā)起斷面生成請求和斷面加載請求;數(shù)據(jù)斷面處理器 在接收到相關(guān)請求后,執(zhí)行斷面生成、斷面加載任務(wù)。
[0030] 步驟(7)中,所述內(nèi)存電網(wǎng)訪問接口采用PRC遠(yuǎn)程調(diào)用協(xié)議,傳輸?shù)臄?shù)據(jù)為資源對 象序列化后的二進(jìn)制流。
[0031] 步驟(7)中,通過所述電網(wǎng)斷面接口查詢電網(wǎng)斷面信息,并下達(dá)斷面加載指令,加 載指定的電網(wǎng)斷面數(shù)據(jù)到計算機(jī)內(nèi)存;通過所述電網(wǎng)數(shù)據(jù)統(tǒng)計分析接口獲取總部和省電網(wǎng) 資源多條件、多維度的統(tǒng)計分析結(jié)果;通過所述數(shù)據(jù)查詢接口向業(yè)務(wù)系統(tǒng)提供全網(wǎng)電網(wǎng)資 源的查詢,業(yè)務(wù)系統(tǒng)不需要關(guān)注數(shù)據(jù)的來源和物理位置。
[0032] 本發(fā)明的分布式內(nèi)存電網(wǎng)充分考慮了電網(wǎng)資源數(shù)據(jù)和電網(wǎng)業(yè)務(wù)特性,采用統(tǒng)一的 電網(wǎng)資源模型和全新的存儲方式,并使得模型能夠準(zhǔn)確的反映電網(wǎng)資源的情況,同時具備 可重用、易理解、高效資源存儲和訪問等特性;同時通過利用電網(wǎng)資源的區(qū)域特性和電壓等 級特性,可很好的解決數(shù)據(jù)水平分割問題,使得資源數(shù)據(jù)訪問和計算時能夠最大程度上減 少分布式節(jié)點(diǎn)間的數(shù)據(jù)傳輸,大幅提升效率,同時又能支持多種資源數(shù)據(jù)的關(guān)聯(lián)查詢;分布 式內(nèi)存電網(wǎng)是分布式技術(shù)、內(nèi)存計算技術(shù)