一種基于智能電網wams的時序大數據存儲方法
【技術領域】
[0001 ]本發明屬于實時數據庫技術領域,主要涉及智能電網WAMS的時序大數據存儲方 法。
【背景技術】
[0002] 隨著智能電網技術的不斷發展,作為智能電網重要支撐的"廣域監測系統(Wide Area Measurement System,WAMS)"成為當前研究的熱點。電網廣域監測系統是通過布局在 全網關鍵節點的同步相量測量單元(Phasor Measurement Unit,PMU),實現全網的動態監 測與控制。
[0003] 當前,智能電網WAMS主要有以下特點:(1)布局在全網的監測節點數量越來越多; (2)監測節點數據的實時性要求較高,數據產生周期為幾十毫秒級;(3)對于系統的穩定性 要求較高;(4)歷史時序數據量規模越來越大,應用的豐富性和互動性不斷增強,對歷史數 據的訪問需求越來越高。而常規的數據存儲方法并不能良好地適用于智能電網WAMS之中。 因此,有必要針對智能電網WAMS,設計一種與其特點相適應的數據存儲方法。
【發明內容】
[0004] 本發明目的是:針對智能電網WAMS時序數據的特征,提供一種能夠滿足于智能電 網WAMS場景的時序大數據快速加載查詢且具有高可靠的存儲方法,解決智能電網WAMS量測 節點規模大、數據產生頻率高的時序數據的高速加載問題,為實現以時間維度(多個量測節 點,在一個時刻上的數據集合)斷面數據的快速查詢提供基礎。
[0005] 具體地說,本發明是采用以下技術方案實現的,包括以下步驟:
[0006] 1)根據WAMS場景建立相應的鍵-值存儲模型作為數據模型;
[0007] 2)以每秒鐘每一個測點創建一個存儲單元,存儲單元的長度根據WAMS數據的采樣 頻率設置;
[0008] 3)在數據加載過程中采用預寫日志技術,首先將數據以日志形式順序寫入磁盤, 然后再將數據加載至內存進行存儲操作;
[0009] 4)對數據中值進行壓縮,而鍵保持不變;
[0010] 5)根據加載數據的規模、加載頻率,對數據進行分庫。
[0011] 上述技術方案的進一步特征在于,所述鍵-值存儲模型,其鍵的結構為〈時間戳,測 點id>,值的結構為〈質量碼數組,數據值數組〉,表示如下:
[0012] Key =〈timestamp,id>
[0013] Value=<status[UnitLength],valueItem[UnitLength]>
[0014] 其中,Key代表鍵,t imestamp,代表時間戳,Value代表值,Uni tLength代表存儲單 元的長度,status [Uni tLength]為質量碼數組,valueItem[Uni tLength]為數據值數組;
[0015] Key的排序方式為:以時間戳優先排序,其次按測點id排序,時間戳與測點id均采 用增序排序;
[0016] Value的質量碼數組與數據值數組采用一一對應關系,且質量碼數據與數據值數 組的數據元素按照時間順序存儲。
[0017] 本發明的有益效果如下:本發明采用鍵-值存儲模型,符合聚簇思想,每個測點每 一秒鐘建立一個存儲單元,從而減少冗余數據的存儲;同時采用數據壓縮,減少磁盤1/0,進 而提升數據加載性能。根據數據測點規模、數據產生頻率,建立靈活數據庫分庫機制,提升 數據查詢效率。采用預寫日志技術,當系統異常崩潰時,可通過日志文件快速恢復數據,提 升系統的可靠性。
【附圖說明】
[0018] 圖1是鍵-值存儲模型示意圖。
【具體實施方式】
[0019] 下面結合實施例并參照附圖對本發明作進一步詳細描述。
[0020] 本發明的步驟如下:
[0021] 1)根據WAMS場景建立相應的鍵-值(K-V,Key-Value)存儲模型作為數據模型。圖1 給出了κ-v存儲模型示意。其中的符號含義為:timestamp,存儲單元的時間戳,精度到秒級; id,測點id(量測量的惟一標識);status,存儲單元的數據質量碼數組;valuel tem,存儲單 元的數據值數組;uni tLength,存儲單元長度。由該圖可知,Κ-V存儲模型中key的結構為〈時 間戳,測點id>,value的結構為〈質量碼數組,數據值數組〉。
[0022] 其中,模型Key的排序方式:1)時間戳優先排序,其次為測點id; 2)時間戳與測點id 均采用增序排序。而模型Value的質量碼數組與數據值數組采用一一對應關系(即: ValUeItem[l]、StatUS[l]表示同一條記錄的數值與數值的質量碼),且質量碼數據與數據 值數組的數據元素按照時間順序存儲。
[0023] 2)以每秒鐘每一個測點創建一個存儲單元,存儲單元的長度(UnitLength)根據 WAMS數據的采樣頻率設置。由于WAMS場景的數據產生周期為毫秒級,因此,1 < UnitLength < 1000。
[0024] 3)在數據加載過程中采用預寫日志技術(Write-Ahead Logging,WAL),首先將數 據以日志形式順序寫入磁盤,然后再將數據加載至內存進行存儲操作。當系統崩潰,重新掃 描日志文件即可恢復在內存中,未成功寫入至數據庫數據文件中的那部分數據。由于記錄 寫入日志文件是按照順序方式寫入,因此,在保證系統可靠性的同時也有較高數據加載效 率。
[0025] 4)對數據中值進行壓縮,而鍵保持不變;
[0026] 5)根據加載數據的規模、加載頻率,對數據進行分庫。由于任何類型數據庫或多或 少都存在數據堆積效應,如:關系型數據表的"記錄"增加、時序數據庫測點時標數據增加均 會導致數據查詢效率降低,故有必要進行數據分開。按本發明的分庫策略,可以靈活的實現 數據庫分庫。例如,某WAMS系統的測點數量為50000、數據采樣頻率為50Hz。若以一小時分一 個庫的機制,則每一個數據庫的時標數據為90億條。
[0027] 以下將根據某區域電網WAMS系統的應用實例來描述本方法的【具體實施方式】,即: 測點規模為50000測點、數據采樣頻率為50Hz。本方法采用rocksDB鍵值數據庫實現了上述 模型。所采用的服務器配置如下:
[0033]根據以上參數的配置,某電網區域的WAMS測點規模:5萬個測點、數據產生周期為 20毫秒;數據庫分庫為:每一小時WASM時序數據建立一個rocksDB數據庫。同時,根據本方法 κ-v存儲模型設置,時序數據順序加載與查詢的效率如下:
[0035]如上表,本方法數據加載與查詢效率分別為:2065萬/秒、16286萬/秒。其中,單位 "萬/秒"表示:每一秒鐘加載/查詢多少萬條數據值。在該實例的場景下,數據加載的需求大 于250萬/秒(50000測點乘以每秒產生50條數值),因此,本方法高效的滿足了 WAMS場景時序 數據應用需求。
[0036]雖然本發明已以較佳實施例公開如上,但實施例并不是用來限定本發明的。在不 脫離本發明之精神和范圍內,所做的任何等效變化或潤飾,同樣屬于本發明之保護范圍。因 此本發明的保護范圍應當以本申請的權利要求所界定的內容為標準。
【主權項】
1. 一種基于智能電網WAMS的時序大數據存儲方法,其特征在于,包括以下步驟: 1) 根據WAMS場景建立相應的鍵-值存儲模型作為數據模型; 2) 以每秒鐘每一個測點創建一個存儲單元,存儲單元的長度根據WAMS數據的采樣頻率 設置; 3) 在數據加載過程中采用預寫日志技術,首先將數據以日志形式順序寫入磁盤,然后 再將數據加載至內存進行存儲操作; 4) 對數據中值進行壓縮,而鍵保持不變; 5 )根據加載數據的規模、加載頻率,對數據進行分庫。2. 根據權利要求1所述的基于智能電網WAMS的時序大數據存儲方法,其特征在于,所述 鍵-值存儲模型,其鍵的結構為〈時間戳,測點id>,值的結構為〈質量碼數組,數據值數組〉, 表示如下: Key=<timestamp, id> Value=<status[UnitLength], valueItem[UnitLength]> 其中,Key代表鍵,time stamp,代表時間戳,Value代表值,UnitLength代表存儲單元的 長度,8丨81:118[1]11;[讓611〖1:11]為質量碼數組,¥311161丨6111[1]11;[讓611〖1:11]為數據值數組; Key的排序方式為:以時間戳優先排序,其次按測點id排序,時間戳與測點id均采用增 序排序; Value的質量碼數組與數據值數組采用一一對應關系,且質量碼數據與數據值數組的 數據元素按照時間順序存儲。
【專利摘要】本發明公開了一種基于智能電網WAMS的時序大數據存儲方法,屬于實時數據庫技術領域。本發明根據WAMS場景建立相應的鍵-值存儲模型作為數據模型,以每秒鐘每一個測點創建一個存儲單元,存儲單元的長度根據WAMS數據的采樣頻率設置,在數據加載過程中采用預寫日志技術,對數據中值進行壓縮,而鍵保持不變,根據加載數據的規模、加載頻率,對數據進行分庫。本發明能夠滿足于智能電網WAMS場景的時序大數據快速加載、查詢,具有很強的高可靠性。
【IPC分類】G06F17/30
【公開號】CN105574074
【申請號】CN201510819767
【發明人】王遠, 蔣英明, 鄭曉露, 周淳, 粟勇, 史英杰, 袁軍, 吳鵬, 陳亮, 陳立宇, 朱月梅
【申請人】江蘇瑞中數據股份有限公司
【公開日】2016年5月11日
【申請日】2015年11月23日