陶曉峰,陳方周
(國網(wǎng)電力科學(xué)研究院,江蘇南京210003)
用電信息采集系統(tǒng)中主要采用采集終端匯總電表數(shù)據(jù)再上送主站的采集模式[1],其中采集終端和系統(tǒng)主站之間主要采用GPRS無線通信方式[2]。目前由于地域等原因會造成無線通信信號不穩(wěn)定,導(dǎo)致周期采集任務(wù)中有些任務(wù)會執(zhí)行失敗,造成部分?jǐn)?shù)據(jù)缺失。為了保證系統(tǒng)采集數(shù)據(jù)的成功率和完整率[3],需要引入數(shù)據(jù)補采機制作為對自動周期定時采集的一種必要補充。為了減少大型數(shù)據(jù)庫I/O操作和提高檢索效率,文中引入了一種基于緩存的海量數(shù)據(jù)的補采策略,通過在緩存中保存數(shù)據(jù)采集成功與否的狀態(tài)標(biāo)識,直接遍歷緩存數(shù)據(jù),有效減少對數(shù)據(jù)庫的檢索壓力,通過制定延時同步回寫數(shù)據(jù)庫機制對采集成功標(biāo)識進(jìn)行持久化保存。
數(shù)據(jù)補采策略主要由補采服務(wù)、分布式緩存、采集服務(wù)3個服務(wù)子模塊組成。補采服務(wù)主要負(fù)責(zé)根據(jù)設(shè)定的采集任務(wù)將每個數(shù)據(jù)采集狀態(tài)在分布式緩存中進(jìn)行初始化,根據(jù)指定的采集任務(wù)模塊檢索緩存中的數(shù)據(jù)采集狀態(tài)發(fā)起補采任務(wù),任務(wù)保存在分布式緩存的任務(wù)隊列,采集機獲取補采任務(wù)進(jìn)行執(zhí)行,通過解析數(shù)據(jù)報文,采用數(shù)據(jù)包標(biāo)記(DPM)方法對采集數(shù)據(jù)包進(jìn)行快速解析,獲取數(shù)據(jù)信息,對采集成功的數(shù)據(jù)在分布式緩存中進(jìn)行標(biāo)記。補采流程如圖1所示。
在數(shù)據(jù)規(guī)模越來越大的情況下,采用遍歷數(shù)據(jù)庫判斷數(shù)據(jù)缺失的方式會增加數(shù)據(jù)庫I/O的負(fù)載,而采用對系統(tǒng)中的數(shù)據(jù)采集項進(jìn)行內(nèi)存初始化打點設(shè)計方案,則可減少數(shù)據(jù)庫的直接操作。
圖1數(shù)據(jù)補采流程
哈希技術(shù)在信息系統(tǒng)的數(shù)據(jù)存儲與訪問中占有重要地位,它把關(guān)鍵詞直接映射為存儲地址,達(dá)到快速尋址的目的。根據(jù)用電采集系統(tǒng)的物理結(jié)構(gòu),一個采集設(shè)備下負(fù)責(zé)收集幾百到上千不等的用戶電表數(shù)據(jù),數(shù)據(jù)采集狀態(tài)標(biāo)識采用位打點標(biāo)記法,系統(tǒng)中通過數(shù)據(jù)時標(biāo)Time、測量點號Pn和數(shù)據(jù)項編碼Fn共同組成數(shù)據(jù)信息的三元組作為關(guān)鍵詞Key;1個用戶電表的數(shù)據(jù)狀態(tài)代表1個數(shù)據(jù)位,數(shù)據(jù)位值0代表沒采集成功,1代表采集成功,將所有用戶電表的數(shù)據(jù)采集狀態(tài)按測量點號Pn組合成一個狀態(tài)位字符串作為值value,將采集設(shè)備的三元組信息關(guān)鍵詞Key和狀態(tài)位字符串值value進(jìn)行內(nèi)存映射成哈希表。
根據(jù)數(shù)據(jù)分布和哈希函數(shù)的效率選擇哈希函數(shù),文中采用乘法哈希函數(shù):
式中:H(m)為哈希運算函數(shù);mi,pi分別為信息關(guān)鍵詞和狀態(tài)位值。此哈希函數(shù)利用乘法的不相關(guān)性[4],提高了檢索速度。
用電信息系統(tǒng)中數(shù)據(jù)的采集交互都是以數(shù)據(jù)包按照一定的協(xié)議格式傳輸?shù)模珼PM法的主要思想是數(shù)據(jù)包發(fā)送給采集服務(wù)器后,由數(shù)據(jù)包解析器將接收到的數(shù)據(jù)包中直接分離出數(shù)據(jù)標(biāo)識信息[5],對數(shù)據(jù)格式和詳細(xì)的數(shù)據(jù)明細(xì)采用弱化處理方式提高解析效率。數(shù)據(jù)包的格式如圖2所示,標(biāo)記服務(wù)通過從數(shù)據(jù)包中提取出數(shù)據(jù)單元標(biāo)識,DPM將解析出數(shù)據(jù)時間、測量點號、數(shù)據(jù)項編碼項作為數(shù)據(jù)信息的三元組,根據(jù)三元組信息組合成Key,根據(jù)上述乘法哈希函數(shù)可以快速定位數(shù)據(jù)采集狀態(tài)標(biāo)記。
圖2數(shù)據(jù)報文信息域
采集終端下所有用戶的數(shù)據(jù)采集狀態(tài),根據(jù)采集任務(wù)模板預(yù)先初始化生成狀態(tài)位字符,狀態(tài)位通過位標(biāo)識符都標(biāo)記在了狀態(tài)字符串內(nèi),將這些狀態(tài)位字符保存在分布式緩存中[6],采集成功的數(shù)據(jù)會更新相對應(yīng)的狀態(tài)位字符,補采服務(wù)定期遍歷每個終端的狀態(tài)字符串,將狀態(tài)位轉(zhuǎn)化為數(shù)組形式,可以一次通過檢索出狀態(tài)位是0的數(shù)組索引下標(biāo)值,此下標(biāo)值代表了數(shù)據(jù)信息的三元組中的Pn值,根據(jù)Pn值可以定位到唯一的用戶電表。根據(jù)這些信息生成不同的補采任務(wù),前置模塊可以并發(fā)執(zhí)行補采任務(wù)。
對于保存在內(nèi)存中的采集狀態(tài)是一種暫態(tài)的狀態(tài),當(dāng)程序重新初始化時就會丟失,因此需要對這些狀態(tài)進(jìn)行持久化保存,在數(shù)據(jù)庫中根據(jù)Map的Key和Value設(shè)計對應(yīng)的數(shù)據(jù)表,以數(shù)據(jù)信息三元組中的3個屬性作為聯(lián)合主鍵,狀態(tài)屬性為Varchar2屬性,采用延遲回寫機制減少對數(shù)據(jù)庫的操作[7]。
對于GPRS無線通信方式,特別是信號覆蓋差的地方其在線時間很不穩(wěn)定,通過上線即補采策略可以在最大程度上消除信號不穩(wěn)定帶來的影響,其原理是當(dāng)終端上線后觸發(fā)一個上線事件給補采服務(wù),補采服務(wù)監(jiān)聽到上線事件后檢索內(nèi)存中的采集狀態(tài),實時地生成補采任務(wù)[8]。補采流程如圖3所示。
圖3上線即補采流程
設(shè)定周期補采策略時根據(jù)系統(tǒng)和通信信道的空閑程度可以調(diào)整補采的策略,通過靈活定義正則表達(dá)式(一種文本模式,包括普通字符和特殊字符)來設(shè)定周期補采的時間和補采頻率,對一些優(yōu)先級高的任務(wù)可以提高補采頻率實現(xiàn)提升采集成功率的目標(biāo)。
該補采策略在青海、新疆、江西、安徽等多個省級集中部署的用電信息采集系統(tǒng)中進(jìn)行了實際運用,實踐證明對系統(tǒng)提高采集成功率有明顯效果,通過在一天之中的多次補采,采集成功率至少提高了5%以上。如表1所示。
表1補采策略應(yīng)用和采集成功率關(guān)系表
該補采策略針對智能用電信息采集中數(shù)據(jù)量大、通信不是很穩(wěn)定的特點設(shè)計的,實踐證明該模塊對用電采集系統(tǒng)提高采集成功率有明顯效果,目前已經(jīng)成為系統(tǒng)中必不可少的關(guān)鍵模塊。
[1]李衛(wèi)良,田 偉,王曉丹.以AMI為核心的智能配用電技術(shù)體系研究[J].江蘇電機工程,2011,30(3):1-6.
[2]Q/GDW378.1—2009電力用戶用電信息采集系統(tǒng)設(shè)計導(dǎo)則:主站軟件設(shè)計導(dǎo)則[S].北京:中國電力出版社,2009.
[3]Q/GDW376.1—2009電力用戶用電信息采集系統(tǒng)通信協(xié)議:主站與采集終端通信協(xié)議[S].北京:中國電力出版社,2009.
[4]CORMEN T H,LEISERSON C E,RIVEST R L,et al.Introduc-tion to Algorithms.Third Edition.Cambridge,Massachusetts London,England :The MIT Press,,2009:253-285.
[5]閻 冬,王玉龍,蘇 森,等.基于協(xié)作交互的概率性數(shù)據(jù)包標(biāo)記溯源方法[J].北京郵電大學(xué)學(xué)報,2012,35(1):51-54.
[6]周功業(yè),吳偉杰,陳進(jìn)才.一種基于對象存儲系統(tǒng)的元數(shù)據(jù)緩存實現(xiàn)方法[J].計算機科學(xué),2007,34(10):146-148.
[7]盧成均.緩存機制及其在數(shù)據(jù)存取層中的應(yīng)用模型研究[J].計算機應(yīng)用與軟件, 2008,25(12):172-174.
[8]錢立軍,李新家.用電信息采集系統(tǒng)中數(shù)據(jù)比對功能的實現(xiàn)及應(yīng)用[J].江蘇電機工程,2013,32(2):64-65.