欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于環(huán)境空氣質(zhì)量監(jiān)測(cè)的大數(shù)據(jù)存儲(chǔ)模型的制作方法

文檔序號(hào):11155211閱讀:561來源:國知局
本發(fā)明涉及數(shù)據(jù)存儲(chǔ)模型,尤其涉及一種用于環(huán)境空氣質(zhì)量監(jiān)測(cè)的大數(shù)據(jù)存儲(chǔ)模型。
背景技術(shù)
::城市空氣質(zhì)量的監(jiān)測(cè)由自動(dòng)化監(jiān)測(cè)站完成,國家環(huán)境監(jiān)測(cè)總站于2012年啟動(dòng)了全國自動(dòng)化空氣站的聯(lián)網(wǎng)工作,到2014年底,將實(shí)現(xiàn)全國340個(gè)城市,1456個(gè)國控自動(dòng)化站的聯(lián)網(wǎng),同時(shí)在原來監(jiān)測(cè)項(xiàng)目SO2,NO2,PM10的基礎(chǔ)上,增加CO,O3,PM2.5,能見度,城市環(huán)境攝影系統(tǒng)的實(shí)時(shí)監(jiān)測(cè)。用新的空氣質(zhì)量指數(shù)(AQI)取代空氣污染指數(shù)(API)進(jìn)行空氣質(zhì)量實(shí)時(shí)發(fā)布,并發(fā)布了一系列針對(duì)儀器監(jiān)測(cè)、數(shù)據(jù)計(jì)算、實(shí)時(shí)數(shù)據(jù)發(fā)布、數(shù)據(jù)傳輸、質(zhì)量評(píng)價(jià)的標(biāo)準(zhǔn)進(jìn)行指導(dǎo)??諝赓|(zhì)量自動(dòng)化監(jiān)測(cè)站在實(shí)時(shí)監(jiān)測(cè)的過程中,根據(jù)監(jiān)測(cè)儀器的頻次,需要記錄大量的實(shí)時(shí)數(shù)據(jù),若按每分鐘記錄一個(gè)實(shí)時(shí)數(shù)據(jù)計(jì)算,一個(gè)自動(dòng)化監(jiān)測(cè)站點(diǎn)一天記錄的數(shù)據(jù)條數(shù)為(污染物監(jiān)測(cè)項(xiàng)目9個(gè)+氣象5參數(shù))*60*24=20160,由于NO2的計(jì)算需要記錄總氮氧化物NOx及NO,然后由NOx-NO得到,故需要記錄9個(gè)監(jiān)測(cè)項(xiàng)目的實(shí)時(shí)值。以湖北省環(huán)境監(jiān)測(cè)總站管轄的102個(gè)自動(dòng)化站為例,1年的實(shí)時(shí)數(shù)據(jù)量為20160*102*365=750556800,每條實(shí)時(shí)數(shù)據(jù)記錄均為結(jié)構(gòu)化數(shù)據(jù)包括地區(qū)碼、站點(diǎn)編碼、時(shí)間戳、記錄時(shí)間、記錄值、單位編碼、標(biāo)記位、狀態(tài)量等數(shù)據(jù)字段。在實(shí)時(shí)數(shù)據(jù)基礎(chǔ)上,還需要計(jì)算站點(diǎn)及城區(qū)的小時(shí)、日均值數(shù)據(jù)及評(píng)價(jià),并存儲(chǔ)入庫。若使用現(xiàn)有的關(guān)系型數(shù)據(jù)庫,為提高數(shù)據(jù)的查詢效率,不能將如此海量的數(shù)據(jù)存儲(chǔ)在一個(gè)中心站數(shù)據(jù)庫中,只能采用分布式的存儲(chǔ)方法,將實(shí)時(shí)數(shù)據(jù)分散存放在前置的工控機(jī)數(shù)據(jù)庫中,中心站數(shù)據(jù)庫只存放小時(shí)、日均值數(shù)據(jù)及評(píng)價(jià)數(shù)據(jù),若需查詢某個(gè)自動(dòng)化站的實(shí)時(shí)數(shù)據(jù),只能通過內(nèi)部的VPN網(wǎng)絡(luò),連接到對(duì)應(yīng)的工控機(jī)數(shù)據(jù)庫進(jìn)行查詢,查詢效率低下,且無法對(duì)實(shí)時(shí)數(shù)據(jù)進(jìn)行集中管理?;贖adoop生態(tài)圈的大數(shù)據(jù)解決方案的研究為存儲(chǔ)和查詢海量空氣質(zhì)量監(jiān)測(cè)數(shù)據(jù)提供了新的思路,其中列式存儲(chǔ)數(shù)據(jù)庫是建立在Hadoop之上,是具有高可靠性、高性能、列存儲(chǔ)、可伸縮、實(shí)時(shí)讀寫特點(diǎn)的數(shù)據(jù)庫系統(tǒng),通過行鍵(rowkey)和主鍵的范圍來檢索數(shù)據(jù),能夠?yàn)楹A康臄?shù)據(jù)提供高性能的數(shù)據(jù)維護(hù)及查詢服務(wù)。如何將列式存儲(chǔ)數(shù)據(jù)庫應(yīng)用到無線傳感、氣象、智能電站等領(lǐng)域進(jìn)行數(shù)據(jù)存儲(chǔ),均有學(xué)者進(jìn)行了深入的研究。本發(fā)明提出了一個(gè)可用于環(huán)境空氣質(zhì)量監(jiān)測(cè)的大數(shù)據(jù)存儲(chǔ)模型,可有效的存儲(chǔ)海量的監(jiān)測(cè)數(shù)據(jù)并能有效的對(duì)數(shù)據(jù)進(jìn)行操作及查詢。技術(shù)實(shí)現(xiàn)要素:本發(fā)明要解決的技術(shù)問題在于針對(duì)現(xiàn)有技術(shù)中的缺陷,提供一種用于環(huán)境空氣質(zhì)量監(jiān)測(cè)的大數(shù)據(jù)存儲(chǔ)模型。本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:一種用于環(huán)境空氣質(zhì)量監(jiān)測(cè)的大數(shù)據(jù)存儲(chǔ)模型,所述大數(shù)據(jù)存儲(chǔ)模型包括:1)列存儲(chǔ)模式的數(shù)據(jù)表,數(shù)據(jù)列分別存儲(chǔ)實(shí)時(shí)監(jiān)測(cè)數(shù)據(jù)、小時(shí)均值數(shù)據(jù)及評(píng)價(jià)數(shù)據(jù)、日均值數(shù)據(jù)及評(píng)價(jià)數(shù)據(jù);其中,所述實(shí)時(shí)數(shù)據(jù)監(jiān)測(cè)列用于存儲(chǔ)空氣質(zhì)量監(jiān)測(cè)的各個(gè)污染物實(shí)時(shí)值;所述小時(shí)均值數(shù)據(jù)及評(píng)價(jià)數(shù)據(jù)用于存儲(chǔ)空氣質(zhì)量監(jiān)測(cè)的各個(gè)污染物的小時(shí)均值及評(píng)價(jià)數(shù)據(jù);小時(shí)均值數(shù)據(jù)為根據(jù)各個(gè)污染物的實(shí)時(shí)監(jiān)測(cè)數(shù)據(jù)值,結(jié)合標(biāo)記位,按環(huán)境監(jiān)測(cè)數(shù)據(jù)計(jì)算的相關(guān)國家標(biāo)準(zhǔn),計(jì)算獲得各個(gè)污染物的小時(shí)均值;所述小時(shí)均值數(shù)據(jù)的評(píng)價(jià)數(shù)據(jù)采用污染物濃度及空氣質(zhì)量分指數(shù);具體為根據(jù)小時(shí)均值計(jì)算每個(gè)污染物的分指數(shù)(IAQI);根據(jù)某個(gè)城市所轄的所有自動(dòng)化站的污染物小時(shí)均值,計(jì)算城區(qū)的各個(gè)污染物小時(shí)均值及分指數(shù);根據(jù)站點(diǎn)及城區(qū)的污染物小時(shí)均值計(jì)算站點(diǎn)及城區(qū)的AQI指數(shù)及評(píng)價(jià)數(shù)據(jù);所述日均值數(shù)據(jù)及評(píng)價(jià)數(shù)據(jù)用于存儲(chǔ)空氣質(zhì)量監(jiān)測(cè)的各個(gè)污染物的全天小時(shí)均值及評(píng)價(jià)數(shù)據(jù);所述根據(jù)各個(gè)污染物的全天小時(shí)均值,結(jié)合標(biāo)記位,按環(huán)境監(jiān)測(cè)數(shù)據(jù)計(jì)算的相關(guān)國家標(biāo)準(zhǔn),計(jì)算各個(gè)污染物的日均值,根據(jù)日均值計(jì)算每個(gè)污染物的分指數(shù)(IAQI);根據(jù)某個(gè)城市所轄的所有自動(dòng)化站的污染物日均值,計(jì)算城區(qū)的各個(gè)污染物日均值及分指數(shù);根據(jù)站點(diǎn)及城區(qū)的污染物日均值計(jì)算站點(diǎn)及城區(qū)的AQI指數(shù)及評(píng)價(jià)數(shù)據(jù);2)實(shí)時(shí)數(shù)據(jù)數(shù)據(jù)列的行鍵;實(shí)時(shí)數(shù)據(jù)數(shù)據(jù)列的行鍵設(shè)計(jì)如下:地區(qū)編碼-站點(diǎn)編碼-當(dāng)前小時(shí);其中實(shí)時(shí)數(shù)據(jù)監(jiān)測(cè)列對(duì)應(yīng)的站點(diǎn)編碼設(shè)計(jì)為字符SS+地區(qū)編碼+站點(diǎn)編號(hào);小時(shí)均值及評(píng)價(jià)數(shù)據(jù)列的行鍵設(shè)計(jì)如下:地區(qū)編碼-站點(diǎn)編碼-當(dāng)前小時(shí);其中小時(shí)均值數(shù)據(jù)對(duì)應(yīng)的城區(qū)的站點(diǎn)編碼統(tǒng)一設(shè)置為SS+地區(qū)編碼+999;日均值及評(píng)價(jià)數(shù)據(jù)列的行鍵設(shè)計(jì)為:地區(qū)編碼-站點(diǎn)編碼-當(dāng)前日(YYYYMMDD);其中日均值數(shù)據(jù)對(duì)應(yīng)的城區(qū)的站點(diǎn)編碼統(tǒng)一設(shè)置為SS+地區(qū)編碼+999。按上述方案,所述實(shí)時(shí)數(shù)據(jù)監(jiān)測(cè)列中實(shí)時(shí)值寫入的格式為{值:單位:標(biāo)記位}。按上述方案,所述小時(shí)均值數(shù)據(jù)及評(píng)價(jià)數(shù)據(jù)中小時(shí)均值的寫入格式為{值:標(biāo)記位}。按上述方案,所述實(shí)時(shí)數(shù)據(jù)監(jiān)測(cè)列中各個(gè)污染物實(shí)時(shí)值為帶時(shí)間戳的多版本形式。本發(fā)明產(chǎn)生的有益效果是:本發(fā)明將數(shù)據(jù)合理的分布在多個(gè)子區(qū)域及其包含的存儲(chǔ)文件中,以便有效進(jìn)行數(shù)據(jù)查詢。實(shí)踐結(jié)果表明該模型可以完全滿足實(shí)時(shí)數(shù)據(jù)、小時(shí)均值數(shù)據(jù)及評(píng)價(jià)、日均值數(shù)據(jù)及評(píng)價(jià)的存儲(chǔ)及業(yè)務(wù)邏輯的數(shù)據(jù)查詢要求,證明了該存儲(chǔ)模型的可用性。附圖說明下面將結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步說明,附圖中:圖1是本發(fā)明實(shí)施例的監(jiān)測(cè)數(shù)據(jù)大數(shù)據(jù)存儲(chǔ)模型;圖2是本發(fā)明實(shí)施例的監(jiān)測(cè)數(shù)據(jù)的數(shù)據(jù)流向示意圖;圖3是本發(fā)明實(shí)施例的監(jiān)測(cè)數(shù)據(jù)的區(qū)域存儲(chǔ)結(jié)構(gòu)示意圖;圖4是本發(fā)明實(shí)施例的數(shù)據(jù)的篩選粒度示意圖。具體實(shí)施方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。一種用于環(huán)境空氣質(zhì)量監(jiān)測(cè)的大數(shù)據(jù)存儲(chǔ)模型,所述大數(shù)據(jù)存儲(chǔ)模型包括:1)列存儲(chǔ)模式的數(shù)據(jù)表,數(shù)據(jù)列分別存儲(chǔ)實(shí)時(shí)監(jiān)測(cè)數(shù)據(jù)、小時(shí)均值數(shù)據(jù)及評(píng)價(jià)數(shù)據(jù)、日均值數(shù)據(jù)及評(píng)價(jià)數(shù)據(jù);其中,所述實(shí)時(shí)數(shù)據(jù)監(jiān)測(cè)列用于存儲(chǔ)空氣質(zhì)量監(jiān)測(cè)的各個(gè)污染物實(shí)時(shí)值;所述小時(shí)均值數(shù)據(jù)及評(píng)價(jià)數(shù)據(jù)用于存儲(chǔ)空氣質(zhì)量監(jiān)測(cè)的各個(gè)污染物的小時(shí)均值及評(píng)價(jià)數(shù)據(jù);小時(shí)均值數(shù)據(jù)為根據(jù)各個(gè)污染物的實(shí)時(shí)監(jiān)測(cè)數(shù)據(jù)值,結(jié)合標(biāo)記位,按環(huán)境監(jiān)測(cè)數(shù)據(jù)計(jì)算的相關(guān)國家標(biāo)準(zhǔn),計(jì)算獲得各個(gè)污染物的小時(shí)均值;所述小時(shí)均值數(shù)據(jù)的評(píng)價(jià)數(shù)據(jù)采用污染物濃度及空氣質(zhì)量分指數(shù);具體為根據(jù)小時(shí)均值計(jì)算每個(gè)污染物的分指數(shù)(IAQI);根據(jù)某個(gè)城市所轄的所有自動(dòng)化站的污染物小時(shí)均值,計(jì)算城區(qū)的各個(gè)污染物小時(shí)均值及分指數(shù);根據(jù)站點(diǎn)及城區(qū)的污染物小時(shí)均值計(jì)算站點(diǎn)及城區(qū)的AQI指數(shù)及評(píng)價(jià)數(shù)據(jù);所述日均值數(shù)據(jù)及評(píng)價(jià)數(shù)據(jù)用于存儲(chǔ)空氣質(zhì)量監(jiān)測(cè)的各個(gè)污染物的全天小時(shí)均值及評(píng)價(jià)數(shù)據(jù);所述根據(jù)各個(gè)污染物的全天小時(shí)均值,結(jié)合標(biāo)記位,按環(huán)境監(jiān)測(cè)數(shù)據(jù)計(jì)算的相關(guān)國家標(biāo)準(zhǔn),計(jì)算各個(gè)污染物的日均值,根據(jù)日均值計(jì)算每個(gè)污染物的分指數(shù)(IAQI);根據(jù)某個(gè)城市所轄的所有自動(dòng)化站的污染物日均值,計(jì)算城區(qū)的各個(gè)污染物日均值及分指數(shù);根據(jù)站點(diǎn)及城區(qū)的污染物日均值計(jì)算站點(diǎn)及城區(qū)的AQI指數(shù)及評(píng)價(jià)數(shù)據(jù);2)實(shí)時(shí)數(shù)據(jù)數(shù)據(jù)列的行鍵;實(shí)時(shí)數(shù)據(jù)數(shù)據(jù)列的行鍵設(shè)計(jì)如下:地區(qū)編碼-站點(diǎn)編碼-當(dāng)前小時(shí)(YYYYMMDDHH);其中實(shí)時(shí)數(shù)據(jù)監(jiān)測(cè)列對(duì)應(yīng)的站點(diǎn)編碼設(shè)計(jì)為字符SS+地區(qū)編碼+站點(diǎn)編號(hào);小時(shí)均值及評(píng)價(jià)數(shù)據(jù)列的行鍵設(shè)計(jì)如下:地區(qū)編碼-站點(diǎn)編碼-當(dāng)前小時(shí);其中小時(shí)均值數(shù)據(jù)對(duì)應(yīng)的城區(qū)的站點(diǎn)編碼統(tǒng)一設(shè)置為SS+地區(qū)編碼+999;日均值及評(píng)價(jià)數(shù)據(jù)列的行鍵設(shè)計(jì)為:地區(qū)編碼-站點(diǎn)編碼-當(dāng)前日(YYYYMMDD);其中日均值數(shù)據(jù)對(duì)應(yīng)的城區(qū)的站點(diǎn)編碼統(tǒng)一設(shè)置為SS+地區(qū)編碼+999。該模型的數(shù)據(jù)查詢算法為:1、查詢某個(gè)地區(qū)下的某個(gè)站點(diǎn)在一定范圍時(shí)間內(nèi)的連續(xù)值。2、查詢某個(gè)地區(qū)在一定時(shí)間范圍內(nèi)的連續(xù)值。3、查詢某個(gè)特定時(shí)間下,不同地區(qū)或同一地區(qū)下不同站點(diǎn)的離散值。4、查詢一定時(shí)間范圍內(nèi),不同地區(qū)或同一地區(qū)下不同站點(diǎn)的連續(xù)值。環(huán)境空氣質(zhì)量監(jiān)測(cè)大數(shù)據(jù)存儲(chǔ)模型如圖1所示。存儲(chǔ)模型的表名為EMCData,包括RTData、HourData、HourEval、DailyData、DailyEval列族,其中RTData存放站點(diǎn)污染物實(shí)時(shí)監(jiān)測(cè)數(shù)據(jù),HourData存放站點(diǎn)及城區(qū)污染物小時(shí)均值數(shù)據(jù)及對(duì)應(yīng)分指數(shù),HourEval存放站點(diǎn)及城區(qū)的小時(shí)AQI指數(shù)及評(píng)價(jià),DailyData存放站點(diǎn)及城區(qū)污染物日均值數(shù)據(jù)及對(duì)應(yīng)分指數(shù),DailyEval存放站點(diǎn)及城區(qū)的日AQI指數(shù)及評(píng)價(jià)。列族RTData存放污染物SO2,NO2,PM10,CO,O3,PM2.5的實(shí)時(shí)監(jiān)測(cè)數(shù)據(jù),實(shí)時(shí)數(shù)據(jù)按儀器的監(jiān)測(cè)頻次將數(shù)據(jù)寫入對(duì)應(yīng)的列,實(shí)時(shí)值寫入的格式為{值:單位:標(biāo)記位},如SO2的實(shí)時(shí)監(jiān)測(cè)值{25.2:M01:N},表示SO2的監(jiān)測(cè)值為25.2,單位為ppb,標(biāo)記位為N,表示正常,標(biāo)記位是監(jiān)測(cè)數(shù)據(jù)狀態(tài)的說明。RTData的VERSIONS設(shè)置為60,表示每個(gè)列可存儲(chǔ)60個(gè)不同的版本,既在一個(gè)小時(shí)內(nèi),最多每分鐘可存儲(chǔ)一個(gè)實(shí)時(shí)數(shù)據(jù)。小時(shí)均值的寫入格式為{值:標(biāo)記位},根據(jù)RTData中的實(shí)時(shí)值計(jì)算小時(shí)均值時(shí),單位統(tǒng)一換算為質(zhì)量濃度單位mg/m3,故小時(shí)均值不帶單位,小時(shí)均值的計(jì)算、單位的換算、標(biāo)記位的設(shè)置按《中華人民共和國環(huán)境保護(hù)部。GB3095-2012,環(huán)境空氣質(zhì)量標(biāo)準(zhǔn)》、《中華人民共和國環(huán)境保護(hù)部。HJ633-2012,環(huán)境空氣質(zhì)量指數(shù)AQI技術(shù)規(guī)定》、《中華人民共和國環(huán)境保護(hù)部。HJ663-2013,環(huán)境空氣質(zhì)量評(píng)價(jià)技術(shù)規(guī)范(試行)》進(jìn)行,由于算法比較復(fù)雜,且需要較多的行業(yè)知識(shí),在此不過多敘述。得到每個(gè)污染物的小時(shí)均值后,若其標(biāo)記位為N,則根據(jù)《中華人民共和國環(huán)境保護(hù)部。HJ633-2012,環(huán)境空氣質(zhì)量指數(shù)AQI技術(shù)規(guī)定》的規(guī)則,計(jì)算其對(duì)應(yīng)的分指數(shù)(IAQI),并存入HourData列族對(duì)應(yīng)的列中。整個(gè)監(jiān)測(cè)站點(diǎn)的所有的污染物的小時(shí)均值和分指數(shù)計(jì)算完畢后,根據(jù)文獻(xiàn)《中華人民共和國環(huán)境保護(hù)部。HJ633-2012,環(huán)境空氣質(zhì)量指數(shù)AQI技術(shù)規(guī)定》、《中華人民共和國環(huán)境保護(hù)部。HJ663-2013,環(huán)境空氣質(zhì)量評(píng)價(jià)技術(shù)規(guī)范(試行)》的規(guī)定,計(jì)算該站點(diǎn)的AQI指數(shù)及評(píng)價(jià),分別寫入HourEval列族對(duì)應(yīng)的列中。整個(gè)城市的所有監(jiān)測(cè)站點(diǎn)的數(shù)據(jù)計(jì)算完畢后,根據(jù)每個(gè)站點(diǎn)的污染物的小時(shí)均值計(jì)算城區(qū)的污染物小時(shí)均值及分指數(shù),并寫入HourData對(duì)應(yīng)的列中,然后計(jì)算城區(qū)的AQI指數(shù)及評(píng)價(jià),寫入HourEval對(duì)應(yīng)的列中。根據(jù)HourData記錄的自動(dòng)化站污染物0-24時(shí)的小時(shí)均值,計(jì)算污染物的日均值及分指數(shù),并寫入DailyData的對(duì)應(yīng)列中,日均值不再帶標(biāo)記位,若0-24時(shí)的小時(shí)均值為N標(biāo)記位的數(shù)據(jù)不足18個(gè),則日均值記為“NA”,對(duì)應(yīng)的分指數(shù)也記為“NA”。站點(diǎn)的所有污染物的日均值計(jì)算完畢后,根據(jù)《中華人民共和國環(huán)境保護(hù)部。HJ633-2012,環(huán)境空氣質(zhì)量指數(shù)AQI技術(shù)規(guī)定》、《中華人民共和國環(huán)境保護(hù)部。HJ663-2013,環(huán)境空氣質(zhì)量評(píng)價(jià)技術(shù)規(guī)范(試行)》的規(guī)定計(jì)算站點(diǎn)的AQI指數(shù)及評(píng)價(jià),分別寫入DailyEval的對(duì)應(yīng)列。所有站點(diǎn)的日均值計(jì)算完畢后,根據(jù)規(guī)范計(jì)算城區(qū)的污染物日均值,分指數(shù),AQI指數(shù),評(píng)價(jià),并寫入對(duì)應(yīng)的列。監(jiān)測(cè)數(shù)據(jù)的計(jì)算過程及數(shù)據(jù)流向如圖2所示。列式存儲(chǔ)數(shù)據(jù)庫的每張表都通過行鍵按照一定的范圍被分割成多個(gè)子表(HRegion),默認(rèn)一個(gè)HRegion超過一定閾值就要被分割,HRegion由HRegionServer管理,管理哪些HRegion由HMaster分配。HRegionServer存取一個(gè)子表時(shí),會(huì)創(chuàng)建一個(gè)HRegion對(duì)象,然后對(duì)表的每個(gè)列族(ColumnFamily)創(chuàng)建一個(gè)Store實(shí)例,每個(gè)Store都會(huì)有0個(gè)或多個(gè)StoreFile與之對(duì)應(yīng),每個(gè)StoreFile都會(huì)對(duì)應(yīng)一個(gè)HFile,HFile就是實(shí)際的存儲(chǔ)文件。因此,一個(gè)HRegion有多少個(gè)列族就有多少個(gè)Store。EMCData的一個(gè)典型Region的存儲(chǔ)結(jié)構(gòu)如圖3所示:列式存儲(chǔ)數(shù)據(jù)庫將需要存儲(chǔ)的值存放在單元格(Cell)中,單元格具有結(jié)構(gòu)信息,也稱為KeyValue-鍵值對(duì),key由行鍵、列族、列限定符、時(shí)間戳組成,用于確定對(duì)應(yīng)的Value。同一個(gè)單元格的多個(gè)版本(Version)被單獨(dú)存儲(chǔ)為連續(xù)的單元格,其行鍵、列族、列限定符均相同,但由于更新的時(shí)間有差異,故時(shí)間戳不同。列式存儲(chǔ)數(shù)據(jù)庫客戶端API在訪問存儲(chǔ)文件時(shí),根據(jù)鍵來進(jìn)行數(shù)據(jù)篩選,鍵的各個(gè)組成部分在篩選中的粒度如圖4所示。從圖中可以看出,行鍵可以用來篩選Region、Storefile及適用各種過濾器,因此,行鍵的設(shè)計(jì)對(duì)于數(shù)據(jù)查詢的效率其中至關(guān)重要的作用。在設(shè)計(jì)表的存儲(chǔ)結(jié)構(gòu)時(shí),應(yīng)盡量將表設(shè)計(jì)為“高表”而非“寬表”,“高表”是指行鍵中包含用于篩選數(shù)據(jù)的多個(gè)維度,從而使得表顯得“行多而列少”,有利于進(jìn)行Region的劃分及進(jìn)行部分鍵掃描。“寬表”的行鍵只包含鍵本身的信息,從而使得表顯得“行少而列多”,若出現(xiàn)同一行的數(shù)據(jù)超過了HFile的最大限制,就會(huì)導(dǎo)致該HFile無法拆分,從而導(dǎo)致Region也無法在合適的位置拆分。根據(jù)以上的理論基礎(chǔ),對(duì)EMCData中的行鍵進(jìn)行以下的設(shè)計(jì):RTData列族對(duì)應(yīng)的行鍵設(shè)計(jì)為:地區(qū)編碼-站點(diǎn)編碼-當(dāng)前小時(shí)(YYYYMMDDHH)。站點(diǎn)編碼設(shè)計(jì)為字符SS+地區(qū)編碼+站點(diǎn)編號(hào),理由是1)可以唯一標(biāo)識(shí)站點(diǎn)。2)可以直接通過站點(diǎn)編碼得到地區(qū)編碼,便于數(shù)據(jù)的查詢。如4205-SS4205001-2014100109,表示宜昌市-伍家崗自動(dòng)化站-2014年10月1日9時(shí)的實(shí)時(shí)數(shù)據(jù)的行鍵。HourData及HourEval的行鍵設(shè)計(jì)同RTData,城區(qū)的站點(diǎn)編碼統(tǒng)一設(shè)置為SS+地區(qū)編碼+999,以便和自動(dòng)化站區(qū)別。DailyData,DailyEval的行鍵設(shè)計(jì)為:地區(qū)編碼-站點(diǎn)編碼-當(dāng)前日(YYYYMMDD),如4205-SS4205999-20141001,表示宜昌市城區(qū)2014年10月1日DailyData和DailyEval列族的行鍵。地區(qū)編碼及站點(diǎn)編碼的值為固定不變的值,在行鍵中作為篩選的維度,用于部分鍵掃描,時(shí)間維度當(dāng)前小時(shí),當(dāng)前日以字典排序的方式不斷的遞增,從而用于區(qū)分不同的小時(shí)及日數(shù)據(jù)行。按此規(guī)則設(shè)計(jì)行鍵后,隨著數(shù)據(jù)的增長(zhǎng),首先小時(shí)均值數(shù)據(jù)及評(píng)價(jià)數(shù)據(jù)(RTData、HourData、HourEval)和日均值數(shù)據(jù)及評(píng)價(jià)數(shù)據(jù)(DailyData、DailyEval)會(huì)被劃分到不同的Region,然后小時(shí)數(shù)據(jù)及日數(shù)據(jù)Region根據(jù)不同的地區(qū)編碼進(jìn)行劃分,最后按照站點(diǎn)編碼進(jìn)行劃分。按照EMCData行鍵設(shè)計(jì)的規(guī)則,可給出以下業(yè)務(wù)邏輯中常用數(shù)據(jù)查詢的算法。算法1:查詢某個(gè)地區(qū)下的某個(gè)站點(diǎn)在一定范圍時(shí)間內(nèi)的連續(xù)值。查詢可以充分利用行鍵進(jìn)行篩選,是最符合行鍵設(shè)計(jì)目的的查詢算法,查詢效率最高。算法如下所示:publicvoidGetDataByDTSpan(areaCode,ssId,startDT,endDT,cfName,cqName,isRT){HTabletable=newHTable(cfg,"EMCData");Scansc=newScan();sc.addColumn(Bytes.toBytes(cfName),Bytes.toBytes(cqName));sc.setStartRow(Bytes.toBytes(areaCode+"-"+ssId+"-"+startDT));sc.setStopRow(Bytes.toBytes(areaCode+"-"+ssId+"-"+endDT));if(isRT){sc.setMaxVersions();}//查詢實(shí)時(shí)值的多個(gè)版本ResultScannerrrs=table.getScanner(sc);for(Resultres:rrs){輸出結(jié)果;}}}算法2:查詢某個(gè)地區(qū)在一定時(shí)間范圍內(nèi)的連續(xù)值。只需要得到地區(qū)下的所有子站編碼,就可循環(huán)調(diào)用查詢算法1進(jìn)行查詢,從而得到結(jié)果。publicvoidGetDataByDTSpan(areaCode,startDT,endDT,cfName,cqName,isRT){ArrayList<String>lssIDs=得到areaCode下的所有子站id;for(StringssId:lssIDs){GetDataByDTSpan(areaCode,ssId,startDT,endDT,cfName,cqName,isRT);}}算法3:查詢某個(gè)特定時(shí)間下,不同地區(qū)或同一地區(qū)下不同站點(diǎn)的離散值。由于查詢的值是離散的,若直接用正則表達(dá)式進(jìn)行行鍵的匹配,會(huì)導(dǎo)致掃描所有的Region及StoreFile進(jìn)行查找,導(dǎo)致查詢效率低下,故然采用如下算法,仍使用行鍵進(jìn)行篩選,提高查詢效率。publicGetDataByDT(dt,areaCode,clName,cqName,isHB){HTabletable=newHTable(cfg,"EMCData");ArrayList<String>lssIDs;if(isHB){lssIDs=得到湖北省下所有地市的站點(diǎn)id;}else{lssIDs=得到areaCode下的所有子站id;}for(StringssId:lssIDs){Stringrowkey=areaCode+“-”+ssId+“-”+dt;Scansc=newScan();sc.addColumn(Bytes.toBytes(clName),Bytes.toBytes(cqName));rf=newRowFilter(CompareFilter.CompareOp.EQUAL,newBinaryComparator(Bytes.toBytes(rowkey)));for(Resultres:rrs){輸出結(jié)果;}}}}算法4:查詢一定時(shí)間范圍內(nèi),不同地區(qū)或同一地區(qū)下不同站點(diǎn)的連續(xù)值。通過得到子站列表的地區(qū)編碼,循環(huán)調(diào)用查詢算法1得到結(jié)果。publicvoidGetDataByDTSpan(ssIds,startDT,endDT,cfName,cqName,isRT){for(StringssId:ssIds){StringareaCode=通過站點(diǎn)編碼得到地區(qū)編碼;GetDataByDTSpan(areaCode,ssId,startDT,endDT,cfName,cqName,isRT);}}應(yīng)當(dāng)理解的是,對(duì)本領(lǐng)域普通技術(shù)人員來說,可以根據(jù)上述說明加以改進(jìn)或變換,而所有這些改進(jìn)和變換都應(yīng)屬于本發(fā)明所附權(quán)利要求的保護(hù)范圍。當(dāng)前第1頁1 2 3 當(dāng)前第1頁1 2 3 
當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
阿拉善盟| 宜良县| 乐亭县| 土默特左旗| 子洲县| 时尚| 香河县| 永州市| 綦江县| 寿宁县| 平塘县| 鄂伦春自治旗| 厦门市| 安溪县| 常熟市| 延庆县| 阳朔县| 长垣县| 鞍山市| 澎湖县| 虎林市| SHOW| 绵竹市| 滦南县| 海兴县| 阿巴嘎旗| 永康市| 进贤县| 尚义县| 皋兰县| 二连浩特市| 平和县| 慈利县| 七台河市| 康平县| 建瓯市| 施甸县| 盐边县| 罗山县| 桃园市| 陆良县|