摘 要:隨著電力氣象相關(guān)系統(tǒng)規(guī)模的不斷擴(kuò)大,數(shù)據(jù)存儲管理變得越來越復(fù)雜,傳統(tǒng)的單服務(wù)器數(shù)據(jù)存儲方式已經(jīng)無法滿足管理者和用戶對系統(tǒng)高可用性、高可靠性的需求,因此,提出一種新型的數(shù)據(jù)存儲優(yōu)化方案變得十分必要。
關(guān)鍵詞:大數(shù)據(jù)Hadoop平臺數(shù)據(jù)存儲;存儲優(yōu)化方案;電力氣象
中圖分類號:TP311.13 文獻(xiàn)標(biāo)識碼:A文章編號:2096-4706(2018)01-0155-04
An Optimization Scheme for Data Storage of Power Meteorological System
GAO Yang1,LI Zhe1,YUAN Sikun1,SHANG Bingbing1,ZHANG Xiaofei2
(1.Henan EPRI Hi Tech Group Co.,Ltd.,Zhengzhou 450052,China;2.Henan Electric Power Company of State Network Power Science Research Institute,Zhengzhou 450052,China)
Abstract:With the development of power system related meteorological scale expanding,data storage management becomes more and more complicated,the traditional single server data storage has been unable to meet the managers and users,the demand for high reliability,the system can therefore become very necessary to put forward a new data storage optimization scheme.
Keywords:big data Hadoop platform data storage;storage optimization scheme; power weather
1 背景分析
近年來,隨著電子計算機(jī)和物聯(lián)網(wǎng)的迅速發(fā)展,我國電網(wǎng)建設(shè)進(jìn)入了以特高壓和智能電網(wǎng)為特征的全新發(fā)展階段,日益擴(kuò)大的電網(wǎng)規(guī)模,不斷增加的電網(wǎng)容量、日趨復(fù)雜的電網(wǎng)結(jié)構(gòu)、逐漸增大的地理跨度,使電網(wǎng)生產(chǎn)遭受惡劣氣象條件和天氣現(xiàn)象的影響程度和影響強(qiáng)度也隨之增加。總體來看,近些年我國50%以上的輸電線路故障是由于惡劣天氣導(dǎo)致,如果電網(wǎng)運檢、運維決策人員可以提前得到強(qiáng)對流預(yù)警信息,對易受災(zāi)害線路進(jìn)行防范控制,就可以有效地減少氣象災(zāi)害對電網(wǎng)的破壞。因此,研究氣象預(yù)警,尤其是極端天氣對電網(wǎng)輸電線路影響有著十分重大的意義,電力氣象相關(guān)系統(tǒng)應(yīng)運而生,其中包括電力氣象預(yù)警系統(tǒng)、架空輸電線智能預(yù)警系統(tǒng)、舞動預(yù)警中心系統(tǒng)等。
隨著這些系統(tǒng)規(guī)模的不斷擴(kuò)大,隨之而來大規(guī)模電力數(shù)據(jù)、氣象數(shù)據(jù)及日志數(shù)據(jù)等數(shù)據(jù)構(gòu)成了“電力氣象大數(shù)據(jù)”。這些極速涌現(xiàn)的數(shù)據(jù)有著極高的價值,卻也給系統(tǒng)數(shù)據(jù)存儲設(shè)計帶來了挑戰(zhàn)。當(dāng)前,傳統(tǒng)的單服務(wù)器數(shù)據(jù)存儲方式已經(jīng)無法滿足用戶和管理者對系統(tǒng)高可用性、高可靠性的需求。多個獨立且各不相同的歸檔系統(tǒng),使維護(hù)和管理任務(wù)大大的增加。因此,提出一種新型的電力氣象數(shù)據(jù)存儲優(yōu)化方案就變得十分必要。
2 系統(tǒng)數(shù)據(jù)存儲存在的問題
為了描述方便,以下將電力氣象相關(guān)系統(tǒng)數(shù)據(jù)統(tǒng)稱為電力氣象數(shù)據(jù)。電力氣象數(shù)據(jù)按照組織方式可以分為兩種。第一種存儲在Oracle數(shù)據(jù)庫中,主要是結(jié)構(gòu)化的關(guān)系數(shù)據(jù)以及以blog方式存儲的大字段數(shù)據(jù);第二類數(shù)據(jù)存儲在磁盤文件系統(tǒng)中,主要是從第三方組織(系統(tǒng))采集(提?。┑脑紨?shù)據(jù)文件以及計算服務(wù)生成的非結(jié)構(gòu)化數(shù)據(jù)文件。以上兩類數(shù)據(jù)都存在以下問題:
2.1 空間擴(kuò)展性較差。
電力氣象相關(guān)系統(tǒng)的結(jié)構(gòu)化數(shù)據(jù)倉庫是由Oracle實例來執(zhí)行的,由于這些數(shù)據(jù)庫服務(wù)器都是單獨存放的,一旦表空間不足,只有通過添加硬盤或更換服務(wù)器的方式對表空間進(jìn)行擴(kuò)容。這種擴(kuò)展方式不僅價格昂貴,需要將原有數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行備份和數(shù)據(jù)同步,時間成本、安全成本和人工成本都比較高,且無法保證保證系統(tǒng)正常運行。
2.2 數(shù)據(jù)讀取性能問題。
一方面,由于當(dāng)前幾乎所有非結(jié)構(gòu)化數(shù)據(jù)均存儲在Oracle數(shù)據(jù)庫中,許多氣象產(chǎn)品如精細(xì)化數(shù)值預(yù)報數(shù)據(jù)由于數(shù)據(jù)規(guī)模過大(通常達(dá)到上億數(shù)據(jù)量),即使通過添加索引、分表和分區(qū)等方法也幾乎無法做到數(shù)據(jù)的快速存儲和讀取。另一方面,傳統(tǒng)的Oracle數(shù)據(jù)庫對數(shù)據(jù)庫事務(wù)一致性都有要求,滿足這種一致性要求是以降低部分?jǐn)?shù)據(jù)庫讀取性能為代價的,而在電力氣象數(shù)據(jù)挖掘和分析過程中,不需要數(shù)據(jù)庫事務(wù)特征和對讀一致性的嚴(yán)格要求。
2.3 數(shù)據(jù)安全性無法得到保障
由于數(shù)據(jù)庫服務(wù)器和文件服務(wù)器都是單獨存放的,一旦服務(wù)器出現(xiàn)宕機(jī)等故障,系統(tǒng)數(shù)據(jù)就面臨丟失的風(fēng)險。其次,數(shù)據(jù)庫一旦出現(xiàn)故障,一般必須由專門的DBA進(jìn)行數(shù)據(jù)恢復(fù),一旦操作人員有錯誤操作,數(shù)據(jù)就有無法恢復(fù)的風(fēng)險。
3 系統(tǒng)數(shù)據(jù)優(yōu)化方案
分布式存儲平臺的提出尤其是Hadoop存儲架構(gòu)的出現(xiàn)為電力氣象大數(shù)據(jù)存儲提供了即時可行解決方案,同時也為大數(shù)據(jù)分析、挖掘提供了有效便捷的方式。
依據(jù)Hadoop平臺存儲規(guī)范,對于結(jié)構(gòu)化數(shù)據(jù)和非結(jié)構(gòu)化數(shù)據(jù)采用不同的解決策略。存儲在Oracle數(shù)據(jù)庫中的結(jié)構(gòu)化數(shù)據(jù),根據(jù)數(shù)據(jù)表大小與使用場景進(jìn)行分類,如果數(shù)據(jù)表巨大或者表數(shù)據(jù)需進(jìn)行進(jìn)一步的挖掘分析,則將數(shù)據(jù)遷移存儲在基于Hadoop的Hbase數(shù)據(jù)庫中進(jìn)行存儲,而對于數(shù)據(jù)量不大或強(qiáng)業(yè)務(wù)關(guān)系表數(shù)據(jù)則保持現(xiàn)有Oracle數(shù)據(jù)庫存儲方式進(jìn)行存儲。
利用關(guān)系型數(shù)據(jù)庫對于復(fù)雜查詢和事務(wù)支持的特點與非關(guān)系型數(shù)據(jù)庫的高性能和高可擴(kuò)展性特點相結(jié)合存儲的方式不僅滿足了系統(tǒng)業(yè)務(wù)的需求,同時也滿足了數(shù)據(jù)管理者對數(shù)據(jù)挖掘、分析和快速存取的需求。對于非結(jié)構(gòu)化數(shù)據(jù)則直接存儲在基于Hadoop平臺的分布式文件系統(tǒng)(Hadoop distributed file system,HDFS)。下圖為預(yù)設(shè)的數(shù)據(jù)存儲流程,其中虛線框內(nèi)的部分為大數(shù)據(jù)平臺的功能模塊,如圖1所示。
3.1 結(jié)構(gòu)化數(shù)據(jù)優(yōu)化方案
3.1.1 數(shù)據(jù)現(xiàn)狀
在Oracle數(shù)據(jù)庫中,我們將每年增長500萬條記錄以下的數(shù)據(jù)表稱為一般表數(shù)據(jù),反之,對于每年增長500萬以上條記錄的數(shù)據(jù)稱為大巨量表數(shù)據(jù)。對于一般表數(shù)據(jù),由于其大小總量有限,因此可以繼續(xù)存儲在Oracle數(shù)據(jù)庫中。大巨量表數(shù)據(jù),大致包含氣象雷達(dá)和自動站數(shù)據(jù)、精細(xì)化數(shù)值預(yù)報數(shù)據(jù),以上幾類數(shù)據(jù)擁有以下幾種主要特征:
(1)從外部系統(tǒng)(組織)獲取原始數(shù)據(jù)文件,傳輸至電網(wǎng)安全I(xiàn)II區(qū)進(jìn)行數(shù)據(jù)解析,并轉(zhuǎn)存到Oracle數(shù)據(jù)庫表中。所以,既有原始數(shù)據(jù)文件,同時又有對應(yīng)的關(guān)系數(shù)據(jù)表。
(2)數(shù)據(jù)規(guī)模龐大并持續(xù)增長,對失效數(shù)據(jù)的周期沒有明確的依據(jù)和標(biāo)準(zhǔn),因而不能清除舊數(shù)據(jù)或者轉(zhuǎn)移舊數(shù)據(jù)。
(3)實時訪問性要求較高且每批次需讀取的數(shù)據(jù)記錄量較大。
(4)存儲在Oracle中的表數(shù)據(jù)獨立性較強(qiáng),與其他數(shù)據(jù)表的關(guān)聯(lián)查詢場景涉及較少。
(5)距離當(dāng)前時間最新批次的數(shù)據(jù)使用頻率較高,歷史數(shù)據(jù)使用頻率很低。
3.1.2 大表數(shù)據(jù)存儲與優(yōu)化方案
將以上各類海量結(jié)構(gòu)化數(shù)據(jù),逐步從Oracle中遷移到HBase中,采用HBase數(shù)據(jù)表進(jìn)行存儲。在數(shù)據(jù)遷移過程中,對關(guān)系數(shù)據(jù)結(jié)構(gòu)進(jìn)行業(yè)務(wù)重構(gòu),剔除無效無用數(shù)據(jù)列或者進(jìn)行表的拆分處理。具體實施方案如下:
第一步,創(chuàng)建對應(yīng)的HBase命名空間、數(shù)據(jù)表。根據(jù)具體業(yè)務(wù)設(shè)計HBase行鍵(Rowkey),一般設(shè)計思路為站點編號+時間+屬性,如有特殊業(yè)務(wù)需求可以特殊設(shè)計。
第二步,升級電力氣象數(shù)據(jù)解析服務(wù),在將數(shù)據(jù)存儲到Oracle數(shù)據(jù)庫的基礎(chǔ)上,增加大數(shù)據(jù)存儲通道,按照HBase行健設(shè)計組織數(shù)據(jù),調(diào)用HBase存儲接口,將各類數(shù)據(jù)實時寫入HBase對應(yīng)表中。
第三步,編寫Oracle歷史數(shù)據(jù)轉(zhuǎn)存HBase服務(wù)程序。確定升級時間點,譬如定于2016-08-01啟用升級版的數(shù)據(jù)解析服務(wù),則將2016-08-01之前的歷史數(shù)據(jù)轉(zhuǎn)存到HBase中。
第四步,Oracle數(shù)據(jù)庫與HBase數(shù)據(jù)庫并行運行一段時間,待HBase應(yīng)用成熟并穩(wěn)定下來后,Oracle庫只保留7天的歷史數(shù)據(jù),刪除7天之前的歷史數(shù)據(jù)。
3.2 非結(jié)構(gòu)化數(shù)據(jù)優(yōu)化方案
3.2.1 數(shù)據(jù)現(xiàn)狀
這里的非結(jié)構(gòu)化數(shù)據(jù),是相對于電力氣象Oracle中的數(shù)據(jù)而言,泛指存儲在磁盤文件系統(tǒng)中的數(shù)據(jù)文件,包括采集自第三方系統(tǒng)(組織)的原始數(shù)據(jù)文件、各類氣象模型生成的中間結(jié)果數(shù)據(jù)文件和相關(guān)日志等。
電力氣象系統(tǒng)的前臺應(yīng)用,大部分都是基于Oracle中的結(jié)構(gòu)化數(shù)據(jù),與這些所謂的非結(jié)構(gòu)化數(shù)據(jù)文件關(guān)聯(lián)性較弱,僅僅涉及部分小體積的純文本文件、圖片(前臺展示)等;其他大部分?jǐn)?shù)據(jù)文件,在經(jīng)過初次的數(shù)據(jù)解析和計算加工后,都只是作為一種存儲策略保存在服務(wù)器指定磁盤目錄中。
這部分?jǐn)?shù)據(jù)普遍具有如下幾種特征:
(1)原始文件類型繁多、內(nèi)容結(jié)構(gòu)復(fù)雜。
(2)文件體積較小,最大50MB左右。
(3)文件數(shù)量較多,一般按照時間順序遞增。
(4)文件按照業(yè)務(wù)類型分目錄存儲。
3.2.2 存儲策略
對以上非結(jié)構(gòu)化文件的優(yōu)化處理,由于極少涉及讀寫性能方面的要求,所以只是在存儲策略方面的優(yōu)化??梢詫⒁陨戏墙Y(jié)構(gòu)化文件轉(zhuǎn)存到基于Hadoop平臺的HDFS系統(tǒng)中,利用分布式文件系統(tǒng)的分布式存儲和多副本機(jī)制,確保數(shù)據(jù)文件的存儲安全。
另外,Hadoop官方并不建議在HDFS中存儲大量的小文件,因為這將占用更多的元數(shù)據(jù)存儲空間,而電力氣象的數(shù)據(jù)文件普遍比較小且數(shù)量多,所以必須在轉(zhuǎn)儲到HDFS系統(tǒng)之前進(jìn)行文件的合并或者打包處理。
3.2.3 設(shè)計方案
本章節(jié)我們將詳細(xì)講述如何構(gòu)建一個通用的“本地文件定時同步HDFS服務(wù)”,以便于將本地數(shù)據(jù)文件導(dǎo)入到HDFS系統(tǒng)中,此服務(wù)具備以下幾大功能:
(1)HDFS文件瀏覽器。在操作界面和功能上類似于windows的資源管理器,可實現(xiàn)創(chuàng)建目錄文件、文件重命名、刪除目錄文件、上傳本地目錄文件、下載HDFS文件、移動HDFS文件、HDFS文件查看、HDFS目錄導(dǎo)航樹、HDFS目錄文件列表、HDFS文件屬性展示等操作。對于上傳下載較大體積的文件時,必須有進(jìn)度提醒機(jī)制。
(2)可配置的本地文件定時同步到HDFS機(jī)制。利用定時輪詢機(jī)制,定時掃描本地目錄,將新文件上傳到HDFS系統(tǒng)中??膳渲枚鄠€監(jiān)測掃描機(jī)制,之間互不干擾。
(3)HDFS目錄授權(quán)管理。基于linux系統(tǒng)的目錄文件權(quán)限分配機(jī)制,可進(jìn)行HDFS目錄所屬用戶、用戶組權(quán)限分配調(diào)整。
(4)系統(tǒng)安全管理。包括系統(tǒng)登錄驗證、用戶角色功能分配等,以及HDFS文件瀏覽器根目錄的配置管理,譬如系統(tǒng)管理員的根目錄為HDFS根目錄,普通用戶的根目錄則為HDFS系統(tǒng)的某個子目錄。
3.2.4 目錄映射機(jī)制
圖2為“本地目錄與HDFS系統(tǒng)目錄之間的映射”示例圖,在原樣復(fù)制本地目錄結(jié)構(gòu)的基礎(chǔ)上,可以改變子目錄的層級結(jié)構(gòu)、重命名子目錄、目錄內(nèi)文件合并等特殊操作。至于目錄內(nèi)文件的重命名操作,目前暫時不考慮。
3.2.5 文件同步方案
為了避免重復(fù)上傳本地文件,在掃描時需要界定出那些是未上傳過的新文件,目前有兩種解決方案。
(1)方案一。本地文件上傳到HDFS后,刪除本地文件或者將其移動到其他磁盤目錄中,這樣可保證服務(wù)每次掃描到的數(shù)據(jù)文件都是新文件。此種解決方案的優(yōu)點是可快速掃描出新文件,不需要維護(hù)MD5信息;缺點是需要刪除或者移動原始文件。
(2)方案二。針對每個同步方案,構(gòu)建一個已上傳文件的MD5信息列表文件,文件名稱為:同步方案編碼-md5.txt,譬如電力氣象基站原數(shù)據(jù)同步服務(wù)的MD5文件名稱為sync-weather-data-md5.txt。系統(tǒng)啟動時,將每個同步方案的MD5信息加載到內(nèi)存中,掃描到本地文件時,先獲取此文件的MD5信息,然后在MD5列表中檢查是否存在;如果不存在,說明此文件沒有上傳過,可視為新文件,則將其上傳到HDFS系統(tǒng)中,同時將MD5信息加入到MD5列表中;如果存在,則說明此文件之前已經(jīng)上傳過,可跳過繼續(xù)掃描其它文件。每次掃描結(jié)束后,將內(nèi)存中的MD5信息列表序列化到本地磁盤文件中。這種解決方案的優(yōu)點是無需刪除或移動原始文件,不足是每次都需要掃描很多的文件,并且需要獲取文件的MD5信息,導(dǎo)致掃描和同步操作比較耗時。
(3)結(jié)論。選擇方案時,需要考慮當(dāng)前系統(tǒng)剩余空間大小與是否可以刪除或移動原始文件。由于電力氣象系統(tǒng)許多原始數(shù)據(jù)前臺仍需使用,且當(dāng)前服務(wù)器還有一定余量,因此選擇方案二。
4 結(jié) 論
本文給出了一個適合電力氣象大數(shù)據(jù)的存儲優(yōu)化解決方案,有效地保障了電力氣象系統(tǒng)的高可用性,同時提升了電力氣象數(shù)據(jù)存儲和管理便利性,為電力氣象數(shù)據(jù)挖掘分析提供了支持和保障。
參考文獻(xiàn):
[1] 陳超.大數(shù)據(jù)背景下電力行業(yè)數(shù)據(jù)應(yīng)用研究 [J].現(xiàn)代電子技術(shù),2013(24):8-11+14.
[2] 李皎.大數(shù)據(jù)時代到來對電力行業(yè)發(fā)展提出新要求 [J].華北電業(yè),2012(4):82-83.
[3] 衡星辰,周力.分布式技術(shù)在電力大數(shù)據(jù)高性能處理中的應(yīng)用 [J].電力信息與通信技術(shù),2013(9).
[4] 王淑祥.基于Hadoop的海量電能質(zhì)量監(jiān)測數(shù)據(jù)分析平臺研究 [J].信息科技,2013(13):79-80.
作者簡介:高陽(1988.11-),男,漢族,河南洛陽人,軟件設(shè)計師,工程師,學(xué)士。研究方向:電力信息化、軟件設(shè)計;李哲(1981.11-),男,漢族,河南南陽人,監(jiān)測分析師主任,高級工程師,學(xué)士。研究方向:電力信息化,電力氣象;苑司坤(1982.02-),男,漢族,河南商丘人,項目經(jīng)理、軟件設(shè)計師,工程師,學(xué)士。研究方向:電力信息化、軟件設(shè)計;商兵兵(1981.06-),男,漢族,河南平頂山人,軟件工程師,工程師,學(xué)士。研究方向:電力信息化、大數(shù)據(jù);張小斐(1976.07-),男,漢族,河南南陽人,狀態(tài)信息室主任,高級工程師,雙學(xué)士。研究方向:電力信息化、大數(shù)據(jù)。